Affecte le résultat SELECT champ symbole

voix
2

Je suis nouveau ABAPcodage et je suis confus quant à la raison pour laquelle la requête en commentaire ne fonctionne pas.


REPORT  z_hello_world_local.

TYPES:  BEGIN OF bkpf_type,
          xblnr          TYPE bkpf-xblnr,
        END OF bkpf_type.

DATA: t_bkpf                 TYPE TABLE OF bkpf_type.

FIELD-SYMBOLS:  <bkpf>        TYPE bkpf_type.


*This query does not work?
*SELECT xblnr
*      INTO CORRESPONDING FIELDS OF <bkpf> UP TO 1 ROWS
*      FROM bkpf
*      WHERE belnr = '1800001017'.
*    ENDSELECT.
*
DATA: t_xblnr TYPE bkpf-xblnr.

*This query works and in my head it is roughly the same thing.
SELECT SINGLE xblnr
      INTO t_xblnr
      FROM bkpf
      WHERE belnr = '1800001017'.


write 'Done'.

Si je lance la requête en commentaire que je reçois l'erreur:

Erreurs d'exécution GETWA_NOT_ASSIGNED Date et heure
08/26/2009 19:54:19

Texte court symbole sur le terrain n'a pas encore été attribué.

Toute aide serait appréciée.

Créé 27/08/2009 à 01:59
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
5

Je pense que le site se cache le code qu'il trouve entre <>. On dirait que vous avez déclaré un symbole sur le terrain, mais je ne vois pas vraiment ce que vous l'avez nommé.

Je suppose (basé sur l'erreur et les morceaux de code que je ne vois pas en fait) que vous essayez de sélectionner les données directement dans un symbole de champ. Vous ne pouvez pas faire cela. Un symbole de champ n'est pas une zone de mémoire, il est (essentiellement) un pointeur.

Vous pouvez faire une des opérations suivantes:

data: wa_bkpf type bkpf_type.

select xblnr
  into corresponding fields of wa_xblnr
  up to 1 rows
  from bkpf
  where xblnr = '1800001017'.
endselect.

ou

field-symbols: < bkpf > type bkpf_type.
append initial line to t_bkpf assigning < bkpf >.
select xlbnr
  into corresponding fields < bkpf >
  up to 1 rows
  from bkpf
  where xblnr = '1800001017'.
endselect.

Dans ce cas, vous pointez le symbole de champ à une nouvelle ligne que vous avez ajouté à la table interne.

ou

select xblnr
  into corresponding fields of table t_bkpf
  from bkpf
  where xlbnr = '1800001017'.

Dans ce cas, vous tous les documents qui correspondent et placez-les directement dans votre table interne.

Créé 27/08/2009 à 13:40
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more