Récupérer le numéro de transaction courante sous Adélia.

Intérêt : il ne serait plus nécessaire de passer le numéro de transaction « en dur » à  des macros telles que &CTL_OPTION(01;ZZ_COD_OPT), ce qui éviterait les erreurs notamment lors de copier-coller d’une transaction à  une autre (on oublie parfois de changer les paramètres des macros lors d’un copier-coller, et c’est le genre d’erreur qui fait perdre beaucoup de temps).

Inconvénient : ça fonctionne à  condition cependant de n’avoir pas déclaré le paramètre de macro recevant le numéro de la transaction comme étant de type « n° transaction », car dans ce cas, ADELIA contrôle que le paramètre est bien un numéro de transaction en dur, et renvoie une erreur de compilation dans le cas contraire.

Autre problème : ne pas écrire de code dans la macro tel que celui-ci :
DECLARER £TRS:01;£_NUM_TRS_:01 2

A la compilation du code ADELIA, la ligne ci-dessus deviendrait :

 cas 1 : on passe le numéro de transaction « 01 » en premier paramètre de la macro
DECLARER £TRS01;£_NUM_TRS_01 2

 cas 2 : on passe le numéro de transaction sous la forme d’une variable (W_NO_TRS) en premier paramètre de la macro
DECLARER £TRSW_NO_TRS;£_NUM_TRS_W_NO_TRS 2

Le cas n° 2 entrainera une erreur de compilation systématique. Pourtant, dans certains cas, le programmeur préfèrera utiliser le cas n° 2 et il serait dommage qu’il ne puisse le faire à  cause d’un défaut de conception de la macro.

De plus, la création de variable « à  la volée » (cà d au moment de la compilation), tel que dans l’exemple ci-dessus, entraine l’impossibilité de retrouver les programmes utilisant une variable au moyen d’une recherche dans les sources ADELIA.

Print Friendly, PDF & Email