‎2007 Feb 05 9:30 PM
hey
i am creating a ABAP program for testing. I need to know the syntax for the following situation. I have a table AUFM, and i want to select AUFNR, BUDAT, MATNR from AUFM and store it in an internal table. there is a selection option used AUFNR which the user enters. i tried writing a select statement, it doesnt give any syntax error but when i run the program , it gives a short dump.
Points will be assigned to helpful answers.
thanks
Laura.
‎2007 Feb 05 9:53 PM
Hi,
Check the changes in bold..
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS FROM AUFM INTO TYPE_AUFM WHERE AUFNR IN ORDER.
APPEND TYPE_AUFM.
ENDSELECT.
LOOP AT TYPE_AUFM INTO AUFM_WA2.
READ TABLE TYPE_AUFM INDEX SY-TABIX.
WRITE 😕 AUFM_WA2-AUFNR.
ENDLOOP.
<b>OR</b>
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS FROM AUFM INTO TABLE TYPE_AUFM WHERE AUFNR IN ORDER.
LOOP AT TYPE_AUFM INTO AUFM_WA2.
READ TABLE TYPE_AUFM INDEX SY-TABIX.
WRITE 😕 AUFM_WA2-AUFNR.
ENDLOOP.
Thanks,
Naren
‎2007 Feb 05 9:32 PM
Hi,
Check the order of declaration of the fields in the internal table with the select statement..
DATA: BEGIN OF ITAB OCCURS 0,
AUFNR LIKE AUFM-AUFNR,
BUDAT LIKE AUFM-BUDAT,
MATNR LIKE AUFM-MATNR,
END OF ITAB.
SELECT AUFNR BUDAT MATNR
INTO TABLE ITAB
FROM AUFM.
Thanks,
Naren
‎2007 Feb 05 9:33 PM
Can we see your code and let us know the type of dump you are getting.
Rob
‎2007 Feb 05 9:47 PM
DATA : BEGIN OF TYPE_AUFM OCCURS 0,
AUFNR TYPE AUFNR, "ORDER
BWART TYPE BWART, "MOVEMENT TYPE
MATNR TYPE MATNR, "MATERIAL
BUDAT TYPE BUDAT, "POSTING DATE
WERKS TYPE WERKS, "PLANT
LGORT TYPE LGORT_D, "STORAGE LOCATION
MENGE TYPE MENGE_D, "QUANTITY IN BASE UNIT
MEINS TYPE MEINS, "BASE UNIT
VORNR TYPE VORNR,
ARBPL TYPE ARBPL,
END OF TYPE_AUFM.
*DATA: AUFM_ITAB TYPE TYPE_AUFM OCCURS 0 WITH HEADER LINE.
DATA : AUFM_ITAB LIKE TYPE_AUFM.
DATA : AUFM_WA2 LIKE AUFM_ITAB.
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS FROM AUFM INTO TYPE_AUFM WHERE AUFNR IN ORDER.
ENDSELECT.
LOOP AT TYPE_AUFM INTO AUFM_WA2.
READ TABLE TYPE_AUFM INDEX SY-TABIX.
WRITE 😕 AUFM_WA2-AUFNR.
ENDLOOP.
i wrote the above code, its not giving a short dump now, but it doesnt display any result ??
‎2007 Feb 05 9:51 PM
Try:
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS
FROM AUFM
INTO TABLE TYPE_AUFM
WHERE AUFNR IN ORDER.
No ENDSELECT.
rob
‎2007 Feb 05 9:53 PM
Hi,
Use the below code
types : BEGIN OF TYPE_AUFM OCCURS 0,
AUFNR TYPE AUFNR, "ORDER
BWART TYPE BWART, "MOVEMENT TYPE
MATNR TYPE MATNR, "MATERIAL
BUDAT TYPE BUDAT, "POSTING DATE
WERKS TYPE WERKS, "PLANT
LGORT TYPE LGORT_D, "STORAGE LOCATION
MENGE TYPE MENGE_D, "QUANTITY IN BASE UNIT
MEINS TYPE MEINS, "BASE UNIT
END OF TYPE_AUFM.
types: ITAB TYPE standard table of TYPE_AUFM.
DATA : AUFM_ITAB TYPE ITAB.
DATA : AUFM_WA2 TYPE TYPE_AUFM.
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS FROM AUFM INTO TYPE_AUFM2 WHERE AUFNR IN ORDER.
APPEND TYPE_AUFM2 to AUFM_ITAB .
clear TYPE_AUFM2.
ENDSELECT
LOOP AT AUFM_ITAB INTO AUFM_WA2.
WRITE 😕 AUFM_WA2-AUFNR.
ENDLOOP.
Regards,
Vara
‎2007 Feb 05 9:48 PM
Hi,
the problem could be with the internal table declaration.
Whenever you use SELECT ... INTO TABLE ....statement...make sure that the sequence of fields used in the select statement is same as the the sequence of fields in the internal table. If the sequence does not match, then the program gives a dump. To avoid this change the sequence of fields either in the internal table or in the select statement or use SELECT ... INTO CORRESPONDING FIELDS OF TABLE statement.
Regards,
Vara
‎2007 Feb 05 9:52 PM
Hi,
Please try this.
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS
FROM AUFM
INTO TABLE TYPE_AUFM
ORDER BY AUFNR.
LOOP AT TYPE_AUFM INTO AUFM_WA2.
READ TABLE TYPE_AUFM INDEX SY-TABIX.
WRITE :/ AUFM_WA2-AUFNR.
ENDLOOP.
Regards,
Ferry Lianto
‎2007 Feb 05 9:53 PM
Hi,
Check the changes in bold..
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS FROM AUFM INTO TYPE_AUFM WHERE AUFNR IN ORDER.
APPEND TYPE_AUFM.
ENDSELECT.
LOOP AT TYPE_AUFM INTO AUFM_WA2.
READ TABLE TYPE_AUFM INDEX SY-TABIX.
WRITE 😕 AUFM_WA2-AUFNR.
ENDLOOP.
<b>OR</b>
SELECT AUFNR BWART MATNR BUDAT WERKS LGORT MENGE MEINS FROM AUFM INTO TABLE TYPE_AUFM WHERE AUFNR IN ORDER.
LOOP AT TYPE_AUFM INTO AUFM_WA2.
READ TABLE TYPE_AUFM INDEX SY-TABIX.
WRITE 😕 AUFM_WA2-AUFNR.
ENDLOOP.
Thanks,
Naren