Exemple de dialogue APPC avec fichier ICF Un pgm ICFOBJP1 va lire un fichier OBJCHGPF qui contient le nom d'un certain nombre d'objets modifiés. A l'initialisation (*INZSR) il va demander l'établissement d'une SESSION et l'activation du pgm ICFOBJP2 sur le système-cible Pour chaque objet il va demander au pgm-cible la date de modif sur le système cible. Si la date de modif sur le système-cible est < à la date de modif sur le système source, l'enregistrement lu sera écrit dans un fichier de travail (OBJSAVPF) pour sauvegarde et envoi ultérieur. les deux pgms utilisent le même fichier ICF (ICFOBJ01) avec: pour le système source ADDICFDEVE PGMDEV(ICF01) RMTLOCNAME(xxxxxxxxx) pour le système cible ADDICFDEVE PGMDEV(ICF01) RMTLOCNAME(*REQUESTER) |
Fichier ICF A INDARA A R EVOK EVOKE(&LIB/&PGM) A SECURITY(3 *USER) A SYNLVL(*CONFIRM) A PGM 10 P A LIB 10 P A R OBJINFO RCVDETACH(80) A CONFIRM ALWWRT A ODOBNM 10 A ODLBNM 10 A ODOBTP 8 A R OBJOK RSPCONFIRM A R OBJDAT A RSTDAT 6 A R FIN DETACH |
pgm ICFOBJP1 FOBJCHGPFIP E DISK FOBJSAVPFO E DISK F QLIDOBJD KRENAMESAVFMT FICFOBJ01CF E WORKSTN F KNUM 1 F KINFDS INFODS F KINFSR ERRSR F KID PGMDEV I UDS I 1 6 CODRT IINFODS DS I 38 45 FORMAT I 401 404 MAJMIN I 401 402 MAJEUR I 403 404 MINEUR IDATMJA DS I 1 2 MM I 3 4 JJ I 5 6 AA IDATAMJ DS I 1 2 AAA |
I 3 4 MMM I 5 6 JJJ * C *LIKE DEFN ODCDAT REFDAT * C WRITEOBJINFO 90 * RETOUR OK C MAJEUR IFEQ '00' * INVERSION DES DATES C MOVE ODCDAT DATMJA C EXSR INVDAT C MOVE DATAMJ ODCDAT C MOVE ODLDAT DATMJA C EXSR INVDAT C MOVE DATAMJ ODLDAT * MEP DATE A COMPARER C ODLDAT IFNE *BLANK C ODLDAT ANDNE'000000' C MOVE ODLDAT REFDAT C ELSE C MOVE ODCDAT REFDAT C END |
* LECTURE DE LA DATE DE RESTAURATION C READ OBJDAT 90 * * TEST SI CET OBJET DOIT ETRE ENVOYE SUR AUTRE AS C RSTDAT IFLT REFDAT * SI DATE DE RESTAURATION < DATE DE REFERENCE ==> ECRITURE C MOVE RSTDAT ODRDAT C WRITESAVFMT C END C ELSE * ERREUR C EXSR ERRSR C END * CLR EXSR ARRET * C INVDAT BEGSR C MOVE AA AAA C MOVE MM MMM C MOVE JJ JJJ C ENDSR |
* C ERRSR BEGSR C MAJMIN IFNE '0000' C MOVE 'ERREUR' CODRT C EXSR ARRET C END C ENDSR * C ARRET BEGSR C FLAG IFNE '1' C 79 WRITEFIN 80 C 'ICF01' REL ICFOBJ01 80 C MOVE '1' FLAG 1 C ENDIF C CLOSE*ALL C MOVE '1' *INLR C RETRN C ENDSR * * * établissement de la session en début de pgm * |
C *INZSR BEGSR C 'ICF01' ACQ ICFOBJ01 C MOVEL'ICF01' PGMDEV C MOVEL'système' LIB C MOVEL'ICFOBJP2'PGM C WRITEEVOK C MOVE '1' *IN79 C ENDSR pgm ICFOBJP2 FICFOBJ01CF E WORKSTN F KNUM 1 F KINFDS INFODS F KINFSR ERRSR IINFODS DS I 38 45 FORMAT I 401 404 MAJMIN I 401 402 MAJEUR I 403 404 MINEUR * établissement de la transaction sur session existante C 'ICF01' ACQ ICFOBJ01 |
* boucle de lecture des objets C READ OBJINFO 90 C *IN80 DOWEQ'0' * réponse à demande de confirmation C WRITEOBJOK * appel d'un cl qui retrouve date de modif C CALL 'ICFOBJCL' C PARM ODOBNM C PARM ODLBNM C PARM ODOBTP C PARM RSTDAT * envoi de la date au pgm distant C WRITEOBJDAT C READ OBJINFO 90 C END C EXSR ARRET * C ERRSR BEGSR C MAJMIN IFNE '0000' C EXSR ARRET C END C ENDSR |
* C ARRET BEGSR C FLAG IFNE '1' C 'ICF01' REL ICFOBJ01 C MOVE '1' FLAG 1 C ENDIF C CLOSE*ALL C MOVE '1' *INLR C RETRN C ENDSR Sur chaque site il a été demandé une trace des fichiers ICF CDE TRCICF *ON avant ouverture du fichier ICF TRCICF *OFF après fermeture provoque une impression des informations qui ont transitées par le fichier ICF du système local |
AS/400 Trace ICF Information ------------------Table of Function Codes------------------ (extrait) Function Codes Meaning ACQ Acquire AWT Allow-Write CFM Confirm DET Detach EOA End-of-Session-Abnormal EOS End-of-Session EVK Evoke FAL Fail RCF Respond-to-Confirm RCV Receive REL Release TRN Turn-Around |
Program . . . . : système /ICFOBJP1 Program File . . . . . Opened File . . . . . . Program Record Return Response Device Format Code Function Indicator ICF01 0000 ACQ ICF01 EVOK 0000 EVK ICF01 OBJINFO 0001 SND,AWT,CFM Data: LASER système *OUTQ ICF01 OBJDAT 0000 RCV TRN Data: 920323 ICF01 OBJINFO 0001 SND,AWT,CFM Data: NUIT système *OUTQ ICF01 OBJDAT 0000 RCV TRN Data: 920325 ICF01 OBJINFO 0001 SND,AWT,CFM Data: PRT03 système *OUTQ ICF01 OBJDAT 0000 RCV TRN |
Data: 920323 ICF01 FIN 0000 DET ICF01 0000 REL Program . . . . : système /ICFOBJP2 Program File . . . . . Opened File . . . . . . Program Record Return Response Device Format Code Function Indicator ICF01 0000 ACQ ICF01 OBJINFO 0014 RCV CFM,TRN Data: LASER système *OUTQ ICF01 OBJOK 0000 RCF ICF01 OBJDAT 0000 SND Data: 920323 ICF01 OBJINFO 0014 RCV CFM,TRN Data: |
NUIT système *OUTQ ICF01 OBJOK 0000 RCF ICF01 OBJDAT 0000 SND Data: 920325 ICF01 OBJINFO 0014 RCV CFM,TRN Data: PRT03 système *OUTQ ICF01 OBJOK 0000 RCF ICF01 OBJDAT 0000 SND Data: 920323 ICF01 OBJINFO 0308 RCV DET ICF01 0000 REL |