Table update/ Modify poblem....

Hello,
I am trying to populate the custom table. Now after certain logic, I am using update statement as follows.
Loop.
WA_ZKEYSAP-KEYROLE = I_KEYROLE-KEYROLE.
WA_ZKEYSAP-ROLE = I_ROLE-ROLE.
UPDATE ZKEYSAPMAP FROM WA_ZKEYSAP.
ENDLOOP.
In every run the values of I_KEYROLE-KEYROLE and I_ROLE-ROLE but the table does not
get updated with a new line.
I want as following:
For example:
If in first loop run, the values of I_KEYROLE-KEYROLE = A and I_ROLE-ROLE =B,
then, table should have.
A...B
If in next run again the values are same as A and B for rescpective field then
no change in table
In third run if values are A and C, then table should get updated by A and C
Table will have final result like below.
A...B
A...C
Regards,
Rajesh.

It doesn't work. See the more simplified program below:
TABLES: ZKEYSAPMAP, ZROLEMAP.
DATA: WA_ZKEYSAP TYPE ZKEYSAPMAP.
DATA: BEGIN OF I_KEYROLE occurs 0,
      KEYROLE LIKE ZROLEMAP-KEYROLE,
      TCODE LIKE ZROLEMAP-TCODE,
      OBJECT LIKE ZROLEMAP-OBJECT,
      FIELD LIKE ZROLEMAP-FIELD,
      VALUE LIKE ZROLEMAP-VALUE,
      END OF I_KEYROLE.
Select KEYROLE TCODE OBJECT FIELD VALUE from ZROLEMAP into table
I_KEYROLE.
WA_ZKEYSAP-KEYROLE = 'KR001'.
WA_ZKEYSAP-ROLE = 'KIS09'.
MODIFY ZKEYSAPMAP FROM WA_ZKEYSAP.
WA_ZKEYSAP-KEYROLE = 'KR002'.
WA_ZKEYSAP-ROLE = 'KIS10'.
MODIFY ZKEYSAPMAP FROM WA_ZKEYSAP.
Still only one line getting updated and the ultimate result is:
KR002....KIS10

