Restructuration des ME (EXIRME)

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

Caractéristiques

Description

L'utilisation de cet exit permet, juste avant l'écriture des ME, de :

  • formater les ME et enrichir les données
  • supprimer des ME
  • ajouter des ME

Exemple de recomposition de ME :

  • À partir de N ME lus, vous pouvez produire de 0 à M ME.
  • Il est possible de produire, N ME à partir des données d'un seul ME.
  • Inversement, il est possible de constituer un ME à partir de plusieurs ME.

Principe de fonctionnement

L'exit est appelé pour chaque ME à écrire lors de la vacation.

Les ME sont lus juste après leur agrégation et transmis à l'exit de restructuration. Les ME peuvent être recomposés et recopiés en sortie.

Particularités

Si une anomalie survient dans cet exit, la vacation est arrêtée.

Les données échangées

Quatre points d'entrée sont disponibles dans cet exit :

  • 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é juste avant l’écriture des ME dans la zone d'échange correspondante  ; il permet le stockage, l'enrichissement et la recomposition des ME 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 Caractéristiques/Longueur Utilisation

szCodeDestinataire

Alphanumérique / 25

Code destinataire associé au ME courant

nEntryCode

int / 1

Code du point d'entrée 5 : EXI_nLECTURE, appel en mode lecture

nNbOSegToWrite

 

 

sMe

Alphanumérique / 4000 max

Contenu du ME lu

nLgnMe

int / 4

Longueur du ME lu (valeur maximale = 4000)

Données en SORTIE

Nom en C Caractéristiques/Longueur Utilisation

szCodeDestinataire

Alphanumérique / 25

Code destinataire associé au ME courant

nNbOsegtToWrite

int

Nombre de ME à écrire :

  • 0 : demande de lecture du ME suivant
  • 1 : demande de lecture du ME recomposé
  • M : demande d'écriture de M ME

sMe

Alphanumérique / 4000 max

Contenu du premier ME recomposé à écrire

nLgnMe

int / 4

Longueur du premier ME recomposé (valeur maximale = 4000)

szErrorLabel

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, la vacation est fermée

Point d'entrée EXI_nECRITURE

Appelé lors de l’écriture de ME vers la zone d’échange associée au destinataire, il peut être utilisé pour enrichir les ME après 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 Caractéristiques/Longueur Utilisation

szCodeDestinataire

Alphanumérique /25

Code destinataire associé au ME courant

nEntryCode

int / 1

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

nNbOsegtToWrite

int

Répertoire du ME recomposé à écrire

Données en SORTIE

Nom en C Caractéristiques/Longueur Utilisation

szCodeDestinataire

Alphanumérique / 25

Code destinataire associé au ME courant

sMe

Alphanumérique / 4000 max

Contenu du ME recomposé à écrire

nLgnMe

int / 4

Longueur du ME recomposé (valeur maximale = 4000)

szErrorLabel

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 survenue, la vacation est fermée

Point d'entrée EXI_nFERM

Ferme le module et est appelé à la fin de la vacation.

Mise en œuvre

Cinématique des appels effectués dans une vacation

La lecture physique des ME s'effectue jusqu'à ce qu'il n'y ait plus de ME générés à traiter.

Appel EXI_nLECTURE

Ce point d'entrée est appelé lors de chaque lecture de ME

Si vous ne modifiez pas la valeur de nNbOsegtToWrite en sortie, le ME courant (sMe) est directement écrit dans la zone d'échange associée au destinataire.

Si vous effectuez de nouveau une lecture de ME, vous devez stocker les ME recomposés en mémoire dans l'exit.

Note   Remarque : 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é lors de l'écriture de chaque ME recomposé par EXI_nLECTURE.

La valeur de nNbOsegtToWrite indique le répertoire du ME recomposé à écrire. Si nécessaire, vous pouvez modifier le contenu du ME avant de le renvoyer au module d’écriture.

Paramétrage

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

fichier sys.dat

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

 

O_Exit_Restructuring_OSegt

  • Yes_C : Exécute EXIRME en C
  • No : Ne pas exécuter l'exit

Nom des modules

Mise en œuvre

Plateforme Nom du répertoire Programme C Programme COBOL

Windows

%RDJ_EXEC%\exit

EXIRMEC.c

exidllh.h fichier entête

N'existe pas

UNIX

$RDJ_EXEC/exit

EXIRMEC.c

exidllh.h fichier entête

N'existe pas

MVS

&RDJEXEC..SRCLIB

EXIRMEC

exidllh.h fichier entête

N'existe pas

 

Type de traitement Point d'entrée

Open

EXI_nINIT

Close (Fermeture)

EXI_nFERM

Lecture de ME

EXI_nLECTURE

Écriture de ME recomposé

EXI_nECRITURE

Related Links