obtenir un champ à partir d'itab avec lire la table de TRANSPORT
J'essaie d'avoir un champ de interne. tableau comme ceci:
READ TABLE tbl_peps TRANSPORTING ususap INTO lv_responsable WITH KEY usr03 = wa_tbl_prps-usr03.
Cette phrase est fausse, il me donne une erreur
tbl_peps et lv_responsable sont incompatibles
.
Est-il un moyen de le réaliser à l'aide de "transporter des champs"?
OriginalL'auteur funkeeiads | 2015-01-08
Vous devez vous connecter pour publier un commentaire.
selon la ABAP Documentation sur
READ TABLE
, si vous utilisez le transport de l'option de la zone de travail de la réception de données doit être compatible avec le type de ligne de la table de vous lire. Votre variable déclaréelv_responsable
semble être incompatible avectbl_peps
, par conséquent l'erreur lors de la vérification de votre code.Cela devrait fonctionner:
Trilsbeek y Sont notables avantages de l'utilisation du TRANSPORT des mots clés dans la LECTURE de la TABLE de déclaration. La déclaration de travaux avec et sans elle. j'.e: LIRE le TABLEAU tbl_peps EN wa_peps AVEC les PRINCIPAUX usr03 = wa_tbl_prps-usr03. déplacer wa_peps-ususap à lv_responsable.
avec le TRANSPORT, vous pouvez choisir à transporter uniquement un sous-ensemble de champs dans votre structure cible. Par exemple, si vous voulez seulement de prendre un champ et déplacer la valeur dans un pays déjà peuplé de la zone de travail, en gardant les valeurs des autres champs dans le WA intacte. Comme LU la TABLE des œuvres sur les tables internes et est en mémoire, je ne pense pas qu'il y a de sérieux avantages en termes de performances. Dépend bien sur de la quantité de données.
OriginalL'auteur Dirk Trilsbeek
Avec la nouvelle syntaxe (Au moins ABAP 7.40), vous n'avez pas besoin d'un workarea plus. Le codage de votre exemple serait:
Plus d'info de la nouvelle table des expressions peut être trouvé ici.
Formidable, ce devrait être la bonne réponse.
Si vous pensez que c'est un excelltent contribution, vous pouvez décocher la accepté de l'autre question, et de le mettre ici.
OriginalL'auteur jaegli
Résoudre le problème sous-jacent
La raison que vous souhaitez transporter un seul champ est d'économiser de la mémoire et de la vitesse de traitement. Il y a une meilleure façon de le faire, utilisez le champ des symboles:
La ligne de définition ne fonctionne qu'avec ABAP 740 et jusqu', mais vous pouvez le faire dans les versions antérieures:
OriginalL'auteur András
Il n'existe aucun moyen.
Lv_responsable
doit être définie comme suit.Alors seulement vous pouvez affecter la valeur dans le champ
lv_responsable-ususap
à une autre variable de type champ.OriginalL'auteur Jagger