Codes erreurs signalant de possibles différences de génération

Certains codes erreurs signalent des cas susceptibles d'entraîner des différences entre la génération Pacbase et la génération Rational Programming Patterns. L'analyse de ces codes permet d'anticiper les problèmes avant de migrer.

Ces codes erreurs sont les suivants :

EC3 : Dans les -CS d'un Ecran, utilisation multiple d'un même Segment en affichage ou en réception au sein d'une même catégorie

Exemple :

-CS d'un Ecran avec utilisation multiple de deux Segments en affichage et en réception au sein d'une même catégorie.

Le Segment WQ00 est appelé deux fois en affichage avec le code A. Le Segment BM00 est appelé deux fois en catégorie répétitive avec les codes T et L.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+-
BMSECRCG0003                        EC3MULTIPLE CALL OF SEGMENT IN CATEGORY             WQ00
HF0ECRCG0003                        EC3MULTIPLE CALL OF SEGMENT IN CATEGORY             BM00  R
Contenu des colonnes :
  • 89-92 : Segment du -CS
  • 95 : Catégorie

Des erreurs apparaissent à la génération.

Pour corriger, vous devez supprimer les doubles non significatifs.

EC5 : Ligne P avec 99BL, 99IT, 99DV, 99DI, 99DC, précédée d'une ligne commentaire de type OR ou AN

Exemple :

Ligne P avec 99IT, précédée d'une ligne commentaire de type OR.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+-
BMSECRBC0000                        EC5DOT NOT GENERATED ON THE PREVIOUS LINE  45DE800                                  AYERRP
Contenu des colonnes :
  • 80-86 : Fonction, sous-fonction et numéro de ligne
  • 121-126 : Code Macro

Des différences de génération apparaissent car Pacbase ne génère pas de point devant la ligne 800, contrairement à Rational Programming Patterns.

Pour corriger, vous pouvez modifier les lignes dans Pacbase mais avec précaution. L'absence de point peut avoir généré, dans Pacbase, des IF imbriqués qui peuvent avoir une importance.

EC6 : Ligne P de type *A, *P ou *R avec une condition erronée dans fonctions 20, 25, 30, 35, 60 ou 65

Exemple :

Ligne P 10*R avec une condition erronée dans fonctions 25.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+-
BMSECRBCTEMA                        EC6WRONG CONDITION FOR FUNCTION *A *P *R   25DI           APR   CGPRGM              10*R Z
Contenu des colonnes :
  • 80-83 : Fonction et sous-fonction
  • 95-96 : Bibliothèque de la ligne de Macro le cas échéant
  • 101-106 : Code de la Macro le cas échéant
  • 121-124 : Niveau et type de fonction
  • 125-150 : Condition

Des différences de génération apparaissent.

Vous devez corriger dans Pacbase, conformément à la documentation du chapitre Emploi du Langage Structuré du manuel Dialogue, disponible à l'adresse suivante :

http://www-1.ibm.com/support/docview.wss?rs=37&context=SSEP67&uid=swg27005478

EC8 : Sous-fonction d'Ecran dont la première ligne valide est de niveau 00 avec un opérateur différent de SUP et COA

Exemple :

Sous-fonction 25 dont la première ligne valide est de niveau 00 sans opérateur.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----
BMSECRBCHF01                        EC8INVALID FIRST LINE FOR THE FUNCTION     01BB000
Contenu des colonnes :
  • 80-86 : Fonction, sous-fonction et numéro de ligne

Des différences de génération apparaissent.

Pour corriger, vous devez ajouter un opérateur N, SUP ou COA en fonction du contexte.

ECA : Ligne P de type *B avec une condition erronée

Exemple :

Ligne P 25*B avec une condition ZZZZ.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+---
HF0ECRCG000B                        ECAWRONG CONDITION FOR *B                  ASDD           HF0   CGMACO              25*BZZZZ
Contenu des colonnes :
  • 80-83 : Fonction et sous-fonction
  • 95-96 : Bibliothèque de la ligne de Macro le cas échéant
  • 101-106 : Code de la Macro le cas échéant
  • 121-124 : Niveau et type de fonction
  • 125-150 : Condition

Des différences de génération apparaissent.

Vous devez corriger dans Pacbase conformément à la documentation du sous-chapitre Insertion et remplacement de sous-fonctions du manuel Services Applicatifs & Clients TUI, disponible à l'adresse suivante :

http://www-1.ibm.com/support/docview.wss?rs=37&context=SSEP67&uid=swg27005478

