Tracking Custom field changes

Hi Experts,
I need to find when was a value being inserted/updated/deleted for a custom field in a database table.
E.g. if in KNA1 I have a custom field ZZTEST...
I need to know when was this field last used i.e. when was the last time that a value was inserted/updated/deleted from this field.
Is there any standard program/function module which will help us solve this issue?
Thanks!

U can track changes of the custom table using change documents.
Let me explain you tracking process in deatil so that u can look further in that direction. I am taking example of KNA1 table. Only those fields of the table are tracked through change documents for which  change document is checked at data element level. U can find change document check box at data element level under further characteristics tab.Now for all fields of custom table ( z table) for which u want to track changes u need to check this box.
All the change data for standarad table tracked through change documents is stored in tables CDHDR & CDPOS.
CDHDR -> Change document header
CDPOS--> Change document items
All data is stored w.r.t OBJECTCLAS. OBJECTCLAS groups various tables of similiar business process for tracking changes.
Whenver u make any changes in fields marked with change document ................. a change number for the table w.r.t to  OBJECTCLAS is generated in CDHDR table.Using this change number and OBJECTCLAS  we can extract all change details from CDPOS table.
i.e  VERKBELEG is OBJECTCLAS for all SD related tables(vbak ,vbap,vbuk etc...).
U need to do following actvities to track changes:---
1>  Got to custom table and at data element level check the box change document.
2> Go to SCDO and create the custom OBJECTCLAS for ur table.
hope u understood basic concept behind it and will look in this direction to solve ur problem.

