Transaction Datasource Enhancement

Hi Experts,
I did the extractor enhancement for 0WBS_ELEMT_ATTR. Data will be loaded to an infocube using infosource 0CO_OM_NWA_1. Do I still need to enhance the transaction datasource to populate data into a infoobject related to WBS element? Please help on this.
Thanks,
Bill

Was the masterdata enhancement for a new attribute to WBS ?
For reporting purposes you may use master data.
It depends, if you want to use the attribute data for drill down it has to be made navigational.

Similar Messages

  • Transactional datasource enhancement

    Need documentation for transactional datasource enhancement
    Please search SDN
    Edited by: Pravender on May 25, 2010 12:28 PM

    hi,
    chk the links
    Master data enhancement
    CMOD Enhancements
    Enhancing master data extractor
    Lo Enhancement- Transactional data
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b0af763b-066e-2910-a784-dc6731660f46
    Ramesh

  • Enhancing a transaction datasource!

    Hi all,
    Can anyone please tell me where I can find documentation on writing User exits/enhancing transaction datasources.  Is the procedure for enhancing transaction datasource same for all extraction methods like LO-Cockpit, LIS, COPA, Generic Datasource and FISL or are they dependent on the extraction method.
    I need to enhance LIS datasource and write code to populate value for couple of new fields.
    I appreciate your help.
    thanks.

    Your question has been already answered !
    https://websmp205.sap-ag.de/bi -> BI InfoIndex -> Exits
    Bye,
    Roberto
    Anyway, try to do a search inside these forums...you will try a lot of very useful material and sample...

  • Creating BADI for datasource enhancement in CRM system

    Hi,
    I am working on SAP BI/BW. This is the first time I am working in CRM system with CRM datasources. Facing some problem for datasource enhancement as never done it before in the CRM system. Is there anyone who can help in in creating BADI for datasource enhancement in CRM.
    Thanks in advance
    Moumita

    Hi Kushal,
    You can find the BADI name by,
    Go to Transaction SE24
    Enter the Object Type CL_EXITHANDLER and click on Display.
    Double Click on method "GET_INSTANCE".
    Put a Break-point on Call method cl_exithandler=>get_class_name_by_interface
    Run RSA3 transaction and execute the DataSource.
    The execution will stop at the break point.
    Check the values of variable 'exit_name', it will give you the BADI name called at that time.
    Thanks,
    Kokila

  • Creating BADI for datasource enhancement in CRM.

    Hi,
    I am working on SAP BI/BW. This is the first time I am working in CRM system with CRM datasources. Facing some problem for datasource enhancement as never done it before in the CRM system. Is there anyone who can help in in creating BADI for datasource enhancement in CRM.
    Thanks in advance
    Moumita

    Hi Prasad Reddy,
    This are the available badis and exits for this t.code:
    Enhancement/ Business Add-in            Description
    Enhancement
    MGA00001                                Material Master (Industry): Checks and Enhancements
    MGA00002                                Material Master (Industry): Number Assignment
    MGA00003                                Material Master (Industry and Retail): Number Display
    Business Add-in
    MG_MASS_NEWSEG                          User-Specific Fields & Segments in Mass Maintenance
    MATGRP_SKU_UPD
    CDT_CHECK_MATERIAL                      Checks for Existence of a Material in a CDT
    BADI_MM_MATNR
    BADI_MAT_F_SPEC_SEL                     BAdI for Material Special Field Selection
    BADI_MATNR_CHECK_PVS
    BADI_MATERIAL_REF                       Addition of customer-defined default data for material
    BADI_MATERIAL_OD
    BADI_MATERIAL_CHECK                     Enhanced checks for material master table
    BADI_GTIN_VARIANT
    BADI_EAN_SYSTEMATIC
    o.of Exits:          3
    o.of BADis:         11
    Find the Exact  exits and badis for ur requirement.
    How to fine the exact badi:
    1) Goto se24 (Display class cl_exithandler)
    2) Double click on the method GET_INSTANCE.
    3) Put a break point at Line no.25 (CASE sy-subrc).
    Now
    4) Execute SAP standard transaction
    5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.
    6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.
    7) This way you will find all the BADIs called on click of any button in any
    transaction
    Rgds,
    P.Naganjana Reddy
    if you follow this 7 steps, you will find a suitable BADI.

  • Adding a Field in a Transaction Datasource

    Hi,
    I have created a ZAUTH InfoObject in BI for the field Authorization group (BEGRU - MARA).  This ZAUTH Infoobject is getting filled in through Master data Load of 0MATERIAL.  I have added the Infoobject ZAUTH as a Navigational Atttribute in 0MATERIAL.
    I have created a Billing DSO for the Transaction load which gets data through the Datasource 2LIS_12_VDITM.  In DSO, i have a requirement wherein i have to write a routine using 0customer & Authorization group (ZAUTH).  The requirement goes like this:
      If the Customer number = 100 & Authorization = ABC, Put Detail = Stock.
      If the Customer number = 200 & Authorization =  XYZ, Put Detail = Trade.
    The Problem here is i dont have the BEGRU field in the Transaction Datasource 2LIS_12_VDITM.  I know we can customize the Datasource & add this field.  But, is there any other way to do this?
    Regards,
    Murali

    I guess you can realize this requirement without enhancing the datasource. There is 1:1 relationship between material and auth group as it is added as an attribute on it. You can derive the auth group by looking up material master data in the code, for the material on the billing document. Once this is derived you can build your logic for detail. You need to derive auth group at a lower level in the data flow and put logic for detail at the next level or you can consider using start (derive auth group) and end routines (logic for Detail).

  • Different ways to Datasource Enhancement

    I know DS enhancement can be done through ABAP Statement CASE,ENDCASE,WHEN. I came to know that this is old technique to enhance the datasource as it makes the code quite messy if several developers work on the same code.
    I came across one document on SDN where we create a new program for each datasource which is independent from other enhancement.
    I just want to know how this program works and the difference between this technique and old technique as i have limited ABAP knowledge.
    What are the exact challenges that we come across when we use CASE,ENDCASE,WHEN statements.
    Edited by: Murali K on Jun 1, 2010 6:31 AM

    Hi Murli,
    1) Datasource enhancement previously was done using CMOD Still many organizatins continue with this approach.
    Here you can get option to write code for your appended field in ur Standard datsource where you can write select statements etc.
    2) Now SAP is recommending to Write Codes using BADI .this approach helps to maintain individual implementations for each data source enhancement
    This methods advantage over previous CMOD method is that ,in CMOD a single include will contain all the ABAP coding (this will create problem in marinating the versions for developers).specially while you are transporting the CMOD code to test and prod systems.
    With the new BADI method you can avoid this problem as individual implementations can be transported independently without creating conflicts.
    Thanks and Regards
    Arun

  • JDev 9.0.3.3 Commit issue when using Transaction DataSource

    Hi,
    Env: JDev 9.0.3.3/WL 6.0 sp1/Oracle 8i
    We have successfully deployed our application in 3-tier(remote mode) in JDev 9.0.3.2. using JClient, EO/VO, EJB Session Facade (BMT).
    Now we are planning to use JDev 9.0.3.3
    In JDev 9033 with the same code base we have issues after Commit.
    We are using ejb.txn.type=global (default) and Weblogic Transactional DataSource. It gives following error after Committing and when we navigate to some other row:
    =====================================================
    [690] BaseSQLBuilder Executing DML ... (Update)
    [691] Executing DML...
    [692] UPDATE CISDBA.DCX_X_SAVED_SEARCH SavedSearch SET DCX_MODEL_YEAR=?,DCX_USAGE_VEHICLE_FAMILY=?,DCX_END_ITEMS=?,DCX_RECORD_STATUS=? WHERE DCX_ID=?
    [693] cStmt = conn.prepareCall(" UPDATE CISDBA.DCX_X_SAVED_SEARCH SavedSearch SET DCX_MODEL_YEAR=?,DCX_USAGE_VEHICLE_FAMILY=?,DCX_END_ITEMS=?,DCX_RECORD_STATUS=? WHERE DCX_ID=?"); // JBO-JDBC-INTERACT
    [694] cStmt.setObject(1, "2004"); /*DcxModelYear*/ // JBO-JDBC-INTERACT
    [695] cStmt.setObject(2, "LX"); /*DcxUsageVehicleFamily*/ // JBO-JDBC-INTERACT
    [696] cStmt.setObject(3, "All"); /*DcxEndItems*/ // JBO-JDBC-INTERACT
    [697] cStmt.setObject(4, "All"); /*DcxRecordStatus*/ // JBO-JDBC-INTERACT
    [698] // ERROR: Unknown data type java.lang.Long // JBO-JDBC-INTERACT
    [699] cStmt.setObject(5, "206"); /*DcxId*/ // JBO-JDBC-INTERACT
    [700] cStmt.execute(); // JBO-JDBC-INTERACT
    [701] cStmt.close(); // JBO-JDBC-INTERACT
    BaseCostInvestCost VO before postChanges...
    this.getWhereClause(): null
    isDirty() before executeQuery...
    this.getWhereClause(): null
    isDirty() after executeQuery...
    BaseCostInvestCost VO before postChanges...
    this.getWhereClause(): null
    isDirty() before executeQuery...
    this.getWhereClause(): null
    isDirty() after executeQuery...
    [702] BaseSQLBuilder: releaseSavepoint 'BO_SP' ignored
    [703] BaseSQLBuilder: setSavepoint 'BO_SP' ignored
    BaseCostInvestCost VO before postChanges...
    this.getWhereClause(): null
    isDirty() before executeQuery...
    this.getWhereClause(): null
    isDirty() after executeQuery...
    BaseCostInvestCost VO before postChanges...
    this.getWhereClause(): null
    isDirty() before executeQuery...
    this.getWhereClause(): null
    isDirty() after executeQuery...
    [704] BaseSQLBuilder: releaseSavepoint 'BO_SP' ignored
    [705] EJBTxnHandler: Commited txn
    [706] BaseCostInvestCostView2 notify COMMIT ...
    [707] BaseCostInvestCostView1 notify COMMIT ...
    [708] StdCostView1 notify COMMIT ...
    [709] AltCostView1 notify COMMIT ...
    [710] PaperCarView1 notify COMMIT ...
    [711] InvestCostItemView1 notify COMMIT ...
    [712] SavedSearchView1 notify COMMIT ...
    [713] AltCostView1_BaseInvestToAltViewLink_AltCostView notify COMMIT ...
    [714] InvestCostItemView1_BaseInvestToInvestItemViewLink_InvestCostItemView notify COMMIT ...
    [715] PaperCarView_BaseCostTrackedVehicleViewLink_PaperCarView notify COMMIT ...
    [716] VehicleProgramLOV1 notify COMMIT ...
    [717] SubDeptLOV1 notify COMMIT ...
    [718] Transaction timeout set to 28800 secs
    [719] Column count: 14
    [720] ViewObject : Reusing defined prepared Statement
    [721] QueryCollection.executeQuery failed...
    [722] java.sql.SQLException: The transaction is no longer active (status = Committed). No further JDBC access is allowed within this transaction.
         void weblogic.jdbcbase.jts.Connection.checkIfRolledBack()
              Connection.java:468
         void weblogic.jdbcbase.jts.Statement.setMaxRows(int)
              Statement.java:179
         void weblogic.jdbc.rmi.internal.StatementImpl.setMaxRows(int)
              StatementImpl.java:82
         void weblogic.jdbc.rmi.SerialStatement.setMaxRows(int)
              SerialStatement.java:132
         void oracle.jbo.server.QueryCollection.executeQuery(java.lang.Object[], int)
              QueryCollection.java:534
         void
    ===================================================

    Hi Carsten,
    I tried to reproduce your problem, but couldn't. Let me explain what steps I executed and perhaps you can advise where I've not matched your steps.
    --Using build jdeveloper 9.0.3.3.1203, I built a new bc4j project containing a dept-emp default bc4j project (deptEntity, empEntity, deptView, empView, deptempFKAssoc, deptempFKViewLink, ApplicationModule).
    --In dos shell, I went to the directory \jdevdir\jdev\bin and ran setvars -go to set the correct jdk version
    --In the dos shell, in the directory \jdevdir\j2ee\home I executed the following command to install oc4j:
    java -jar oc4j.jar (defaults pswd to welcome for admin)
    --I remoted the appmodule to EJB Session Bean (BMT) and created a new deployment profile using the 9ias configuration for the application module.
    --I deployed the bc4j objects to oc4j
    --I created a new project
    --In this project I created a new jclient master-detail form using the above project's application module for the data model
    --I saved all and compiled the jclient project
    --I ran the jclient form and inserted a master record
    --I committed the transaction successfully
    --I browsed records, then edited a record
    --I committed the transaction successfully, then browsed.
    Is there something I've missed? Did you migrate your project and not start by creating a new project? Is there something special about the database schema you are using?
    Thanks,
    Amy

  • Creating a non transaction datasource

    All,
    I am using Quartz to fire Hibernate Jobs. Quartz Scheduler runs as a servlet in tomcat, the Hibernate job is a standalone app.
    The Scheduler calls the app like so:
    Quartz>Shell>Hibernate.
    When I start the Hibernate jobs, they instantly go into a blocked state, basically db dealocks. When view the connections with
    mysql admin, I can see the connections are sleep!
    I heard thru the grapevine that a non-transactional datasource would solve this problem.
    How do I do this? Is it done in tomcat, or do I need to change my hibernate db connection?
    Any ideas?

    You're deadlocking with another process - quite possibly with one of your earlier tasks that stalled for some reason.
    Turning off transactions is a dumb way to fix this - it avoids you finding out what the real problem is, thus curing the symptom but probably not the disease. Find out what's deadlocking and why, then fix that problem properly.

  • Active transactional datasources not listed in business content collection

    Dear experts,
    for SRM bidding engine i have activated the extractors in SRM through transaction RSA5 and put them on a transport. Replicated them in BW and their they are appearing correctly, activated them and provided infopackages.
    Now when i want to activate Business Content SRM role SAP_BW_SRM_ACT_BE and after grouping look for the transactional datasources, they are not listed in the list of objects (grouped 'before and after', collection 'automatic').
    1.Is this normal and do i need to make the links between datasources and infosouces myself after activating the role?
    2.or does it normally installs the entire flow correctly?
    Also weird - my datasources are BI7.0 and some of my BW SRM content is from older 3.x version, containng infosources and communications structures. Can this be the reason why Business Content grouping does not find the datasources?
    Regards,
    Steven

    Hi,
    looked at the note but did not provide more info as i already applied what is written in the note.
    This role for bidding engine after I have put it into the collective window, among the other objects it will activate it does not list the datasources of the transactional data, nor the links to the infosources.
    Installing it like this will require me to connect the datasources manually to the dataflow, which i want to avoid.
    Is there a way to make BW connect the transactional datasources of SRM Bidding Engine connect automatically with the business content BW flow of Bidding Engine? this i though would be done by collecting it (before and after), grouping (automatically).
    Regards,
    steven

  • How can we know one transaction is enhanced or not ?

    how can we know one transaction is enhanced or not ?

    first find enhancements related with a perticular tcode using following prog. :
    *& Report  ZUSEREXIT                                                   *
    report zuserexit no standard page heading.
    tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
             tables : tstct.
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    parameters : p_tcode like tstc-tcode obligatory.
    select single * from tstc where tcode eq p_tcode.
    if sy-subrc eq 0.
       select single * from tadir where pgmid = 'R3TR'
                        and object = 'PROG'
                        and obj_name = tstc-pgmna.
       move : tadir-devclass to v_devclass.
          if sy-subrc ne 0.
             select single * from trdir where name = tstc-pgmna.
             if trdir-subc eq 'F'.
                select single * from tfdir where pname = tstc-pgmna.
                select single * from enlfdir where funcname =
                tfdir-funcname.
                select single * from tadir where pgmid = 'R3TR'
                                   and object = 'FUGR'
                                   and obj_name eq enlfdir-area.
                move : tadir-devclass to v_devclass.
              endif.
           endif.
           select * from tadir into table jtab
                         where pgmid = 'R3TR'
                           and object = 'SMOD'
                           and devclass = v_devclass.
            select single * from tstct where sprsl eq sy-langu and
                                             tcode eq p_tcode.
            format color col_positive intensified off.
            write:/(19) 'Transaction Code - ',
                 20(20) p_tcode,
                 45(50) tstct-ttext.
                        skip.
            if not jtab[] is initial.
               write:/(95) sy-uline.
               format color col_heading intensified on.
               write:/1 sy-vline,
                      2 'Exit Name',
                     21 sy-vline ,
                     22 'Description',
                     95 sy-vline.
               write:/(95) sy-uline.
               loop at jtab.
                  select single * from modsapt
                         where sprsl = sy-langu and
                                name = jtab-obj_name.
                       format color col_normal intensified off.
                       write:/1 sy-vline,
                              2 jtab-obj_name hotspot on,
                             21 sy-vline ,
                             22 modsapt-modtext,
                             95 sy-vline.
               endloop.
               write:/(95) sy-uline.
               describe table jtab.
               skip.
               format color col_total intensified on.
               write:/ 'No of Exits:' , sy-tfill.
            else.
               format color col_negative intensified on.
               write:/(95) 'No User Exit exists'.
            endif.
          else.
              format color col_negative intensified on.
              write:/(95) 'Transaction Code Does Not Exist'.
          endif.
    at line-selection.
       get cursor field field1.
       check field1(4) eq 'JTAB'.
       set parameter id 'MON' field sy-lisel+1(10).
       call transaction 'SMOD' and skip first   screen.
    THEN check into each enhancement whether any one has been changed.
    Pls reward if usefull
    S@meer

  • Problem in datasource enhancement

    Hi All,
    Facing a problem in datasource enhancement.
    In R/3 SAP ABAP release = 640 and
    BW release = 350.
    Datasource: 0WBS_ELEMT_ATTR
    I enhanced the datasource by adding an append structure with 'ZZ' fields.The data elements for these fields are SAP standard (like KUNNR,VKORG etc...)
    Everything's active and there are no inconsistencies.
    However these added fields are not visible either in the RSA6 maintenance or in RSA3 checker.
    Hence I am unable to replicate these fields and pull them over to BW.
    Please advise.

    Guys,
    The problem is not with hiding/unhiding these fields.
    The appended fields themselves are not coming up through the RSA6 maintenance. They are not available for unhiding.
    Please advise.

  • How to do Datasource Enhancement ?

    hi experts,
    i have requirement in datasource enhancement,
    data source is 2lis_12_vcitm, my requirement is, i wnat to add one more field that is LIFEX ( External Identification of Delivery Note) from the LIKP ( SD document Delivery Header data) table.
    anybody please tell me the step by step procedure.
    please help me to do this.
    good answer will be appriciated with highest points,
    thanks in advance,
    venkat

    Hi,
    Pls chk this links;
    http://help.sap.com/saphelp_nw70/helpdata/en/6e/fe6e420f00d242e10000000a1550b0/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b0af763b-066e-2910-a784-dc6731660f46
    /people/pradip.patil/blog/2006/06/07/how-to-retain-deltas-when-you-change-lo-extractor-in-production-system
    /people/sap.user72/blog/2005/02/14/logistic-cockpit--when-you-need-more--first-option-enhance-it
    http://www.bridgeport.edu/sed/projects/cs597/Fall_2003/vijaykse/step_by_step.htm
    COPA datasource enhancement
    Re: copa
    Profitability Analysis Without COPA
    Hope this helps.
    Regards
    CSM Reddy

  • ABAP coding error...enhance transactional datasource

    i need to enhance CRM extractor with additional field.
    This is transactional data so i used Exit_rs_001
    Here is the extractor result -
    Guid...date...........objectid...item guid
    1122......1.1.10....901..........8811
    1122......2.1.10....901..........8812
    1123......1.1.10....902..........8813
    1123......2.1.10....902..........8814
    now i need field Product id in it which is called from DB Table CRMD_SRV_REFOBJ
    itemguid...referencekey...product
    8811............01.................110011
    8812............02.................110012
    8813............03.................110013
    now i want to extract data--
    Guid...date...........objectid...item guid...product
    1122......1.1.10....901..........8811.........110011
    1122......2.1.10....901..........8812.........110012
    1123......1.1.10....902..........8813.........110013
    so i appended the extractor...with field zproduct
    FOLLOWING Code doesnot work:::
    DATA: L_S_INFOSTRU LIKE ziw_orderma_i.
    CASE I_DATASOURCE.
    FIELD-SYMBOLS: <PRO_01> TYPE ziw_orderma_i.
    CASE i_datasource.
    WHEN 'ziw_orderma_i.'. " Upper case
    LOOP AT c_t_data ASSIGNING <PRO_01>.
    SELECT PRODUCT_ID INTO <PRO_01>-zZPRODUCT
    FROM CRMD_SRV_REFOBJ UP TO 1 ROWS
    WHERE ITEM_GUID = <PRO_01>-CRMD_SRV_REFOBJ.
    ENDSELECT. " not whole primary key
    ENDLOOP.
    ENDCASE.

    Hi,
    For this, you can do as below
    REFER EXTRACTOR GUID --1122
    Find GUID References for guid = 1122 in table CRMD_ORDERADMI (item level table)
    for the guid reference in CRMD_ORDERADMI, find the Product >0 in table CRMD_SRV_REFOBJ
    select that Product and write into extractor field zzproduct#
    WHEN 'ziw_orderma_i'.
    LOOP AT c_t_data INTO l_s_ziw_orderma_i.
    l_tabix = sy-tabix.
    data: temp_guid like CRMD_ORDERADM-GUID. to create a temporary variable
    SELECT single GUID FROM CRMD_ORDERADMI INTO temp_guid
    WHERE GUIDREF = l_s_ziw_orderma_i-GUID.
    The above statement would give you value for GUID from this table i.e. z1122
    SELECT PRODUCT_IT FROM CRMD_SRV_REFOBJ INTO l_s_ziw_orderma_i-ZZPRODUCT
    WHERE GUID = temp_guid.
    MODIFY c_t_data FROM l_s_ziw_orderma_i INDEX l_tabix.
    ENDSELECT.
    This would fetch your value
    clear temp_guid. to clear this temporary variable
    ENDLOOP.
    WHEN OTHERS.
    EXIT.
    ENDCASE.
    PS: It appears that you have corrected already so not requried any more
    Edited by: Rahul K Rai on Oct 17, 2010 9:27 PM

  • ABAP Coding- enhance transactional datasource

    i need to bring in data from different tables and following code works for me:
    DATA: l_s_ziw_orderma_i like ziw_orderma_i.
    CASE i_DATASOURCE.
    WHEN 'ziw_orderma_i'.
    LOOP AT c_t_data INTO l_s_ziw_orderma_i.
    l_tabix = sy-tabix.
    SELECT PRODUCT_IT FROM CRMD_SRV_REFOBJ INTO l_s_ziw_orderma_i-ZZPRODUCT
    WHERE GUID = l_s_ziw_orderma_i-GUID .
    MODIFY c_t_data FROM l_s_ziw_orderma_i INDEX l_tabix.
    ENDSELECT.
    ENDLOOP.
    WHEN OTHERS.
    EXIT.
    ENDCASE.
    Guid...date...........objectid...item guid
    1122......1.1.10....901..........z1122
    1122......1.1.10....901..........z1123
    1122......1.1.10....901..........z1124
    using this ITEM GUID from extractor, i want to pull out data from table - CRMD_SRV_REF
    guid ...............product...............Product type..........product quality
    z1122.............110011..........ABC.........................GUD
    z1123.............110012..........DEF..........................GUD
    z1124.............110013...........DFG.........................GUD
    NOW my code works for extracting PRODUCT..
    what MODIFICATION I need to do so that i can bring in PRODUCT TYPE & PRODUCT QUALITY

    HI ,
    I am not sure about the Product quality( Do you know the source table ?)  , but Product type will be available in the
    will not be available in CRMD_SRV_REFOBJ, you can get that from table COMM_PRODUCT ,
    Change your code as below sample code  to get product id and Type , find the source table for product quality and extend this code in the similar way , check for syntax error if any and fix it
    TYPES : BEGIN OF PROD        ,
            PRODUCT_ID   TYPE COMT_PRODUCT_ID ,
            PRODUCT_TYPE TYPE COMT_PRODUCT_TYPE,
            END OF PROD .
    DATA: l_s_ziw_orderma_i like ziw_orderma_i,
          i_PROD TYPE TABLE OF PROD ,
          WA_PROD LIKE LINE OF i_PROD .
    CASE i_DATASOURCE.
    WHEN 'ziw_orderma_i'.
    LOOP AT c_t_data INTO l_s_ziw_orderma_i.
    l_tabix = sy-tabix.
    SELECT PRODUCT_ID
      FROM CRMD_SRV_REFOBJ
      INTO l_s_ziw_orderma_i-ZZPRODUCT
    WHERE GUID = l_s_ziw_orderma_i-GUID .
    ENDSELECT.
    IF SY-SUBRC EQ 0 .
    SELECT PRODUCT_ID
            PRODUCT_TYPE
        INTO TABLE i_PROD
        FROM COMM_PRODUCT
             WHERE PRODUCT_ID = l_s_ziw_orderma_i-ZZPRODUCT .
    ENDIF .
    IF i_PROD[] IS NOT INITIAL .
    READ TABLE I_PROD INTO WA_PROD WITH KEY
                            PRODUCT_ID = l_s_ziw_orderma_i-ZZPRODUCT .
    IF SY-SUBRC EQ 0 .
    l_s_ziw_orderma_i-ZZPROD_TYPE = WA_PROD-PRODUCT_TYPE .
    ENDIF.
    ENDIF .
    MODIFY c_t_data FROM l_s_ziw_orderma_i INDEX l_tabix.
    ENDLOOP.
    WHEN OTHERS.
    EXIT.
    ENDCASE.
    Regards,
    Sathya

Maybe you are looking for