Error de sintaxis "campo ITAB desconocido" en APPEND wa TO itab
Frecuentes
Visto 21,794 veces
0
Estoy tratando de agregar un nuevo registro a mi tabla interna y este código me está dando un error, pero estoy haciendo exactamente lo mismo que en mi libro de SAP. ¿Qué estoy haciendo mal?
TYPES : BEGIN OF personel_bilgileri,
Ad TYPE c LENGTH 20,
Soyad TYPE c LENGTH 20,
Telefon_no Type n LENGTH 12,
END OF personel_bilgileri.
TYPES personel_bilgi_tablo_tipi TYPE STANDARD TABLE OF
personel_bilgileri WITH NON-UNIQUE KEY ad soyad.
DATA : personel_bilgi_kaydi TYPE personel_bilgileri,
personel_bilgi_tablosu TYPE personel_bilgi_tablo_tipi.
personel_bilgi_kaydi-ad = 'Murat'.
personel_bilgi_kaydi-soyad = 'Sahin'.
personel_bilgi_kaydi-telefon_no = '5556677'.
APPEND personel_bilgi_kaydi TO personel_bilgileri.
personel_bilgi_kaydi-ad = 'Ayse'.
personel_bilgi_kaydi-soyad = 'Bil'.
personel_bilgi_kaydi-telefon_no = '5556611'.
APPEND personel_bilgi_kaydi TO personel_bilgileri.
personel_bilgi_kaydi-ad = 'Mehmet'.
personel_bilgi_kaydi-soyad = 'Kalan'.
personel_bilgi_kaydi-telefon_no = '5556622'.
APPEND personel_bilgi_kaydi TO personel_bilgileri.
En realidad, no sé qué método de adición de registros debo usar. Quiero decir que hay demasiadas formas de hacer esta operación. ¿Qué método será el verdadero?
Estoy recibiendo este error:
The field Personel_bilgileri is unknown, but there are following fields similar names...
Además, puedo hacer esto con LOOP AT, pero no entendí el uso de LOOP AT. ¿Qué hace?
2 Respuestas
4
En su ejemplo de código, primero definió PERSONEL_BILGILERI
como herramienta de edición del TYPE
, entonces PERSONEL_BILGI_TABLO_TIPI
como mesa interna TYPE
of PERSONEL_BILGILERI
.
Hasta ese momento, todavía no se han declarado variables. Solo tipos de datos.
Entonces:
PERSONEL_BILGI_KAYDI
se define de tipoPERSONEL_BILGILERI
. Esta es una estructura que usas como área de trabajo (lo cual está bien).PERSONEL_BILGI_TABLOSU
se define de tipoPERSONEL_BILGI_TABLO_TIPI
. Así que,PERSONEL_BILGI_TABLOSU
es su tabla interna.
Cuando ANEXA su área de trabajo, debe agregarla a una tabla interna, no a un tipo de datos. prueba con PERSONEL_BILGI_TABLOSU
en lugar de tu tipo PERSONEL_BILGI
:
APPEND personel_bilgi_kaydi TO personel_bilgileri_tablosu.
Respondido el 12 de junio de 12 a las 15:06
1
Debe ANEXAR su WA (área de trabajo, personel_bilgi_kaydi) en su tabla (personel_bilgi_tablosu). No puede agregar el WA al tipo definido.
Entonces debería verse así:
APPEND personel_bilgi_kaydi TO personel_bilgi_tablosu.
También puede usar este código para mostrarlos en la página.
LOOP AT personel_bilgi_tablosu into personel_bilgi_kaydi.
write: / 'İSİM: ' ,personel_bilgi_kaydi-ad,
'SOYİSİM: ',personel_bilgi_kaydi-soyad,
'TEL NO: ', personel_bilgi_kaydi-telefon_no.
ENDLOOP.
Puede usar otros métodos para mostrar su tabla en la página, como REUSE_ALV_GRID_DISPLAY. Puede obtener más información al respecto en scn.sap.com
Espero que haya sido útil.
Buena suerte con.
Talha
Respondido el 12 de junio de 12 a las 15:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas abap internal-tables or haz tu propia pregunta.
Aquí está la página en la Biblioteca SAP que explica LOOP AT: ayuda.sap.com/saphelp_nw70/helpdata/en/fc/… - Danny T.
Además, no use palabras que no sean en inglés en su código, bilgileri y kaydi hacen que su código sea más difícil de mantener para quien lo mantenga algún día. - tomdemuyt