La migration des applications Pacbase a imposé une gestion rigoureuse des numéros de ligne dans la PROCEDURE DIVISION des Macros, principalement parce qu'une ligne Pacbase peut correspondre à deux lignes COBOL.
Pour que la fusion des Macros gère correctement l'organisation des lignes détail et les écrasements de lignes, les lignes de condition sont distinguées des lignes de traitement (au sens Pacbase). Les lignes de la PROCEDURE DIVISION en lien avec ces numéros de ligne sont automatiquement repositionnées. Dans toute Macro migrée, les numéros de ligne des conditions sont sur 3 caractères tandis que les numéros de ligne des traitements sont sur 6 caractères.
BB N TITRE 10BL
BB 002 * COMMENTAIRE 1 99IT TOP = '1'
BB 005 * COMMENTAIRE 2 99IT TOP = '2'
F02BB
000 *N TITRE
*LV=10
002 IF TOP = '1'
002002* COMMENTAIRE 1
005 IF TOP = '2'
005005* COMMENTAIRE 3
BB 003 M '0' W-XX001 AN WW00-XX0001 NOT =
BB 004 P F99BB WW00-XX001A
BB 006 M '1' W-XX001 AN WW00-XX0001 = '2'
BB 007 P F99BB AN WW00-XX001A = '3'
F02BB
003 AND WW00-XX0001 NOT =
004 WW00-XX001A
006 AND WW00-XX0001 = '2'
007 AND WW00-XX001A = '3'
007003 MOVE '0' TO W-XX001
007004 PERFORM F99BB THRU F99BB-FN.
007006 MOVE '1' TO W-XX001
007007 PERFORM F99BB THRU F99BB-FN.
002 IF TOP = '1'
002002* COMMENTAIRE 1
003 AND WW00-XX0001 NOT =
004 WW00-XX001A
005 IF TOP = '2'
005005* COMMENTAIRE 3
006 AND WW00-XX0001 = '2'
007 AND WW00-XX001A = '3'
007003 MOVE '0' TO W-XX001
007004 PERFORM F99BB THRU F99BB-FN.
007006 MOVE '1' TO W-XX001
007007 PERFORM F99BB THRU F99BB-FN.
002 IF TOP = '1'
003 AND WW00-XX0001 NOT =
004 WW00-XX001A
004002* COMMENTAIRE 1
004003 MOVE '0' TO W-XX001
004004 PERFORM F99BB THRU F99BB-FN.
005 IF TOP = '2'
006 AND WW00-XX0001 = '2'
007 AND WW00-XX001A = '3'
007005* COMMENTAIRE 3
007006 MOVE '1' TO W-XX001
007007 PERFORM F99BB THRU F99BB-FN.
Les Macros créées directement dans Rational Programming Patterns ne sont pas soumises à cette gestion. Les numéros de ligne peuvent tous être saisis sur 3 caractères indépendamment de leur type (condition ou traitement).
Pour une utilisation plus simple et optimisée de Rational Programming Patterns, l'idéal serait de n'avoir que des Macros ayant un identifiant de ligne sur 3 caractères.