ILE et RPG

 

ILE & Free Form RPG

 

Enfin, faites attention, les groupes d'activation peuvent modifier profondément l'utilisation de la commande RCLRSC, et donc les fichiers qui restent ouverts.

la documentation dit la chose suivante :

la commande RCLRSC n'a de portée qu'à l'intérieur du groupe d'activation par défaut.

pour un groupe d'activation nommé, il faut utiliser RCLACTGRP

un programme ne peut pas passer la commande RCLACTGRP pour le groupe auquel il appartient (contrairement à RCLRSC)


Si vous mettez vos programmes de services dans DFTACTGRP , et que ces derniers utilisent des déclarations de fichiers globales (Dcl-F hors procédure)

La commande RCLSRC ferme bien les fichiers, mais ne désactive pas les *SRVPGM

Au prochain appel du programme de service ce dernier est persuadé que les fichiers sont toujours ouverts (et ce n'est plus le cas)

Vous recevrez MCH3401 "Tentative d'accès à tout ou partie d'un objet qui n'existe plus."

DONC, pas de RCLRSC avec ILE !


La solution la plus prudente est désormais de déclarer vos fichiers par des déclarations locales

Chaque procédure est autonome, quant à l'utilisation du fichier

Cela permet d'avoir des utilisations différentes (INPUT sur l'une, UPDATE sur l'autre, etc...)


ou mieux, d'utiliser SQL et de jouer avec CLOSQLCSR vu plus haut.