Change Log for Purchase Order

Dear all,
Just today, we've found out that one of our buyers always change the PO quantity when the supplier deliver more than they should.
Before we do something like lock her access or even remove her from current position, we'd like to know how often and how much is the impact of her actions.
We know that we can see the changes from the change log for every single PO; but if we want to know the changes from several hundreds PO ... looking at the log one by one may not a good idea .. LOL ..
Do you have any experience with this or any idea on where (the tables) I can take a look ?
Thanks,
Markus

Hi Markus,
The details of  the 'Show History' function, for the  Purcahse Order, is contained in the ADOC (header information) and the AD01 (Row information). These two tables contain the exact same information as the OPOR and POR1 (Purchase Order header and row tables).  However, the history of all marketing documents in the database is saved in this table so there is a need to filter this table based on the Purchase Order documents only.
What I would suggest is to create a query based on the ADOC and ADO1 and filter it based on the field 'ObjType' (Field Name is 'Object type'). The object type for the Purchase Order is '22'. As each update to a document is saved in the table there is a need to distinguish each version of the document. This is done with the 'Loginstanc' field in the both the ADOC and the ADO1, so this may help you with the query. After that the query can be filtered for any field that is visible in the Purchase Orders.
There are other childeren tables of the ADOC which you may need. To find these, when in the Query Generator, open the 'Choose from List' to obtain the list of tables. Then in the 'Find' field type the letters 'ADO' this will bring all the tables starting with 'ADO' to the top of the list.
One final thing, each update to a document is recorded to a usersign. Obtain the user sign of the user in question by running a query on the OUSR table and look at the figure in the field 'Internal_K' for that user. This is the number that will then be visible in the field 'UserSign' in the ADOC table.
I hope this helps
Noreen

