Restructuration des CRE (EXIRST)

Caractéristiques

Cet exit est disponible en COBOL et C.

Restriction : Cet exit n’est disponible qu’en mode fichier.

Description

L'utilisation de cet exit permet, après lecture des enregistrements de CRE, de :

  • Les mettre en forme et enrichir les données
  • Supprimer des enregistrements
  • Ajouter des enregistrements
  • Attribuer des identifiants aux CRE (écrits dans les enregistrements).

Exemple de recomposition de CRE :

  • À partir de N enregistrements lus, vous pouvez produire de 0 à M enregistrements
  • Il est possible de produire, un CRE multi-enregistrements à partir des données d'un seul enregistrement lu
  • Inversement, il est possible de constituer un CRE mono-enregistrement à partir de plusieurs enregistrements physiques lus.

Il est possible de valoriser les identifiants associés à un CRE à traiter en renseignant les champs identifiants, qui doivent être contenus dans l'enregistrement (voir les positions et longueurs des identifiants dans le fichier sys.dat).

Principe de fonctionnement

L'exit est appelé pour chaque enregistrement lu dans la vacation.

Les enregistrements sont lus dans les zones d'échange en entrée et transmis à l'exit de restructuration EXIRST. Les enregistrements peuvent être recomposés et recopiés en sortie.

Particularités

Si une anomalie survient dans cet exit, la vacation est rejetée.

Les données constituant le CRE rejeté sont les données restructurées. Il faut donc prévoir dans la programmation de cet exit l'éventualité de devoir traiter des CRE déjà restructurés.

Les données échangées

Quatre points d'entrée sont disponibles :

  • Init (Initialisation)
  • Read (Lecture)
  • Write (Écriture)
  • Close (Fermeture)

Point d'entrée EXI_nINIT

Appelé au début de la vacation, il initialise le module.

Point d'entrée EXI_nLECTURE

Appelé lors de la prise en charge des données dans la zone d'échange contenant les CRE. Il permet le stockage, l'enrichissement et la recomposition des enregistrements lus.

Certains champs alphanumériques peuvent avoir différentes descriptions selon le langage de programmation et le format utilisé (Latin ou UTF-16). Pour plus d’information, reportez-vous à Gérer les Exits et les appels externes.

Données en ENTRÉE

Nom en C Nom en COBOL Caractéristiques/Longueur Utilisation

szSourceCode

* L-CDEMETTEUR

Alphanumérique / 25

Code émetteur associé à la vacation

nEntryCode

* L-TYPTRT

Numérique / 1

Code du point d'entrée :

  • 5 : EXI_nLECTURE
    appel en mode lecture
  • 2 : TRT-READRST
    (COBOL : UNIX / MVS)
  • 2 : TRT-READ
    (COBOL : Windows)

sSegment

* L-CRE

Alphanumérique / 4000 max

Contenu de l'enregistrement lu.

nSegmentLght

* L-LGCRE

Numérique / 4

Contenu de l'enregistrement lu.
(valeur maximale = 4000)

 

Données en SORTIE

Nom en C Nom en COBOL Caractéristiques/Longueur Utilisation

nNbSegmentToWrite

* L-NBCRE

Numérique / 5

Nombre d'enregistrements à écrire :

  • 0 : demande de lecture de l'enregistrement suivant
  • 1 : demande d'écriture de l'enregistrement recomposé
  • M : demande d'écriture de M enregistrements

sSegment

* L-CRE

Alphanumérique / 4000 max

Contenu du premier enregistrement recomposé à écrire

nSegmentLght

* L-LGCRE

 

Numérique / 4

Longueur du premier enregistrement recomposé à écrire
(valeur maximale = 4000)

szErrorLabel

* L-MSGERR

 

Alphanumérique / 200

Libellé de l'erreur si une erreur a été détectée

Valeur de retour

 

 

  • 0 (EXI_nNOERREUR)
  • 9 (EXI_nERREURSYSTEME), si une erreur système est détectée ; dans ce cas, la vacation est arrêtée

 

Point d'entrée EXI_nECRITURE

Appelé au moment de l'écriture des enregistrements dans la zone d’échange E_Tmp_CRE_Restructuration (I_Tmp_Ievent_Restructuring). Il permet d'enrichir les enregistrements après leur recomposition