Similar Messages

  • How to update specific fields of a db table using MODIFY

    Hi all.
    I understand that MODIFY allows us to insert a record into the database if the a record with the same key is not there. If a record is there, it would update that record.
    However, when the record is there, could i update SPECIFIC fields of the record, instead of updating ALL fields of the record?

    Yes, you can with exception that you can not modify primary key values.
    Here are the details about MODIFY db table command with examples
    MODIFY - Change a database table
    Variants:
    MODIFY dbtab. or   MODIFY *dbtab. or
      MODIFY (dbtabname) ... .
    MODIFY dbtab FROM TABLE itab. or   MODIFY (dbtabname) FROM TABLE itab.
    MODIFY dbtab VERSION vers. or   MODIFY *dbtab VERSION vers.
    Effect
    Inserts new lines or updates existing lines in a database table (s. relational database). If a line with the specified primary key already exists, an UPDATE is executed. Otherwise, an INSERT is performed. You can specify the name of the database table either in the program itself in the form MODIFY dbtab ... or at runtime as the contents of the field dbtabname in the form MODIFY (dbtabname) ... . In both cases, the database table must be defined in the ABAP Dictionary. If the program contains the name of the database table, it must also have a corresponding TABLES statement. Normally, records are inserted or updated only in the current client. Data can only be inserted or updated using a view, if the view refers to a single table and was created in the ABAP Dictionary with the maintenance status "No restriction".
    MODIFY belongs to the Open SQL command set.
    When the statement has been executed, the system field SY-DBCNT contains the number of edited lines.
    The Return code is set as follows:
    SY-SUBRC = 0:
        All lines were successfully inserted or updated.
    SY-SUBRC = 4:
        One or more lines could not be inserted or updated.
    Notes
       1. You cannot modify a line if there is already a line in the table with identical key field values in a UNIQUE index.
       2. Automatic definition of INSERT and UPDATE is expensive. You should therefore use MODIFY only if you cannot define the INSERT and UPDATE cases yourself in the program.
       3. Since the MODIFY statement does not perform authority checks, you have to program them yourself.
       4. Adding or changing lines with the MODIFY command is only completed after a database commit (see LUW) has been performed. Before the database commit has been performed, any database changes can be reversed with a database rollback (see Programming transactions).
       5. Synchronization of simultanous accesses by several users to the same set of data cannot be exclusively achieved with the lock mechanism of the database system. In several cases, you are recommended to use the SAP lock mechanism.
    Variant 1
    MODIFY dbtab. or
    MODIFY *dbtab. or
    MODIFY (dbtabname) ... .
    Extras:
    ... FROM wa
    ... CLIENT SPECIFIED
    See Cannot Use Short Forms and
    Cannot Use *Work Areas.
    Effect
    Inserts a new line or updates an existing line in a database table. If you specify the name of the database table yourself, the primary key for identifying the line to be inserted or updated and the relevant values are taken from the table work area dbtab or *dbtab (see TABLES). If you declare the name of the database table explicitly, the program must also contain a corresponding TABLES statement. If the name of the database table is not determined until runtime, you need to use the addition ... FROM wa.
    Example
    Insert or change data of the customer Robinson in the current client:
    TABLES SCUSTOM.
    SCUSTOM-ID        = '12400177'.
    SCUSTOM-NAME      = 'Robinson'.
    SCUSTOM-POSTCODE  = '69542'.
    SCUSTOM-CITY      = 'Heidelberg'.
    SCUSTOM-CUSTTYPE  = 'P'.
    SCUSTOM-DISCOUNT  = '003'.
    SCUSTOM-TELEPHONE = '06201/44889'.
    MODIFY SCUSTOM.
    Addition 1
    ... FROM wa
    Effect
    The values for the line to be inserted or updated are not taken from the table work area dbtab, but from the explicitly specified work area wa. When doing this, the data is read from left to right according to the structure of the table work area dbtab (see TABLES). Since the structure of wa is not taken into account, the work area wa must be at least as wide (see DATA) as the table work area dbtab and the alignment of the work area wa must correspond to the alignment of the table work area. Otherwise, a runtime error occurs.
    Note
    If a work area is not explicitly specified, the values for the line to be inserted or updated are also taken from the table work area dbtab if the statement is in a FORM or FUNCTION where the table work area is stored in a formal parameter or local variable of the same name.
    Addition 2
    ... CLIENT SPECIFIED
    Effect
    Switches off automatic client handling. This allows you to edit data across all clients even when dealing with client-specific tables. The client field is treated like a normal table field that can be programmed to accept values in the table work area dbtab or *dbtab where the line to be edited occurs.
    The addition CLIENT SPECIFIED must be specified immediately after the name of the database table.
    Variant 2
    MODIFY dbtab FROM TABLE itab.or
    MODIFY (dbtabname) FROM TABLE itab.
    Addition:
    ... CLIENT SPECIFIED
    Effect
    Mass modify: Inserts new lines or updates existing lines of a database table. The primary keys for identifying the lines to be inserted or updated and the relevant values are taken from the internal table itab. The lines of the internal table itab must satisfy the same conditions as the work area wa in addition 1 to variant 1.
    Note
    If the internal table itab is empty, SY-SUBRC and SY-DBCNT are set to 0.
    Addition
    ... CLIENT SPECIFIED
    Effect
    As for variant 1.
    Variant 3
    MODIFY dbtab VERSION vers. or
    MODIFY *dbtab VERSION vers.
    See Cannot Use the VERSION Addition.
    Note
    This variant is obsolete.
    Effect
    Inserts a new line or updates an existing line in a database table, the name of which is taken from the field vers at runtime. If no line exists with the specified primary key, an INSERT is executed. Otherwise, an UPDATE is performed. The database table must be defined in the ABAP/4 Dictionary and its name must conform to the naming conventions for R/2 ATAB tables. These stipulate that the name must begin with 'T' and may contain up to four further characters. The field vers must contain the table name without the leading 'T'. Only lines in the current client are inserted or updated. The line to be inserted is taken from the statically specified table work area dbtab or *dbtab.
    SY-SUBRC is set to 0 if the line is successfully inserted or updated. SY-SUBRC <> 0 is not possible since any other result causes a runtime error.
    Hope this helps.
    ashish

  • FM to update/modify PLPO table entries

    Hi Freinds,
    To update PLPO (operations) i need use:
    CP_BT_PLPO_UPDATE
    CP_BT_PLPO_APPEND
    Questions:
    1) Can i use CP_BT_PLPO_UPDATE for update only, or for delete too?
    2) When i use this FM, another tables updates too? For example, table PLAS?

    Hello Andrey
    I cannot tell for sure but most likely you have to use the "update" parameter for deleting tasks. Following is the documentation of the IT_METHODS parameter:
    FU BAPI_ALM_ORDER_MAINTAIN       IT_METHODS
    Short Text
         BAPI structure: Processing methods
    Description
         The methods table specifies which methods the BAPI executes. For this
         the following data is always required:
         o   REFNUMBER   A reference number for a data table line,
         o   OBJECTTYPE  An object category, which specifies which data table(s)
             is referenced
         o   METHOD      A method which specifies what should be done to the
             object
         o   OBJECTKEY   A key as a reference to the corresponding higher-level
             object
    Value range
         The following values are allowed:
         OBJECTTYPE
         o   HEADER      Order header
         o   PARTNER     Partner data
         o   OPERATION   Operation data
         o   RELATION        Relationships
         o   COMPONENT   Components
         o   TEXT            Long texts
         o   (empty)         General BAPI functions (Save)
         METHOD
         o   CREATE      Create objects
         o   CHANGE      Change objects
         o   DELETE      Delete objects
         o   RELEASE     Release
         o   ATPCHECK        Availability check
         o   CALCULATE       Calculate
         o   SCHEDULE        Schedule
         o   SAVE            Save all data
         OBJECTKEY
         0-12        Order number
         13-16       Operation number
         17-20       Suboperation number
         The following methods are allowed for the individual objects:
         HEADER:
         CREATE, CHANGE, RELEASE, ATPCHECK, CALCUALTE, SCHEDULE
         PARTNER, OPERATION, RELATION, COMPONENT, TEXT:
         CREATE, CHANGE, DELETE
         (empty):
         SAVE
    Regards
      Uwe

  • Unable to upload the updated/modified Report template (rtf file) in siebel

    Hi,
    I am unable to upload the updated/modified Report template (rtf file) if already exists in the local database.
    Initially I have uploaded a rtf template, generated xliff, registered it and can view the report from the registered view. Later I have made few changes to the rtf template, in the reports template view, I have uploaded this. When i run the report in the registered view, I am able to see the earlier version and it doesnt show me the updated changes.
    I am using 8.1.1.3 siebel and BIP 10.1.3.3.1 on local.
    Looking at the metalink found "How To Upload Modified RTF Template Files In The Siebel Application For BI Publisher Reporting [ID 1136418.1]" which is related to server but I am working on local database
    Please find attached the template, xml file. can you please look into this and update me ASAP
    Thanks,
    RV

    Hi,
    Not able to find Report - Standard templates or Report - Custom templates view in Administration - BIP reports in Siebel 8.1.1.3?
    We have applied 8.1.1.3 patch on 8.1.1.0
    below are the steps followed
    Reports are not generated after 8.1.1.3 patch installtion.
    we have also followed to below steps mentioned for this issue in oracle support.
    "In order to resolve this behavior it is necessary to ensure that the 8.1.1.3 FixPack has been applied to the Siebel Tools installation. This will provide an additional .zip file in the REPPATCH folder of the Siebel Tools installation. Once this has been done please then follow the configuration steps as documented :
    change sysprefix to X_ before sif import and chage back to SBL_ after sif import.
    1) Import the sif files from Siebel\8.1\Tools_1\REPPATCH\12-1VMBCSV.zip
    2) Import the 4 SIF files in the following order:
    S_XMLP_REP_TMPL_02112010.sif
    SBL_XMLP_REPORT_SELECTION_FLG.sif
    Report Template BC.sif
    Report Template Registration Applet.sif
    3)Apply the DDL for table S_XMLP_REP_TMPL and compile repository
    Once the above steps have been completed the Selected Record flag will appear in the Report Template Registration views."
    we still not able to generated able to generate reports even after following above steps.
    Thanks
    Sean

  • Tables updating for atransaction

    Hi All,
       i wnat to know is there any transaction code or program to know the tables updated for a transaction.
    we have a transaction called PPOM and FS00 ,i want to know which tables are updated when i create new records for these transaction codes.
    With regards,
    kiran I

    Hi,
      You can check tables CDHDR and CDPOS tables.
    You can check the modified tables, values, by which transaction does this modification has been done.
    Give current date to check. As these are cluster tables, it may take some time for retrieving data.
    CDHDR - header details
    CDPOS - item details
    Regards,
    Sailaja.
    Dont forget to reward points, if answer helps you.
    Message was edited by: Sailaja N.L.

  • Problem in modifying a table through modify statement

    Hi,
    I am trying to update a 'Z' table in which there are 5 fields comprising of primary key. Out of them 2 key fields are defined as a part of seconadry index with 'Unique' option selected.
    As per the requirement, I am trying to update the table using modify statement so whenever this statement occurs it will check the primary keys and accordingly try to modify a record or insert a new record.
    But as there is Unique Index defined on 2 of the key fields the Modify query is

    Hi,
    Your syntax for MODIFY is not correct.
    As other friends suggested you can have index and you can modify the internal table.
    Whenever we are modifying internal table inside LOOP, we can omit index as system will take current row by default. So MODIFY statement should be written as follows:
    MODIFY T_ITPO5 from W_ITPO5 transporting AUFNR
    You can LOOP FROM INDEX also for the same to improve performance.
    data: wv_index like sy-tabix.
    sort T_ITPO5 by aufnr.
    sort T_ITPO4 by aufnr.
    wv_index = 1.
    LOOP AT T_ITPO5 INTO W_ITPO5.
         LOOP AT T_ITPO4 INTO W_ITPO4 from wv_index.
         if W_ITPO4-aufnr eq W_ITPO5-aufnr.
              IF ITPO4-NTGEW 0 .
                  CALL FUNCTION 'ZGET_ITEM_WEIGHT'
                    EXPORTING
                       P_BUID = W_ITPO4-WERKS
                       P_ITEMID = W_ITPO4-MATNR
                       P_QTY = 1
                       P_UOM = W_ITPO4-MEINS
                       P_UOM1 = 'KG'
                   IMPORTING
                      P_RETVAL = W_ITPO4-WTKG.
    TOTWT1 = W_ITPO4-WTKG * W_ITPO4-MENGE.
    IF W_ITPO4-BWART = '261'.
    W_ITPO5-I_QTY = W_ITPO5-I_QTY + TOTWT1.
    ELSEIF W_ITPO4-BWART = '101' OR W_ITPO4-BWART = '531'.
    W_ITPO5-I_QTY = W_ITPO5-I_QTY - TOTWT1.
    ENDIF.                    " IF W_ITPO4-BWART = '261'.
    endif.
    elseif W_ITPO4-aufnr gt W_ITPO5-aufnr.
       move sy-tabix to wv_index.
       exit.
    endif.                      " if W_ITPO4-aufnr eq W_ITPO5-aufnr.
    ENDLOOP.
    MODIFY T_ITPO5 FROM W_ITPO5 transporting aufnr.
    ENDLOOP.

  • Add Audit Columns to the Dimension and Fact tables (Created & modified date Time)

    Hi All,
    I am new to SSIS , I have to Add Audit Columns to the Dimension and Fact tables (Created & modified date Time) of the package.
    Please let me know the best and easy way through which I can implement the same.
    If possible suggest some real time example or link where I can find the same
    Regards,
    Vipin jha
    Thankx & regards, Vipin jha MCP

    You can simply use ALTER TABLE ADD.. syntax to add the columns if the tables already exist.
    You can generate a single script for all tables using INFORMATION_SCHEMA.TABLES view
    You can make then of NOT NULL type and set the default value to GETDATE()
    In addition you can also have a Audit Trail trigger for UPDATE to make sure Modified date gets updated correctly on each update if not passed explicitly.
    Please Mark This As Answer if it solved your issue
    Please Mark This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • How check table update program, FM etc..

    Hi ,
    I need to prepare a document for table the KNB5, the table contain 11 fields, need to prepare a document for all the fields how they are updating and what Programs, Fucntion Module, Module Pool/enhancement etc.. involved for table updating .
    I will use where used list for each field and get list programs, Fucntion Module, Module Pool/enhancement etc. involved but in what basis, I will confirm weather this program or FM really using table updates or not.
    Shall I search with update command or with table? is any other way?
    Thanks in advance.
    Mahhe

    This is kind of tricky. KNB5 is customer dunning data table which (as far as i know) is updated by transaction XD01/XD02.
    So, you might want to run a SQL trace and modify/update the data. Then you need to analyze the trace to see how it is being updated. Then again, you need to put break points and see what is going by running the same again.
    Just an fYI..... Check out customer master XD02 and company code data - Correspondence tab for dunning info and fields.
    good luck

  • New Z table updation

    Hi Gurus
    We have created new Z table. Also a new Tcode for the report genetaion for COPA.
    Let me know how do we update the table with daily data.  Is there any standard job SAP has provided.
    Replies are highly appreciated.
    Regards
    SAP only.

    Hi,
    If you need to update the Ztable you need to write a program and in program yu can use screens or
    normal calculations depending upon the requirement, you can also use update modify  along with insert commands in program,,
    Thanks & regards,
    Dileep .C

  • Diff between update & modify

    hi can anyone explain me that what is the diff between update & modify.
    whether i can modify the database table with modify statement .
    if yes then how?

    Hi,
    <b>MODIFY:</b>
    To insert lines into a database table regardless of whether there is already a line in the table with the same primary key, use the following:
    MODIFY <target> <lines>.
    If the database table contains no line with the same primary key as the line to be inserted, MODIFY works like INSERT, that is, the line is added.
    If the database already contains a line with the same primary key as the line to be inserted, MODIFY works like UPDATE, that is, the line is changed.
    For performance reasons, you should use MODIFY only if you cannot distinguish between these two options in your ABAP program.
    <b>UPDATE:</b>
    The Open SQL statement for changing data in a database table is:
    UPDATE <target> <lines>.
    It allows you to change one or more lines in the database table <target>. You can only change lines in an ABAP Dictionary view if it only contains fields from one table, and its maintenance status is defined as Read and change. You may specify the database table <target> either statically or dynamically.
    Regards
    Sudheer

  • BDCPS (Chane Pointers table updation).

    Hi Friends,
    could you please  help me, Actually we have changed the vendor master data in MK02, when i modified the vendor master data in MK02 That time the system updates the Change pointers table BDCPS.
    Could you please help me where the BDCPS table updates at time vendor master change in MK02
    Please help me
    Thanks.
    Charnn.

    Why don't you use ST05 to trace the SQL executions upon that table, you'll then be able to easily reach the ABAP source line. By the way, the CHANGE_POINTERS_CREATE* function modules are used to write change pointers. See [sap library|http://help.sap.com/saphelp_nw2004s/helpdata/en/78/2178da51ce11d189570000e829fbbd/frameset.htm]

  • Auto update of Ztable when ever BSID or BSAD tables updated

    Auto update of Ztable when ever DB table updated     
    Hi experts
    I want my Ztable get updated automatically when ever a record is created or updated in BSID or BSAD tables.
    Here clear requirement
    Generally using Company code & Allocation number  ( 18 char ) my programs access BSID & BSAD tables it is taking very long time for execution almost more than 30 minutes ( data in millions ).
    Step 1.
    I created a new Ztable with limited fields Company Code, Customer, Document, Allocation Number and Posting date.
    Step 2.
    Before look into BSID or BSAD my program searches Ztable for Customer number & Document number using Allocation field and Company code.
    Step 3.
    Once get the Customer & Document numbers accessing BSID & BSAD table is very easy (now just taking less than 1 minute).
    Created a new program to update Ztable every day but BSID and BSAD are live table so I want my Ztable get updated immediately when any entry posted in BSID or BSAD
    Please help me
    Satya
    Singapore

    You need to check what is the procedure (T-Code) from which the data gets updated into these tables.
    For example
    when we craete a material from MM01 the data gets updated in the corresponding table i.e. EKPO.
    In same way you need to find the process and then you can use BTE (Busineess transaction events) for that process. BTE are only for FI module and these tables are also related to FI .

  • Problem in MSEG Table updation

    Hello All,
    The problem is related to MSEG table updation after Stock Transport Order  (STO) is done between Manufacturing plant & Depot. The problem is described below with an example.
    In case of STO the Supplying Plant or vendor is SP02 and the Receiving Plant or the customer is RP15.in the STO under the shipping tab for Customer the system is showing RP15 and under the Delivery address tab for Vendor the system is showing SP02.
    While during PGI when the material document is generated when we check the MSEG table two line items have been generated where  we found that the field WERKS contained SP02 & RP15 against which the feld XAUTO is showing blank space & X symbol respectively.But in case of both LIFNR & KUNNR fields it is showing blank space, which indicates that both the vendor & customer  fields are not getting updated in the MSEG table.
    Now I want the system to pick up the data for KUNNR field (in case of XAUTO is X) also in the MSEG table i.e. RP15 should also be displayed in the MSEG table.
    Is there any configuration to attain my requirement?
    Looking forward to some valuable suggestions.
    Thanks & Regards
    Priyanka Mitra

    the ADRx tables are central tables that are used from various transactions in SAP.
    e.g. from customizing, master data maintenance, transactional data, such as purchase orders and sales orders.
    use the ADRNR from ADR6 table and then lookup an entry in table ADRC to find and hint to its origin  field ADDR_GROUP

  • Calling Batch input from Web Dynpro - any alternatives for table updates?

    Hi!
    I am asked to create a screen in Web Dynpro for the GJ30 transaction (JV Cutback mapping of WBS' elements). I created a remote enabled function module which call batch input for GJ30 . Testing the Function modules direclty goes fine, but not calling the function module from WD. then I get the same error message as when I once tried to call SAP GUI from Web Dynpro ( Call transaction /submit program).
    My next step is to try to create a batch input session (instead of call transaction) and run it using rsbdcsub, and then check the result of the run. But maybe this will fail of the same reason as well, and I suppose this will make the user waiting longer for the response .
    I read somewhere that Web Dynpro does not support batch Input. But what can you do when there are no standard BAPI's for the update you want to do in SAP ?  We are not supposed to do direct table updates.  
    Anyone who have struggled with the same issues and found a solution??
    regards, Tine

    Hi,
    as BDC is calling screens and in Webdynpro ABAP you cannot use SAP GUI sceeen, you are getting short dump.
    Refer CNTL_SYSTEM_ERROR in webservices from r/3 system
    Thanks,
    Chandra

  • How to capture the table update

    How to capture the table update.Suppose I delete a enrtry from the table or mofying any entry in a table is there way to capture that update in SAP?

    hi ,
    follow these steps:
    1. After you selecte the search help for New Responislbe person, domodify gets triggered.
    2. In the wddomodify, get the value of New Responsible person by reading the attribute binded to it.
    3. Now if Value entered is not initial, write a selecte query to fetch the name based on pernr no.
    4. Finally bind the name fetched with the attribute binded to New Responsible person name.
    Wdomodify :
    ************* *Read the New REsponsible person Pernr* ***********
      DATA lo_nd_cn_sflight TYPE REF TO if_wd_context_node.
      DATA lo_el_cn_sflight TYPE REF TO if_wd_context_element.
      DATA ls_cn_sflight TYPE wd_this->element_cn_sflight.
      DATA lv_carrid LIKE ls_cn_sflight-carrid.
    * navigate from <CONTEXT> to <CN_SFLIGHT> via lead selection
      lo_nd_cn_sflight = wd_context->get_child_node( name = wd_this->wdctx_cn_sflight ).
    * get element via lead selection
      lo_el_cn_sflight = lo_nd_cn_sflight->get_element(  ).
    * get single attribute
      lo_el_cn_sflight->get_attribute(
        EXPORTING
          name =  `PERNR`
        IMPORTING
          value = lv_carrid ).
    ****** *Check whethre a value has been entered in PERNR* *************
    if lv_carrid is not initial.
    *************Select Name based on pernr entered* ***********
    select ename from pa001 into lv_ename where pernr = lv_carrid.
    *******Set the Name atttribute with the ename value fetched* *****
      lo_el_cn_sflight->set_attribute(
          name =  `NAME`
          value = lv_cename ).
    endif.

Maybe you are looking for