Skip to Content
author's profile photo Former Member
Former Member

ME_READ_CHANGES_EINKBELEG

I am using the FM ME_READ_CHANGES_EINKBELEG to read the changes done in PO. but it is not showing all the changes done in PO for a particular Date.

I am passing the PO No. and UDATE in the FM.

whereas when we see the PO thru ME23N, and see the changes thru Environment and Item Changes all the changes done in particular date are shown but when i am using th FM ME_READ_CHANGES_EINKBELEG its not showing some values....what can be the reason????

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Oct 01, 2007 at 08:48 AM

    Hi,

    I had also faced the same problem...

    use the following piece of code...it will work..

    TYPES: BEGIN OF ty_chg_texts,

    ebeln TYPE ekpo-ebeln, "Purchase Order number

    ebelp TYPE ekpo-ebelp, "Line item number

    ctxnr TYPE t166t-ctxnr, "Text number for change text

    chtxt TYPE t166t-chtxt, "Description of Changed Field in Printout

    f_old TYPE cdshw-f_old, "Old value

    f_new TYPE cdshw-f_new, "New/changed value

    END OF ty_chg_texts.

    TYPES: BEGIN OF ty_meein_xaend.

    INCLUDE STRUCTURE cdshw.

    TYPES:

    ebelp LIKE ekpo-ebelp, "PO number

    zekkn LIKE ekkn-zekkn, "Sequential Number of Account Assignment

    etenr LIKE eket-etenr, "Delivery Schedule Line Counter

    ctxnr LIKE t166c-ctxnr, "Text number for change text

    rounr LIKE t166c-rounr, "Routing number

    insert,

    flag_adrnr,

    END OF ty_meein_xaend.

    TYPES ty_meein_xaend_tab

    TYPE STANDARD TABLE OF ty_meein_xaend

    DATA: IT_PEKPO TYPE STANDARD TABLE OF PEKPO.

    DATA: is_ekko TYPE EKKO,

    GT_CHG_TEXTS type standard table of TY_CHG_TEXTS.

    DATA:

    lt_xaend TYPE STANDARD TABLE OF ty_meein_xaend,

    ls_xaend TYPE ty_meein_xaend,

    ls_chg_texts TYPE ty_chg_texts.

    CALL FUNCTION 'ME_READ_CHANGES_EINKBELEG'

    EXPORTING

    document = is_ekko

    date_of_change = pass the date

    time_of_change = pass the time(if needed)

    print_operation = '2'

    TABLES

    xekpo = it_ekpo

    xaend = lt_xaend.

    DATA ls_ekpo TYPE ekpo.

    DATA ls_pekpo TYPE pekpo.

    *----


    Check if this loop is needed(i dont think it is reqd...but still)--

    LOOP AT it_ekpo INTO ls_ekpo.

    READ TABLE it_pekpo

    INTO ls_pekpo

    WITH KEY ebelp = ls_ekpo-ebelp.

    **********THIS PERFORM IS WRITTEN BELOW(CHECK BELOW)

    PERFORM ergaenzen_xaend

    USING ls_ekpo

    ls_pekpo

    is_ekko

    CHANGING lt_xaend.

    ENDLOOP.

    *----


    end (i dont think it is reqd...but still)----

    -


    ls_chg_texts-ebeln = is_ekko-ebeln.

    LOOP AT lt_xaend INTO ls_xaend

    WHERE ctxnr <> ' '.

    IF ls_xaend-fname = 'LOEKZ' AND ls_xaend-f_new = 'L' AND

    control_parameters-preview <> 'X' .

    SELECT SINGLE * INTO wa_ekpo FROM ekpo

    WHERE ebeln = is_ekko-ebeln AND

    ebelp = ls_xaend-ebelp.

    IF sy-subrc = 0.

    APPEND wa_ekpo TO it_ekpo.

    CLEAR wa_ekpo .

    ENDIF.

    ENDIF.

    ls_chg_texts-ebelp = ls_xaend-ebelp.

    ls_chg_texts-ctxnr = ls_xaend-ctxnr.

    ls_chg_texts-f_old = ls_xaend-f_old.

    ls_chg_texts-f_new = ls_xaend-f_new.

    SELECT SINGLE chtxt FROM t166t INTO ls_chg_texts-chtxt

    WHERE spras = gv_language AND ctxnr = ls_xaend-ctxnr.

    APPEND ls_chg_texts TO gt_chg_texts.

    ENDLOOP.

    SORT gt_chg_texts BY ebeln ebelp chtxt.

    DELETE ADJACENT DUPLICATES FROM gt_chg_texts

    COMPARING ebeln ebelp chtxt.

    SORT gt_chg_texts BY ebeln ebelp ctxnr.

    SORT it_ekpo BY ebeln ebelp.

    DELETE ADJACENT DUPLICATES FROM it_ekpo

    COMPARING ebelp.

    SORT it_ekpo BY ebeln ebelp.

    ENDIF.

    *&----


    *

    *& Form ERGAENZEN_XAEND

    *&----


    *

    *----


    *

    FORM ergaenzen_xaend

    USING is_ekpo TYPE ekpo

    is_pekpo TYPE pekpo

    is_ekko TYPE ekko

    CHANGING ct_xaend TYPE ty_meein_xaend_tab.

    DATA lv_insert.

    DATA lv_h_ind LIKE sy-tabix.

    DATA ls_xaend TYPE ty_meein_xaend.

    LOOP AT ct_xaend INTO ls_xaend WHERE ebelp EQ is_pekpo-ebelp.

    lv_h_ind = sy-tabix.

    " Sonderbearbeitung -

    -


    " neue Position -

    -


    IF ls_xaend-insert NE space.

    lv_insert = 'X'.

    ls_xaend-text_case = 'X'.

    MODIFY ct_xaend FROM ls_xaend.

    EXIT.

    ENDIF.

    CHECK ls_xaend-rounr NE 0.

    CASE ls_xaend-rounr.

    " Einteilungsaenderung -

    -


    WHEN 1.

    IF is_pekpo-eindt NE 0.

    ls_xaend-ctxnr = 'S1-1'.

    ELSE.

    ls_xaend-ctxnr = 'S1-2'.

    ENDIF.

    " Zielmenge/Anfragemenge -

    -


    WHEN 2.

    IF is_ekko-bstyp EQ 'A'.

    ls_xaend-ctxnr = 'S2-A'.

    ELSE.

    ls_xaend-ctxnr = 'S2-R'.

    ENDIF.

    " Loeschkennzeichen -

    -


    WHEN 3.

    CASE is_ekpo-loekz.

    WHEN 'L'.

    ls_xaend-ctxnr = 'S3-L'.

    WHEN 'S'.

    ls_xaend-ctxnr = 'S3-S'.

    WHEN ' '.

    ls_xaend-ctxnr = 'S3-X'.

    ENDCASE.

    ENDCASE.

    MODIFY ct_xaend FROM ls_xaend INDEX lv_h_ind.

    ENDLOOP.

    IF sy-subrc EQ 0 AND NOT is_ekpo-uebpo IS INITIAL.

    READ TABLE ct_xaend WITH KEY ebelp = is_ekpo-uebpo

    BINARY SEARCH TRANSPORTING NO FIELDS.

    IF sy-subrc NE 0.

    CLEAR ls_xaend.

    ls_xaend-ebelp = is_ekpo-uebpo.

    INSERT ls_xaend INTO ct_xaend INDEX sy-tabix.

    ENDIF.

    ENDIF.

    " bei neuer Position keine anderen Änderungen drucken --

    IF lv_insert NE space.

    LOOP AT ct_xaend INTO ls_xaend

    WHERE ebelp EQ is_pekpo-ebelp

    AND insert EQ space.

    DELETE ct_xaend.

    ENDLOOP.

    ENDIF.

    ENDFORM. "ERGAENZEN_XAEND

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member

      I advise to have a look at the customising first: DB Table T166C Print-Relevant Purchasing Document Changes:

      TRx SPRO

      Materials Management => Purchasing => Messages => Fields
      Relevant to Printouts of Changes

      • IMG Activity: CFMENUOLMEOMFS_A

      The XAEND[ ] has than the changes for the fields customised for it.

      However the returned language is NOT necesarily the one of the EKKO entry.

      Especially a problem for the Old-New value Unit.

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.