Certains champs alphanumériques peuvent avoir différentes descriptions selon le langage de programmation et le format utilisé (Latin ou UTF-16). Pour plus d’information, reportez-vous à Gérer les Exits et les appels externes.

Données en ENTRÉE

Nom en C Nom en COBOL Caractéristiques/Longueur Utilisation

szSourceCode

* L-CDEMETTEUR

 

Alphanumérique / 25

Code émetteur associé à la vacation

nEntryCode

* L-TYPTRT

Numérique / 1

Code du point d'entrée 6 : EXI_nECRITURE, appel en mode écriture

nNbSegmentToWrite

* L-NBCRE

Numérique / 5

Indice de l'enregistrement recomposé à écrire (au-delà de la valeur 1)

Données en SORTIE

Nom en C Nom en COBOL Caractéristiques/Longueur Utilisation

sSegment

* L-CRE

Alphanumérique / 4000 max

Contenu de l'enregistrement recomposé à écrire

nSegmentLght

* L-LGCRE

Numérique / 4

Longueur de l'enregistrement recomposé à écrire

szErrorLabel

* L-MSGERR

Alphanumérique / 200

Libellé de l'erreur si une erreur a été détectée

Valeur de retour

 

 

  • 0 (EXI_nNOERREUR)
  • 9 (EXI_nERREURSYSTEME), si une erreur système est détectée ; dans ce cas, la vacation est arrêtée

Point d'entrée EXI_nFERM

Appelé à la fin de la vacation, il ferme le module.

Mise en œuvre

Cinématique des appels effectués dans une vacation

La lecture physique de la zone d'échange CRE (Émetteur) s'effectue jusqu'à ce qu'il n'y ait plus d'enregistrements dans cette zone d'échange.

Appel EXI_nLECTURE

Ce point d'entrée est appelé à chaque lecture d'enregistrement dans la zone d'échange CRE (Émetteur)

Si vous ne changez pas la valeur du champ nNbSegmentToWrite dans la zone de sortie, l'enregistrement courant (sSegt) est écrit directement dans la zone d’échange I_Tmp_Ievent_Restructuring.

Si vous lisez un autre enregistrement, les enregistrements recomposés doivent être stockés en mémoire dans l'exit.

Note   Vous pouvez alors effectuer N lectures et une seule écriture, ou inversement, une lecture et M écritures.

Appel EXI_nECRITURE

Ce point d'entrée est appelé à l'écriture de chaque enregistrement recomposé par EXI_nLECTURE

La valeur du champ nNbSegmentToWrite contient l'indice de l’enregistrement recomposé à écrire.

Si nécessaire, vous pouvez modifier le contenu de cet enregistrement avant de le renvoyer au module d’écriture.

Paramétrage

Cet exit peut être activé dans l'étape E.

fichier script.ges

Mot-clé Description/Valeur à définir
Section >Script.ges<

 

E_Tmp_Cre_Restructuration

Nom du fichier temporaire dans lequel sont écrits les CRE restructurés

fichier sys.dat

Mot-clé Description/Valeur à définir
Section >ScriptConfiguration<

 

I_Exit_Restructuring_Ievent

  • Yes_C ou Yes_cobol : Exécuter l'exit EXIRST
  • No : Ne pas exécuter l'exit

Nom des modules

Mise en œuvre

Plateforme Répertoire/Nom de bibliothèque Programme C Programme COBOL

Windows

%RDJ_EXEC%\exit

EXIRSTC.c
exidllh.h (fichier entête)

EXIRST.cbl

UNIX

$RDJ_EXEC/exit

EXIRSTC.c
exidllh.h (fichier entête)

EXIRST.cbl

MVS

&RDJEXEC..SRCLIB

EXIRSTC
exidllh.h (fichier entête)

EXIRST.cbl

 

Type de traitement Libellé Point d'entrée

Open

TRT-INIT

EXI_nINIT

Close (Fermeture)

TRT-FIN

EXI_nFERM

Lecture d'enregistrement

TRT-READ

EXI_nLECTURE

Écriture d'enregistrement recomposé

TRT-WRITE

EXI_nECRITURE

Related Links