VERROUILLAGE D'ENREGISTREMENTS Ce cours montre des exemples RPG, les principes sont bien entendu les mêmes pour les autres langages évolués. Un récaptilatif des ordres COBOL équivalents sera donné en fin de cours. |
VERROUILLAGE D'ENREGISTREMENTS TOUT ENREGISTREMENT LU A DES FINS DE MISE A JOUR EST VERROUILLE (SAUF N en colonne 53 en RPG, nous y reviendrons) |
VERROUILLAGE D'ENREGISTREMENTS TOUT ENREGISTREMENT LU A DES FINS DE MISE A JOUR EST VERROUILLE ########################################################################## ## ## ## A LA LECTURE D'UN ENREGISTREMENT D'UN FICHIER UTILISE ## ## EN MISE A JOUR (U en col 15) L'ENREGISTREMENT EST ## ## VERROUILLE PAR LE SYSTEME C'EST A DIRE QU'AUCUN AUTRE ## ## JOB OU PGM DU MEME JOB QUI UTILISE AUSSI CE FICHIER EN MISE A JOUR ## ## NE POURRA LIRE CET ENREGISTREMENT. ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ########################################################################## |
VERROUILLAGE D'ENREGISTREMENTS TOUT ENREGISTREMENT LU A DES FINS DE MISE A JOUR EST VERROUILLE ########################################################################## ## ## ## A LA LECTURE D'UN ENREGISTREMENT D'UN FICHIER UTILISE ## ## EN MISE A JOUR (U en col 15) L'ENREGISTREMENT EST ## ## VERROUILLE PAR LE système C'EST A DIRE QU'AUCUN AUTRE ## ## JOB OU PGM DU MEME JOB QUI UTILISE AUSSI CE FICHIER EN MISE A JOUR ## ## NE POURRA LIRE CET ENREGISTREMENT ## ## ## ## CET ENREGISTREMENT SERA VERROUILLE JUSQU'A UNE PROCHAINE ## ## OPERATION D'ENTREE/SORTIE SUR CE FICHIER ## ## PAR EX: UPDAT de l'enregistrement ## ## lecture d'un enregistrement (==> verrouillage d'un autre) ## ## UNLCK du fichier ## ## ## ########################################################################## |
####################################################################### ## PRENONS UN EXEMPLE : supposons un fichier ARTICL ## ## ## ####################################################################### |
####################################################################### ## PRENONS UN EXEMPLE : supposons un fichier ARTICL ## ## ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ######################################### |
####################################################################### ## le JOB1 utilise ce fichier en mise à jour U en col 15 ## ## ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ######################################### |
####################################################################### ## le JOB1 utilise ce fichier en mise à jour U en col 15 ## ## ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ######################################### ################################ ## JOB 1 ## ## ARTICL UF E----- ## ## ------------------- ## ## ------------------- ## ## READ ARTICL ## ## ## ## ## ## ## ################################ |
####################################################################### ## le JOB1 utilise ce fichier en mise à jour U en col 15 ## ## que se passera t'il à la lecture d'un enregistrement ? ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ######################################### ################################ ## JOB 1 ## ## ARTICL UF E----- ## ## ------------------- ## ## ------------------- ## ## READ ARTICL ## ## ## ## ## ## ## ################################ |
####################################################################### ## le JOB1 utilise ce fichier en mise à jour U en col 15 ## ## que se passera t'il à la lecture d'un enregistrement ? ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ######################################### ! ################################ ! ## JOB 1 ## ! ## ARTICL UF E----- ## ! ## ------------------- ## ! ## ------------------- ## ! -------- READ ARTICL ## ## ## ## ## ## ## ################################ |
####################################################################### ## verrouillage de l'enregistrement lu ## ## ################################################################# ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ######################################### ! ################################ ! ## JOB 1 ## ! ## ARTICL UF E----- ## ! ## ------------------- ## ! ## ------------------- ## ! -------- READ ARTICL ## ## ## ## ## ## ## ################################ |
####################################################################### ## si un autre JOB supposons JOB2 utilise aussi le ## ## fichier ARTICL en mise à jour ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ######################################### ! ################################ ! ## JOB 1 ## ! ## ARTICL UF E----- ## ! ## ------------------- ## ! ## ------------------- ## ! -------- READ ARTICL ## ## ## ## ## ## ## ################################ |
####################################################################### ## si un autre JOB supposons JOB2 utilise aussi le ## ## fichier ARTICL en mise à jour ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ######################################### ! ################################ ################################### ! ## JOB 1 ## ## JOB 2 ## ! ## ARTICL UF E----- ## ## ARTICL UF E----- ## ! ## ------------------- ## ## ------------------- ## ! ## ------------------- ## ## ------------------- ## ! -------- READ ARTICL ## ## READ ARTICL ## ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## que se passera t'il si ce JOB essaie de lire ## ## le MEME enregistrement ? ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ######################################### ! ################################ ################################### ! ## JOB 1 ## ## JOB 2 ## ! ## ARTICL UF E----- ## ## ARTICL UF E----- ## ! ## ------------------- ## ## ------------------- ## ! ## ------------------- ## ## ------------------- ## ! -------- READ ARTICL ## ## READ ARTICL ## ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## que se passera t'il si ce JOB essaie de lire ## ## le MEME enregistrement ? ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! -------- READ ARTICL ## ## READ ARTICL ------------!---- ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## il ne pourra pas accéder à cet enregistrement, ## ## l'enregistrement étant verrouillé par le JOB 1 ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! -------- READ ARTICL ## ## READ ARTICL ----------------- ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## QUE FERA LE JOB 2 ? ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## QUE FERA LE JOB 2 ? ## ## Il attendra que l'enregistrement se déverrouille ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## QUE FERA LE JOB 2 ? ## ## Il attendra que l'enregistrement se déverrouille ## ## ## ## COMBIEN DE TEMPS ? ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## QUE FERA LE JOB 2 ? ## ## Il attendra que l'enregistrement se déverrouille ## ## ## ## COMBIEN DE TEMPS ? ## ## Le temps indiqué dans le paramètre WAITRCD de la ## ## commande de création du fichier (par défaut 60 sec.) ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## QUE FERA LE JOB 2 ? ## ## Il attendra que l'enregistrement se déverrouille ## ## ## ## COMBIEN DE TEMPS ? ## ## Le temps indiqué dans le paramètre WAITRCD de la ## ## commande de création du fichier (par défaut 60 sec.) ## ## ## ## si au bout de ce temps, l'enregistrement n'est ## ## toujours pas déverrouillé un message sera envoyé ## ## au programme ce qui provoquera le PLANTAGE du programme ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## QUE FERA LE JOB 2 ? ## ## Il attendra que l'enregistrement se déverrouille ## ## ## ## COMBIEN DE TEMPS ? ## ## Le temps indiqué dans le paramètre WAITRCD de la ## ## commande de création du fichier (par défaut 60 sec.) ## ## ## ## si au bout de ce temps, l'enregistrement n'est ## ## toujours pas déverrouillé un message sera envoyé ## ## au programme ce qui provoquera le PLANTAGE du programme ## ## ## ## si avant que ce temps ne s'écoule l'enregistrement ## ## est déverrouillé le JOB 2 lira cet enregistrement ## ## et bien sûr le VERROUILLERA. ## ## ## ####################################################################### |
####################################################################### ## revenons à notre situation antérieure, JOB1 a lu ## ## un enregistrement qu'il a verrouillé JOB2 attend ## ####################################################################### |
####################################################################### ## revenons à notre situation antérieure, JOB1 a lu ## ## un enregistrement qu'il a verrouillé JOB2 attend ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! -------- READ ARTICL ## ## READ ARTICL ----------------- ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## Le temps s'écoule l'enregistrement n'est toujours ## ## pas déverrouillé ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:01 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! -------- READ ARTICL ## ## READ ARTICL ----------------- ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## Le temps maximum d'attente est atteint ## ## un message est envoyé au programme de JOB 2 ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:60 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! -------- READ ARTICL ## ## READ ARTICL ----------------- ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## Le temps maximum d'attente est atteint ## ## un message est envoyé au programme de JOB 2 ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:60 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ######################################### ! ################################ ################################### ! ## JOB 1 ## ## JOB 2 ## ! ## ARTICL UF E----- ## ## IMPOSSIBLE ALLOUER ## ! ## ------------------- ## ## ENREGISTREMENT ## ! ## ------------------- ## ## ## ! -------- READ ARTICL ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## Regardons le cas ou l'enregistrement est dévéerrouillé ## ## avant la fin du temps d'attente ## ####################################################################### |
####################################################################### ## Regardons le cas ou l'enregistrement est dévérouillé ## ## avant la fin du temps d'attente ## ####################################################################### ## FICHIER ARTICL ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! -------- READ ARTICL ## ## READ ARTICL ----------------- ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## Le temps s'écoule ## ## ################################################################# ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:01 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! -------- READ ARTICL ## ## READ ARTICL ----------------- ## ## ## ## ## ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## JOB1 déverrouille l'enregistrement en le mettant ## ## à jour ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:10 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ---------------------------> ! 010 ! CLOU ! 100 ! 1,00 ! ## I<-------- ! ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ! ######################################### ! ! ! ################################ ! ! ! ## JOB 1 ## ## JOB 2 ! ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## ------------------- ## ## ------------------- ! ! ! ## READ ARTICL ## ## READ ARTICL ----------------- ## ----------------- ## ## ## ## UPDAT ARTICL ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## JOB1 déverrouille l'enregistrement en le mettant ## ## à jour ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:10 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ## ! 010 ! CLOU ! 100 ! 1,50 ! ## I<-------- ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ######################################### ! ! ################################ ! ! ## JOB 1 ## ## JOB 2 ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ## ------------------- ## ## ------------------- ! ! ## ------------------- ## ## ------------------- ! ! ## READ ARTICL ## ## READ ARTICL ----------------- ## ----------------- ## ## ## ## UPDAT ARTICL ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## JOB 2 va pouvoir lire l'enregistrement et le verrouiller ## ## ################################################################# ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:10 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ## ! 010 ! CLOU ! 100 ! 1,50 ! ## I<-------- ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ######################################### ! ! ################################ ! ! ## JOB 1 ## ## JOB 2 ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ## ------------------- ## ## ------------------- ! ! ## ------------------- ## ## ------------------- ! ! ## READ ARTICL ## ## READ ARTICL ----------------- ## ----------------- ## ## ## ## UPDAT ARTICL ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## JOB 2 va pouvoir lire l'enregistrement et le verrouiller ## ## ################################################################# ## ####################################################################### ################ ## FICHIER ARTICL ## ## 00:00:10 ## ## !NOART!LIBELLE! QTE ! PU ! ## ################ ## ----------------------------- ## ## ! 010 ! CLOU ! 100 ! 1,50 ! <------------ ## ! 020 ! VIS ! 150 ! 2,00 ! ## ! ! ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ! ! ## ! 040 ! TIGE ! 175 ! 1;25 ! ## ! ! ######################################### ! ! ################################ ! ! ## JOB 1 ## ## JOB 2 ! ! ## ARTICL UF E----- ## ## ARTICL UF E----- ! ! ## ------------------- ## ## ------------------- ! ! ## ------------------- ## ## ------------------- ! ! ## READ ARTICL ## ## READ ARTICL ----------------- ## ----------------- ## ## ## ## UPDAT ARTICL ## ## ## ## ## ## ## ################################ ################################### |
####################################################################### ## CE VERROUILLAGE NOUS POSE T'IL DES PROBLEMES ? ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## CE VERROUILLAGE NOUS POSE T'IL DES PROBLEMES ? ## ## ## ## Si le programme se plante OUI ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## CE VERROUILLAGE NOUS POSE T'IL DES PROBLEMES ? ## ## ## ## Si le programme se plante OUI ## ## ## ## UN ENREGISTREMENT PEUT-IL ETRE VERROUILLE PLUS DE 60 SECONDES ? ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## CE VERROUILLAGE NOUS POSE T'IL DES PROBLEMES ? ## ## ## ## Si le programme se plante OUI ## ## ## ## UN ENREGISTREMENT PEUT-IL ETRE VERROUILLE PLUS DE 60 SECONDES ? ## ## ## ## Dans un programme BATCH NON ## ## Le temps qui s'écoule entre la lecture de ## ## l'enregistrement et la mise à jour est souvent très ## ## court ==> il le verrouille très peu de temps. ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ####################################################################### |
####################################################################### ## CE VERROUILLAGE NOUS POSE T'IL DES PROBLEMES ? ## ## ## ## Si le programme se plante OUI ## ## ## ## UN ENREGISTREMENT PEUT-IL ETRE VERROUILLE PLUS DE 60 SECONDES ? ## ## ## ## Dans un programme BATCH NON ## ## Le temps qui s'écoule entre la lecture de ## ## l'enregistrement et la mise à jour est souvent très ## ## court ==> il le verrouille très peu de temps. ## ## ## ## Dans un programme INTERACTIF OUI ## ## ## ## Le temps qui s'écoule entre la lecture de ## ## l'enregistrement et la mise à jour peut être très ## ## long ==> il le verrouille longtemps ## ## ## ####################################################################### |
####################################################################### ## PRENONS UN EXEMPLE D'UN PROGRAMME DE MISE A JOUR ## ## DU FICHIER ARTICL. ## ## ## ####################################################################### |
####################################################################### ## PRENONS UN EXEMPLE D'UN PROGRAMME DE MISE A JOUR ## ## DU FICHIER ARTICL. ## ## ## ####################################################################### ## ARTICL UF E K DISK ## ## ECRAN CF E WORKSTN ## ## WRITEENTETE ## ## EXFMTINTERRO ## ## *IN07 DOWEQ*OFF ## ## EXSR TRAIT ## ## ENDDO ## ## MOVE *ON *INLR ## ## TRAIT BEGSR ## ## *IN07 IFEQ *OFF ## ## EXSR MODIF ## ## ELSE ## ## EXSR VISU ## ## ENDIF ## ## EXFMTINTERRO ## ## ENDSR ## #################################### |
####################################################################### ## PRENONS UN EXEMPLE D'UN PROGRAMME DE MISE A JOUR ## ## DU FICHIER ARTICL. ## ## ## ####################################################################### ## MODIF BEGSR ## ## NOART CHAINARTICL 10 ## ## *IN10 IFEQ *OFF ## ## EXFMTINFO ## ## UPDATARTICLF1 ## ## ENDIF ## ## ENDSR ## ## VISU BEGSR ## ## NOART CHAINARTICL N10<---- Le "N" en position 53 empêche le ## *IN10 IFEQ *OFF ## verrouillage de l'enregistrement ## MOVE *ON *IN20<-- ## (sous-pgm de consultation) ## EXFMTINFO ! ## Ce faisant il interdit aussi sa ## MOVE *OFF *IN20 ! ## mise à jour ultérieure. ## ENDIF ! ## ## ENDSR ------(zones protégées sur le DSPF) ## ## #################################### |
####################################################################### ## COMME VOUS LE VOYEZ CE PROGRAMME EST TRES SIMPLE ## ## IL NE PREVOIT AUCUN CONTROLE, C'EST UN EXEMPLE. ## ## ################################################################# ## ####################################################################### ## MODIF BEGSR ## ## NOART CHAINARTICL 10 ## ## *IN10 IFEQ *OFF ## ## EXFMTINFO ## ## UPDATARTICLF1 ## ## ENDIF ## ## ENDSR ## ## VISU BEGSR ## ## NOART CHAINARTICL N10 ## ## *IN10 IFEQ *OFF ## ## MOVE *ON *IN20 ## ## EXFMTINFO ## ## MOVE *OFF *IN20 ## ## ENDIF ## ## ENDSR ## ## ## #################################### |
####################################################################### ## DEROULONS CE PROGRAMME ET REGARDONS CE QUI SE PASSE ## ## ################################################################# ## ## ################################################################# ## ####################################################################### ## MODIF BEGSR ## ## NOART CHAINARTICL 10 ## ## *IN10 IFEQ *OFF ## ## EXFMTINFO ## ## UPDATARTICLF1 ## ## ENDIF ## ## ENDSR ## ## VISU BEGSR ## ## NOART CHAINARTICL N10 ## ## *IN10 IFEQ *OFF ## ## MOVE *ON *IN20 ## ## EXFMTINFO ## ## MOVE *OFF *IN20 ## ## ENDIF ## ## ENDSR ## ## ## #################################### |
####################################################################### ## DEROULONS CE PROGRAMME ET REGARDONS CE QUI SE PASSE ## ## ################################################################# ## ## ################################################################# ## ## ARTICL UF E K DISK ## ## L'ECRAN ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## ## ## ENDDO ## ## ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## 1ère instruction WRITEENTETE ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## L'ECRAN ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## ## ## ENDDO ## ## ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## 1ère instruction WRITEENTETE ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## ## ## ENDDO ## ## ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## 2ème instruction EXFMTINTERRO ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## ## ## ENDDO ## ## ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## 2ème instruction EXFMTINTERRO ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE ___ ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## L'instruction EXFMT entraîne l'écriture puis la lecture du ## ## format. La lecture arrête le programme jusqu'à ce que ## ## l'utilisateur appuie sur ENTREE ou une touche de commande ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE ___ ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## L'opérateur rentre le numéro 020 et appuie sur F7 ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## 3ème instruction *IN03 DOWEQ*OFF ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## *IN03 EST OFF ===> on rentre dans la boucle ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## 4ème instruction EXSR TRAIT ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## On se déplace au sous-programme TRAIT ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## instruction suivante *IN07 IFEQ *ON ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## instruction suivante *IN07 IFEQ *ON ## ## 07 est ON dans le fichier écran on a CF07(07) ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## Instruction suivante EXSR MODIF ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## ARTICL UF E K DISK ## ## MISE A JOUR ARTICL ## ## ECRAN CF E WORKSTN ## ## ## ## WRITEENTETE ## ## ## ## EXFMTINTERRO ## ## N° ARTICLE 020 ## ## *IN03 DOWEQ*OFF ## ## ## ## EXSR TRAIT ## ## F7 = modification ## ## ENDDO ## ## F3 = fin de travail ## ## MOVE *ON *INLR ## ##################################### ## TRAIT BEGSR ## ##################################### ## *IN07 IFEQ *ON ## ## FICHIER ARTICL ## ## EXSR MODIF ## ## !NOART!LIBELLE! QTE ! PU ! ## ## ELSE ## ## ----------------------------- ## ## EXSR VISU ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## EXFMTINTERRO ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ENDSR ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## On se déplace au sous-programme MODIF ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## ## ## ENDIF ## ## F7 = modification ## ## ENDSR ## ## F3 = fin de travail ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## instruction suivante NOART CHAINARTICL 10 ## ## ################################################################# ## ## ################################################################# ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## ## ## ENDIF ## ## F7 = modification ## ## ENDSR ## ## F3 = fin de travail ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## Recherche de l'enregistrement ayant comme clé 020. ## ## Il trouve cet enregistrement, le lit le verrouille ## ## et met hors fonction l'indicateur 10 ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## ## ## ENDIF ## ## F7 = modification ## ## ENDSR ## ## F3 = fin de travail ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## L'enregistrement est verrouillé. ## ## Instruction suivante *IN10 IFEQ *OFF ## ## ################################################################# ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## ## ## ENDIF ## ## F7 = modification ## ## ENDSR ## ## F3 = fin de travail ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## L'enregistrement est verrouillé. ## ## 10 est OFF instruction suivante EXFMT INFO ## ## ################################################################# ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## ## ## ENDIF ## ## F7 = modification ## ## ENDSR ## ## F3 = fin de travail ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## L'enregistrement est verrouillé. ## ## 10 est OFF instruction suivante EXFMT INFO ## ## ################################################################# ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## LIBELLE VIS ## ## ENDIF ## ## QUANTITE 150 ## ## ENDSR ## ## PRIX 2,00 ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## L'enregistrement est toujours verrouillé ## ## et risque de l'être encore longtemps POURQUOI ? ## ## ################################################################# ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## LIBELLE VIS ## ## ENDIF ## ## QUANTITE 150 ## ## ENDSR ## ## PRIX 2,00 ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## Jusqu'à présent l'enregistrement etait verrouillé, ## ## mais seulement des instructions du programme ## ## se déroulaient, ce qui était très rapide ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## LIBELLE VIS ## ## ENDIF ## ## QUANTITE 150 ## ## ENDSR ## ## PRIX 2,00 ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## Maintenant le programme recommencera quand ## ## l'utilisateur aura terminé ses modifs et appuyé ## ## sur ENTREE. Ce qui peut être TRES LONG ! ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## LIBELLE VIS ## ## ENDIF ## ## QUANTITE 150 ## ## ENDSR ## ## PRIX 2,00 ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
####################################################################### ## Si un autre utilisateur avait demandé la lecture de ce même ## ## enregistrement (fichier ARTICL U en col 15), son programme ## ## se serait PLANTE au bout de 60 secondes. ## #################################### ##################################### ## MODIF BEGSR ## ## MISE A JOUR ARTICL ## ## NOART CHAINARTICL 10 ## ## ## ## *IN10 IFEQ *OFF ## ## ## ## EXFMTINFO ## ## N° ARTICLE 020 ## ## UPDATARTICLF1 ## ## LIBELLE VIS ## ## ENDIF ## ## QUANTITE 150 ## ## ENDSR ## ## PRIX 2,00 ## ## VISU BEGSR ## ##################################### ## NOART CHAINARTICL N10 ## ##################################### ## *IN10 IFEQ *OFF ## ## FICHIER ARTICL ## ## MOVE *ON *IN20 ## ## !NOART!LIBELLE! QTE ! PU ! ## ## EXFMTINFO ## ## ----------------------------- ## ## MOVE *OFF *IN20 ## ## ! 010 ! CLOU ! 100 ! 1,00 ! ## ## ENDIF ## ## ! 020 ! VIS ! 150 ! 2,00 ! ## ## ENDSR ## ## ! 030 ! ECROU ! 050 ! 1,50 ! ## ## ## ## ! 040 ! TIGE ! 175 ! 1;25 ! ## #################################### ##################################### |
VERROUILLAGE 2eme PARTIE NOUS NE POUVONS EMPECHER LE VERROUILLAGE DE L'ENREGISTREMENT PAR LE SYSTEME (ce que nous appellerons désormais VERROUILLAGE PHYSIQUE). |
VERROUILLAGE 2eme PARTIE NOUS NE POUVONS EMPECHER LE VERROUILLAGE DE L'ENREGISTREMENT PAR LE SYSTEME (ce que nous appellerons désormais VERROUILLAGE PHYSIQUE). CE VERROUILLAGE EST NECESSAIRE CAR IL EMPECHE QUE 2 UTILISATEURS METTENT A JOUR A UN MEME MOMENT LE MEME ENREGISTREMENT. Le dernier appuyant sur la touche ENTREE annulerait la modif demandée par le premier. |
VERROUILLAGE 2eme PARTIE NOUS NE POUVONS EMPECHER LE VERROUILLAGE DE L'ENREGISTREMENT PAR LE SYSTEME (ce que nous appellerons désormais VERROUILLAGE PHYSIQUE). CE VERROUILLAGE EST NECESSAIRE CAR IL EMPECHE QUE 2 UTILISATEURS METTENT A JOUR A UN MEME MOMENT LE MEME ENREGISTREMENT. NOUS ALLONS ETUDIER MAINTENANT COMMENT EMPECHER LE PLANTAGE DU PROGRAMME. |
VERROUILLAGE 2eme PARTIE NOUS NE POUVONS EMPECHER LE VERROUILLAGE DE L'ENREGISTREMENT PAR LE SYSTEME (ce que nous appellerons désormais VERROUILLAGE PHYSIQUE). CE VERROUILLAGE EST NECESSAIRE CAR IL EMPECHE QUE 2 UTILISATEURS METTENT A JOUR A UN MEME MOMENT LE MEME ENREGISTREMENT. NOUS ALLONS ETUDIER MAINTENANT COMMENT EMPECHER LE PLANTAGE DU PROGRAMME. Il existe 3 méthodes pour éviter ce plantage. |
VERROUILLAGE 2eme PARTIE 1ere Méthode Libération immédiate de l'enregistrement après son acquisition. |
VERROUILLAGE 2eme PARTIE 1ere Méthode Libération immédiate de l'enregistrement après son acquisition (ou non-verrouillage). Cette méthode est à déconseiller, bien qu'elle évite le plantage: elle n'empêche pas la mise à jour par plusieurs utilisateurs à un même moment d'un même enregistrement (voir problème évoqué plus haut). Exemple d'utilisation : FARTICL UF E K DISK C ------ ----------------- C NOART CHAINARTICF N90 C ------ ----------------- C NOART- CHAINARTICF------ 90 C *IN90 IFEQ *OFF C UNLCKARTICL C ------ ----------------- C ------ ----------------- C ENDIF |
VERROUILLAGE 2eme PARTIE 2eme Méthode Tester l'indicateur d'erreur sur l'ordre de lecture (PENSER A REDUIRE LE TEMPS D'ATTENTE DU PARAMETRE WAITRCD) Exemple d'utilisation : FARTICL UF E K DISK C ------ ----------------- C NOART CHAINARTICL 9091 C *IN90 IFEQ *OFF C* record existe C *IN91 IFEQ *ON C* enregistrement verrouillé (penser à DSPRCDLCK) C ------ ----------------- C ------ ----------------- C ENDIF C ENDIF C ------ ----------------- C ------ ----------------- |
VERROUILLAGE 2eme PARTIE 3eme Méthode Libération après indication de mise à jour de l'enregistrement. Cette méthode est l'une des plus utilisée dans les entreprises car elle a l'avantage d'empêcher le plantage des programmes (batchs et interactifs) et aussi d'empêcher que plusieurs utilisateurs mettent à jour l'enregistrement à un même moment. |
VERROUILLAGE 2eme PARTIE 3eme Méthode Libération après indication de mise à jour de l'enregistrement. Cette méthode est l'une des plus utilisée dans les entreprises car elle a l'avantage d'empêcher le plantage des programmes (batchs et interactifs) et aussi d'empêcher que plusieurs utilisateurs mettent à jour l'enregistrement a un même moment. Principe. Tout d'abord dans l'enregistrement du fichier à modifier il aura fallu prévoir une zone indiquant si l'enregistrement est en cours de mise à jour. Imaginons CODVER 1 A. (ou 10 A pour stocker le nom de l'écran) |
VERROUILLAGE 2eme PARTIE Principe. Lorsque nous lirons un enregistrement de ce fichier nous testerons si la zone CODVER est égale à *blank |
VERROUILLAGE 2eme PARTIE Principe. Lorsque nous lirons un enregistrement de ce fichier nous testerons si la zone CODVER est égale à *blank si OUI Nous considèrerons que l'enregistrement n'est pas en cours de mise à jour par un autre JOB, ===> nous mettrons un caractère dans cette zone (par exemple V pour verrouillé), puis nous mettrons à jour cet enregistrement pour le libérer physiquement. |
VERROUILLAGE 2eme PARTIE Principe. Lorsque nous lirons un enregistrement de ce fichier nous testerons si la zone CODVER est égale à *blank si OUI Nous considèrerons que l'enregistrement n'est pas en cours de mise à jour par un autre JOB, ===> nous mettrons un caractère dans cette zone (par exemple V pour verrouillé), puis nous mettrons à jour cet enregistrement pour le libérer physiquement. Le V dans CODVER signifiera que l'enregistrement est en cours de mise à jour ===> tous les programmes interactifs modifiant ce fichier doivent utiliser ce principe. |
VERROUILLAGE 2eme PARTIE Principe. Lorsque nous lirons un enregistrement de ce fichier nous testerons si la zone CODVER est égale à *blank si OUI Nous considèrerons que l'enregistrement n'est pas en cours de mise à jour par un autre JOB, ===> nous mettrons un caractère dans cette zone (par exemple V pour verrouillé), puis nous mettrons à jour cet enregistrement pour le libérer physiquement. Le V dans CODVER signifiera que l'enregistrement est en cours de mise à jour ===> tous les programmes interactifs modifiant ce fichier doivent utiliser ce principe. Puis notre programme devra continuer le traitement pour effectuer la mise à jour de cet enregistrement. |
VERROUILLAGE 2eme PARTIE Principe. Lorsque nous lirons un enregistrement de ce fichier nous testerons si la zone CODVER est égale à *blank si NON Nous considèrerons que l'enregistrement est en cours de mise à jour par un autre JOB, ===> nous mettrons à jour cet enregistrement pour le libérer physiquement. |
VERROUILLAGE 2eme PARTIE Principe. Lorsque nous lirons un enregistrement de ce fichier nous testerons si la zone CODVER est égale à *blank si NON Nous considèrerons que l'enregistrement est en cours de mise à jour par un autre JOB, ===> nous mettrons à jour cet enregistrement pour le libérer physiquement. Puis le programme devra afficher le format interro en signalant que l'enregistrement est en cours de mise à jour par un autre JOB. Regardons l'exécution d'un programme qui utilise ce principe. |
VERROUILLAGE 2eme PARTIE #################################### ## ARTICL UF E K DISK ## Partie ## ECRAN CF E WORKSTN ## identique. ## WRITEENTETE ## ## EXFMTINTERRO ## ## *IN03 DOWEQ*OFF ## ## EXSR TRAIT ## ## ENDDO ## ## MOVE *ON *INLR ## ## TRAIT BEGSR ## ## *IN07 IFEQ *ON ## ## EXSR MODIF ## ## ELSE ## ## EXSR VISU ## ## END ## ## EXFMTINTERRO ## ## ENDSR ## #################################### |
VERROUILLAGE 2eme PARTIE Sous-programmes modifiés. #################################### #################################### ## MODIF BEGSR ## ## VISU BEGSR modifié ## ## NOART CHAINARTICL 10 ## ## NOART CHAINARTICL N10 ## ## *IN10 IFEQ *OFF ## ## *IN10 IFEQ *OFF ## ## CODVER IFEQ *BLANK ## ## UNLCKARTICL ## ## MOVE 'V' CODVER ## ## MOVE *ON *IN20 ## ## EXCPTMAJAR2 ## ## EXFMTINFO ## ## EXFMTINFO ## ## MOVE *OFF *IN20 ## ## NOART CHAINARTICL 10 ## ## END ## ## READ INFO ## ## ENDSR ## ## MOVE ' ' CODVER ## ## OARTICLF1E MAJVER ## ## UPDATARTICLF1 ## ## O CODVER ## ## ELSE ## ## ## ## UNLCKARTICL ## ## ## ## MOVE *ON *IN11 ## ## ## ## ENDIF ## ## ## ## ENDIF ## ## ## ## ENDSR ## ## ## #################################### #################################### |
VERROUILLAGE 2eme PARTIE #################################### ## MODIF BEGSR ## Attardons-nous sur la partie ## NOART CHAINARTICL 10 ## mise à jour. ## *IN10 IFEQ *OFF ## ## CODVER IFEQ *BLANK <----------Si l'enregistrement lu est disponible ## MOVE 'V' CODVER ## alors réservation (verrou logique). ## EXCPTMAJAR2 ## ## EXFMTINFO ## ## NOART CHAINARTICL 10 ## ## READ INFO ## ## MOVE ' ' CODVER ## ## UPDATARTICLF1 ## ## ELSE ## ## UNLCKARTICL ## ## MOVE *ON *IN11 ## ## ENDIF ## ## ENDIF ## ## ENDSR ## #################################### |
VERROUILLAGE 2eme PARTIE #################################### ## MODIF BEGSR ## Attardons-nous sur la partie ## NOART CHAINARTICL 10 ## mise à jour. ## *IN10 IFEQ *OFF ## ## CODVER IFEQ *BLANK ## ## MOVE 'V' CODVER ## ## EXCPTMAJAR2 ## ## EXFMTINFO ## ## NOART CHAINARTICL 10 ## ## READ INFO ## ## MOVE ' ' CODVER ## ## UPDATARTICLF1 ## ## ELSE ## ## UNLCKARTICL <----------Sinon déverrouillage physique et ## MOVE *ON *IN11 ## message d'erreur à l'écran (*IN11) ## ENDIF ## ## ENDIF ## ## ENDSR ## #################################### |
VERROUILLAGE 2eme PARTIE #################################### ## MODIF BEGSR ## Attardons-nous sur la partie ## NOART CHAINARTICL 10 ## mise à jour. ## *IN10 IFEQ *OFF ## ## CODVER IFEQ *BLANK ## ## MOVE 'V' CODVER ## ## EXCPTMAJAR2 ## ## EXFMTINFO ## ## NOART CHAINARTICL 10 ## ## READ INFO <----------La partie intéressante se trouve ici! ## MOVE ' ' CODVER ## Nous sommes en effet obligés de ## UPDATARTICLF1 ## relire le fichier ARTICL pour avoir ## ELSE ## le droit de le mettre à jour. ## UNLCKARTICL ## (il y a déja eu une mise à jour ## MOVE *ON *IN11 ## pour la réservation EXCPT). ## ENDIF ## ## ENDIF ## ## ENDSR ## #################################### |
VERROUILLAGE 2eme PARTIE #################################### ## MODIF BEGSR ## Attardons-nous sur la partie ## NOART CHAINARTICL 10 ## mise à jour. ## *IN10 IFEQ *OFF ## ## CODVER IFEQ *BLANK ## ## MOVE 'V' CODVER ## ## EXCPTMAJAR2 ## ## EXFMTINFO ## ## NOART CHAINARTICL 10 ## ## READ INFO <----------La partie intéressante se trouve ici! ## MOVE ' ' CODVER ## En relisant le fichier nous perdons ## UPDATARTICLF1 ## la saisie utilisateur (à supposer ## ELSE ## que les variables aient le même nom, ## UNLCKARTICL ## ce qui est souvent le cas en RPG) ## MOVE *ON *IN11 ## ==> Il faut relire le DSPF ## ENDIF ## SI LE FORMAT DE CELUI-CI POSSEDE ## ENDIF ## LE MOT-CLE RTNDTA, UNE 2EME LECTURE ## ENDSR ## RELIT UNIQUEMENT LE BUFFER !! #################################### (sans intervention utilisateur) |
Voici en résumé les correspondances RPG / COBOL-400. R P G C O B O L U en specif F ! OPEN I-O ! N en col 53 (lecture sans verrou.) ! READ .... WITH NO LOCK ! indic en col 56-57 ! FILE STATUS = '9D' (enreg. verrouillé) ! ! Màj partielle EXCPT ! -sans équivalent- ! UNLCK ! -sans équivalent- ! Utiliser REWRITE. ! --------------------------------------------------------------------------- |