Accéder aux tables internes AccountingIntegrator
Dans les exits, lorsque vous accédez à des Tables par RDJTAB, le RuleEngine ouvre les fichiers Table en début de vacation et les ferme à la fin. Vous pouvez faire un appel aux Tables dans tous les exits et les appels externes par appel au module RDJTAB situé dans la DLL utilisée pour l’accès aux Tables. Cette DLL est également appelée lorsqu’il s'agit de faire des accès standards aux Tables dans les Règles de Traduction.
Windows
|
$RDJ_HOME/bin
|
librdjges.dll
|
UNIX
|
$RDJ_HOME/bin
|
librdj ges.suff (librairie partagée)
|
z/OS
|
&RDJHOME.. EXELIB
|
RDJgesDL
|
Les données échangées
L’accès au module RDJTAB est écrit en COBOL ou C selon le langage utilisé dans les exits utilisateur ou les appels externes.
Les champs des données d’entrée/sortie sont listés dans les fichiers du répertoire exit :
- fichier de <clause copy> LRDJTAB pour COBOL
- fichier <header> rdjtabh.h pour le langage C
Données en ENTRÉE
LXTYPTAB
|
sTypTab
|
Alphanumérique / 1
|
Type de Table :
- S : uniquement accès à une table courte
- L : uniquement accès à une table longue
- Blanc : la table courte est accédée la première. Si l’argument n’est pas trouvé ET que l’indicateur de contrôle de table est vide, alors on accède à la table longue.
|
LXNOMTAB
|
sNomTab
|
Alphanumérique / 8
|
Nom de la Table
|
LXARGUMENT
|
sArgument
|
Alphanumérique / 128
|
Nom de l’argument
Longueur :
- Tables courtes : 17 caractères maximum.
- Tables longues : 128 caractères maximum.
|
LXDTARG
|
sDtArg
|
Alphanumérique / 7
|
Argument date (SAAMMJJ), par défaut la date du jour
Aucun contrôle n’est effectué sur la date mais celle-ci doit être antérieure à la date d'expiration.
|
Données en SORTIE
LXTYPTAB
|
sTypTab
|
Alphanumérique / 1
|
Type de Table :
- S : Table courte trouvée
- L : Table longue trouvée
|
LXCDACC
|
sCdAcc
|
Alphanumérique / 1
|
Code d’accès rapide :
- O : pour accès rapide
- N : autrement
|
LXCDRETOUR
|
sCdRetour
|
Alphanumérique / 1
|
Code retour :
- 0 (TAB_nEntryFound): entrée trouvée
- 1 (TAB_nEntryNotFound): autrement
|
LXTABVAL
|
sTabVal
|
Alphanumérique / 256
|
Valeur attendue
|
LXLGARG
|
sLgArg
|
Alphanumérique / 4
|
Longueur des arguments de la Table
|
LXLGVAL
|
sLgVal
|
Alphanumérique / 4
|
Longueur des valeurs de la Table
|
LXCLARG
|
sClArg
|
Alphanumérique / 1
|
Classe des arguments de la Table
|
LXCLVAL
|
sClVal
|
Alphanumérique / 1
|
Classe des valeurs de la Table
|
LXCDERR
|
sCdErr
|
Alphanumérique / 7
|
Code erreur :
- Blanc : poste trouvé
- 0001580: Table non trouvée
- 0001623: Poste non trouvé
|
LXCDVALDEF
|
sCdValDef
|
Alphanumérique / 1
|
Indicateur de valeur par défaut :
- O : si le poste trouvé correspond à la valeur par défaut de la table
- N : autrement
|
LXCTRLTAB
|
sCtrlTab
|
Alphanumérique /1
|
Indicateur de contrôle de Table
Le contrôle de table ne s’applique que si le poste n'est pas trouvé ('O','N' ou espace '.')
|
Remarque :
- Une Table mise à jour par la procédure rdjmaj est une table courte OU une table longue mais jamais les deux à la fois.
- Si un poste n’est pas trouvé, il est recommandé de ne pas laisser vide le paramètre “indicateur de contrôle de Table” dans la définition de la table de façon à pouvoir tester s’il y a erreur ('O') ou pas ('N').
Mise en œuvre
Dans les exits Cobol ou l’appel externe ITR501 :
- Ajoutez la ligne suivante dans la section <Working-Storage> :
COPY LRDJTAB.
- Appelez le module RDJTAB dans les différents processus.
Pour plus d’information, reportez-vous dans les Annexes à l’exemple qui appelle RDJTAB en langage COBOL.
Dans les exits C ou l’appel externe ITR501 :
- Ajoutez la ligne suivante dans la description générale :
"#include "rdjtabh.h"
Appelez le module RDJTAB dans les différents processus.
Pour plus d’information, reportez-vous dans les Annexes à l’exemple qui appelle RDJTAB en langage C.