ECD : Risque d’écrasement des sous-fonctions standard générées

Exemple :

Appel d'une sous-fonction 20B2 dans les lignes -P de l'Ecran GVMIAM.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+
BMSECRGVMIAM                        ECDRISQUE ECRASEMENT DES SS-FONCT STANDARDS20B2000                                  AAGVSF
Contenu des colonnes :
  • 80-86 : Fonction, sous-fonction et numéro de ligne
  • 121-126 : Macro concernée

Des problèmes lors de l'utilisation peuvent être provoqués par les fonctions qui existent en double.

Vous devez corriger dans Pacbase. En règle générale, il est préférable de n'utiliser que des codes sous-fonctions alphabétiques afin de ne pas interférer avec les sous-fonctions standard dans les fonctions F20, F25, F35, F60 et F80. Par exemple, il vaut mieux utiliser F20BB plutôt que F20B2.

ET1 : Etat avec libellé en double

Exemple :

Dans la description d'un Etat, deux lignes différentes ont le même libellé.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----
BMSETANPO                           ET1REPORT WITH DUPLICATE LABEL                          15
Contenu des colonnes :
  • 93-95 : Numéro de libellé

Des avertissements apparaissent dans Rational Programming Patterns.

Vous devez corriger dans Pacbase en supprimant l'appel du libellé d'une des lignes en double.

ET4 : Libellé inexistant appelé dans une catégorie de l'Etat

Exemple :

Dans la composition d'un Etat, appel d'un libellé qui n'existe pas.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----
BMSETAMBO                           ET4NON EXISTING LABEL CALLED IN CATEGORY     DD100      08
Contenu des colonnes :
  • 93-95 : Numéro de libellé
  • 84-86 : Numéro de ligne
  • 93-94 : Numéro du libellé inexistant

Des différences de génération apparaissent.

Vous devez corriger dans Pacbase en supprimant l'appel du libellé sur la ligne.

ET5 : Structure inexistante appelée dans une catégorie de l'Etat

Exemple :

Dans la composition d'un Etat, appel d'une structure qui n'existe pas.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----
APRETAPBA                           ET5NON EXISTING STRUCTURE CALLED IN CATEG    CB130      03
Contenu des colonnes :
  • 82-83 : Code de la catégorie
  • 84-86 : Numéro de ligne
  • 93-94 : Numéro de la structure inexistante

Des différences de génération apparaissent.

Vous devez corriger dans Pacbase en supprimant l'appel du libellé sur la ligne.

ET6 : Structure appelant plusieurs Rubriques avec le même positionnement

Exemple :

Dans les structures d'un Etat, appel de deux Rubriques dans la même structure, avec la même valeur pour la Rubrique.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
BMSETACG2                           ET6STRUCT CALLING DATA ELEM ON SAME POS.     01111 X01    0 CSSSSSSSSSSXXX          YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
HFYETACG2                           ET6STRUCT CALLING DATA ELEM ON SAME POS.     01111 X03    0 CSSSSSSSSSSXXX          YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Contenu des colonnes :
  • 82-83 : Code de la catégorie
  • 84-86 : Numéro de ligne
  • 88-93 : Code Rubrique
  • 95 : Numéro de ligne de la Rubrique
  • 97 : Type de zone de travail (-W)
  • 98-110 : Code de la source (FFNNRUBRIQIND)
  • 121-150 : Condition

Des différences de génération apparaissent.

Vous devez corriger dans Pacbase en supprimant les doubles, en conservant l'appel de la Rubrique la plus significative et en tenant compte des fonctions et conditions.

ET7 : Libellé manquant dans la séquence des libellés de l'Etat

Exemple :

Dans la Description d'un Etat, appel du premier libellé avec un numéro de libellé 05, alors que les libellés précédents n'ont pas été indiqués.

Messages dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----
HF0ETAANC                           ET7MISSING LABEL IN SEQUENCE                            01
HF0ETAANC                           ET7MISSING LABEL IN SEQUENCE                            02
HF0ETAANC                           ET7MISSING LABEL IN SEQUENCE                            03
HF0ETAANC                           ET7MISSING LABEL IN SEQUENCE                            04
Contenu des colonnes :
  • 93-94: Numéro de libellé manquant

Des erreurs de génération se produisent.

Vous devez corriger dans Pacbase. Renumérotez les libellés pour supprimer la rupture de séquence et adaptez les appels de libellés dans les catégories.

MP4 : Fonction de type EL précédée d'une fonction de type CO, DU ou DW de niveau incompatible

Exemple :

