‎2007 Aug 14 10:12 AM
TABLES : LFA1,EKKO, EKPO.
DATA : BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
EBELN LIKE EKKO-EBELN,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
END OF JTAB.
DATA :BEGIN OF KTAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF KTAB.
DATA : BEGIN OF CTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF CTAB.
PARAMETER : P_EBELN LIKE EKKO-EBELN.
SELECT LIFNR EBELN FROM EKKO INTO TABLE ITAB WHERE EBELN = P_EBELN.
SELECT NAME1 LAND1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE JTAB FOR ALL ENTRIES IN ITAB WHERE LIFNR = ITAB-LIFNR.
SELECT ebeln MATNR MENGE NETWR FROM EKPO INTO CORRESPONDING FIELDS OF TABLE KTAB FOR ALL ENTRIES IN ITAB WHERE EBELN = ITAB-EBELN.
LOOP AT ITAB.
MOVE : ITAB-EBELN TO CTAB-EBELN,
ITAB-LIFNR TO CTAB-LIFNR.
READ TABLE JTAB WITH KEY LIFNR = ITAB-LIFNR BINARY SEARCH.
MOVE :
JTAB-LIFNR TO CTAB-LIFNR,
JTAB-NAME1 TO CTAB-NAME1,
JTAB-LAND1 TO CTAB-LAND1.
READ TABLE KTAB WITH KEY EBELN = ITAB-EBELN BINARY SEARCH.
MOVE : KTAB-MATNR TO CTAB-MATNR,
KTAB-MENGE TO CTAB-MENGE,
KTAB-NETWR TO CTAB-NETWR.
APPEND CTAB.
ENDLOOP.
LOOP AT CTAB.
WRITE : / CTAB-EBELN ,ctab-lifnr, ctab-name1, CTAB-MATNR, CTAB-MENGE, CTAB-NETWR.
ENDLOOP.
hi in this report i am not getting correct output, the thing correponding doc no having 3 values in ekpo and 1 value in lfa1.
but i am not geting name.
pls help.
‎2007 Aug 14 10:31 AM
‎2007 Aug 14 10:31 AM
‎2007 Aug 14 10:39 AM
You need to select LIFNR into internal table JTAB.
SELECT <b>LIFNR</b> NAME1 LAND1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE JTAB FOR ALL ENTRIES IN ITAB WHERE LIFNR = ITAB-LIFNR.
as there is no LIFNR, you read statement is failing, which is why you are not getting the right values.
READ TABLE jtab WITH KEY lifnr = itab-lifnr BINARY SEARCH.
Also I suggest, youc heck for Sy-SUBRC eq 0, after each Select and Read statement and move further only if SY-SUBRC eq 0.
‎2007 Aug 14 10:40 AM
Hi
your problem solved
if usefull reward me
TABLES : LFA1,EKKO, EKPO.
DATA : BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
EBELN LIKE EKKO-EBELN,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
END OF JTAB.
DATA :BEGIN OF KTAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF KTAB.
DATA : BEGIN OF CTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF CTAB.
PARAMETER : P_EBELN LIKE EKKO-EBELN.
SELECT LIFNR EBELN FROM EKKO INTO TABLE ITAB WHERE EBELN = P_EBELN.
SELECT LIFNR NAME1 LAND1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE JTAB FOR ALL ENTRIES IN ITAB WHERE LIFNR = ITAB-LIFNR.
SELECT ebeln MATNR MENGE NETWR FROM EKPO INTO CORRESPONDING FIELDS OF TABLE KTAB FOR ALL ENTRIES IN ITAB WHERE EBELN = ITAB-EBELN.
LOOP AT ITAB.
MOVE : ITAB-EBELN TO CTAB-EBELN,
ITAB-LIFNR TO CTAB-LIFNR.
READ TABLE JTAB WITH KEY LIFNR = ITAB-LIFNR.
MOVE :
JTAB-NAME1 TO CTAB-NAME1,
JTAB-LAND1 TO CTAB-LAND1.
READ TABLE KTAB WITH KEY EBELN = ITAB-EBELN.
MOVE : KTAB-MATNR TO CTAB-MATNR,
KTAB-MENGE TO CTAB-MENGE,
KTAB-NETWR TO CTAB-NETWR.
APPEND CTAB.
ENDLOOP.
LOOP AT CTAB.
WRITE : / CTAB-EBELN ,ctab-lifnr, ctab-name1, CTAB-MATNR, CTAB-MENGE, CTAB-NETWR.
ENDLOOP.
‎2007 Aug 14 10:42 AM
just check yhis out put ...
TABLES : LFA1,EKKO, EKPO.
DATA : BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
EBELN LIKE EKKO-EBELN,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
END OF JTAB.
DATA :BEGIN OF KTAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF KTAB.
DATA : BEGIN OF CTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF CTAB.
PARAMETER : P_EBELN LIKE EKKO-EBELN.
SELECT LIFNR EBELN FROM EKKO INTO TABLE ITAB WHERE EBELN = P_EBELN.
SELECT lifnr NAME1 LAND1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE JTAB FOR ALL ENTRIES IN ITAB WHERE LIFNR = ITAB-LIFNR.
SELECT ebeln MATNR MENGE NETWR FROM EKPO INTO CORRESPONDING FIELDS OF TABLE KTAB FOR ALL ENTRIES IN ITAB WHERE EBELN = ITAB-EBELN.
LOOP AT kTAB.
MOVE : KTAB-MATNR TO CTAB-MATNR,
KTAB-MENGE TO CTAB-MENGE,
KTAB-NETWR TO CTAB-NETWR.
READ TABLE iTAB WITH KEY EBELN = kTAB-EBELN.
MOVE : iTAB-EBELN TO CTAB-EBELN,
ITAB-LIFNR TO CTAB-LIFNR.
READ TABLE jTAB WITH KEY LIFNR = ITAB-LIFNR BINARY SEARCH.
MOVE :
* JTAB-LIFNR TO CTAB-LIFNR,
JTAB-NAME1 TO CTAB-NAME1,
JTAB-LAND1 TO CTAB-LAND1.
APPEND CTAB.
ENDLOOP.
LOOP AT CTAB.
WRITE : / CTAB-EBELN ,ctab-lifnr, ctab-name1, CTAB-MATNR, CTAB-MENGE, CTAB-NETWR.
ENDLOOP.
regards
shiba dutta
‎2007 Aug 14 10:44 AM
Hi Ali
check this one
TABLES : LFA1,EKKO, EKPO.
DATA : BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
EBELN LIKE EKKO-EBELN,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
END OF JTAB.
DATA :BEGIN OF KTAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF KTAB.
DATA : BEGIN OF CTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF CTAB.
PARAMETER : P_EBELN LIKE EKKO-EBELN.
SELECT LIFNR EBELN FROM EKKO INTO TABLE ITAB WHERE EBELN = P_EBELN.
if ITAB[] is not initail.
SELECT NAME1 LAND1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE JTAB FOR ALL ENTRIES IN ITAB WHERE LIFNR = ITAB-LIFNR.
SELECT ebeln MATNR MENGE NETWR FROM EKPO INTO CORRESPONDING FIELDS OF TABLE KTAB FOR ALL ENTRIES IN ITAB WHERE EBELN = ITAB-EBELN.
endif.
LOOP AT ITAB.
MOVE : ITAB-EBELN TO CTAB-EBELN,
ITAB-LIFNR TO CTAB-LIFNR.
READ TABLE JTAB WITH KEY LIFNR = ITAB-LIFNR BINARY SEARCH.
MOVE :
JTAB-LIFNR TO CTAB-LIFNR,
JTAB-NAME1 TO CTAB-NAME1,
JTAB-LAND1 TO CTAB-LAND1.
READ TABLE KTAB WITH KEY EBELN = ITAB-EBELN BINARY SEARCH.
MOVE : KTAB-MATNR TO CTAB-MATNR,
KTAB-MENGE TO CTAB-MENGE,
KTAB-NETWR TO CTAB-NETWR.
APPEND CTAB.
ENDLOOP.
LOOP AT CTAB.
WRITE : / CTAB-EBELN ,ctab-lifnr, ctab-name1, CTAB-MATNR, CTAB-MENGE, CTAB-NETWR.
ENDLOOP.
reward points to all helpful answers
kiran.M
‎2007 Aug 14 10:48 AM
Hi
what happend ur problem not solved at
whats the problem
TABLES : LFA1,EKKO, EKPO.
DATA : BEGIN OF ITAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
EBELN LIKE EKKO-EBELN,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
END OF JTAB.
DATA :BEGIN OF KTAB OCCURS 0,
EBELN LIKE EKPO-EBELN,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF KTAB.
DATA : BEGIN OF CTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
LAND1 LIKE LFA1-LAND1,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
NETWR LIKE EKPO-NETWR,
END OF CTAB.
PARAMETER : P_EBELN LIKE EKKO-EBELN.
SELECT LIFNR EBELN FROM EKKO INTO TABLE ITAB WHERE EBELN = P_EBELN.
SELECT LIFNR NAME1 LAND1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE JTAB FOR ALL ENTRIES IN ITAB WHERE LIFNR = ITAB-LIFNR.
SELECT ebeln MATNR MENGE NETWR FROM EKPO INTO CORRESPONDING FIELDS OF TABLE KTAB FOR ALL ENTRIES IN ITAB WHERE EBELN = ITAB-EBELN.
LOOP AT ITAB.
MOVE : ITAB-EBELN TO CTAB-EBELN,
ITAB-LIFNR TO CTAB-LIFNR.
READ TABLE JTAB WITH KEY LIFNR = ITAB-LIFNR.
MOVE :
JTAB-NAME1 TO CTAB-NAME1,
JTAB-LAND1 TO CTAB-LAND1.
READ TABLE KTAB WITH KEY EBELN = ITAB-EBELN.
MOVE : KTAB-MATNR TO CTAB-MATNR,
KTAB-MENGE TO CTAB-MENGE,
KTAB-NETWR TO CTAB-NETWR.
APPEND CTAB.
ENDLOOP.
LOOP AT CTAB.
WRITE : / CTAB-EBELN ,ctab-lifnr, ctab-name1, CTAB-MATNR, CTAB-MENGE, CTAB-NETWR.
ENDLOOP.