Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Regarding retriving data .

Former Member
0 Likes
1,137

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,

10 REPLIES 10
Read only

former_member70391
Contributor
0 Likes
1,112

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

Read only

Former Member
0 Likes
1,112

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

Read only

Former Member
0 Likes
1,112

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

Read only

Former Member
0 Likes
1,112

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.

Read only

Former Member
0 Likes
1,112

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.

Read only

0 Likes
1,112

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.

Read only

Former Member
0 Likes
1,112

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.

Read only

0 Likes
1,112

hi sir,

Still i have'nt getting data in to table it_ekpo.

regards..

Read only

Former Member
0 Likes
1,112

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.

Read only

Former Member
0 Likes
1,112

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.