CBL SERVICE('CEH49 T00001 2023-10-21 16:23:23 J070188') sqi IDENTIFICATION DIVISION. sqi PROGRAM-ID. S9TL1B. ****************************************************************** * Programme : S9TL1B * Workspace : ceab3-environn-outinfr-central * * Test avec ressources Db2 * ****************************************************************** sqivc * Variables globales pour la compilation conditionnelle sqivc copy AGAVBATC. sqisqa****************************************************************** sqisqa*> * * Squelette : SB2 - Squelette Batch <* <* sqisqa*> * * Version : SB2 - V5.0.0 - B <* <* sqisqd*> * * Squelette : Tag trace Injection <* <* cdAP00*Inj*|dd:AP|noseg:00|repl:APP|copy:SG2DAPP|ddname:APP|recfm:F|nrup cdAP00*Inj*t:2|nsync:1|org:2|mode:S|acces:LSA|cles:COSGDP;LCSGAP|picts:X cdAP00*Inj*(1);X(1) cdDM00*Inj*|dd:DM|noseg:00|repl:ADM|copy:SG2DADM|ddname:ADM|recfm:F|nrup cdDM00*Inj*t:0|nsync:1|org:2|mode:S|acces:LSA|cles:COSGDP|picts:X(1) cdS100*Inj*|dd:S1|noseg:00|repl:I902|copy:S9FDI902|ddname:SI902|recfm:F| cdS100*Inj*nrupt:0|org:F|mode:S|acces:ESA cdS200*Inj*|dd:S2|noseg:00|repl:I903|copy:S9FDI903|ddname:SI903|recfm:F| cdS200*Inj*nrupt:0|org:F|mode:S|acces:ESA sqisqf*> * * Squelette : Tag trace Injection <* <* sqid DATE-COMPILED. sqe ENVIRONMENT DIVISION. sqec CONFIGURATION SECTION. sqec SOURCE-COMPUTER. IBM-370. sqec OBJECT-COMPUTER. IBM-370. sqes SPECIAL-NAMES. DECIMAL-POINT IS COMMA . sqei INPUT-OUTPUT SECTION. sqeif FILE-CONTROL. sqeifd*> *> zone injection debut <* <* cdS100 select S1-FICHIER assign to UT-S-SI902. cdS200 select S2-FICHIER assign to UT-S-SI903. sqeiff*> *> zone injection fin <* <* sqeiff sqsd /***************************************************************** sqsd * DDDD AAA TTTTT AAA DDDD IIIII V V sqsd * D D A A T A A D D I V V sqsd * D D AAAAA T AAAAA D D I V V ... sqsd * D D A A T A A D D I V V ..... sqsd * DDDD A A T A A DDDD IIIII V ... sqsd ****************************************************************** sqsd DATA DIVISION. sqsd sqsdf *================================================================= sqsdf * FFFFF IIIII L EEEEE SSSS EEEEE CCC TTTTT sqsdf * F I L E S E C C T sqsdf * FFFF I L EEEE SSS EEEE C T sqsdf * F I L E S E C C T sqsdf * F IIIII LLLLL EEEEE SSSS EEEEE CCC T sqsdf *================================================================= sqsdf FILE SECTION. sqsdfd*> *> zone injection debut <* <* cdS100 FD S1-FICHIER cdS100 block contains 0 records cdS100 recording mode is F. cdS100 copy S9FDI902 replacing cdS100*^^repl1 * compléter les lignes ci-dessous * cdS100 ==REDEFINES I900.== by ==.== cdS100 leading ==I902== by ==S100== cdS100 . cdS200 FD S2-FICHIER cdS200 block contains 0 records cdS200 recording mode is F. cdS200 copy S9FDI903 replacing cdS200*^^repl1 * compléter les lignes ci-dessous * cdS200 ==REDEFINES I900.== by ==.== cdS200 leading ==I903== by ==S200== cdS200 . sqsdff*> *> zone injection fin <* <* sqsdff* sqsw *================================================================= sqsw * W W SSSS SSSS EEEEE CCC TTTTT sqsw * W W S S E C C T sqsw * W W W === SSS SSS EEEE C T sqsw * W W W S S E C C T sqsw * W W SSSS SSSS EEEEE CCC T sqsw *================================================================= sqsw WORKING-STORAGE SECTION. sqsw *--- Marqueur pour faciliter l'analyse des dumps ----------------- sqsw 01 DEBUT-WSS VOLATILE. sqsw 05 FILLER PIC X(7) VALUE 'WORKING'. sqswp *--- Horodatage code source -------------------------------------- sqswp copy AGADHORO replacing sqswp *--- informations à mettre à jour à la création du programme ----- =='COBASE'== by =='H49 '== =='APPLI'== by =='AB3'== =='PROGR'== by =='S9TL1B'== =='PROGE'== by =='S9TL1B '== *--- informations variables à mettre à jour ---------------------- =='NUGNA'== by =='00001'== =='DATGN'== by =='21/10/23'== =='DATGNC'== by =='21/10/2023'== =='TIMGN'== by =='16:23:23'== =='CODUTI'== by =='J070188 '== sqswpf . sqswpf* sqw2 *----------------------------------------------------------------- sqw2 * H H OOO SSSS TTTTT V V DDDD BBBB 222 sqw2 * H H O O S T V V D D B B 2 2 sqw2 * HHHHH O O SSS T V V D D BBBB 2 sqw2 * H H O O S T V V D D B B 22 sqw2 * H H OOO SSSS T V DDDD BBBB 22222 sqw2 *----------------------------------------------------------------- sqw2d *> *> zone injection debut <* <* cdAP00*--- Ressource AP00 - Table APP cdAP00*^^hstavcp * compléter les lignes ci-dessous * cdAP00 copy SG2DAPP replacing cdAP00*^^repl1 * compléter les lignes ci-dessous * cdAP00 leading ==APP== by ==AP00== cdAP00 leading ==V-APP== by ==V-AP00== cdAP00 . cdAP00* cdDM00*--- Ressource DM00 - Table ADM cdDM00*^^hstavcp * compléter les lignes ci-dessous * cdDM00 copy SG2DADM replacing cdDM00*^^repl1 * compléter les lignes ci-dessous * cdDM00 leading ==ADM== by ==DM00== cdDM00 leading ==V-ADM== by ==V-DM00== cdDM00 . cdDM00* sqw2f *> *> zone injection fin <* <* sqw2f * sqwa *----------------------------------------------------------------- sqwa * W W RRRR K K AAA CCC CCC EEEEE SSSS sqwa * W W R R K KK A A C C C C E S sqwa * W W W RRRR KK AAAAA C C EEEE SSS sqwa * W W W R R K KK A A C C C C E S sqwa * W W R R K K A A CCC CCC EEEEE SSSS sqwa *----------------------------------------------------------------- sqwad *> *> zone injection debut <* <* cdAP00* cdAP00*--- Gestion Accès AP -------------------------------------------- cdAP00 >>define AA-A-ACCES as 'L' cdAP00 >>define AA-A-MODE as 'S' cdAP00 >>define AA-A-ORG as '2' cdAP00 >>define AA-A-NR as 2 cdAP00 >>define AA-A-NS as 1 cdAP00 >>if AA-A-NR > 0 cdAP00*^^accavcp * compléter les lignes ci-dessous * cdAP00 copy SG2DAPP replacing cdAP00*^^repl2 * compléter les lignes ci-dessous * cdAP00 leading ==APP== by ==1-AP00== cdAP00 leading ==V-APP== by ==V-1-AP00== cdAP00 . cdAP00 >>end-if cdAP00*^^accavad * compléter les lignes ci-dessous * cdAP00 copy AAADACCE replacing cdAP00 ==:DD:== by ==AP== cdAP00 ==:K1:== by ==COSGDP== cdAP00 ==:P1:== by ==X(1)== cdAP00 ==:K2:== by ==LCSGAP== cdAP00 ==:P2:== by ==X(1)== cdAP00 . cdDM00* cdDM00*--- Gestion Accès DM -------------------------------------------- cdDM00 >>define AA-A-ACCES as 'L' cdDM00 >>define AA-A-MODE as 'S' cdDM00 >>define AA-A-ORG as '2' cdDM00 >>define AA-A-NR as 0 cdDM00 >>define AA-A-NS as 1 cdDM00 >>if AA-A-NR > 0 cdDM00*^^accavcp * compléter les lignes ci-dessous * cdDM00 copy SG2DADM replacing cdDM00*^^repl2 * compléter les lignes ci-dessous * cdDM00 leading ==ADM== by ==1-DM00== cdDM00 leading ==V-ADM== by ==V-1-DM00== cdDM00 . cdDM00 >>end-if cdDM00*^^accavad * compléter les lignes ci-dessous * cdDM00 copy AAADACCE replacing cdDM00 ==:DD:== by ==DM== cdDM00 ==:K1:== by ==COSGDP== cdDM00 ==:P1:== by ==X(1)== cdDM00 . cdS100* cdS100*--- Gestion Accès S1 -------------------------------------------- cdS100 >>define AA-A-ACCES as 'E' cdS100 >>define AA-A-MODE as 'S' cdS100 >>define AA-A-ORG as 'F' cdS100 >>define AA-A-NR as 0 cdS100 >>define AA-A-NS as 0 cdS100 >>if AA-A-NR > 0 cdS100 copy S9FDI902 replacing cdS100*^^repl2 * compléter les lignes ci-dessous * cdS100 leading ==I902== by ==1-S100== cdS100 leading ==V-I902== by ==V-1-S100== cdS100 . cdS100 >>end-if cdS100*^^accavad * compléter les lignes ci-dessous * cdS100 copy AAADACCE replacing cdS100 ==:DD:== by ==S1== cdS100 . cdS200* cdS200*--- Gestion Accès S2 -------------------------------------------- cdS200 >>define AA-A-ACCES as 'E' cdS200 >>define AA-A-MODE as 'S' cdS200 >>define AA-A-ORG as 'F' cdS200 >>define AA-A-NR as 0 cdS200 >>define AA-A-NS as 0 cdS200 >>if AA-A-NR > 0 cdS200 copy S9FDI903 replacing cdS200*^^repl2 * compléter les lignes ci-dessous * cdS200 leading ==I903== by ==1-S200== cdS200 leading ==V-I903== by ==V-1-S200== cdS200 . cdS200 >>end-if cdS200*^^accavad * compléter les lignes ci-dessous * cdS200 copy AAADACCE replacing cdS200 ==:DD:== by ==S2== cdS200 . sqwaf *> *> zone injection fin <* <* sqwaf * sqwa2 *--- Interface accès Db2 ----------------------------------------- sqwa2 >>if AA-A-DB2 sqwa2 exec sql include SQLCA end-exec. sqwa2 >>end-if sqwa2 * sqwa3 *--- Interface accès VSAM ---------------------------------------- sqwa3 >>if AA-A-VSAM sqwa3 copy AAADVSTA. sqwa3 >>end-if sqwa3 * sqwac * --- Ruptures Globales ------------------------------------------ sqwac >>if AA-A-LECTURES-AVEC-RUPT sqwac copy AAADGRUP. sqwac >>end-if sqwac *--- Configurations Globales ------------------------------------- sqwac >>if AA-A-LECTURES-AVEC-SYNC sqwac copy AAADGSYN sqwacd*> *> zone injection debut <* <* cd**** replacing cd**** ==:P1:== by ==X(1)== cd**** sqwacf*> *> zone injection fin <* <* sqwacf . sqwacf >>end-if sqwacf* sqwft *--- Indicateurs de fin de lecture ------------------------------- sqwft 01 FT. sqwft 88 FIN-LECTURES VALUE ALL '1' sqwft FALSE ALL '0'. sqwftd*> *> zone injection debut <* <* cdAP00 05 AP-FT PIC X VALUE '0'. cdAP00 88 FIN-LECTURE-AP VALUE '1' cdAP00 FALSE '0'. cdDM00 05 DM-FT PIC X VALUE '0'. cdDM00 88 FIN-LECTURE-DM VALUE '1' cdDM00 FALSE '0'. sqwftf*> *> zone injection fin <* <* sqwftf >>if not AA-A-LECTURES sqwftf 05 PIC X VALUE '0'. sqwftf >>end-if sqwftf* sqwfi >>if AA-A-LECTURES-AVEC-RUPT sqwfi *--- Indicateurs de dernier enregistrement avec rupture----------- sqwfi 01 FI. sqwfi 88 DERNIERE-ITERATION VALUE ALL '1' sqwfi FALSE ALL '0'. sqwfid*> *> zone injection debut <* <* cdAP00 05 AP-FI PIC X VALUE '0'. cdAP00 88 DERNIERE-LECTURE-AP VALUE '1' cdAP00 FALSE '0'. sqwfif*> *> zone injection fin <* <* sqwfif >>end-if sqwfif* sqwsv *----------------------------------------------------------------- sqwsv * W W RRRR K K SSSS EEEEE RRRR V V sqwsv * W W R R K KK S E R R V V sqwsv * W W W RRRR KK SSS EEEE RRRR V V sqwsv * W W W R R K KK S E R R V V .. sqwsv * W W R R K K SSSS EEEEE R R V .. sqwsv *----------------------------------------------------------------- sqwsv *--- Variables de travail du framework compatible Pacbase -------- sqwsv copy AGADPAC0. sqwsv *--- Gestion des opérations sur Dates et Heures ------------------ sqwsv copy ADADDATE. sqwvsd*--- insertion working par l'assistant --------------------------- sqwvsd*> *> zone injection debut <* <* sqwvsf*> *> zone injection fin <* <* sqwvsf* sqwvv *----------------------------------------------------------------- sqwvv * W W RRRR K K CCC TTTTT RRRR L sqwvv * W W R R K KK C C T R R L sqwvv * W W W RRRR KK C T RRRR L sqwvv * W W W R R K KK C C T R R L .. sqwvv * W W R R K K CCC T R R LLLLL .. sqwvv *----------------------------------------------------------------- sqwvv *--- Variables pour contrôles automatiques ----------------------- sqwvvd*> *> zone injection début <* <* sqwvvf*> *> zone injection fin <* <* sqwvvf* sqwsva*--- Traçabilité programme (reco audit) -------------------------- sqwsva copy AGADAUDT. sqwsv2*--- Erreur Db2 -------------------------------------------------- sqwsv2 >>if AA-A-DB2 sqwsv2 copy A2ADTIAR. sqwsv2 >>end-if sqwsvb*--- Erreur abend volontaire (U4000 par défaut) ----------------- sqwsvb 01 CODE-ABEND PIC 9(8) COMP-5 VALUE 4000. sqwk *----------------------------------------------------------------- sqwk * W W RRRR K K SSSS PPPP EEEEE CCC sqwk * W W R R K KK S P P E C C sqwk * W W W RRRR KK SSS PPPP EEEE C sqwk * W W W R R K KK S P E C C .. sqwk * W W R R K K SSSS P EEEEE CCC .. sqwk *----------------------------------------------------------------- sqwk * Insérer ci-dessous les variables spécifiques du programme sqwk * 01 W-WB00-W9040 PIC S9(4) BINARY. sqwkd *> *> zone injection debut <* <* sqwkf *> *> zone injection fin <* <* sqwkf 01 PIC X(1) VALUE '0'. sqwkf 88 WORKING-INITIALISEES VALUE '1' sqwkf FALSE '0'. sqlk LINKAGE SECTION. sqlk *================================================================= sqlk * L N N K K SSSS EEEEE CCC TTTTT sqlk * L NN N K KK S E C C T sqlk * L N N N KK SSS EEEE C T sqlk * L N NN K KK S E C C T sqlk * LLLLL N N K K SSSS EEEEE CCC T sqlk *================================================================= sqlkd *> *> zone injection debut <* <* sqlkf *> *> zone injection fin <* <* sqlkf * Insérer ci-dessous les variables spécifiques du programme sqlkf * sqp /***************************************************************** sqp * PPPP RRRR OOO CCC EEEEE DDDD U U RRRR EEEEE sqp * P P R R O O C C E D D U U R R E sqp * PPPP RRRR O O C EEE D D U U RRRR EEEE sqp * P R R O O C C E D D U U R R E sqp * P R R OOO CCC EEEEE DDDD UUU R R EEEEE sqp ****************************************************************** sqp PROCEDURE DIVISION. * USING ... . sqpp *=== Cinematique principale ====================================== sqpp PRINCIPAL SECTION. sqpp *--- Gestion des erreurs Db2 ------------------------------------- sqpp >>if AA-A-DB2 exec sql whenever NOT FOUND continue end-exec. exec sql whenever SQLWARNING continue end-exec. exec sql whenever SQLERROR goto ERREUR-DB2 end-exec. sqppa >>end-if sqppa *--- Initialisations --------------------------------------------- sqppa perform INITIALISATIONS-WORKING sqppa with test before until WORKING-INITIALISEES sqppa perform S-DEBUT sqppa perform INITIALISATIONS sqppa perform S-AVANT-OUVERTURES sqppa perform OUVERTURES sqppa perform S-AVANT-ITERATION sqppa *--- Boucle principale ------------------------------------------- sqppa perform ITERATION until FIN-LECTURES. sqppa *--- Abandon du traitment (GFT) ---------------------------------- sqppa FIN-TRAITEMENT. sqppa *--- Finalisations ----------------------------------------------- sqppa perform S-AVANT-FERMETURES sqppa perform FERMETURES sqppa perform S-AVANT-FINALISATION sqppa perform FINALISATION sqppaz*--- Sortie du programme ----------------------------------------- sqppaz goback sqppaz . sqppi *=== Décomposition de la boucle principale ======================= sqppi ITERATION SECTION. sqppi perform S-AVANT-LECTURES sqppi >>if AA-A-LECTURES sqppi perform LECTURES sqppi >>end-if sqppi if not FIN-LECTURES sqppi perform S-APRES-LECTURES sqppir*--- Cinématique ressources lues --------------------------------- sqppir >>if AA-A-LECTURES-AVEC-RUPT or AA-A-LECTURES-AVEC-SYNC sqppir perform RUPTURES-SYNCHROS sqppir >>end-if sqppir >>if AA-A-CONTROLES sqppir perform CONTROLES sqppir >>end-if sqppir >>if AA-A-MAJ sqppir perform MISES-A-JOUR sqppir >>end-if sqppit*--- Taitement applicatif principal ------------------------------ sqppit perform S-TRAITEMENT sqppie*--- Editions ---------------------------------------------------- sqppie >>if AA-A-EDITIONS sqppie perform EDITIONS sqppie >>end-if sqppiw*--- Ressources en écritures ------------------------------------- sqppiw >>if AA-A-ECRITURES sqppiw perform ECRITURES sqppiw >>end-if sqppiw end-if. sqppif*--- Retour en début d'itération (GDI) --------------------------- sqppif ITERATION-SUIVANTE. sqppif continue. sqppif ITERATION-FN. sqppif exit section. sqppif sqpz /================================================================= sqpz * CCC OOO DDDD EEEEE SSSS PPPP EEEEE sqpz * C C O O D D E S P P E sqpz * C O O D D EEEE SSS PPPP EEEE sqpz * C C O O D D E S P E sqpz * CCC OOO DDDD EEEEE SSSS P EEEEE sqpz *================================================================= sqpz0a* sqpz0a*================================================================= sqpz0a* Début de programme, avant tout autre traitement sqpz0a*================================================================= sqpz0a S-DEBUT SECTION. sqpz0a* Insérer ci-dessous le code spécifiques du programme sqpz0z*--- Fin début de programme -------------------------------------- sqpz0z continue. sqpz0z S-DEBUT-FN. sqpz0z exit section. sqpz0z* sqpz0z*--- Routines performées depuis S-DEBUT -------------------------- sqpz0z* Insérer ci-dessous le code spécifiques du programme sqpz1a* sqpz1a*================================================================= sqpz1a* Avant ouvertures des ressources sqpz1a*================================================================= sqpz1a S-AVANT-OUVERTURES SECTION. sqpz1a* Insérer ci-dessous le code spécifiques du programme sqpz1z*--- Fin avant ouverture des ressources -------------------------- sqpz1z continue. sqpz1z S-AVANT-OUVERTURES-FN. sqpz1z exit section. sqpz1z* sqpz1z*--- Routines performées depuis S-AVANT-OUVERTURES --------------- sqpz1z* Insérer ci-dessous le code spécifiques du programme sqpz2a* sqpz2a*================================================================= sqpz2a* Avant itération principale sqpz2a*================================================================= sqpz2a S-AVANT-ITERATION SECTION. sqpz2a* Insérer ci-dessous le code spécifiques du programme sqpz2z*--- Fin avant itération principale ------------------------------ sqpz2z continue. sqpz2z S-AVANT-ITERATION-FN. sqpz2z exit section. sqpz2z* sqpz2z*--- Routines performées depuis S-AVANT-ITERATION ---------------- sqpz2z* Insérer ci-dessous le code spécifiques du programme sqpz3a* sqpz3a*================================================================= sqpz3a* Avant lectures des ressources sqpz3a*================================================================= sqpz3a S-AVANT-LECTURES SECTION. sqpz3a* Insérer ci-dessous le code spécifiques du programme sqpz3z*--- Fin avant lectures des ressources --------------------------- sqpz3z continue. sqpz3z S-AVANT-LECTURES-FN. sqpz3z exit section. sqpz3z* sqpz3z*--- Routines performées depuis S-AVANT-LECTURES ----------------- sqpz3z* Insérer ci-dessous le code spécifiques du programme sqpz4a* sqpz4a*================================================================= sqpz4a* Après lectures des ressources sqpz4a*================================================================= sqpz4a S-APRES-LECTURES SECTION. sqpz4a* Insérer ci-dessous le code spécifiques du programme sqpz4z*--- Fin après lectures des ressources --------------------------- sqpz4z continue. sqpz4z S-APRES-LECTURES-FN. sqpz4z exit section. sqpz4z* sqpz4z*--- Routines performées depuis S-APRES-LECTURES ----------------- sqpz4z* Insérer ci-dessous le code spécifiques du programme sqpz5a* sqpz5a*================================================================= sqpz5a* Traitement applicatif principal sqpz5a*================================================================= sqpz5a S-TRAITEMENT SECTION. sqpz5a* Insérer ci-dessous le code spécifiques du programme if RTP1 = 1 move 0 to W-WB00-W9040 end-if if 1-AP00-DISGSU = spaces add 1 to W-WB00-W9040 end-if sqpz5z*--- Fin traitement applicatif principal ------------------------- sqpz5z continue. sqpz5z S-TRAITEMENT-FN. sqpz5z exit section. sqpz5z* sqpz5z*--- Routines performées depuis S-TRAITEMENT --------------------- sqpz5z* Insérer ci-dessous le code spécifiques du programme sqpz6a* sqpz6a*================================================================= sqpz6a* Avant fermeture des ressources sqpz6a*================================================================= sqpz6a S-AVANT-FERMETURES SECTION. sqpz6a* Insérer ci-dessous le code spécifiques du programme sqpz6z*--- Fin avant fermeture des ressources -------------------------- sqpz6z continue. sqpz6z S-AVANT-FERMETURES-FN. sqpz6z exit section. sqpz6z* sqpz6z*--- Routines performées depuis S-AVANT-FERMETURES --------------- sqpz6z* Insérer ci-dessous le code spécifiques du programme sqpz7a* sqpz7a*================================================================= sqpz7a* Avant sortie du programme sqpz7a*================================================================= sqpz7a S-AVANT-FINALISATION SECTION. sqpz7a* Insérer ci-dessous le code spécifiques du programme sqpz7z*--- Fin avant sortie du programme ------------------------------- sqpz7z continue. sqpz7z S-AVANT-FINALISATION-FN. sqpz7z exit section. sqpz7z* sqpz7z*--- Routines performées depuis S-AVANT-FINALISATION ------------- sqpz7z* Insérer ci-dessous le code spécifiques du programme sqpz9a* sqpz9a/================================================================= sqpz9a* RRRR OOO U U TTTTT IIIII N N EEEEE SSS sqpz9a* R R O O U u T I NN N E S sqpz9a* RRRR O O U U T I N N N EEE SSS sqpz9a* R R O O U U T I N NN E S sqpz9a* R R OOO UUU T IIIII N N EEEEE SSS sqpz9a*================================================================= sqpz9a*--- Routines internes performées -------------------------------- sqpz9a S-ROUTINES-INTERNES SECTION. sqpz9a continue. sqpz9a* Insérer ci-dessous le code spécifiques du programme sqpz9z*--- Fin routines internes performées ---------------------------- sqpz9z S-ROUTINES-INTERNES-FN. sqpz9z exit section. sqpz9z sqpa /================================================================= sqpa * AAA CCC CCC EEEEE SSSS sqpa * A A C C C C E S sqpa * AAAAA C C EEEE SSS sqpa * A A C C C C E S sqpa * A A CCC CCC EEEEE SSSS sqpa *================================================================= sqpa ACCESS-RESSOURCES SECTION. sqpa continue. sqpad *> *> zone injection debut <* <* cdAP00* cdAP00*--- Gestion Accès AP -------------------------------------------- cdAP00 >>define AA-A-ACCES as 'L' cdAP00 >>define AA-A-MODE as 'S' cdAP00 >>define AA-A-ORG as '2' cdAP00 >>define AA-A-NR as 2 cdAP00 >>define AA-A-NS as 1 cdAP00*^^accavap * compléter les lignes ci-dessous * cdAP00 copy AAAPACCE replacing cdAP00 ==:DD:== by ==AP== cdAP00 ==:PREF:== by ==AP00== cdAP00 ==:NS:== by ==1== cdAP00 ==:K1:== by ==COSGDP== cdAP00 ==:K2:== by ==LCSGAP== cdAP00 . cdAP00* cdAP00*--- Lecture séquentielle Table APP - Ressource AP cdAP00* cdAP00 exec sql cdAP00 DECLARE AP-CURSOR cdAP00 --^^cursor * compléter les lignes ci-dessous * CURSOR FOR SELECT -- liste des colonnes OAPPL , APPDESC , APPCDOM , APPCAPP , APPDCREA , APPDDELE , APPUCREA , APPSYNON , APPSECTEUR FROM APP ORDER BY APPCDOM , APPCAPP cdAP00 end-exec. cdAP00* cdAP00*<<< Ne pas accéder directement à ce code, utiliser OUVRIR-AP >>> cdAP00 OUVRIR-AP-SQL SECTION. cdAP00*^^sqlavouv * compléter les lignes ci-dessous * cdAP00 exec sql cdAP00 OPEN AP-CURSOR cdAP00 end-exec cdAP00*^^sqlapouv * compléter les lignes ci-dessous * cdAP00 continue. cdAP00 OUVRIR-AP-SQL-FN. cdAP00 exit section. cdAP00* cdAP00*<<< Ne pas accéder directement à ce code, utiliser LIRE-AP >>> cdAP00 LIRE-AP-SQL SECTION. cdAP00*^^sqlavlec * compléter les lignes ci-dessous * cdAP00 exec sql cdAP00 FETCH cdAP00 --^^fetch * compléter les lignes ci-dessous * cdAP00 FROM AP-CURSOR cdAP00 --^^into * compléter les lignes ci-dessous * INTO -- liste des hosts-variables :AP00-COSGA1 :V-AP00-COSGA1 , :AP00-LNSGAP :V-AP00-LNSGAP , :AP00-COSGDP :V-AP00-COSGDP , :AP00-LCSGAP :V-AP00-LCSGAP , :AP00-DISGCA :V-AP00-DISGCA , :AP00-DISGSU :V-AP00-DISGSU , :AP00-DISGMJ :V-AP00-DISGMJ , :AP00-COSGSN :V-AP00-COSGSN , :AP00-COSGSE :V-AP00-COSGSE cdAP00 end-exec cdAP00*^^sqlaplec * compléter les lignes ci-dessous * cdAP00 continue. cdAP00 LIRE-AP-SQL-FN. cdAP00 exit section. cdAP00* cdAP00*<<< Ne pas accéder directement à ce code, utiliser FERMER-AP >>> cdAP00 FERMER-AP-SQL SECTION. cdAP00*^^sqlavfer * compléter les lignes ci-dessous * cdAP00 exec sql cdAP00 CLOSE AP-CURSOR cdAP00 end-exec cdAP00*^^sqlapfer * compléter les lignes ci-dessous * cdAP00 continue. cdAP00 FERMER-AP-SQL-FN. cdAP00 exit section. cdDM00* cdDM00*--- Gestion Accès DM -------------------------------------------- cdDM00 >>define AA-A-ACCES as 'L' cdDM00 >>define AA-A-MODE as 'S' cdDM00 >>define AA-A-ORG as '2' cdDM00 >>define AA-A-NR as 0 cdDM00 >>define AA-A-NS as 1 cdDM00*^^accavap * compléter les lignes ci-dessous * cdDM00 copy AAAPACCE replacing cdDM00 ==:DD:== by ==DM== cdDM00 ==:PREF:== by ==DM00== cdDM00 ==:NS:== by ==1== cdDM00 ==:K1:== by ==COSGDP== cdDM00 . cdDM00* cdDM00*--- Lecture séquentielle Table ADM - Ressource DM cdDM00* cdDM00 exec sql cdDM00 DECLARE DM-CURSOR cdDM00 --^^cursor * compléter les lignes ci-dessous * CURSOR FOR SELECT -- liste des colonnes ADMNAME , ADMDESC , ADMCODE , ADMCREA , ADMDELE FROM ADM ORDER BY ADMCODE cdDM00 end-exec. cdDM00* cdDM00*<<< Ne pas accéder directement à ce code, utiliser OUVRIR-DM >>> cdDM00 OUVRIR-DM-SQL SECTION. cdDM00*^^sqlavouv * compléter les lignes ci-dessous * cdDM00 exec sql cdDM00 OPEN DM-CURSOR cdDM00 end-exec cdDM00*^^sqlapouv * compléter les lignes ci-dessous * cdDM00 continue. cdDM00 OUVRIR-DM-SQL-FN. cdDM00 exit section. cdDM00* cdDM00*<<< Ne pas accéder directement à ce code, utiliser LIRE-DM >>> cdDM00 LIRE-DM-SQL SECTION. cdDM00*^^sqlavlec * compléter les lignes ci-dessous * cdDM00 exec sql cdDM00 FETCH cdDM00 --^^fetch * compléter les lignes ci-dessous * cdDM00 FROM DM-CURSOR cdDM00 --^^into * compléter les lignes ci-dessous * INTO -- liste des hosts-variables :DM00-COSGDM :V-DM00-COSGDM , :DM00-LNSGDM :V-DM00-LNSGDM , :DM00-COSGDP :V-DM00-COSGDP , :DM00-DISGCA :V-DM00-DISGCA , :DM00-DISGSU :V-DM00-DISGSU cdDM00 end-exec cdDM00*^^sqlaplec * compléter les lignes ci-dessous * cdDM00 continue. cdDM00 LIRE-DM-SQL-FN. cdDM00 exit section. cdDM00* cdDM00*<<< Ne pas accéder directement à ce code, utiliser FERMER-DM >>> cdDM00 FERMER-DM-SQL SECTION. cdDM00*^^sqlavfer * compléter les lignes ci-dessous * cdDM00 exec sql cdDM00 CLOSE DM-CURSOR cdDM00 end-exec cdDM00*^^sqlapfer * compléter les lignes ci-dessous * cdDM00 continue. cdDM00 FERMER-DM-SQL-FN. cdDM00 exit section. cdS100* cdS100*--- Gestion Accès S1 -------------------------------------------- cdS100 >>define AA-A-ACCES as 'E' cdS100 >>define AA-A-MODE as 'S' cdS100 >>define AA-A-ORG as 'F' cdS100 >>define AA-A-NR as 0 cdS100 >>define AA-A-NS as 0 cdS100*^^accavap * compléter les lignes ci-dessous * cdS100 copy AAAPACCE replacing cdS100 ==:DD:== by ==S1== cdS100 ==:PREF:== by ==S100== cdS100 ==:NS:== by ==0== cdS100 . cdS200* cdS200*--- Gestion Accès S2 -------------------------------------------- cdS200 >>define AA-A-ACCES as 'E' cdS200 >>define AA-A-MODE as 'S' cdS200 >>define AA-A-ORG as 'F' cdS200 >>define AA-A-NR as 0 cdS200 >>define AA-A-NS as 0 cdS200*^^accavap * compléter les lignes ci-dessous * cdS200 copy AAAPACCE replacing cdS200 ==:DD:== by ==S2== cdS200 ==:PREF:== by ==S200== cdS200 ==:NS:== by ==0== cdS200 . sqpaf *> *> zone injection fin <* <* sqpaf *--- Fin accès ressources ---------------------------------------- sqpaq ACCESS-RESSOURCES-FN. sqpaq exit section. sqpaq sqpv /================================================================= sqpv * SSSS EEEEE RRRR V V IIIII CCC EEEEE SSSS sqpv * S E R R V V I C C E S sqpv * SSS EEEE RRRR V V I C EEEE SSS sqpv * S E R R V V I C C E S sqpv * SSSS EEEEE R R V IIIII CCC EEEEE SSSS sqpv *================================================================= sqpv SERVICES-FRAMEWORK SECTION. sqpv continue. sqpv *--- Gestion des opérations sur dates et heures ------------------ sqpv copy ADAPDATE. sqpvd *> *> zone injection debut <* <* sqpvf *> *> zone injection fin <* <* sqpvq *--- Fin services framework -------------------------------------- sqpvq SERVICES-FRAMEWORK-FN. sqpvq exit section. sqpvq sqpi /================================================================= sqpi * IIIII N N IIIII TTTTT IIIII AAA L IIIII SSS sqpi * I NN N I T I A A L I S sqpi * I N N N I T I AAAAA L I SSS sqpi * I N NN I T I A A L I S sqpi * IIIII N N IIIII T IIIII A A LLLLL IIIII SSS sqpi *================================================================= sqpi INITIALISATIONS SECTION. sqpi *--- Trace reco audit -------------------------------------------- sqpi copy AGAPAUD1. sqpid *> *> zone injection debut <* <* sqpif *> *> zone injection fin <* <* sqpiq *--- Fin initialisations ----------------------------------------- sqpiq continue. sqpiq INITIALISATIONS-FN. sqpiq exit section. sqpiw * sqpiw INITIALISATIONS-WORKING SECTION. sqpiw set WORKING-INITIALISEES to true sqpiwd*> *> zone injection debut <* <* sqpiwf*> *> zone injection fin <* <* sqpiw9*--- Fin initialisations ----------------------------------------- sqpiw9 continue. sqpiw9 INITIALISATIONS-WORKING-FN. sqpiw9 exit section. sqpiw9 sqpo /================================================================= sqpo * OOO U U V V EEEEE RRRR TTTTT U U RRRR EEEEE sqpo * O O U U V V E R R T U U R R E sqpo * O O U U V V EEEE RRRR T U U RRRR EEEE sqpo * O O U U V V E R R T U U R R E sqpo * OOO UUU V EEEEE R R T UUU R R EEEEE sqpo *================================================================= sqpo OUVERTURES SECTION. sqpod *> *> zone injection debut <* <* cdAP00* -- Ouverture ressource AP -- cdAP00*^^ouvavt * compléter les lignes ci-dessous * cdAP00 perform OUVRIR-AP cdAP00*^^ouvapr * compléter les lignes ci-dessous * cdAP00* cdDM00* -- Ouverture ressource DM -- cdDM00*^^ouvavt * compléter les lignes ci-dessous * cdDM00 perform OUVRIR-DM cdDM00*^^ouvapr * compléter les lignes ci-dessous * cdDM00* cdS100* -- Ouverture ressource S1 -- cdS100*^^ouvavt * compléter les lignes ci-dessous * cdS100 perform OUVRIR-S1 cdS100*^^ouvapr * compléter les lignes ci-dessous * cdS100* cdS200* -- Ouverture ressource S2 -- cdS200*^^ouvavt * compléter les lignes ci-dessous * cdS200 perform OUVRIR-S2 cdS200*^^ouvapr * compléter les lignes ci-dessous * cdS200* sqpof *> *> zone injection fin <* <* sqpoq *--- Fin ouvertures ressources ----------------------------------- sqpoq continue. sqpoq OUVERTURES-FN. sqpoq exit section. sqpoq sqpl /================================================================= sqpl * L EEEEE CCC TTTTT U U RRRR EEEEE SSS sqpl * L E C C T U U R R E S sqpl * L EEE C T U U RRRR EEEE SSS sqpl * L E C C T U U R R E S sqpl * LLLLL EEEEE CCC T UUU R R EEEEE SSS sqpl *================================================================= sqpl >>if AA-A-LECTURES sqpl LECTURES SECTION. sqplsd*> *> zone injection debut <* <* cdDM00* -- Lecture ressource DM sans rupture -- cdDM00*^^liravt * compléter les lignes ci-dessous * cdDM00 perform LIRE-DM cdDM00*^^lirapr * compléter les lignes ci-dessous * cdDM00* sqplsf*> *> zone injection fin <* <* sqplrd*> *> zone injection debut <* <* cdAP00* -- Lecture ressource AP avec ruptures -- cdAP00*^^liravt * compléter les lignes ci-dessous * cdAP00 perform LIRE-AP cdAP00*^^lirapr * compléter les lignes ci-dessous * cdAP00* sqplrf*> *> zone injection fin <* <* sqplq *--- Fin lectures ressources ------------------------------------- sqplq continue. sqplq LECTURES-FN. sqplq exit section. sqplq >>end-if sqplq sqpf /================================================================= sqpf * FFFFF EEEEE RRRR M M EEEEE TTTTT U U RRRR EEEEE sqpf * F E R R MM MM E T U U R R E sqpf * FFFF EEEE RRRR M M M EEEE T U U RRRR EEEE sqpf * F E R R M M E T U U R R E sqpf * F EEEEE R R M M EEEEE T UUU R R EEEEE sqpf *================================================================= sqpf FERMETURES SECTION. sqpfd *> *> zone injection debut <* <* cdAP00* -- Fermeture ressource AP -- cdAP00*^^feravt * compléter les lignes ci-dessous * cdAP00 perform FERMER-AP cdAP00*^^ferapr * compléter les lignes ci-dessous * cdAP00* cdDM00* -- Fermeture ressource DM -- cdDM00*^^feravt * compléter les lignes ci-dessous * cdDM00 perform FERMER-DM cdDM00*^^ferapr * compléter les lignes ci-dessous * cdDM00* cdS100* -- Fermeture ressource S1 -- cdS100*^^feravt * compléter les lignes ci-dessous * cdS100 perform FERMER-S1 cdS100*^^ferapr * compléter les lignes ci-dessous * cdS100* cdS200* -- Fermeture ressource S2 -- cdS200*^^feravt * compléter les lignes ci-dessous * cdS200 perform FERMER-S2 cdS200*^^ferapr * compléter les lignes ci-dessous * cdS200* sqpff *> *> zone injection fin <* <* sqpfq *--- Fin fermetures ressources ----------------------------------- sqpfq continue. sqpfq FERMETURES-FN. sqpfq exit section. sqpfq sqpq /================================================================= sqpq * FFFFF IIIII N N AAA L IIIII SSSS sqpq * F I NN N A A L I S sqpq * FFFF I N N N AAAAA L I SSS sqpq * F I N NN A A L I S .. sqpq * F IIIII N N A A LLLLL IIIII SSSS .. sqpq *================================================================= sqpq FINALISATION SECTION. sqpqd *> *> zone injection debut <* <* sqpqf *> *> zone injection fin <* <* sqpqt *--- Traçabilité programme (reco audit) -------------------------- sqpqt copy AGAPAUD2. sqpqq *--- Fin finalisation -------------------------------------------- sqpqq continue. sqpqq FINALISATION-FN. sqpqq exit section. sqpqq sqpr /================================================================= sqpr * RRRR U U PPPP TTTTT SSSS Y Y N N CCC sqpr * R R U U P P T S Y Y NN N C C sqpr * RRRR U U PPPP T SSS Y N N N C sqpr * R R U U P T S Y N NN C C sqpr * R R UUU P T SSSS Y N N CCC sqpr *================================================================= sqpr RUPTURES-SYNCHROS SECTION. sqpr2d >>if AA-A-LECTURES-AVEC-RUPT sqpr2d*> *> zone injection debut <* <* cdAP00* -- Ruptures ressource AP -- cdAP00 perform CALCULER-RUPT-AP sqpr2f*> *> zone injection fin <* <* sqpr2f >>end-if sqpr4 >>if AA-A-LECTURES-AVEC-SYNC sqpr4 *--- Calcul des Synchronisations --------------------------------- sqpr4 copy AAAPGSYN. sqpr4d*=== Phase 1 - Calcul de la clé de Synchronisation =============== sqpr4d*> *> zone injection debut <* <* cdAP00* -- Calcul des configurations ressource AP -- cdAP00 perform CALCULER-CLE-AP cdDM00* -- Calcul des configurations ressource DM -- cdDM00 perform CALCULER-CLE-DM sqpr4f*> *> zone injection fin <* <* sqpr5d*=== Phase 2 - Calcul des configurations ========================= sqpr5d*> *> zone injection debut <* <* cdAP00* -- Calcul des configurations ressource AP -- cdAP00 perform CALCULER-CONF-AP cdDM00* -- Calcul des configurations ressource DM -- cdDM00 perform CALCULER-CONF-DM sqpr5f*> *> zone injection fin <* <* sqpr5f >>end-if sqpr6 >>if AA-A-LECTURES-AVEC-RUPT and AA-A-LECTURES-AVEC-SYNC sqpr6 *--- Calcul des Ruptures totales --------------------------------- sqpr6 copy AAAPGRTD. sqpr6d*> *> zone injection debut <* <* cdAP00* -- Calcul des Ruptures Totales AP -- cdAP00 perform CALCULER-RTD-AP sqpr6f*> *> zone injection fin <* <* sqpr6f >>end-if sqprq *--- Fin Ruptures et Synchronisations ---------------------------- sqprq continue. sqprq RUPTURES-SYNCHROS-FN. sqprq exit section. sqprq sqpc /================================================================= sqpc * CCC OOO N N TTTTT RRRR OOO L EEEEE SSSS sqpc * C C O O NN N T R R O O L E S sqpc * C O O N N N T RRRR O O L EEEE SSS sqpc * C C O O N NN T R R O O L E S sqpc * CCC OOO N N T R R OOO LLLLL EEEEE SSSS sqpc *================================================================= sqpc >>if AA-A-CONTROLES sqpc CONTROLES SECTION. sqpcd *> *> zone injection debut <* <* sqpcf *> *> zone injection fin <* <* sqpcq *--- Fin contrôles ----------------------------------------------- sqpcq continue. sqpcq CONTROLES-FN. sqpcq exit section. sqpcq >>end-if sqpcq sqpm /================================================================= sqpm * M M AAA JJJJJ AAA U U TTTTT OOO sqpm * MM MM A A J A A U U T O O sqpm * M M M AAAAA J AAAAA U U T O O sqpm * M M A A J J A A U U T O O sqpm * M M A A J A A UUU T OOO sqpm *================================================================= sqpm >>if AA-A-MAJ sqpm MISES-A-JOUR SECTION. sqpmd *> *> zone injection debut <* <* sqpmf *> *> zone injection fin <* <* sqpmq *--- Fin maj auto ------------------------------------------------ sqpmq continue. sqpmq MISES-A-JOUR-FN. sqpmq exit section. sqpmq >>end-if sqpmq sqpe /================================================================= sqpe * EEEEE DDDD IIIII TTTTT IIIII OOO N N SSSS sqpe * E D D I T I O O NN N S sqpe * EEEE D D I T I O O N N N SSS sqpe * E D D I T I O O N NN S sqpe * EEEEE DDDD IIIII T IIIII OOO N N SSSS sqpe *================================================================= sqpe >>if AA-A-EDITIONS sqpe EDITIONS SECTION. sqpe *> *> zone injection debut <* <* sqpef *> *> zone injection fin <* <* sqpeq *--- Fin éditions ------------------------------------------------ sqpeq continue. sqpeq EDITIONS-FN. sqpeq exit section. sqpeq >>end-if sqpeq sqps /================================================================= sqps * EEEEE CCC RRRR IIIII TTTTT U U RRRR EEEEE SSSS sqps * E C C R R I T U U R R E S sqps * EEEE C RRRR I T U U RRRR EEEE SSS sqps * E C C R R I T U U R R E S sqps * EEEEE CCC R R IIIII T UUU R R EEEEE SSSS sqps *================================================================= sqps >>if AA-A-ECRITURES sqps ECRITURES SECTION. sqpsd *> *> zone injection debut <* <* cdS100* -- Gestion Ecriture S1 -- cdS100*^^ecravt * compléter les lignes ci-dessous * * Ecriture si date de fin non renseignée if 1-AP00-DISGSU = spaces move DM00-COSGDM to S100-COSGDM move DM00-LNSGDM to S100-LNSGDM move 1-AP00-COSGA1 to S100-COSGA1 move 1-AP00-LNSGAP to S100-LNSGAP cdS100 perform ECRIRE-S1 cdS100*^^ecrapr * compléter les lignes ci-dessous end-if cdS100* cdS200* -- Gestion Ecriture S2 -- cdS200*^^ecravt * compléter les lignes ci-dessous * * Ecriture en rupture dernière niveau 1 if RTD1 = 1 move DM00-COSGDM to S200-COSGDM move DM00-LNSGDM to S200-LNSGDM move W-WB00-W9040 to S200-W9040 cdS200 perform ECRIRE-S2 cdS200*^^ecrapr * compléter les lignes ci-dessous end-if cdS200* sqpsf *> *> zone injection fin <* <* sqpsq *--- Fin écritures ----------------------------------------------- sqpsq continue. sqpsq ECRITURES-FN. sqpsq exit section. sqpsq >>end-if sqpsq sqpko /================================================================= sqpko * EEEEE RRRR RRRR EEEEE U U RRRR SSSS sqpko * E R R R R E U U R R S sqpko * EEEE RRRR RRRR EEEE U U RRRR SSS sqpko * E R R R R E U U R R S sqpko * EEEEE R R R R EEEEE UUU R R SSSS sqpko *================================================================= sqpko *--- Gestion des erreurs DB2 ------------------------------------- sqpk2 >>if AA-A-DB2 sqpk2 ERREUR-DB2 SECTION. sqpk2 copy A2APTIAR. sqpk2 if DSNTIAR-OK sqpk2 display '*******************************' sqpk2 display '**** E R R E U R D B 2 ****' sqpk2 display '*******************************' sqpk2 perform varying XDSNTIAR from 1 by 1 sqpk2 until XDSNTIAR > 10 sqpk2 or DSNTIAR-END (XDSNTIAR) sqpk2 display DSNTIAR-LINE (XDSNTIAR) sqpk2 end-perform sqpk2 end-if sqpk2 move SQLCODE to DSNTIAR-ABEND sqpk2a call "CEE3ABD" using DSNTIAR-ABEND sqpk2a by content X'00000001' sqpk2q . sqpk2q ERREUR-DB2-FN. sqpk2q exit section. sqpk2q >>end-if sqpkd *> *> zone injection debut <* <* sqpkf *> *> zone injection fin <* <* sqpka *--- Abend volontaire -------------------------------------------- sqpka ERREUR-ABEND SECTION. sqpka call "CEE3ABD" using CODE-ABEND sqpka by content X'00000001' sqpkaq . sqpkaq ERREUR-ABEND-FN. sqpkaq exit section. sqq sqq *================================================================= sqq *=== That's all folks ! ========================================== sqq *================================================================= sqq End program S9TL1B.