Cas particulier des boucles DO et CO
Le code spécifique écrit dans Pacbase peut contenir des boucles de types DO et CO. Ces boucles ne peuvent pas être insérées comme les autres types de condition (DW et IT par exemple) avec l'assistant de création de sous-fonctions de Rational Programming Patterns. En revanche, elles sont migrées et vous devez savoir comment les maintenir.
La boucle DO
Cette boucle peut être indiquée sur une sous-fonction uniquement. Elle permet d'exécuter un traitement de façon répétitive entre deux bornes en fonction d’un pas positif ou négatif. Les bornes sont obligatoires alors que le pas est facultatif. Un indice représente le code de la sous-fonction dans les zones de travail.
A SS NLG OPE OPERANDE NVTY CONDITION
BD N VERIFICATION COMPATIBILITE 15DO 1 ITA00M
BD 100 M ZERO T-TA00-00540 (J48BDR)
Lorsque le Programme intégrant cette sous-fonction DO est généré et migré dans Rational Programming Patterns, les lignes suivantes s'affichent dans l'éditeur COBOL :
*N48BD. NOTE *VERIFICATION COMPATIBILITE *.DO
F48BD.
MOVE 1 TO J48BDR
GO TO F48BD-B.
F48BD-A.
ADD 1 TO J48BDR.
F48BD-B.
IF J48BDR > ITA00M
GO TO F48BD-FN.
MOVE ZERO TO T-TA00-00540 (J48BDR).
F48BD-900. GO TO F48BD-A.
F48BD-FN. EXIT.
05 J48BDR PICTURE S9(4) VALUE ZERO.
- Modifier la borne inférieure. Cette borne est affichée sur la
première ligne de traitement de la sous-fonction.Exemple :
Dans cet exemple, 1 est la borne inférieure.MOVE 1 TO J48BDR
- Modifier la borne supérieure. Cette borne est affichée avant la
ligne de branchement à la fin de la sous-fonction.Exemple :
Dans cet exemple, ITA00M est la borne supérieure.IF J48BDR > ITA00M
- Modifier le pas, s'il a été indiqué. Le pas est affiché sur la
ligne commençant par ADD ou SUBTRACT. Exemple :
Dans cet exemple, 1 est le pas. Il est précédé de ADD car il a une valeur positive.ADD 1 TO J48BDR.
- Déplacer la sous-fonction.Vous pouvez la couper et la coller à un autre emplacement dans le code. Vous devez alors remplacer toutes les références à l’ancien code sous-fonction par le nouveau code sous-fonction. Vous devez aussi créer le nouvel indice JffssR dans les zones de travail et supprimer l’ancien à l’emplacement suivant :
01 INDICES COMPUTATIONAL SYNC.
Vous pouvez effectuer ces actions avec l'assistant de recherche et remplacement. Vous recherchez l'ancien code sous-fonction et le remplacez par le nouveau code.
- Créer une autre boucle DO.
Vous pouvez copier et coller une sous-fonction DO existante. Cependant, pour indiquer qu'un traitement doit être effectué de façon répétitive, il est conseillé d'insérer le fragment Insertion d'une boucle. Ce fragment est disponible depuis la vue Fragments, catégorie Fragments RPP. Ce fragment insère un ordre COBOL PERFORM.
La boucle CO
- La boucle CO ne génère rien à l'endroit où elle est appelée mais insère la variable indiquée dans le conditionnement sur toutes les sous-fonctions de niveau immédiatement inférieur.
- Les sous-fonctions contenant les conditions d'application peuvent se trouver dans des Macros différentes.
A SS NLG OPE OPERANDE NVTY CONDITION
BB N TEST CODE VILLE 10CO $1-COVIL
- -- --- --- ----------------------------- ---- ---------
CB N CAS 75001 15IT "75001"
CB 100 M "PARIS 01" $1-LIVIL
F26BB
000 *N26BB. NOTE *TEST CODE VILLE *.
*LV=10
010 *!CO "$1-COVIL"
F26CB
000 *N26CB. NOTE *CAS 75001 *.
*IT LV15
"75001"
100 MOVE "PARIS 01" TO $1-LIVIL
*N26BB. NOTE *TEST CODE VILLE *.
*F26BB. EXIT.
*N26CB. NOTE *CAS 75001 *.IT
F26CB. IF WW00-COVIL =
"75001"
NEXT SENTENCE ELSE GO TO F26CB-FN
MOVE "PARIS 01" TO WW00-LIVIL.
F26CB-900. GO TO F26BB-FN.
F26CB-FN. EXIT.
*N26BB. NOTE *TEST CODE VILLE *.
*F26BB. EXIT.
*N26CB. NOTE *CAS 75001 *.IT
F26CB. IF WW01-COVIL =
"75001"
NEXT SENTENCE ELSE GO TO F26CB-FN
MOVE "PARIS 01" TO WW01-LIVIL.
F26CB-900. GO TO F26BB-FN.
F26CB-FN. EXIT.
*N26CE. NOTE *TEST SPECIFIQUE *.IT
F26CE.
IF WW00-COVIL =
"75004"
NEXT SENTENCE ELSE GO TO F26CE-FN
MOVE "PARIS 04" TO WW00-LIVIL
F26CE-FN. EXIT.