|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() |
Bonjour,
je dois faire des controles sur le numéro d'identification fiscal dans cette transaction. Il y a un champ correspondant à cette données(dynp 0120), mais aussi un bouton permettant de lancer un nouveau dynpro(0600). Ce dynpro est sous forme de table à alimenter, avec 2 colonnes (code pays + n° ident.). - Pour la récupération de la valeur du champ du dynp '0120', je n'ai aucun pb avec les buffer. - En revanche pour charger les données de la table du dynpro '0600', il y a un pb. => Si le user affiche le dynpro 0600, alors les données sont "bufferisée" dans '(SAPMF02K)XLFAS[]'. Mais si le user ne lance pas ce dynpro, la table n'est pas chargée, donc je ne peux effectuer mes controles. J'avais alors pensé à faire une sélection dans la table LFAS, pour récupérer les données jointent au fournisseur (LIFNR), mais la suppression ou l'ajout de lignes dans la table LFAS s'effectue après le passage dans mon USER EXIT, donc se n'est pas fiable Si quelqu'un aurait déjà rencontré ce cas, ou aurait une solutions, il est le bienvenu. Merci d'avance. PS : si je n'ai pas été clair, n'hésitez pas à me poser des questions |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() ![]() ![]() SAP for Banking Inscription : juin 2002 Messages : 539 ![]() |
Non, pas tres clair pour moi : Si l'utilisateur n'entre pas dans le screen 0600, la table est vide donc pourquoi la controler ?
En regle generale sinon, en ABAP, il existe le principe dit LUW qui ordonne un COMMIT implicite des donnees entre chaque dynpro i.e., soit les donnees sont dans le user context, soit dans la base de donnees. L.
__________________
TRY. N/A CATCH cx_root. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() |
Ah oui excusez moi!!!
J'ai oublié de préciser un point : le numéro d'identification fiscal est obligatoire, i.e. soit le champ du dynpro 0120 est alimenté, soit la table, soit les 2. Je vous donne un exemple, pour bien voir le pb : - Un user créé un fournisseur en FK01, il alimentera le champ du dynp 0600 et juste 1 ligne du tableau du dynp0600 => aucun problème, et la table LFAS récupère la ligne du tableau. 1) Premier cas, il vient effectuer une modifcation sur ce meme frs. Il ote la valeur du champ du dynp0120. Ici il ne devrait pas y avoir d'erreur vu k'il y a tjrs une donnée dans le tableau. Le pb, c'est que dans le buffer il n'y aura pas de données (car il n'aura pas afficher le dynpro 0600) et si je fais un Select sur LFAS j'aurai une ligne. 2) Dans un second cas (on reprend le cas où tableau + champ sont alimentés), il vient supprimer la valeur dans le champ et la ligne dans le tableau. Ici le buffer sera vide, car contenu du tableau vide, et un Select sur LFAS renvera aussi une ligne. Le problème est donc simple, mais pas la solution Pr info, je n'ai pas de flag dans le standard pour indiqué si je suis en modif sur tel ou tel champ, vu que la transaction FK02 utilise un marqueur "Transaction de modification" (table T020). A moins que j'en ai raté un... Est ce plus clair ??? Merci encore pour vos réponses. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com