Skip to Content
0
Former Member
Apr 20, 2009 at 12:02 PM

Problem with read statement

30 Views

Hi Expert,

As per my rquirement I need to display all corresponding ebeln for a particular matnr also

if any matnr have no ebeln also I need to display in O/P.

I succeded in fetching the records but my problem is in displaying it as in my O/P there one excess line for every record ( which is unwanted or duplicate ) now I want to clear it please advice.

Please have look on my below code and advice me.

SELECT MARA~MATNR MARA~MTART MARD~WERKS MARD~LABST MARD~INSME MARD~SPEME FROM MARA INNER JOIN MARD ON MARA~MATNR EQ MARD~MATNR
INTO CORRESPONDING FIELDS OF TABLE IT_MARA  WHERE MARA~MATNR IN MATNR AND MARD~WERKS IN WERKS.

LOOP AT IT_MARA.
    MOVE IT_MARA-MATNR TO IT_TAB-MATNR.
    MOVE IT_MARA-WERKS TO IT_TAB-WERKS.
    MOVE IT_MARA-LABST TO IT_TAB-LABST.
    MOVE IT_MARA-INSME TO IT_TAB-INSME.
    MOVE IT_MARA-SPEME TO IT_TAB-SPEME.
    COLLECT IT_TAB.
  ENDLOOP.

LOOP AT IT_TAB.
    MOVE-CORRESPONDING IT_TAB TO IT_FIRST.
    APPEND IT_FIRST.
  ENDLOOP.

IF NOT IT_FIRST IS INITIAL.
    SELECT * FROM EKPO INTO CORRESPONDING FIELDS OF TABLE IT_EKPO
       FOR ALL ENTRIES IN IT_FIRST WHERE MATNR EQ IT_FIRST-MATNR
       AND WERKS EQ IT_FIRST-WERKS AND PSTYP EQ '0' AND BSTYP EQ 'F'
       AND ELIKZ EQ ' ' AND LOEKZ NE 'L'.
  ENDIF.

For the below code I am facing trouble.

SORT IT_FIRST BY MATNR EBELN.
    LOOP AT IT_EKPO.
    READ TABLE IT_FIRST WITH KEY MATNR = IT_EKPO-MATNR
                                 WERKS = IT_EKPO-WERKS.
    IF SY-SUBRC = 0.
      MOVE IT_EKPO-EBELN TO IT_FIRST-EBELN.
      MOVE IT_EKPO-EBELP TO IT_FIRST-EBELP.
    ENDIF.
    APPEND IT_FIRST.
  ENDLOOP.

Thanks

Karthik