Exemple de dialogue APPC via fichier ICF

BoTTom |    Changer de couleur
 
 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)
 


|    Changer de couleur
 
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
 
 
 
 


|    Changer de couleur
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


|    Changer de couleur
     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


|    Changer de couleur
 
      * 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


|    Changer de couleur
      *
     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
      *


|    Changer de couleur
     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


|    Changer de couleur
      * 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


|    Changer de couleur
      *
     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
 
 
 


|    Changer de couleur
 
                  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
 
 
 
 
 


|    Changer de couleur
 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


|    Changer de couleur
 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:


|    Changer de couleur
   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




©AF400