Fonction de type EL précédée d'une fonction de type DW de niveau incompatible.

Dans cet exemple, les niveaux conditions 10DW et 10EL des fonctions FF10 et FF14 ne sont pas compatibles.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8---
HFYECRCG0003                        MP4CO DU DW FOLLOWED BY ELSE NOT COMPATIBLEFF14
Contenu des colonnes :
  • 80-83 : Fonction et sous-fonction

Des différences de génération apparaissent.

Pour corriger, vous devez modifier dans Pacbase. Vous pouvez par exemple remplacer le 10EL de FF14 en 10IT COND01 NOT = 'A'.

NV1 : Niveau de fonction incompatible avec l'opérateur

Exemple :

Ligne P avec un niveau 10BL et un opérateur EXQ.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+-
BMSPGMAEBDIN                        NV1FUNC.LEVEL NOT COMPATIBLE WITH OPERATOR 99RB100  EXQ   10
Contenu des colonnes :
  • 80-86 : Fonction, sous-fonction et numéro de ligne
  • 89-91 : Opérateur
  • 95-96 : Niveau

Des problèmes de génération peuvent apparaître.

Pour corriger, vous devez modifier l'opérateur ou le niveau, ou les deux, dans Pacbase.

PG1 : Ligne P de Type N en double

Exemple :

2 lignes P consécutives avec le même opérateur N et le même niveau 10BL.

Messages dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+
APRPGMCGNDVP                        PG1DUPLICATE P LINE WITH N TYPE            05BB000
APRPGMCGNDVP                        PG1DUPLICATE P LINE WITH N TYPE            05BB010                       CGMAC0
Contenu des colonnes :
  • 80-86 : Fonction, sous-fonction et numéro de ligne
  • 100-105 : Macro concernée

Des problèmes de génération peuvent apparaître.

Vous devez corriger dans Pacbase. Modifiez l'opérateur ou le niveau, ou les deux, ou supprimez la ligne en double.

SG1 : Conflit de nommage de Segment dans les -CD ou les -W
Si un Segment est renommé dans les -CD ou les -W et si le Segment issu du renommage existe, la génération n'est pas identique dans Pacbase et Rational Programming Patterns. En effet, Pacbase trie les Rubriques sur le numéro de ligne dans le Segment alors que Rational Programming Patterns classe en fonction du code Segment. Des différences de génération peuvent se produire. Pour les éviter, ne faites pas pointer des Segments différents sur un même Segment cible. En cas de renommage en 00, faites en sorte que les numéros de ligne du Segment 00 soient tous inférieurs aux numéros de ligne du Segment renommé en 00. Les quatre exemples suivants illustrent les divers cas possibles.

Exemple 1 : Seule une ligne -CD est concernée.

Appel en -CD, avec le code Programme DC, de la Structure de Données MB, avec une sélection *01=00.

Cet exemple présente l'appel en -CD, avec le code Programme DC, de la Structure de Données MB, avec une sélection *01=00. Comme le Segment MB00 existe, il y aura conflit avec MB01.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+---
BMSPGMCGNDVP                        SG1SEGMENT RENAME IN -CD OR -W             DC00     MB00  MB01
Contenu des colonnes :
  • 80-83 : Code Segment dans le Programme
  • 89-92 : Code Segment appelé renommé
  • 95-98 : Code Segment appelé

Exemple 2 : Une seule ligne -W est concernée.

Appel en -W, avec le code Programme HH, de la Structure de Données AC avec une sélection *01=00.

Cet exemple présente l'appel en -W, avec le code Programme HH, de la Structure de Données AC avec une sélection *01=00. Comme le Segment AC00 existe, il y aura conflit avec AC01.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+
HF0PGMCGPRGA                        SG1SEGMENT RENAME IN -CD OR -W             HH00     AC00  AC01  AA110
Contenu des colonnes :
  • 80-83 : Code Segment dans le Programme
  • 89-92 : Code Segment appelé renommé
  • 95-98 : Code Segment appelé
  • 101-105 : Numéro de ligne de zones de travail

Exemple 3: Deux lignes -W sont concernées.

Appel en ligne de zone de travail XX100 avec le code Programme BC de la Structure de Données BC avec une sélection 10.

Appel en ligne de zone de travailZZ100 avec le code Programme BC de la Structure de Données MB avec une sélection 1020.

