‎2008 Jul 15 11:33 AM
hai experts,
we r unable to retrieving data from below code.
REPORT ZMM_PO.
TABLES : EKKO , EKPO , EKBE.
DATA : BEGIN OF IT_EKKO OCCURS 0,
EBELN LIKE EKKO-EBELN, "PURCH. DOC. NOR
EKORG LIKE EKKO-EKORG, "PURCH. ORGANIZATION
AEDAT LIKE EKKO-AEDAT, "Date on which the record was created
END OF IT_EKKO.
DATA : BEGIN OF IT_EKPO OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP, "Item Number of Purchasing Document
ELIKZ LIKE EKPO-ELIKZ, "Delivery Completed" Indicator
WERKS LIKE EKPO-WERKS, "plant
MENGE LIKE EKPO-MENGE, "Target quantity
END OF IT_EKPO.
DATA : BEGIN OF IT_EKBE OCCURS 0,
EBELN LIKE EKBE-EBELN,
EBELP LIKE EKBE-EBELP,
BWART LIKE EKBE-BWART, "Movement type
MENGE LIKE EKBE-MENGE, "quantity
END OF IT_EKBE.
DATA : BEGIN OF IT_OUTPUT OCCURS 0,
WERKS LIKE EKPO-WERKS,
EKORG LIKE EKKO-EKORG,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
END OF IT_OUTPUT.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : PLANT FOR EKPO-WERKS,
PUR_ORG FOR EKKO-EKORG,
PO_DATE FOR EKKO-AEDAT.
SELECTION-SCREEN : END OF BLOCK B1.
CLEAR IT_EKKO.
CLEAR IT_EKPO.
CLEAR IT_EKBE.
CLEAR IT_OUTPUT.
SELECT EBELN EKORG AEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE
IT_EKKO
WHERE EBELN = EKKO-EBELN ."AND EKORG IN PUR_ORG AND AEDAT IN PO_DATE.
*WRITE : IT_EKKO-EBELN.
SELECT EBELN EBELP ELIKZ WERKS MENGE FROM EKPO INTO TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN = IT_EKKO-EBELN AND WERKS IN
PLANT AND ELIKZ = 'X'.
SELECT EBELN EBELP BWART MENGE FROM EKBE INTO TABLE IT_EKBE
FOR ALL ENTRIES IN IT_EKPO WHERE EBELN = IT_EKPO-EBELN AND MENGE =
EKPO-MENGE AND BWART = '101'.
LOOP AT IT_EKKO.
READ TABLE IT_EKKO WITH KEY EBELN = IT_EKKO-EBELN.
IT_EKKO-EBELN = IT_OUTPUT-EBELN.
IT_EKKO-EKORG = IT_OUTPUT-EKORG.
APPEND IT_OUTPUT.
READ TABLE IT_EKPO WITH KEY EBELN = IT_EKPO-EBELN.
IT_EKPO-WERKS = IT_OUTPUT-WERKS.
IT_EKPO-EBELP = IT_OUTPUT-EBELP.
APPEND IT_OUTPUT.
ENDLOOP.
WRITE : / IT_OUTPUT-WERKS ,IT_OUTPUT-EKORG , IT_OUTPUT-EBELN ,
IT_OUTPUT-EBELP.
regards,
‎2008 Jul 15 11:38 AM
Hi,
In the below code you are fetching data fro IT_EKPO where there is no loop statement.
LOOP AT IT_EKKO.
READ TABLE IT_EKKO WITH KEY EBELN = IT_EKKO-EBELN.
IT_EKKO-EBELN = IT_OUTPUT-EBELN.
IT_EKKO-EKORG = IT_OUTPUT-EKORG.
APPEND IT_OUTPUT.
I removed IT_EKPO-VBEKN to IT-EKPO-VBELN
READ TABLE IT_EKPO WITH KEY EBELN = IT_EKKO-EBELN.
IT_EKPO-WERKS = IT_OUTPUT-WERKS.
IT_EKPO-EBELP = IT_OUTPUT-EBELP.
APPEND IT_OUTPUT.
ENDLOOP.
Hope it helps.
Thanks & Regards,
Nagaraj Kalbavi
‎2008 Jul 15 11:38 AM
HI Check your select stmt.
ELECT EBELN EKORG AEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE
IT_EKKO
WHERE EBELN = EKKO-EBELN
when the control reaches this point there are no values in EKKO-EBELN.
Regards,
Kiran
‎2008 Jul 15 11:39 AM
hi check this..
the problem is with the where condition
SELECT EBELN
EKORG
AEDAT
FROM EKKO
INTO CORRESPONDING FIELDS OF TABLE IT_EKKO
WHERE EBELN = EKKO-EBELN
‎2008 Jul 15 11:48 AM
Hi Kumaraswamy,
1.Following SQL Statements wont work because u are not giving correct input in WHERE Conditions.
SELECT EBELN EKORG AEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE
IT_EKKO
WHERE EBELN = EKKO-EBELN ." Here
2. So it_ekko has no values, next SQL Statement also will not work.
SELECT EBELN EBELP ELIKZ WERKS MENGE FROM EKPO INTO TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN = IT_EKKO-EBELN
3.Use LOOP Statement before using write statement.
Hope it helps.
Regards,
T.Durai murugan.
‎2008 Jul 15 11:53 AM
Hi in ur select statement no values in ekko-ebeln.
try this code...
SELECT EBELN EKORG AEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE IT_EKKO
WHERE EKORG IN PUR_ORG
AND AEDAT IN PO_DATE.
‎2008 Jul 15 1:20 PM
hi thanks for reply..
but still my 2ns select query is not fetching data .
I modified code plz check it.
SELECT EBELN EKORG AEDAT
FROM EKKO INTO corresponding fields of TABLE IT_EKKO
WHERE EKORG IN PUR_ORG AND AEDAT IN PO_DATE.
*loop at it_ekko.
*write : / it_ekko-ebeln.
*endloop.
SELECT EBELN EBELP ELIKZ WERKS MENGE FROM EKPO INTO corresponding
fields of TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN = IT_EKKO-EBELN AND WERKS IN
PLANT AND ELIKZ = 'X'.
loop at it_ekko.
write : / it_ekpo-ebeln , it_ekpo-EBELP,it_ekpo-ELIKZ.
endloop.
SELECT EBELN EBELP BWART MENGE FROM EKBE INTO corresponding fields of
TABLE IT_EKBE
FOR ALL ENTRIES IN IT_EKPO WHERE EBELN = IT_EKPO-EBELN AND MENGE =
EKPO-MENGE AND BWART = '101'.
LOOP AT IT_EKKO.
READ TABLE IT_EKKO WITH KEY EBELN = IT_EKKO-EBELN.
IT_EKKO-EBELN = IT_OUTPUT-EBELN.
IT_EKKO-EKORG = IT_OUTPUT-EKORG.
APPEND IT_OUTPUT.
READ TABLE IT_EKPO WITH KEY EBELN = IT_EKkO-EBELN.
IT_EKPO-WERKS = IT_OUTPUT-WERKS.
IT_EKPO-EBELP = IT_OUTPUT-EBELP.
APPEND IT_OUTPUT.
ENDLOOP.
*
loop at it_output.
WRITE : / IT_OUTPUT-WERKS ,IT_OUTPUT-EKORG , IT_OUTPUT-EBELN ,
IT_OUTPUT-EBELP.
endloop.
‎2008 Jul 15 1:30 PM
hi,
i have made changes and displayed as bold.
SELECT EBELN EKORG AEDAT
FROM EKKO INTO corresponding fields of TABLE IT_EKKO
WHERE EKORG IN PUR_ORG AND AEDAT IN PO_DATE.
*loop at it_ekko.
*write : / it_ekko-ebeln.
*endloop.
if it_ekko[ ] is not initial.
SELECT EBELN EBELP ELIKZ WERKS MENGE FROM EKPO INTO corresponding
fields of TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN = IT_EKKO-EBELN AND WERKS IN
PLANT AND ELIKZ = 'X'.
if sy-subrc = 0.
endif.
endif.
loop at it_ekko.
write : / it_ekpo-ebeln , it_ekpo-EBELP,it_ekpo-ELIKZ.
endloop.
if it_ekbe [[] is not initial.
SELECT EBELN EBELP BWART MENGE FROM EKBE INTO corresponding fields of
TABLE IT_EKBE
FOR ALL ENTRIES IN IT_EKPO WHERE EBELN = IT_EKPO-EBELN AND MENGE =
it_EKPO-MENGE AND BWART = '101'.
endif.LOOP AT IT_EKKO.
READ TABLE IT_EKKO WITH KEY EBELN = IT_EKKO-EBELN.
IT_OUTPUT-EBELN = IT_EKKO-EBELN .
IT_OUTPUT-EKORG = IT_EKKO-EKORG .
APPEND IT_OUTPUT.
READ TABLE IT_EKPO WITH KEY EBELN = IT_EKkO-EBELN.
IT_EKPO-WERKS = IT_OUTPUT-WERKS.
IT_EKPO-EBELP = IT_OUTPUT-EBELP.
APPEND IT_OUTPUT.
ENDLOOP.
*
loop at it_output.
WRITE : / IT_OUTPUT-WERKS ,IT_OUTPUT-EKORG , IT_OUTPUT-EBELN ,
IT_OUTPUT-EBELP.
endloop.
‎2008 Jul 15 1:44 PM
hi sir,
Still i have'nt getting data in to table it_ekpo.
regards..
‎2008 Jul 15 1:40 PM
Hi Kumaraswamy,
Refer this Code also, it will help u,,,
LOOP AT IT_EKKO.
READ TABLE IT_EKKO WITH KEY EBELN = IT_EKKO-EBELN.
if sy-subrc = 0.
MOVE : IT_EKKO-EBELN TO IT_OUTPUT-EBELN,
IT_EKKO-EKORG TO IT_OUTPUT-EKORG.
APPEND IT_OUTPUT.
Endif.
READ TABLE IT_EKPO WITH KEY EBELN = IT_EKkO-EBELN.
if sy-subrc = 0.
Move : IT_EKPO-WERKS to IT_OUTPUT-WERKS,
IT_EKPO-EBELP to IT_OUTPUT-EBELP.
APPEND IT_OUTPUT.
Endif.
ENDLOOP.
Regards,
T.Durai murugan.
‎2008 Jul 15 1:52 PM
hi,
i am sorry i have noticed it.
once u get data into it_ekpo.
the stmt u given is
loop at it_ekko.//change this
write : / it_ekpo-ebeln , it_ekpo-EBELP,it_ekpo-ELIKZ.
endloop.
but here u have to loop at it_ekpo not ekko.
now u will get the data.
otherwise debug the program and see whether sy-subrc = 0 when the select stmt is executed..
and also check data is available in tables.