Call FM of Change Document

Hi experts,
I have created a Change Document Object for about 5 tables including 2 Z-tables.
Before I record the changes, one of the tables may have different kinds of changes.
For example, some of the entries are inserted, some are updated, and others maybe deleted. Now my question is that how can I recode all these changes which belong to different kinds in one go by calling the FM generated automatically after creating the Change Document Object? Because there are some other tables whose changes also need to be recorded, I can not call the FM several times. Does any1 have some ideas about this?
Thanks in advance. Points will be rewarded.
Vincent

Hi Danijela,
You can use FM IQAPI_WORD_WRAP to split your text across multiple lines.
Regards,
Raj

Similar Messages

  • Log change documents in EKPO

    Hi Experts,
    I wish to thank anybody replying this message first.
    I have some questions to be cleared, may be you can provide me some help.
    To log changes on specific fiekds from a custom table, one has to use SCDO to generate change object and fct modules.
    These fct modules shoudl be called from program to log changes in tables CHDR and CDPOS.
    In the process of modifying a PO (me22n), I have several additional custom fields added in SAP table EKPO. These fields are available in PO trhough a custom tab on PO screen. I want to log the changes on these custom fields. The data elements of these fields are checked within change document check box. I modify the PO on several fields including custom fields , examine the content of CHDR and CDPOS and then find out that changes are logged for SAP EKPO fields modified but not for the EKPO custom fields.
    So here is my question:
    Do I have to call the generated changed document fct modules from an user exit or BADI prior to saving to have  the log changes or SAP handle it automatically ? If Yes, then which user exit or BAdi should I use ?
    Thank you for your time
    Dean Q.

    I found that SAP log the changes aumatically
    Thank u all

  • How to use change document object ?

    Friends,
    I am learning to use the Change Document object for one of my Z table. I have created a change doc object using SCDO. I have now written a test report in which i am issuing the SELECT statement for fetching old and new values from the Z table and passing them to the FM generated by SCDO.
    I am not able to see the changes in the CDHDR and CDPOS tables. I am doubtful abt the values being passed to the FM. Here are the values i am passing:
    CALL FUNCTION 'YTEST_WRITE_DOCUMENT'
      EXPORTING
        objectid                      = 'YTEST'
        tcode                         = 'se38'
        utime                         = sy-uzeit
        udate                         = sy-datum
        username                      = sy-uname
      PLANNED_CHANGE_NUMBER         = ' '
       OBJECT_CHANGE_INDICATOR        = 'U'
      PLANNED_OR_REAL_CHANGES       = ' '
      NO_CHANGE_POINTERS            = ' '
       UPD_ICDTXT_YTEST               = 'U'
        n_ztest_cle                   = wa_ztest_cle
        o_o_ztest_cle                 = o_ztest_cle
      UPD_ZTEST_CLE                 = ' '
      tables
        icdtxt_ytest                  = itab_cdtxt.
    Is the object ID the same as the Change Document Object name ??
    Please help.
    Thanks,
    Ram.

    Well, i found a way out for the problem i was facing. I was not setting the "UPD_ZTEST_CLE " FM parameter. When i set it to 'U', the changes got reflected in the CDHDR and CDPOS tables.
    Can i reward myself as i solved this by myself ???

  • Problem while generating Update progam for a Change Document Object

    Hi,
    I'm trying to deal with Change Document concept in a R/3 4.6C environment and to establish new Change Document object for my (Z)-table. I haven't using any namespace and created object with name ZTEST. Following the online documentation I came to the point, where I have to generate include program. I made all the nessesary inputs (using Z prefix) but faced
    "Function module name is reserved for SAP"
    Creating everything similarily using some of our registered namespaces (/somenamespace/) I succeed to generate the Update program and to integrate it in my Z-programs as well.
    My question is: is it possible to use Change Document Object-names without predefined namespace - being a regular customer developer, but not an SAP developer - means, if I am allowed to manage programs in the customer namespace (Z,Y, X) only. If yes, how to do this?
    Further (I decided not to open a new thread) - generated Update program uses
    CALL FUNCTION 'xxxxx' IN UPDATE TASK
    for creation of Change Numbers for generated Change Document Object. This CALL doesn't work when I implemented it in my Z-program, but when changed  (IN UPDATE TASK was commented) - everything goes well and the system creates records in CDHDR/CDPOS tables for my object class and table.
    Why is that? According to the documentation I shoud only fill appropriate variables for the Change Document Object (class, tr.code, etc.) and call generated FM, nothing is pointed out about any possible problems? Am I doing something wrong?
    Well, to be precise, I think I have to give a sample:
    1. I have a sample Z-table with few fields (their data elements are marked as Change-Document relevant).
    2. Using own z-progam I created a new record for this z-table. Also fill all the nessesary variables included in the interface of generated FM for Change Document Object (for example - FM-mane CD_CALL_my_object).
    3. I call the CDO FM.
    4. Check what is happening (directly in both tables CDHDR/CDPOS or using FM CHANGEDOCUMENT_READ).
    Further, I perfom the steps from 1 to 4 updating the created in previous loop record in my Z-table.
    In both cases if the FM 'CD_CALL_my_object' is called IN UPDATE TASK nothing happens, but in case of direct call (without addition IN UPDATE TASK) the system behaves as expected. Well, obliously I can change the generated code for our production needs, but it doesn't seems to be the correct decision - in case of next possible modification of the Change Document Object definition, respectively in need of re-generation of the code.
    Any hints are wellcome.
    Thanks in advance.
    Ivaylo Mutafchiev
    Edited by: Ivaylo Mutafchiev on Jan 24, 2008 10:24 AM

    "IN UPDATE TASK" resolved by myself. The one should explicitly call 'COMMIT WORK' from Z-program after CALL FUNCTION '...' IN UPDATE TASK in order to get changes in the CDHDR/CDPOS commited. The key in this issue for me was to check the documentation of CALL FUNCTION :-).
    Regards,
    Ivo

  • Problem in multiple item for change document objects

    hi gurus,
    I have created change document object in tcode SCDO . It had giveN function module /TMW/CHG_OBJ1_WRITE_DOCUMENT.
    CDPOS AND CDHDR tables are updated with changed data. now i am trying to display all old and new data in se38 program.
    here my problem is when ever i changed multiple  item data , my program showing first item details only . I need to show all item data when ever i changed parallel . please help me where is my problem .
    thank you

    I think this is issue with function module generated thru SCDO Please check in your function module inside that the following function modules are used
    CALL FUNCTION 'CHANGEDOCUMENT_OPEN'
    CALL FUNCTION 'CHANGEDOCUMENT_MULTIPLE_CASE'
    CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
    if not then there may be issue with SCDO

  • Problem while creating change document

    hi all
    i am creating change document for master data like project type , project applicant
    but i am unable to complete it as i am very new to ABAP
    can any one give me step-by-step procedure to do the same?
    I have followed the procedure given in sap Liabrary i.e.
    1 -  Define the change document object
    2 -  Check in the Dictionary, whether the data elements of the fields which are to
          be logged are flagged appropriately.
    3 -  Generate the update.
    4 -  Program the appropriate calls in your program.
    But then i got stucked on point 4...what exactly I need to do in that?
    Regards
    Sheetal

    Hi,
    The table you have used is having the key which comprises both MANDT and ID. However, while writing the code you must have used only the ID. The system takes MANDT and ID both as the key fields.
    This may be the reason of the error you are encountering.
    Thanks,
    Jyoti

  • WHAT IS USE OF CHANGE DOCUMENT FIELD?

    HI experts,
    go like this,
      mara->matnr->dataelement of matnr->further charecteristics ->change document
    in this if we select change document field what will be occured , if we deselect   thatfield what will be the changes and where will be reflected that changes.
      thanks,

    Hi,
    It is used as an Indicator for writing change documents
    <b>Use</b>
    This flag is used to create change documents for business objects.
    You can create a change document object for a business object. This change document object contains the tables in which the data of the business object is stored. Function modules that are called in the corresponding application programs and that log the changes at runtime can be generated from the change document object.
    Logging only takes place if the fields whose contents were changed refer to a data element that was flagged as relevant for the change document.
    You can go to the maintenance screen for change documents from the initial screen of the ABAP Workbench with Development -> Other tools -> Change documents.
    Regards,
    Padmam.

  • KNA1.CREATED with Event based on Change Documents -- No Receiver

    Good morning experts,
    I set up a subtype of Object KNA1 ZKNA1 with 2 events CREATED and CHANGED, KNA1 is delegated to ZKNA1.
    Additionally, I set up two ansynchronous methods "CREATEASYNCHRON" and "CHANGEASYNCHRONE" in ZKNA1, both are a simple CALL TRANSACTION, these methods should be terminated by the two mentioned events.
    I added 2 entries in TA SWEC for triggering the both events when change documents are posted --> works fine, everytime I create or change a customer the systems creates the linked event, the event container is filled with the customer number.
    Afterwards, I set up 2 standard tasks for the two mentioned methods with terminating event CREATED and CHANGED,  the Instance Linkage was done in TA SWEINST and is active.
    My problem now is that the event is triggered correctly, but the tasks are not getting terminated, the event trace also tells me that that there would be no event receiver entered.
    Can you tell me what I did wrong? I made this for a lot of other workflows before and everything worked fine, so I don't understand what's the problem...
    Thanks for your support!

    Hi,
    I am not sure if this will work...
    Simulate 1 event using SWUO...
    Under Potential tasks to be terminated... find your task ... right click-> Event Linkage -> Select "Event Linkage activated" ...
    and try once more ....
    Regards
    Gautam

  • How to use change document for AUSP table in MM02?

    Hi All,
    I am working with MM02. When I change the characteristic value in classification view, I want that change to be logged in CDHDR table.
    I have created a change document object for AUSP table and generated update program for that. Now that program needs to be called in some <b>badi</b> or <b>exit</b> which can be called upon saving in MM02 after changing the values in classification view.
    Can anybody give me some idea where can I call that program.
    Any help wud be appreciated.
    Regards,
    Pragya

    Hi
    You have 2 possible solutions to meet this requirement.
    Option 1: Implement point # 3 of SAP OSS Note 943559
    Option 2: This is a workaround solution to skip standard SAP check for activation of change documents of Classification system and allow entries to be written into CDHDR and CDPOS table through MM01 / MM02 / CL20N tcode
    Solution: Implement an implicit enhancement inside include program 'LCLVFF10', at end of subroutine 'FILL_REDUN' i.e. line number '337'.
    Here modify the entry of table 'REDUN' where OBTAB = 'MARA' and set the flag 'AEBLGZUORD' equal 'X'. This will activate the change document creation for Change Object 'CLASSIFY' in CDHDR and CDPOS tables.
    Sample Code
    LOOP AT redun WHERE obtab EQ 'MARA'.
           redun-aeblgzuord = 'X'.
    ENDLOOP.

  • Unable to proceed in change document are not updating in CDHD, CDPOS tables

    Hi all,
    This is a question related to Change document.
    I created one custom Change document object ‘ZBUDGETS’.
    As I am trying to place a trigger on FMIT (Total Funds Management) table I created a Change document object ‘ZBUDGETS’.
    I included some of the authorized fields from FMIT table on which we placed the trigger.
    And of course all those fields are change document enabled in the data element level. I generation of the update program was completed. And I got the function module zbudgets_write_document along with some include programs and structure.
    Everything is fine, But i am unable to get this change document generated information to these tables are CDHDR and CDPOS.
    the problem is when I make any expenditure like PO Posting, it will be logging in the FMIT table and the respective fields also updating. With this the Change document object should trigger and it should send the record in CDHDR and CDPOS tables. This is not happening. If the records are getting updated in the CDHDR and CDPOS tables I can use those include programs and function modules in my program to retrieve the changes in FMIT table.
    Since I am unable to proceed further since the documents are not updating in CDHDR and CDPOS tables.
    Prabhakar

    CDHDR and CDPOS will not be populated with entries only by creating the change document object.Change documents will be written to CDHDR and CDPOS tables only if the function zbudgets_write_document is called in the transaction which updates FMIT.
    You need to find an use exit in the transaction updating FMIT and call the function zbudgets_write_document in that exit.
    Refer the below link http://help.sap.com/saphelp_47x200/helpdata/en/2a/fa01b6493111d182b70000e829fbfe/content.htm
    -Kiran
    *Please reward useful answers

  • Regarding Workflow trigerring using change document

    Hi all,
    I am trying to trigger a workflow using change document object.
    I want that to trigger the workflow on the material master change through MM02.
    I have created  a business object ZBUS1001 and wanted that on change of material master
    the custom change document object should call the workflow
    I went through all the material avaialable over SDN ,but can not find a change object for change in material master through MM02  for std business object  BUS1001.
    Please tell me how to find one.
    Please reply if any one of you have some solution.

    Hi,
    Thanks for your reply.
    I am using an existing change object - MATERIAL_N of Business Object - BUS1001 and the event
    BASICMATERIALCHANGED.
    I have mentioned  the details in the tcode SWEC.
    And even in the workflow i have given the start of event  as the BUS1001 and event BASICMATERIALCHANGED.
    But workflow not called .
    Do we need to maintain an entry in SWED?
    If yes then in function module column what we need to mention.

  • Use of Function CREDITLIMIT_CHANGE does not create change documents

    Hello,
    I've been using this FM in a customer program for some time, now, but it was called to my attention that no change documents where being kept, aswell as no administrative data.
    Can't seem to find any SAP Note regarding this issue.
    Is this behaviour expected?
    Thank you
    D

    was not setting UPDATEFLAG in adtelx

  • Change Document Object ICDTXT_ include name

    Hi fellow developers.
    What is the purpose of each field in ICDTXT_<include name> when preparing to call the function F<include name>_WRITE_DOCUMENT? For example, I have an IT called ICDTXT_ZCD_CONFIG_CV and this is how I am filling the fields:
       UPD_ICDTXT_ZCD_CONFIG_CV = UPD_Z00_CONFIG_CV.
       wa_log_info-teilobjid = 'Producto'.
       wa_log_info-textart = ' '.
       wa_log_info-textspr = sy-langu.
       wa_log_info-updkz = UPD_Z00_CONFIG_CV.
       append wa_log_info to ICDTXT_ZCD_CONFIG_CV.
    I am not sure at all what to set in textart. And teilobjid is the table key as far as I know. But I want to be sure I am doing this correctly.
    Thank you for your time.

    Yes you must call the FM via the generated include in your update program, change document are programmatically managed. in the "SAVE" form use some CALL FUNCTION IN UPDATE TASK to call the FM that updates database and the FM that creates change documents - look at [Update Techniques|http://help.sap.com/saphelp_nw04/helpdata/en/41/7af4cba79e11d1950f0000e82de14a/frameset.htm] and [BC414|http://www.sap.com/services/education]
    - without programming you can fill DBTABLOG via SE11 options
    - Also look at [Defining Change Document Objects|http://help.sap.com/SAPHELP_nwmobile71/helpdata/EN/2a/fa018f493111d182b70000e829fbfe/frameset.htm] and [Integrating the functionality into the program|http://help.sap.com/SAPHELP_nwmobile71/helpdata/EN/2a/fa01b6493111d182b70000e829fbfe/frameset.htm]
    Regards,
    Raymond

  • Error in multiple operation with change document object for custom table

    hi all,
    I have developed a change document object for a custom table ZTEST and developed a report program for insertion, updation & deletion..everything works fine if I do only once ie. if I created only 1 entries. If I created 2 new entries , I am getting an Error "DUPREC:POS&Z3RL_TAB&Z3RL_TAB" and EXIT the transaction.
    why I am getting this error??? is it not possible to do multiple operation with the change document???
    kindly help.
    Edited by: JaiKarthik on Apr 7, 2010 6:20 AM

       LOOP AT ts_mod INTO wa_mod.
                READ TABLE <i_itab> INTO <wa_tab> INDEX wa_mod-row.
    * Select the existing entries in table Z3RL for change history
                    SELECT SINGLE * FROM z3rl
                           INTO wa_z3rl
                           WHERE vkorg   = <wa_tab>+3(4)
                           AND   zzkunnr = <wa_tab>+7(10).
    * Move the old entries
                    IF sy-subrc = 0.
                      CLEAR ls_z3rl.
                      ls_z3rl = wa_z3rl.
                    ENDIF.
    * Update the table
                 MODIFY (viewname) FROM <wa_tab>.
                   CLEAR wa_z3rl.
                    wa_z3rl-mandt      = <wa_tab>+0(3).
                    wa_z3rl-vkorg      = <wa_tab>+3(4).
                    wa_z3rl-zzkunnr    = <wa_tab>+7(10).
    * Populate change tables
                    CLEAR wa_change.
                    wa_change-teilobjid = 'Z3RL'.
                    wa_change-textart = 'TEST_2'.
                    wa_change-textspr = 'EN'.
                    wa_change-updkz = 'U'.
                    APPEND wa_change TO ts_change.
    *call the fM to log the values in CDHDR table.
                    CALL FUNCTION 'Z3RL_WRITE_DOCUMENT'
                      EXPORTING
                        objectid                 = 'Z3RL'
                        tcode                    = sy-tcode
                        utime                    = sy-uzeit
                        udate                    = sy-datum
                        username                 = sy-uname
                        planned_change_number    = ' '
                        object_change_indicator  = 'U'
                        planned_or_real_changes  = 'U'
                        no_change_pointers       = 'U'
                        upd_icdtxt_z3rl= 'U'
                        n_z3rl= wa_z3rl
                        o_z3rl        = ls_z3rl
                        upd_z3rl= 'U'
                        lv_opt                   = ' '
                      TABLES
                        icdtxt_z3rl= ts_change.
                CLEAR : wa_mod, <wa_tab>.
              ENDLOOP.
    Edited by: JaiKarthik on Apr 7, 2010 6:49 AM

  • Change documents for customer Z table - serious help wanted

    Hi all,
    I am no beginner and I don't expect any comments from beginners.
    Situation: My customer wants to replace the material valuation transactions MRN1 MRN2 MRN3 due to bad performance and locking problems with own developed programs.
    The valuation results will be stored in a customer Z-Table on a monthly base. For auditing and transparency purposes, this Z-table has to get a change object and the update routines will have to write change documents.
    Due to the expected size of the new Z-table, it is not advisable to simply switsch on table logging.
    In this huge project (and in none I participated!) nobody ever implemented the change document process for a Z-table. <b>BUT EVERYBODY CAN TELL YOU THI IS NO PROBLEM AT ALL.</b>
    I read some documentation at SAP and serached for threads or blogs here. I could not find anything desribing that in depth.
    So before I start, I'd be happy to get some hints from people who created own change documents and implemented the process. Links to documentation and other helpful pages are also welcome.
    If I can keep the process simple, I'd like to create a BLOG on this - because I think, in the future it will get more and more difficult to pass the auditing process with undocumented features and uncontrolled table changes.
    TIA.
    Regards,
    Clemens

    Hi,
    Please check this thread.
    http://www.sapdevelopment.co.uk/tips/changedoc/cd_createch.htm
    Once you create your change document object using generate update pgm option then  please check the WRITE document fm.
    I have done this long back i am updating CDHDR and CDPOS for 2 table YATT and YATTPLANTS. Here YATT have single record (header table) and YATTPLANTS have multiple records (item table)
    function yatt_write_document           .
      call function 'CHANGEDOCUMENT_OPEN'
        exporting
          objectclass             = 'YATT           '
          objectid                = objectid
          planned_change_number   = planned_change_number
          planned_or_real_changes = planned_or_real_changes
        exceptions
          sequence_invalid        = 1
          others                  = 2.
      case sy-subrc.
        when 0.                                   "ok.
        when 1. message a600 with 'SEQUENCE INVALID'.
        when 2. message a600 with 'OPEN ERROR'.
      endcase.
    if upd_yctc                           ne space.
       call function 'CHANGEDOCUMENT_SINGLE_CASE'
         exporting
           tablename              = 'YATT                          '
           workarea_old           = o_yatt
           workarea_new           = n_yatt
            change_indicator       = upd_yattc
            docu_delete            = 'X'
         exceptions
           nametab_error          = 1
           open_missing           = 2
           position_insert_failed = 3
           others                 = 4.
        case sy-subrc.
          when 0.                                "ok.
          when 1. message a600 with 'NAMETAB-ERROR'.
          when 2. message a600 with 'OPEN MISSING'.
          when 3. message a600 with 'INSERT ERROR'.
          when 4. message a600 with 'SINGLE ERROR'.
        endcase.
      endif.
      if upd_yctcauthplnts                  ne space.
        call function 'CHANGEDOCUMENT_MULTIPLE_CASE'
          exporting
            tablename              = 'YATTPLANTS                 '
            change_indicator       = upd_yattplants
            docu_delete            = 'X'
          tables
            table_old              = yyattplants
            table_new              = xyattplants
         exceptions
           nametab_error          = 1
           open_missing           = 2
           position_insert_failed = 3
           others                 = 4.
        case sy-subrc.
          when 0.                                "ok.
          when 1. message a600 with 'NAMETAB-ERROR'.
          when 2. message a600 with 'OPEN MISSING'.
          when 3. message a600 with 'INSERT ERROR'.
          when 4. message a600 with 'MULTIPLE ERROR'.
        endcase.
      endif.
      call function 'CHANGEDOCUMENT_CLOSE'
        exporting
          objectclass             = 'YATT           '
          objectid                = objectid
          date_of_change          = udate
          time_of_change          = utime
          tcode                   = tcode
          username                = username
          object_change_indicator = object_change_indicator
          no_change_pointers      = no_change_pointers
        exceptions
          header_insert_failed    = 1
          object_invalid          = 2
          open_missing            = 3
          no_position_inserted    = 4
          others                  = 5.
      case sy-subrc.
        when 0.                                   "ok.
        when 1. message a600 with 'INSERT HEADER FAILED'.
        when 2. message a600 with 'OBJECT INVALID'.
        when 3. message a600 with 'OPEN MISSING'.
    *    WHEN 4. MESSAGE A600 WITH 'NO_POSITION_INSERTED'.
    * do not abort, if positions are not inserted!!!
        when 5. message a600 with 'CLOSE ERROR'.
      endcase.
    endfunction.

Maybe you are looking for