Cet exemple présente tout d'abord l'appel en ligne de zone de travail XX100, avec le code Programme BC, de la Structure de Données BC avec une sélection 10. Il présente ensuite l'appel en ligne de zone de travail ZZ100, avec le code Programme BC, de la Structure de Données MB avec une sélection 1020. Le même code Programme BC est utilisé pour appeler deux Structures de Données différentes pointant sur une même sélection 10.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----
BMSPGMCGPRGA                        SG1SEGMENT RENAME IN -CD OR -W             BC10     MB10  BC10  ZZ100    XX100
Contenu des colonnes :
  • 80-83 : Code Segment dans le Programme
  • 89-92 : Code Segment appelé renommé
  • 95-98 : Code Segment appelé
  • 101-105 : Numéro de ligne de la zone de travail
  • 110-114: Numéro de la deuxième ligne de la zone de travail

Exemple 4 : Une ligne -CD et une ligne -W sont concernées.

Appel en -CD de la Structure de Données MB avec le code Programme HH et avec une sélection *20=00.

Appel de la Structure de Données MB en -W, zone AA110, avec le code Programme HH avec une sélection 01=00.

Cet exemple présente tout d'abord l'appel en -CD, avec le code Programme HH, de la Structure de Données MB avec une sélection *20=00. Il présente ensuite l'appel en ligne de zone de travail AA110, avec le code Programme HH, de la Structure de Données MB avec une sélection 01=00. Le même code Programme HH appelle deux Structures de Données différentes pointant sur une même sélection 00.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+
HF0PGMCGPRGA                        SG1SEGMENT RENAME IN -CD OR -W             HH00     AC00  AC01  AA110
Contenu des colonnes :
  • 80-83 : Code Segment dans le Programme
  • 89-92 : Code Segment appelé renommé
  • 95-98 : Code Segment appelé
  • 101-105 : Numéro de ligne de la zone de travail
SG4 : Segment inexistant appelé dans les -CD ou -W

Exemple :

Appel, dans les -W, d'un Segment inexistant.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9--
T0VPGME23543                        SG4NON EXISTING SEGMENT CALL IN -CD OR -W  LE10     BC10
Contenu des colonnes :
  • 80-83 : Code Segment dans le Programme
  • 89-92 : Code Segment appelé inexistant

Des différences de génération apparaissent.

Pour corriger, vous devez indiquer un Segment existant ou supprimer l'appel.

SG5 : Sélection erronée sur ligne suite de -CD

Exemple :

Sélection d'argument non présente sur la première ligne du -CD du Segment.

Dans cet exemple, la sélection d'argument devrait être sur la première ligne du -CD du Segment

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1--
BMSPGMCGPRGN                        SG5WRONG SELECTION ON SUITE LINE IN -CD           D0AA              25*BZZZZ
Contenu des colonnes :
  • 87-90 : Indicatif de la ligne de -CD

Des erreurs de génération se produisent.

Vous devez corriger dans Pacbase conformément à la documentation du sous-chapitre Appel de Structure de Données du manuel Applications batch, disponible à l'adresse suivante :

http://www-1.ibm.com/support/docview.wss?rs=37&context=SSEP67&uid=swg27005478

VAK : Variante de génération ou type de Bloc non défini dans la cible de la clé Pacbase

Exemple 1 : Bloc Base de Données

Type de Bloc AR dans la Définition du Bloc.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8--
BMSDBDARHF00                        VAKTYPE CODE TO GENERATE NOT DEFINED IN KEY AR
Contenu des colonnes :
  • 81 : Type de Bloc Base de Données

Le Bloc Base de Données n'est pas généré.

Pour corriger, vous devez indiquer une valeur définie dans la cible de la clé.

Exemple 2: Programme batch

Variante Q pour le Programme dans la Définition du Programme.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8--
T0FPGMTRTMSG                        VAKTYPE CODE TO GENERATE NOT DEFINED IN KEY Q
Contenu des colonnes :
  • 81 : Variante de génération

Le Programme n'est pas généré.

Pour corriger, vous devez indiquer une valeur définie dans la cible de la clé.

WK1 : Ligne de zone de travail de Macro déclarant une table dont le nom contient un $

Exemple :

Dans les -W, appel d'une table $3CCCC.

Message dans le fichier RQ :
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----
BMSPGMCGMAQ1                        WK1PRESENCE $ IN TABLE AREA OF WSS MACRO     AA110   $3CCC
Contenu des colonnes :
  • 82-86 : Numéro de ligne dans les zones de travail
  • 90-94 : Code de la table en anomalie

Des erreurs de génération se produisent (indice de la table erroné).

Vous devez corriger les Macros concernées dans Rational Programming Patterns ou en amont dans les entrées de la migration.


Vos commentaires