Similar Messages

  • How to implement Change pointers for Purchase order - ME22N - Custom Fields

    Hi Experts,
    Can you please tell me how to implement - Change Pointer for Custom fields in IDOC.
    I am working on IDOC - For purchase order - acknowledgements - in custom screen/tab in ME22N.
    Everything is working fine according to my requirement.
    All i need to know is the process of - Creating/Change - Change pointers for Custom fields.
    1.How to implement change pointers for custom fields.
    2.Can we maintain - Change Document - for custom fields at data element level?
    P.S. - I have browsed many previous - forums before posting a new discussion.
    please share your inputs...
    explaining how to create/implement - change pointers for custom fields will help me .
    Regards,
    Karthik Rali.

    Hi,
    To maintain Change Document for custom field:
    1. Check if "Change document" checkbox is set in data element.
    2. Find Change Document Object for transaction.
       You can use SQL trace - ST05.
       Look there for line with table CDHDR and statement insert values
       (for example for transaction KA02 Change Document Object is KSTAR)
    3. Regenerate update program for this Change Document Object in transaction SCDO
    Change documents for z-fields schould be generated.
    I am not sure about change pointers but they are configured somehow in BD61 and BD50.

  • Creating change log for sales order

    hi all,
    i want to create change log for any given sales order if it exists.
    can any one tell me how to do that??

    Hi Gouri,
    CDHDR and CDPOS are the tables for all change history.
    CDHDR contains the details such as who made the change, when, using what tcode and the change type ie. update, delete.
    CDPOS contains the field name which was changed, its old value and its new value.
    The change document object is VERKBELEG for sales documents.
    The object value is the SD document number with leading zeros.
    The following link will be also useful.
    http://www.sap-img.com/ab024.htm
    Regards,
    Nitin.

  • Activate Change Pointers for Purchase Orders

    I thought that change pointers would be active by default for purchase orders, but when I change a purchase order field that should be change pointer enabled, nothing is written in table BDCP.
    Here's what I have done:
    1) Used transaction SCDO to look at the change Documents.
    2) Identified object EINKBELEG (Purchasing Document) as the likely object.
    3) Verified that table EKKO is one of the tables in the object.
    4) Verified that the data element of the field that I am changing in the PO - ZBD2T - is change pointer enabled (it is).
    I cannot get any entry created in BDCP with these settings; change pointers are working for other documents.
    I also put a breakpoint on the sebugger for the function module EINKBELEG_WRITE_DOCUMENT in the update task, and I cannot see it being triggered, so I am wondering if I am doing the correct thing here.
    Can somebody please tell me what I am doing wrong?
    BR,
    Tony.

    Hi Guys,
    This issue was solved by implementing the BTE 4005 (OPEN_FI_PERFORM_00004005_E). This particular event is triggered in the update task for saving changes to business object. So In my function module (corresponding to BTE), I have explicitly called the method to write an entry in COM_SE_CPOINTER, because we just need the reference of business object for which classification data is changed.
    Please refer the below code for more clarity.
    BTE position: -
    method called in FM to write change pointer.
    Thanks anyways, for all the responses.
    Cheers,
    Shreya

  • Change Document - for purchase order

    Hi all,
    when i make some changes in the purchase order(ME22N) it is stored in the table CDPOS but when i change the delivery address field this alone is not stored. what may be the reason? and how to do it?
    can anyone help me in this?
    helpfull answers will be rewarded with points..
    Thanks,
    Murali.

    Saquib,
    No, this is not directly linked to the customer or vendor master. What happens is, during PO creation the delivery address is picked up from the address of the plant, but that can be updated via both BAPI and transaction.Each time this address gets changed, SAP generates a new ADRNR and store that address in ADRC.
    This might help you in future in case you face such situation. I faced this only a few months and that's why I remeber this so clearly.
    Murali,
    Please award points and close the thread if it helped you.

  • Change Pricing for purchase order

    Hello All,
    FOR STO deliveries, we want to aportionate freight charges in case of multiple POs. Our inbound idoc sends only one order and calls BAPI_PO_CHANGE.
    we are trying to update Pricing condition of other related purchase orders belonging to same delivery in a user exit. User exit is SAPL2012. Is there any function module to update Pricing conditions for purchase orders?
    BAPI_PO_CHANGE would not work here as this userexit is called in this BAPI.
    Any suggestion?

    Any suggestiions?

  • Change docs for purchase order

    Hi,
    By which t.code we can see the chnage document for the purchase order. and which changes have been done?
    Regards
    Deepak Sharma

    Hi,
    You can check it in me22n or me23n itself.
    Goto Environment -> Header Changes or Item Changes.
    Rgds,

  • Change Log for Production Order

    Hello Gurus,
    I have a requirement where the production order scheduled finish date should not be changed in the BW reporting though it changes in the R/3.
    For the same. I need to know if there is any way i can get to know if there were any changes to the scheduled finish date (GLTRS). I checked the CDPOS and CDHDR, but did not find any entries for these changes..
    Please let me know if you have any details on where the change documents history would be maintained.
    Best Regards
    Avinash

    Please check the Order and Click on the Status, then go to extras and check the change documents for all.
    this will display all the changes against the order, with dates and user names.
    From this try to get the report developed.
    Or get the status of Order status from JEST table.
    Hope this helps you.

  • Change log for Internal Orders

    Hi Guys,
    I need to know history of changes made to an order group (adding/deleting orders within) made by different users. Is there a way to find out? any T-codes or any backend tables?
    Thanks.

    Got it myself guys.
    KOH3 -> select the order -> GOTO->ChangeDocuments

  • How to see the changed output for purchase order

    Hi..
    I have zmedruck. i need to increse item text lengh. i done this in editor. how to see the changed output now...I increased the length of text to be displayed. I checked the print preview in me23n. i cant see the increased length. Guide me where i am wrong.
    Edited by: Meena 303 on May 1, 2008 6:24 PM

    Hi
      In ME22N go to message -
    > select old message -
    >click change OutPut button -
    > Save
    then see print priview  through ME9F or ME22N it sself.
    regards
    Sachin

  • Change logs for Order

    How to capture the change logs for the order.

    Use CO03 transaction to display the production order.
    Click on the i adjacent to the status, use menu path Extras --> Change documents
    which will display if the change management is active.
    Hope this helps you.

  • Tcode for Purchase order Changes

    Hello Expert
    I Know there is one Tcode from which we could find changes happen in Purchase order at item level . Can any one let me know on the same which Tcode.
    I know the regular option by selecting the line item Environment->Item changes
    thanks
    Abhi

    Hi,
    You have to develope an own ABAP report for this, based on the change tables CDHDR and CDPOS
    CDHDR - Header Change
    CDPOS - Item Change
    EREV - Version Change
    Go to SE11 / SE16 / SE16N, here enter Object value as "PO No" in Table CDHDR and get the Document No and then input this in CDPOS and get the changes details. You can also enter EKKO and EKPO tables and see the whole list.
    Check the link
    Purchase order change log
    SAM
    Edited by: Saminathan Gopalan on Jun 3, 2010 12:35 PM
    Edited by: Saminathan Gopalan on Jun 3, 2010 12:37 PM

  • Processing log output for Purchase order

    Dear All,
    Iam getting some problem when iam creating an IDOC and checking in the Processing log for IDOC number.
    Actually i had created one custom idoc for Purchase order since my client need only some field and in one line for header and line item, I had done it and i can see it in sdata of EDIDD structure. When i create a Purchase order and save it an idoc number is posting and I can see this file in my physical directory indeed.
    Now when iam going into change mode of PO ME22n to see the Processing LOG, It is not showing the IDOC Number in Purchase order output processing log popup.

    The processing log will only show output based standard output control (Table NAST).
    How is your IDoc being created. Via a user exit, BADI. If so then they will not appear on the processing log.
    It is being created as a custom IDOC for which i had written a Z function module and given that in PO processing code which is ME10. When iam checking the standard IDOC for PO it is generating the IDOC in processing log as well.
    Iam just placing my code just have a look at it and suggest if any thing needs to be done.
    FUNCTION Z_IDOC_OUTPUT_ORDERS.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(OBJECT) LIKE  NAST STRUCTURE  NAST
    *"     VALUE(CONTROL_RECORD_IN) LIKE  EDIDC STRUCTURE  EDIDC
    *"  EXPORTING
    *"     VALUE(OBJECT_TYPE) LIKE  WFAS1-ASGTP
    *"     VALUE(CONTROL_RECORD_OUT) LIKE  EDIDC STRUCTURE  EDIDC
    *"  TABLES
    *"      INT_EDIDD STRUCTURE  EDIDD
    *"  EXCEPTIONS
    *"      ERROR_MESSAGE_RECEIVED
    *"      DATA_NOT_RELEVANT_FOR_SENDING
    DATA: xdruvo.                          "Druckvorgang
    DATA: neu  VALUE '1',                  "Neudruck
          h_kappl LIKE nast-kappl,         "Hilfsfeld Applikation
          h_parvw LIKE ekpa-parvw,         "Hilfsfeld Partnerrolle
          h_ebeln LIKE ekko-ebeln.         "Hilfsfeld Belegnummer
      CLEAR control_record_out.
       xdruvo = neu.
      h_kappl = object-kappl.
      h_ebeln = object-objky.
      h_parvw = object-parvw.
      DATA:
           LT_EDIDC LIKE EDIDC OCCURS 0 WITH HEADER LINE,
             L_EDIDC LIKE EDIDC,
             L_SEND_FLAG,
             W_SDATA LIKE EDIDD-SDATA.
      DATA: T_BDI_MODEL LIKE BDI_MODEL OCCURS 0 WITH HEADER LINE.
      DATA: T_EDIDC LIKE EDIDC OCCURS 0 WITH HEADER LINE.
      DATA: T_EDIDD LIKE EDIDD OCCURS 0 WITH HEADER LINE.
      DATA: C_MESSAGE_TYPE LIKE EDIDC-MESTYP VALUE 'ZORDER'.
    *- Call function module to determine if message is to be distributed
    OBJECT_TYPE = 'BUS2012'.
      MOVE control_record_in TO control_record_out.
      CALL FUNCTION 'ALE_MODEL_DETERMINE_IF_TO_SEND'
        EXPORTING
          MESSAGE_TYPE           = C_MESSAGE_TYPE
        IMPORTING
          IDOC_MUST_BE_SENT      = L_SEND_FLAG.
       EXCEPTIONS
         OWN_SYSTEM_NOT_DEFINED = 1
         OTHERS                 = 2.
      DATA : BEGIN OF EKKO_tAB OCCURS 0,
      EBELN LIKE EKKO-EBELN,
      F1 TYPE C VALUE ',',
      BUKRS LIKE EKKO-BUKRS,
      F2 TYPE C VALUE ',',
      BSART LIKE EKKO-BSART,
      F3 TYPE C VALUE ',',
      LIFNR LIKE EKKO-LIFNR,
      F4 TYPE C VALUE ',',
      WAERS LIKE EKKO-WAERS,
      F5 TYPE C VALUE ',',
      BEDAT LIKE EKKO-BEDAT,
      F6 TYPE C VALUE ',',
      WERKS LIKE EKPO-WERKS,
      F7 TYPE C VALUE ',',
      PLIFZ LIKE EKPO-PLIFZ,
      F8 TYPE C VALUE ',',
      EBELP LIKE EKPO-EBELP,
      F9 TYPE C VALUE ',',
      MATNR LIKE EKPO-MATNR,
      F10 TYPE C VALUE ',',
      MENGE LIKE EKPO-MENGE,
      F11 TYPE C VALUE ',',
      MEINS LIKE EKPO-MEINS,
      F12 TYPE C VALUE ',',
      END OF EKKO_TAB.
      DATA SDATA1 LIKE EKKO_tAB OCCURS 0 WITH HEADER LINE.
      DATA EBELN LIKE EKKO-EBELN.
      WRITE OBJECT-OBJKY TO EBELN.
      SELECT T1EBELN T1BUKRS BSART LIFNR WAERS BEDAT  WERKS PLIFZ EBELP MATNR MENGE MEINS
      FROM EKKO AS T1
      INNER JOIN EKPO AS T2 ON T2EBELN = t1EBELN
      INTO CORRESPONDING FIELDS OF TABLE EKKO_tAB
      WHERE
    *T1~KAPPL = 'EF' AND
      T1~EBELN = EBELN.
    *T1~KSCHL = 'YEDI' .
      DATA SDATA LIKE EDIDD-SDATA.
      DATA NDATE LIKE SY-DATUM.
      DATA NMENGE(17) TYPE C.
      LOOP AT EKKO_tAB.
        WRITE EKKO_TAB-MENGE TO NMENGE.
        NDATE = EKKO_tAB-BEDAT + EKKO_tAB-PLIFZ.
        CONCATENATE  EKKO_tAB-EBELP ',' EKKO_tAB-BUKRS ',' EKKO_tAB-BSART EKKO_tAB-EBELN ',' EKKO_tAB-LIFNR ',' EKKO_tAB-BEDAT ','
        NDATE ',' EKKO_tAB-BSART EKKO_tAB-EBELN ',' EKKO_tAB-EBELN ', 0,' EKKO_tAB-MATNR ','
        NMENGE ',' EKKO_tAB-MEINS ',' EKKO_tAB-WERKS INTO SDATA.
        MOVE SDATA TO: W_SDATA, T_EDIDD-SDATA.
        MOVE 'ZORDERS' TO T_EDIDD-SEGNAM.
        APPEND T_EDIDD.
      ENDLOOP.
    *call function 'L_IDOC_SEGMENT_CREATE'
        exporting
             i_segnam = 'ZORDERS'
             i_sdata  = w_sdata
        exceptions
             others   = 1.
    *LT_EDIDC
    call function 'L_IDOC_SEND'
         tables
              t_comm_idoc           = LT_EDIDC
         exceptions
              error_distribute_idoc = 1
              others                = 2.
    *DATA T_BDI_MODEL LIKE BDI_MODEL.
    WRITE OBJECT-OBJKY TO T_BDI_MODEL.
    READ TABLE T_BDI_MODEL INDEX 1.      " maximum 1 recipient
    L_EDIDC-DIRECT = 1.
      L_EDIDC-DOCNUM = DOCNUM. "***
      L_EDIDC-RCVPRN = 'HCM_00_785'.
      L_EDIDC-RCVPOR = 'MM_PO_FILO'.
      MOVE 'ZORDER'   TO L_EDIDC-MESTYP.
      MOVE 'ZPURIDOC' TO L_EDIDC-IDOCTP.
      MOVE 'LS'      TO L_EDIDC-RCVPRT.
    MOVE T_BDI_MODEL-RCVSYSTEM TO L_EDIDC-RCVPRN.
    *MOVE-CORRESPONDING L_EDIDC TO W_EDIDC.
    *- Distribute the iDoc
    BREAK-POINT.
      CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' "IN UPDATE TASK
        EXPORTING
          MASTER_IDOC_CONTROL            = L_EDIDC
        TABLES
          COMMUNICATION_IDOC_CONTROL     = LT_EDIDC
          MASTER_IDOC_DATA               = T_EDIDD
        EXCEPTIONS
          ERROR_IN_IDOC_CONTROL          = 01
          ERROR_WRITING_IDOC_STATUS      = 02
          ERROR_IN_IDOC_DATA             = 03
          SENDING_LOGICAL_SYSTEM_UNKNOWN = 04.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    READ TABLE LT_EDIDC INDEX 1.
      control_record_out-direct = '1'.
      CONTROL_RECORD_OUT-DOCNUM = DOCNUM. " ***
      control_record_out-serial = sy-datum.
      control_record_out-serial+8 = sy-uzeit.
      control_record_out-mestyp = LT_EDIDC-mestyp.
      control_record_out-idoctp = LT_EDIDC-idoctp.
      control_record_out-SNDPRN = 'HCM_00_786'.
      MOVE 'MM_PO_FILO' TO control_record_out-RCVPOR.
      MOVE 'LI'      TO control_record_out-SNDPRT.
      MOVE 'SAPQIS' TO control_record_out-SNDPOR.
    ENDFUNCTION.

  • BAdI or USEREXIT for changing data of purchase order header - ME21N

    hello all,
    I would like to ask you any way to change the field "reason for change" of the Purchase Order  header.
    I tried implementing the method PROCESS_HEADER of IF_EX_ME_PROCESS_PO_CUST
    or changing reason_code of structure ekko in user exits EXIT_SAPMM06E_006 and EXIT_SAPMM06E_006
    but it seems not to work.
    How can i do?..
    sap. v. ecc 6.0

    >
    Shiva Kumar wrote:
    > Use the user exit : EXIT_SAPMM06E_012: This is triggered on saving of a PO...and user can add validations etc in the exit...
    > Cheers
    It doesn't work...
    >
    Martin Voros wrote:
    > you get reference to object IM_HEADER in method PROCESS_HEADER of BADI ME_PROCESS_PO_CUST. On this object you can call two methods - GET_DATA and SET_DATA. GET_DATA returns structure with type MEPOHEADER. You can change your field here and then call method SET_DATA with your modified structure. This should work.
    > Cheers
    ..same thing for this solution...
    the field that i want to change is RSCOD inside structure EREVGRID...it seems to have also get_data and set_data methods ( IF_REVISION_ITEM_DCM ),
    but I don't know which BAdI to implement that has a object type ref to EREVGRID...
    Edited by: E_M on May 13, 2008 11:08 AM

  • Reset Release Strategy for any change in the Purchase Order

    Hi,
    Is it possible in SAP standards to reset release strategy for even minor changes in the Purchase Order irrespective of whether it is value change or any change in the text or Purchasing group change or whatever it is?
    If so, where do we need to make the configurations.
    I have seen in some thread about resetting the release strategy for decrease in Purchase Order value.Even that was possible through some BAPI.
    Thanks in Advance.
    S.Raghavan

    hi sandesh,
    sorry, i know it's too late.
    i tried your suggestion, it works blocking the purchase order after release strategies are setted.
    sandesh, raghavan:
    i need to reset the strategies after to make any change in the po. i'll appreciate your help if you can give it.
    regards
    f

Maybe you are looking for