Similar Messages

  • Trigger CIF during custom field change on Purchase Req. and PO

    Hi,
    We added a custom date field in Purchase Req. and Purchase Order transactions (ME52N/ME22N) in ECC. When this custom field gets changed along with any other standard field, outbound CIF process happens. However, when we change this custom field only, then outbound CIF doesn't happen. I believe we need change pointers and may be custom code to trigger outbound CIF. I would appreciate any suggestions on how to achieve this functionality.
    Thanks.
    Naveen

    Hello Naveen,
    Use user exit EXIT_SAPLMEAP_001 here, the structure CIFPUORCUS must be enhanced with custom fields so that the document date can be included (IT_OUTPUT_CUS).transferred to CT_MM_DOC. You need to fill EBAN and EKPO for change transfer. Also you can have the background job for RIMODINI to transfer the changes.
    Best Regards,
    R.Brahmankar

  • Material bapi custom field change to be logged in change document

    Hello all,
    I have just added a custom field to MARA table (materials), and updated it successfully via BAPI_MATERIAL_SAVEDATA.
    I would like now to log changes via change documents but problem : after having changed value from "A" to "B" for example, I don't see the changes (to do this, I call function CHANGEDOCUMENT_READ with parameter OBJECTCLASS = "MATERIAL" and get results from returned EDITPOS parameter).
    What is surprising me is that I can see changes of other standard and custom fields (this was done by other people in my company 2 years before but I don't have any trace what they did).
    Do you have any idea what customizing need to be changed or what else need to be done, to log changes of new custom fields into change documents?
    Thanks a lot.
    sandra

    In this transaction, there is nothing related to fields; there are only objects (like MATERIAL) and tables (like MARA).
    I can't see anything which makes the difference between our 2 custom fields MARA-ZZCOLLANA (which is logged in change documents) and MARA-ZZSSCOLL (which is not logged in change documents).
    For info, my SAP version is R/3 46C.

  • Custom field changes in Project 2010

    Is there a last-modified-date indicator in one of the databases to indicate when a custom field was changed? For example, I want to know when a custom field called project-phase (not workflow) has changed from one value to the next within a PDP. 
    The purpose is to produce a report that indicates the progression of a project from one phase to the next (plan-analyze-design, etc.).

    this question is closed - but for what you asked for the basic query provided  gave you the custom field modified date which would be more precise then the project modified date - 
    The below query will get you the information you want
    YOU put in the project GUID  OR the GUID of the Custom Field and this will return the tasks and project name it will also show you the difference (at least it did in my DB) the project modified data versus the task/custom field modified date which is
    also what you asked for...
    USE ProjectSevrerDraft
    SELECT
    mscf.MD_PROP_NAME as "Custom Field",
    mstcv.MD_PROP_ID as "MD PROP ID - can remove",
    proj.PROJ_NAME as "Project Name",
    proj.MOD_DATE as "Project Modified Date",
    mst.TASK_NAME as "Task Name",
    mstcv.CREATED_DATE as "Task Created Date",
    mstcv.MOD_DATE as "Task Modified Date"
    FROM MSP_TASK_CUSTOM_FIELD)VALUES mstcv
    JOIN MSP_PROJECTS proj
    ON mstcv.PROJ_UID=proj.PROJ_UID
    JOIN MSP_TASKS mst
    ON mstcb.TASK_UID=mst.TASK_UID
    JOIN [ProjectServerPublished].[dbo].[MSP_CUSTOM_FIELDS] mscf
    ON mscf.MD_PROP_ID=mstcv.MD_PROP_ID
    -- You can select either below un-comment out the '--'
    -- And insert what you want - the project or Custom field
    -- GUID will help. The PROJ_UID is found under MSP_PROJECTS
    -- THE MD_PROP_ID is found under the published database in
    -- the MSP_CUSTOM_FIELDS table
    --WHERE mstcv.PROJ_UID =' GUID OF PROJECT'
    --WHERE mstcv.MD_PROP_ID = 'GUID OF CUSTOM FIELD'

  • Pricing Redetermination when custom field changes ON Additioanl data B Tab

    Hi All Experts,
    I have added new custom field(ZZ_STCEG, ZZ_ASTCEG and ZZ_MSTCEG) on Addititonal data Tab B. Before that i added those fields in KOMP(ZZ_STCEG) and VBAP(ZZ_STCEG, ZZ_ASTCEG and ZZ_MSTCEG).
    I have a function module which gives output EX_STCEG.
    Now i need to assign the ZZ_STCEG to ZZ_ASTCEG as it is determined by system. If i enter value in Manual field(ZZ_MSTCEG) this should be used for pricing and also assign it to ZZ_STCEG. (Note: But ZZ_ASTCEG should not be changed as it is automatically determined beforre.)
    I have programmed in UserExit_Pricing_Prepare_TKOMP as below.
    Call to function module(output ex_stceg)
    vbap-zz_astceg = ex_Stceg.
    if vbap-zz_mstceg is not initial.
    vbap-zz_stceg = vbap-zz_mstceg.
    tkomp-zz_stceg = vbap-zz_mstceg.
    else.
    vbap-zz_stceg = vbap-ex_stceg.
    tkomp-zz_stceg = vbap-ex_stceg.
    endif.
    But it is not working as intended. I think because Vbap_zz_Mstceg doesnot have value during pricing because we fill it after the pricing in additional data tab B.
    Please suggest me how to proceed with this situation.
    Thanks & regards,
    NarsiReddy.

    In your screen 8309, you can do like below, when you hit enter in the field the princing will be recalculated:
    FIELD VBAP-ZZ_STCEG MODULE zm_blablala ON REQUEST.
    MODULE zm_blablabla.
    * This standard perform will do the pricing redetermination
         PERFORM preisfindung_gesamt USING 'C'.
    ENDMODULE.
    Regards,
    Felipe Simionatto

  • Tracking customer master changes

    I need to do a mass change of contact person details in the customer master and am trying to figure out what the best way of storing the changes made is. Should I create a separate Z table to hold the contents of records changed? Should I generate a Excel or txt file? Any other options available?
    Writing to table CDPOS and CDHDR is not an option as that will kill performance.

    Hi,
    surely this is shown in the changes made to the customer (transaction XD04)?
    By double clicking on the change you get full details.
    Steve B

  • Changed document for custom fields

    Hi All,
    For business transactions we can see <b>changed documents</b> under <b>Extras</b> menu.
    I have custom tabs & custom fields in business transaction. We need to see the custom field changes by value & user in the above menu. Is it possible? how?
    thanks,
    Bhushan

    Hi Murlidhar,
    My question is related to SAP CRM. The notes you suggested are not for CRM.
    Others, do you have any idea how to add/show records in "Extras-> Change Documents" of business transactions like Sales order, activities for custom fields not using EEWB.
    thanks,
    Bhushan

  • Displaying change documents for custom fields  in FPP2

    I have added a new subscreen to the Business partner via BUPT. The new fields are on a custom table. I have created change documents for the new fields and all that is working fine - details are being written to CDHDR/CDPOS as expected. In the standard FPP2 transaction the user can select Extras / Partner changes which will display a list of the change documents. This does not include my custom fields.
    Does anyone know if it is possible to include my custom field changes in this list? I have searched several forums but cannot find any reference to this.

    Hi,
    Fix a break-point in the following function modules and check whether you are passing custom fields
    CHANGEDOCUMENT_SINGLE_CASE
    or
    CHANGEDOCUMENT_MULTIPLE_CASE
    SAP uses the above said function modules to update change documents. Its have two import paratmeters
    WORKAREA_OLD
    WORKAREA_NEW 
    or
    TABLE_OLD          
    TABLE_NEW 

  • Triggering BAdI on change of customer field in ME21N

    Hello,
    How can I tell transaction ME21N that relevant field values have been changed?
    I'm using BAdI ME_PROCESS_PO_CUST to change several field values in ME21N and ME22N. The BAdI (method PROCESS_ITEM) is called whenever a field changes, which is good.
    However, the BAdI is NOT called when a customer field changes.
    Of course, I can create a PAI module to catch changes in the customer fields, but how can I notify ME21N that the BAdI has to be called?
    Thanks in advance
    Roland

    Hi!
    Apparently this does not work. However, I implemented BAdI ME_GUI_PO_CUST to create a new customer subscreen and this one works.
    Unfortunately the "old" user exit and the "new" BAdI don't work together very well...
    best regards
    Roland

  • Issue with Custom Field updation through BAPI FM

    Hi All,
    I am going to update some custom filelds in BUt050. So for these custom fields, I want to fill buffer memory so that I can track the changes through buffer. So I was calling FM BAPI_BUPR_CONTP_CHANGE and passing following parameters.
              businesspartner = < bp number>
              contactperson   = < Contact Number>
              validfromdate   = '00010101'
              validuntildate  = '99991231'
              centraldata     =  blank
              centraldata_x   = blank
    I am keeping central data blank as there is no standard field to update.
    But it is returning me a message that no changes are made.
    can any one has any idea how can I send custom field change in buffer?

    As my goal is to update custom fields in BUt050 from WEB UI, I was planning to fill the memory buffer with the changed values by calling FM  ''BUB_BUPR_MEMORY_FILL'.
    So I have to get memory first. But if I dont call the FM 'BAPI_BUPR_CONTP_CHANGE', then the memory will not be filled.
    That is the reason to call the function module.

  • Field changes in J1ID

    hii,
    I have an requirement to track the field changes for customer excise in J1ID transaction . can anyone tell me in which table the changes are logged. I have debugged the standard report and check the table DBTABLOG. but I am not able to get the proper data into the table as which fields are changed and wht is the new and old value.
    Regards,
    Anil N.

    hello,
    Changes are logged in database as follows
    1) CDHDR Header Data,
    2) CDPOS Item Data
    regards
    suresh nair

  • ME21N Custom Field in Document Header.

    Hi Guys,
    Could you guys please help me with the following problem.
    I have a custom field in a custom tab in the header of ME21N. But When I change that field manually the transaction does not update the pricing. But if I change any standard field, the transacction update the pricing.
    Do you have any Idea why and how to solve this ?
    Thank you very much.

    Hi , Thanks for your answer Raymond.   But now I have the answer. Let's pretend that I want to insert a new field in EKKO . the field is ZZPUERTO and i want the transaction recalculate the price if i change that field.
    1-. the first thing that you need is to create a copy of this function group MEPOBADIEX. There you have to create your new screen. Comment all the code in all function modules.  Use function module ZMEPOBADIEX_PUSH. Insert there your code. for example:
      zmepo_badi_struct = im_dynp_data.
    2-. Use ME_GUI_PO_CUST and populate method suscribe with the data from the screen that you just create in the first step. in the following way :
    Method: Suscribe
    CHECK im_application = 'PO'.
       CHECK im_element     = 'HEADER'.
    * each line in re_subscribers generates a subscreen.
    *    We add one subscreen in this example
       CLEAR re_subscribers[].
    * the name is a unique identifier for the subscreen and
    *  defined in this class definition
       ls_subscriber-name = subscreen1.
    * the dynpro number to use
       ls_subscriber-dynpro = '9000'.
    * the program where the dynpro can be found
       ls_subscriber-program = 'SAPLZMEPOBADIEX'.
    * each subscreen needs his own DDIC-Structure
       ls_subscriber-struct_name = 'ZMEPO_BADI_STRUCT'.
    * a label can be defined
       ls_subscriber-label = text-001.
    * the position within the tabstrib can be defined
       ls_subscriber-position = 13.
    * the height of the screen can be defined here.
    *  Currently we suport two screen sizes:
    * value <= 7 a sevel line subscreen
    * value > 7  a 16 line subscreen
       ls_subscriber-height = 7.
       APPEND ls_subscriber TO re_subscribers.
    3-. populate the following code in method MAP_DYNPRO_FIELDS
    FIELD-SYMBOLS: <mapping> LIKE LINE OF ch_mapping.
       CONSTANTS: mmmfd_cust_01 TYPE mmpur_metafield VALUE 90000000.
       LOOP AT ch_mapping ASSIGNING <mapping>.
         CASE <mapping>-fieldname.
           WHEN 'ZZPUERTO'.
             <mapping>-metafield = mmmfd_cust_01.
         ENDCASE.
    4-. The followin Code for the method TRANSPORT FROM MODEL
    transport_from_model
    DATA: l_header       TYPE REF TO if_purchase_order_mm,
             ls_mepoheader  TYPE mepoheader,
             ls_customer    TYPE zmepo_badi_struct.
    * system asks to transport data from the business
    *  logic into the view.
       CASE im_name.
         WHEN subscreen1.
    * is it an item? im_model can be header or item.
           mmpur_dynamic_cast l_header im_model.
           CHECK NOT l_header IS INITIAL.
    * transport standard fields
           ls_mepoheader = l_header->get_data( ).
    *      ls_customer-zzpuerto = ls_mepoheader-zzpuerto.
    * store info for later use
    *      MOVE-CORRESPONDING ls_mepoheader TO dynp_data_pbo.
           MOVE ls_mepoheader-zzpuerto TO dynp_data_pbo-zzpuerto.
         WHEN OTHERS.
       ENDCASE.
    5-. Method TRANSPORT_TO_DYNP
    CASE im_name.
         WHEN subscreen1.
           CALL FUNCTION 'ZMEPOBADIEX_PUSH'
             EXPORTING
               im_dynp_data = dynp_data_pbo.
         WHEN OTHERS.
       ENDCASE.
    6-. Method : TRANSPORT_FROM_DYNP
    CASE im_name.
         WHEN subscreen1.
           CALL FUNCTION 'ZMEPOBADIEX_POP'
             IMPORTING
               ex_dynp_data = dynp_data_pai.
           IF dynp_data_pai NE dynp_data_pbo.
             re_changed = mmpur_yes.
           ENDIF.
         WHEN OTHERS.
       ENDCASE.
    7-.  METHOD TRANSPORT_TO_MODEL
    DATA: l_header       TYPE REF TO if_purchase_order_mm,
             ls_mepoheader  TYPE mepoheader.
    * data have to be transported to business logic
       CASE im_name.
         WHEN subscreen1.
    * is it an item? im_model can be header or item.
           mmpur_dynamic_cast l_header im_model.
           CHECK NOT l_header IS INITIAL.
           ls_mepoheader = l_header->get_data( ).
    * customer fields changed?
           IF dynp_data_pbo-zzpuerto NE dynp_data_pai-zzpuerto.
    * update customerfields
             ls_mepoheader-zzpuerto = dynp_data_pai-zzpuerto.
             CALL METHOD l_header->set_data( ls_mepoheader ).
           ENDIF.
         WHEN OTHERS.
       ENDCASE.
    8-. Now we go to BADI ME_PROCESS_PO_CUST and we insert the next code in method FIELDSELECTION_HEADER. This is to show the screen in transactions. 
    DATA: l_persistent TYPE mmpur_bool.
       FIELD-SYMBOLS: <fs> LIKE LINE OF ch_fieldselection.
       READ TABLE ch_fieldselection ASSIGNING <fs>
         WITH TABLE KEY metafield = mmmfd_cust_01.
       IF sy-subrc IS INITIAL.
         CASE sy-tcode.
           WHEN 'ME21N' OR 'ME22N' OR 'ME29N'.
             <fs>-fieldstatus = '.'. " Modify
           WHEN OTHERS.
             <fs>-fieldstatus = '*'. " Display
         ENDCASE.
       ENDIF.
    9-. Finally we go to Method PROCESS_HEADER and there we put the logic that we want for our new screen. For example I put the following code because if the user don't populate the new field I want to use some querys to populate it .
    DATA: ls_mepoheader TYPE mepoheader,
             lv_adrnr      TYPE adrnr,
             lv_adrc       TYPE ad_addrnum,
             lv_transpzone TYPE lzone.
       ls_mepoheader = im_header->get_data( ).
       IF im_header->is_persistent( ) EQ mmpur_no.
         IF ls_mepoheader-zzpuerto IS INITIAL.
           mmpur_metafield mmmfd_cust_01.
           SELECT SINGLE adrnr
           INTO lv_adrnr
           FROM lfa1
           WHERE lifnr = ls_mepoheader-lifnr.
           IF sy-subrc EQ 0.
             lv_adrc = lv_adrnr.
             SELECT SINGLE transpzone
             INTO lv_transpzone
             FROM adrc
             WHERE addrnumber = lv_adrc.
             IF sy-subrc EQ 0.
               ls_mepoheader-zzpuerto = lv_transpzone.
               CALL METHOD im_header->set_data( ls_mepoheader ).
               CLEAR ls_mepoheader.
             ENDIF.
           ENDIF.
         ENDIF.
       ENDIF.
    10. Any questions please let me know. I know it is difficult but it works.
    Thanks .

  • Custom field in Vendor Master - track field changes

    Hi Experts,
    I have a requirement to enhance vendor master (XK01) by adding custom fields. I did this, but now the customer needs to track changes made to this field. He expects to see the changes made to this custom field using menu path 'Environment -> Field Changes' from vendor master transactions (XK01, XK02, XK03). I have enabled the track changes in the data element, so that field changes can be tracked in CDPOS, but that is not enough. Please help to find solution. Thanks.
    Regards
    Arun

    Hi Brad,
    I added the new fields to vendor master using the SPRO option:
    'Prepare Modification-Free enhancement of Vendor Master Record' in the following path:
    Logistics-General -> Business Partner -> Vendors -> Control -> Adoption of customer's own master data fields. This created a button on vendor master, and my field is in a pop up box which is generated on click of this button.
    This field is stored in LFM2 table.
    I have enabled the change flag in the data element of the custom field, and it is showning the field changes in CDPOS table.
    But the problem I face is how I can avoid going to the CDPOS table and instead use the menu option :
    'Environment -> Field Changes'
    Regards
    Arun

  • Report needed: Customer master TAXKD field changes

    We are looking to track changes made to TAXKD (tax code) in customer master.   Is there any report we could generate weekly that would detail changes made to the field. 
    Also, we'd like what change was made.  (i.e. customer number, date, field changed from 0 to 2)
    Thanks,
    Michelle

    Hi Michelle,,
    Those changes will be recorded in the CDHDR and CDPOS tables with your field name based on the dates..
    and also with the Old value and the New value
    from the CDPOS
    pass
    OBJECTCLAS = 'DEBI'.
    OBJECTID      =  Your document number "optional
    TABNAME    =  'KNV1.
    FNAME       =   'TAXKD'.
    if you pass these thins you will get the in the fileds VALUE_NEW and VALUE_OLD
    hope these informatino useful to you.
    Thanks
    Edited by: Prasanth on Apr 13, 2009 7:40 PM

  • Change Log for Custom fields

    Hi All,
    I need the change log for custom fields added in BP transaction codes.
    Basically, for tracking the changes of master data in CDHDR and CDPOS tables we will enable the checkbox of dataelement related to custom field.
    As for SAP fields in BP transaction code the change history is reflecting in CDHDR/CDPOS tables. i have enabled that for custom fields added to BP transaction code but i could not see the change history for such fields.
    Please let us know if iam missing any other thing?

    Hi Amit Singh,
    Apart from clicking the checkbox in dataelement...
    There are some settings need to be done by BASIS
    and some settings and entries should be made in SCOD t-code
    create entriy for change document here..
    also hv a look on below links...
    http://help.sap.com/saphelp_nw2004s/helpdata/en/2a/fa015b493111d182b70000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2004/helpdata/en/db/7a2a40ce93185de10000000a1550b0/content.htm
    Custom Table values in CDPOS and CDHDR
    scdo
    wat do these fields in scdo stand for?
    Hope it will solve your problem..
    Thanks & Regards
    ilesh 24x7

Maybe you are looking for

  • My iPad mini won't let me update or download apps ?

    Everytime I try to update my apps or download new ones (which are free), my iPad says there is a payment issue when I then enter my bank details in it says it's declined, there is money in my account and the apps I want and downloads are free ?? It's

  • Item not relevant for billing - Batch Management

    Dear Experts, I'm testing the Batch Management with the configuration detalied on the Building Block - J19 from SAP. So I've created a new item position called YG05 which is working for the batch spliting. But now the problem is that when I'm billing

  • Problem while evaluating Hyperion 9.3.1 trial version

    Hi, I recently downloaded Hyperion Reporting and Analysis 9.3.1 trial version. I installed Shared services and then installed 1. Hyperion Reporting and Analysis - System 9 Services Release 9.3.1 Microsoft Windows x86. 2. Hyperion Reporting and Analys

  • Arabic Support in Oracle Portal 3.0

    What is needed for viewing Arabic Characters in my browser in Oracle Portal 3.x? Is there a built-in support or I need to download some plugin?

  • Command timed out error shown frequently on SunFire v890 Server

    I've 3* SunFire v890 System with two Qlogic FC HBA each. Running Solaris 10 SPARC operating system These systems are running with Sun Cluster 3.2 and have many resources configured as Failover services. All these three systems are connected to a Sun