Variable inaccessible dans un USER-EXIT

Variable inaccessible dans un USER-EXIT

Messagede ghosteur » 05 Février 2010, 10:18

Lorsqu’on souhaite mettre en oeuvre un user-exit, on s’intéresse aux paramètres disponibles en entrée ainsi qu’à ceux modifiables en sortie. Il arrive quelquefois que la donnée nécessaire à notre traitement ne soit malheureusement pas accessible à ce niveau. Sachez que la donnée manquante est présente dans la mémoire interne SAP, qu’elle le sera jusqu’à la fin de l’exécution du programme principal, et qu’en conséquence, il est possible de récupérer la valeur. A la condition que cette variable standard ait été déclarée au niveau "TOP" du pool, l’affectation dynamique de variables par l’utilisation de field-symbols vous permettra d'accéder à cette valeur.

Procédure :
1 -
Identifier le programme principal (Ex : SAPLTOTO) dans lequel on trouve la table interne (Ex : T_TABSAP) contenant la valeur à rapatrier.

2 - Dans le User-exit, insérer le code suivant : il permet d’affecter dynamiquement au field-symbols <ITAB>, le contenu de la table T_TABSAP du programme SAPLTOTO. Son contenu est ensuite copié dans une table interne locale T_RECUP (cette dernière sera évidemment déclarée localement avec la même structure que T_TABSAP)

Code: Tout sélectionner
*DATA : déclarer ici T_RECUP (même structure que  T_TABSAP)
FIELD-SYMBOLS: <ITAB> TYPE ANY
Data : MA_TABLE(20) TYPE C VALUE '(SAPLTOTO) T_TABSAP[]'.

ASSIGN (MA_TABLE) TO <ITAB>.
Check sy-subrc = 0.
T_RECUP[] = <ITAB>.
* T_RECUP contient maintenant l’ensemble des valeurs de T_TABSAP.


A noter qu’il est possible aussi de modifier les valeurs de T_TABSAP en utilisant la méthode inverse : T_RECUP[] = <ITAB> (ATTENTION : à utiliser en pleine connaissance des conséquences et avec parcimonie).
ghosteur
Posteur débutant
Posteur débutant
 
Messages: 8
Inscription: 01 Février 2010, 11:12

Retourner vers ABAP

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron