BI : Write BW 3.5 Transfer/Update routine to BI 7.0 Transformation routine

Hi Gurus,
I have 3.5 tranfer/ update routines. can anybody please tell me how to write the same routines in BI 7.0. I guess there are some syntax changes. For example below is the 3.5 update routine. Kindly advise me the steps or way of  how to write the same routine in BI 7.0.
FORM compute_data_field
  TABLES   MONITOR STRUCTURE RSMONITOR "user defined monitoring
  USING    COMM_STRUCTURE LIKE /BIC/CS2LIS_02_ITM
           RECORD_NO LIKE SY-TABIX
           RECORD_ALL LIKE SY-TABIX
           SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
  CHANGING RESULT LIKE /BI0/APUR_O0100-NETPRICE
           RETURNCODE LIKE SY-SUBRC "Do not use!
           ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
Thanks & regards ,
M.S
Edited by: M.S on Oct 26, 2009 12:10 PM

Hi ,
solved on my own. Thankyou very much..
thanks & regards,
M.S
Edited by: M.S on Oct 27, 2009 6:57 AM
Edited by: M.S on Oct 27, 2009 6:59 AM

Similar Messages

  • Can I transfer updates from my laptop to my desktop computer?

    Due to the slow internet available in my area and the cost of Verizon service, can I transfer updates from my laptop to my desktop?  I use the library forupdates as their speed is much faster and I can carry the laptop. 
    Robert

    If you download the updates from the Apple Support site, instead of with Software Update, you can transfer them.

  • Transformation routine for Infoobject lookup

    Hey guys,
    I am aware of Update rule routines but never done Transformation routine before. I didnt get any related post for my req.
    My requirement is on WBS element I have some attributes which is coming from std WBS Attr extractor but I have one custom attribute infooject which I want to populate through an Infoobject which is also a master data Infoprovider. For this I have to write a Tranfer rule routine.
    Please note these are transfer rules in BW 3.5 not BI 7. Please provide exact code. Appreciate your help.
    Thanks.
    BMW M///

    Declaration of Types table for your master data object in the declaration area....
    Replace your attributes in place of plant, GSRCSYS and CALMONTH
        TYPES: BEGIN OF TY_WBS,
                     /BIC/GPLANT TYPE /BIC/OIGPLANT,
                     /BIC/GSRCSYS TYPE /BIC/OIGSRCSYS,
                     CALMONTH TYPE /BI0/OICALMONTH,
               END OF TY_WBS.
        DATA: IT_WBS TYPE TABLE OF TY_WBS,
                    WA_WBS TYPE TY_WBS.
    /BIC/AWBS = your master data table name
    SELECT * FROM /BIC/AWBS INTO WA_WBS
        WHERE OBJVERS = 'A'.
    THen in the transformation Routine on field level use the below code to populate the value
    "  /BIC/GPLANT = L_SOURCE_PACKAGE-/BIC/GPLANT.
       substitute your objects here to query the master data object to get values.
    READ TABLE IT_WBS INTO WA_WBS WITH KEY
          /BIC/GPLANT = L_SOURCE_PACKAGE-/BIC/GPLANT.
    RESULT = WA_WBS-Your object name.
    Hope this will help you...

  • Transformation routine problem - changing 2 infoobjects in 1 routine

    Dear all,
    i have coded a transformation routine which gets data from 4 infoobjects and writes into 1 infoobject.
    routine is like that:
    startdate-starttime-enddate-endtime
    routine  converts data into :  time difference / 0calmonth
    however i need to update also 0calmonth with that routine? how can i do that?
    when i define a rule, i guess it always update only one infoobject?
    thanks in advance.

    Hi John,
    sure you can. It is the same procedure as in update rules, but a start routine will only work if all your required fields are contained in the communication structure and so in the infosource. Otherwise you need to stay with the second routine.
    regards
    Siggi

  • I can't convert my 3.x start routine to BI 7.0 start routine...

    Hi All,
    Can anyone help me to convert the below coding from 3.x start routine to BI 7.0 start routine.
    PROGRAM UPDATE_ROUTINE.
    $$ begin of global - insert your declaration only below this line  -
    TABLES: ...
    DATA:   ...
    $$ end of global - insert your declaration only before this line   -
    The follow definition is new in the BW3.x
    TYPES:
      BEGIN OF DATA_PACKAGE_STRUCTURE.
         INCLUDE STRUCTURE /BIC/CSCOIS_GMAS.
    TYPES:
         RECNO   LIKE sy-tabix,
      END OF DATA_PACKAGE_STRUCTURE.
    DATA:
      DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
           WITH HEADER LINE
           WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
    FORM startup
      TABLES   MONITOR STRUCTURE RSMONITOR "user defined monitoring
               MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
               DATA_PACKAGE STRUCTURE DATA_PACKAGE
      USING    RECORD_ALL LIKE SY-TABIX
               SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
      CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
    $$ begin of routine - insert your code only below this line        -
    fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
    to make monitor entries
    DATA : BEGIN OF t_yjepum OCCURS 0.
              INCLUDE STRUCTURE /bic/pyjepum.
    DATA : END OF t_yjepum.
    DATA : T_VER LIKE  ZTCO_VERCK OCCURS 10 WITH HEADER LINE.
      SELECT  * INTO CORRESPONDING FIELDS OF t_yjepum
      FROM  /bic/pyjepum
    WHERE  /bic/yopc IN ('AP', 'AS' ,'AR')  .
        APPEND  t_yjepum.
        CLEAR   t_yjepum.
      ENDSELECT.
    SELECT *   INTO  CORRESPONDING FIELDS OF T_VER
    FROM ZTCO_VERCK.
    APPEND T_VER.
      CLEAR  T_VER.
      ENDSELECT.
      LOOP AT DATA_PACKAGE.
    IF DATA_PACKAGE-/BIC/YJOBGUBUN = '3'.
    DATA_PACKAGE-/BIC/YAVERSI = '0'.
    ELSE.
    READ TABLE T_VER WITH KEY
      CALMONTH =  DATA_PACKAGE-CALMONTH
      YJOBGUBUN = DATA_PACKAGE-/BIC/YJOBGUBUN.
      DATA_PACKAGE-/BIC/YAVERSI = T_VER-YAVERSI.
    ENDIF.
    IF DATA_PACKAGE-/BIC/YJOBGUBUN = '3'
      and DATA_PACKAGE-/BIC/YCOM = 'C4C0'.
    IF  DATA_PACKAGE-/BIC/YACHAR+18(4) = 'C4CV' OR
        DATA_PACKAGE-/BIC/YACHAR+18(4) = 'C4CX' OR
        DATA_PACKAGE-/BIC/YACHAR+18(4) = 'C4CW'.
        DATA_PACKAGE-/BIC/YCOM =  DATA_PACKAGE-/BIC/YACHAR+18(4).
    ENDIF.
    ENDIF.
          MODIFY DATA_PACKAGE.
          CLEAR : DATA_PACKAGE.
    ENDLOOP.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    $$ end of routine - insert your code only before this line         -
    ENDFORM.

    There are a few basic rules you're not keeping to here.  Can't use header lines on your internal tables. Also you can't use the 'into corresponding fields of table' in a select loop.  So you don't need the append or the endselect statements.
    Try this:
    $$ begin of global - insert your declaration only below this line  -
    types:
    begin of tp_yjepum,
    include type /bic/pyjepm,
    end of tp_yjepum.
    *declare tables based on types without header lines
    data:
    t_yjepum   type standard table of tp_yjepum,
    s_vjepum  type tp_yjepum.  "work area for t_vjepum,
    *if you need a work area to use with the table use the same typing as your internal table
    t_ver      type standard table of ztco_verck.
    $$ end of global - insert your declaration only before this line   -
    $$ begin of routine - insert your code only below this line        -
        ... "insert your code here
    *--  fill table "MONITOR" with values of structure "MONITOR_REC"
    *-   to make monitor entries
        ... "to cancel the update process
       raise exception type CX_RSROUT_ABORT.
    select * into corresponding fields of table t_yjepum from /bic/pyjepum
    where /bic/yopc IN ('AP', 'AS' ,'AR') .
    no append or endselect required
    if sy-subrc ne 0.
    a message to the log if there was nothing in the table?
    endif.
    select * into corresponding fields of table t_ver from ztco_verck.
    if sy-subrc ne 0.
    a message to the log if there was nothing in the table?
    endif.

  • Help in transformation routine

    I have to put an indicator for delivery block in transformation routine.
    Logic: if headed delivery block 'LIFSK' is not blank, result is 'X'.
    Here is my code which is not working:
    IF SOURCE_FIELDS-LIFSK NE ''.
          RESULT = 'X'.
        ENDIF.
    But this code is not doing anything. I tired using 'test' function in transformation, it gives abap dump.
    What is the problem. Code is in right place in transformation routine.
    A similar code for item level block is working:
    More details:
    $$ begin of routine - insert your code only below this line        -
        ... "insert your code here
    *--  fill table "MONITOR" with values of structure "MONITOR_REC"
    *-   to make monitor entries
        ... "to cancel the update process
       raise exception type CX_RSROUT_ABORT.
        ... "to skip a record
       raise exception type CX_RSROUT_SKIP_RECORD.
        ... "to clear target fields
       raise exception type CX_RSROUT_SKIP_VAL.
        IF SOURCE_FIELDS-ZZ_LIFSP ne ''.
          RESULT = 'X'.
        endif.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_ZDELIBLK
    Thanks
    Jeff
    Edited by: Jeff Edwards on Aug 17, 2008 10:34 PM

    No luck.
    Error analysis
        The following checkpoint group was used: "No checkpoint group specified"
        If in the ASSERT statement the addition FIELDS was used, you can find
        the content of the first 8 specified fields in the following overview:
        " (not used) "
        " (not used) "
        " (not used) "
        " (not used) "
        " (not used) "
        " (not used) "
        " (not used) "
        " (not used) "
    ST22 / ABAP Editor :
    *-- Get field name from source field with extern posit.
      READ TABLE i_t_seg_source ASSIGNING <ls_s_seg_source>
        WITH KEY segid = i_segid.
      ASSERT sy-subrc = 0.
      IF sy-subrc = 0.
        READ TABLE <ls_s_seg_source>-t_field ASSIGNING <ls_s_field>
          WITH KEY position = l_posit_source_ex.
    > ASSERT sy-subrc = 0.
      ENDIF.
    *--  r_s_parameter-param_id has to be set out side due to type inheritance of RuleStepMapping
      CONCATENATE '<' <ls_s_seg>-y__nm '>' INTO
      c_s_connector-s__nm.
      c_s_connector-f__nm = <ls_s_field>-fieldname.
    ENDMETHOD.

  • Target value in transformation routine

    Hi
    How can I get the value of target field, which is already present, in the transformation routine?
    For Example, I have a transformation between ODS DS1 and ODS DS2. DS1 has fields DS1_F1, DS1_F2 and DS2 has fields DS2_F1, DS2_F2. Now I have written a transformation routine for target field DS2_F1 with input DS1_F1. In this routine, I want to get the value of DS2_F1, which is already present, before the result is being updated. How can I get it?
    Thanks & Regards
    Tejo

    Hi,
    Use end routine concept here .
    Regards,
    Anil Kumar Sharma .P

  • Table Declaration in Transformation Routine

    Hi all,
    I have declared a table in transformation routine as follows :
    DATA : BEGIN OF VACATIONS OCCURS 0,
           DATE TYPE D,
           END OF VACATIONS.
    System is giving following error on this :
    ' E:Tables with headers are no longer supported in the OO context.'
    What should I do now?
    Regards,
    Aisha Ishrat
    ICI Pakistan Ltd.

    Hi Al,
       Let me explain here ... because you are doing what is being told to do without actually understanding your purpose. Let me take a scenario. You want to read a database table for sales orders populate it into the internal table. Then you wnat to loop at the internal table you populated and print the output. For this what you need is an internal table where your data will be stored - simply put its a 2 dimentional array. so your data once put into the internal table would look like:
    Sales_Order  Sold_To_Party
    1                        1
    2                        3
    3                        5
    4                        1
    Now what you do is read it - which means you are going to read one line at a time, which means a structure not an internal table, which was the purpose of the header line. but since header lines are not supported you need a different work area (structure). So that when you read the first line your structure contains as follows:
    1                       1
    When you read the second line your structure or work area contains the second line:
    2                        3
    so on.....
    From the explaination above you must be clear that you need an internal table to store data temporarily and a structure to manipulate a single record. Now the cod would look like:
    DATA: it_vbak type table of VBAK.
    DATA: wa_vbak type vbak.
    Notice above that one is using a "table" while declaring and the other is not.
    Select * from VBAK into table it_vbak.
    loop at it_vbak into wa_vbak.
    note above that you are looping at the internal table and populating one record
    into the work area.
       write:/ wa_vbak-vbeln.
    endloop.
    Hope this helps. Ask if you have any more concerns.
    Best regards,
    Kazmi

  • Coding in transformation routine

    Hi,
    As per the design there will be two DSO in the data transformtion layer. One is right optimized DSO (for correct data) and another with a ERROR DSO which will contain the erronious records.
    In the transformation routine if the check fails the record needs to go to the error dso and a messge need to be updated in the monitor.
    Please let me know how to code this. Whether to do this by raising any exception and setting the return code.. or any other mechanism is there.
    thanks,
    Jugal.

    As per the reqirement there are two DSO, One is for the correct data and the other one for the error records, which will be send to business later for reconcilation. In the record master data attribute will also be there. For certain condition we need to update/ insert record into master data table as well. I found some function modules to update the master data.
    1  RSBCTSRM_UPDATE_MASTER_DATA
    2  RSDMD_WRITE_ATTRIBUTES_TEXTS (this is working fine).
    Question 2: Let me know is there any way to update the error DSO from error stack through configuration or through coding.
    Edited by: jugal behera on Feb 5, 2008 11:50 PM

  • Transformation routine on 2 different targets fields

    Hi gurus,
    I have been trying do some ABAP transformation routines, I did 1 and it was good works fine, then I tried to create another transformation routine on a different target field of the same DSO, and for some reason what I did on the global declaration on the other transformation is in this transformation and if I do a change in the second transformation it shows in the first transformation, other thing is that in the second transformation anything works, I got errors for everything and are not very specific. I may be skipping some basic steps; maybe I canu2019t create 2 transformation routines in the same transformation?
    Thanks

    Hi,
    There can be just 1 start routine.
    These are execute once. Also the declarations done in the global section remain visible in all the transformation routines.
    You can write multiple transformation(field level) routines.
    -Mayuri

  • Transformation Routine for checking condition only once

    Hello,
    I would like to perform he calculations based on certain criteria which goes like this...
          LOOP AT ITab WHERE EMPno  = ITAB Empno AND
                            ATYPE = ITAB-stype .
            IF ITAB-LTYP = '1000'.
              CHECK ITab-ABEGIN GE YR_BEGDT AND ITab-ABEGIN LE YR_ENDDT.
              CHECK FLAG_ST <> 1.
              ITAB-PENDING_ST = ITAB-PENDING_ST + ( ( ITab-BAL / 825 ) * 100 ).
            ELSEIF ITAB-STPE = '2000'.
              CHECK FLAG_SL <> 1.
              ITAB-PENDING_SL = ITAB-PENDING_ST + ( ( ITab-BAL  / 825 ) * 100 ).
              ENDLOOP.
          IF ITAB-stype  = '1000'.
            FLAG_ST = 1.
          ENDIF.
          IF ITAB-stype  = '2000'.
            FLAG_SL = 1.
          ENDIF.
          MODIFY ITAB.
    How to implement this logic in Transformation roles ... as this flag checks only once.... to perform the calculation.
    Thanks
        ENDLOOP.

    Hi there,
    You must be aware of start and end routine in a transformation.
    Assumin that you would like to modify the code before sending it to individual( field wise transormation) transformation , you can write your code in start routine tab of the transformations.
    Code written in Start routine in a transformation can manipulate the data data package wise..
    say for eg if u need to fill the values in indivual routine  then u can save all  the values in an internal table ( say for eg ur itab) in the start routine and this data is available for u in the transformation routines.. so anything written in start rotuine shall work as global modification for the transformation routines.
    Similarly code written in end rotuine shall work for chunk of data which is modified individually in transformation routine.
    you ca go thr this link for more clarification
    http://www.sdn.sap.com/irj/scn/index;jsessionid=(J2EE3417700)ID2067718350DB10090875593766856688End?rid=/library/uuid/609eea32-455e-2c10-c08a-c23adf8c934e&overridelayout=true
    http://help.sap.com/saphelp_nw04/helpdata/en/4f/a9ea964a86b04dbe4df20af6e598cf/frameset.htm
    Regards,
    kk

  • Transformation Routine to convert single record into multiple

    All,
    I need your help with ABAP Syntax.  My requirement is to take a single record and convert it to multiple records into a DSO with a condition to not create a record if a KF value is 0.
    R/3 Data Record:
    Employee | Date | Char1 | KF1 | Char2 | KF2 | Char3 | KF3 | Char4 | KF4
    Conversion Result into DSO:
    Employee | Date | Char1 | KF1
    Employee | Date | Char2 | KF2
    Employee | Date | Char3 | KF3
    Employee | Date | Char4 | KF4 (This record will not be written if no value is in KF4)
    I have read about the result table in update rules, however within BI 7.0 Transformations I am unfamiliar as to where the RESULT_TABLE function applies.  Has this been replaced by the Expert Routine?
    Could any ABAP expert provide sample code as to how I would perform this conversion in a Transformation Routine?
    Thanks,
    David

    Thanks Alex for your response.
    I did find a solution to this as it turns out to be fairly simple, however I executed the routine as an Expert Routine instead of a Start Routine.  I was advised to do the transformation here.
    The basic concept is defined below:
    Loop at source_package assigning -kf2.
              Append result_fields to result_package.
           Endif.
    -- Kf3u2026  and so on
    Endloop.
    Basically the APPEND statement is used to create the additional records.

  • Help with Transformation routine

    Hi,
    I have a transformation routine from a DSO to a cube. The DSO contains two infoobjects ( Form, Brand ) which are mapped to infoobject Material in the cube. My requirement is that i need to populate the material number based on the brand and form available in the DSO. Can you please help me with the routine to be written for material ?
    Regards
    Snehith.

    Hi,
    perform below steps in start routine .
    create one internal  as t_material having 3 fields
    and then write select query as :
    SELECT material
               brand
              form
         FROM /BIC/PGPUMATL
         INTO TABLE t_material
          FOR ALL ENTRIES IN SOURCE_PACKAGE
        WHERE brand EQ SOURCE_PACKAGE-brand
      form EQ SOURCE_PACKAGE-  form
    In transformation routine of material:
    write below logic :
    FIELD-SYMBOLS  :<fs_ t_material >    TYPE y_ t_material .
    *" Get material class value from table /bic/agpud009900
        READ TABLE  t_material
          ASSIGNING <fs_ t_material >
          WITH KEY brand = SOURCE_FIELDS-brand
                             form = SOURCE_FIELDS- form
        IF  sy-subrc EQ 0
        AND <fs_ t_material >  IS ASSIGNED.
          MOVE <fs_ t_material >material  TO RESULT.
        ENDIF.
    Hope this helps you
    Thanks .

  • Transformation Routine Help

    Hello Guys,
    I need your help in transformation routine.
    I have  source fields like 0DOC_NO(Sales Document no), 0CREATEDON(Created on), 0DLV_STS (Delivery status), 0DLVQLESC (Delivery Date Acc to scheduline date). i have 4 keyfigures like Late Incomplete (ZLI), Late Complete (ZLC), Ontime Complete (ZOC), Ontime In Complete (ZOI). i want to count no of sales order as ZLI, ZLC, ZOC, ZOI.
    I  have four conditions which i have to write for each keyfigures with above source fields in transformation routine.
    1) For Late Incomplete : -  if (0DLV_STS nt Eq C) and (0DLVQLSEC >0) then add1
    2) For Late Complete  : -  if (0DLV_STS  Eq C) and (0DLVQLSEC >0) then add1
    3) For On-Time Complete :- if (0DLV_STS  Eq C) and (0DLVQLSEC =0) then add1
    4) For On-TIme Incomplete :- if (0DLV_STS nt Eq C) and (0DLVQLSEC >0) then add1
    Can anyone tell me how to write it ?
    Thanks in advance
    Regards,
    Komik Shah
    Edited by: komik shah on Nov 14, 2009 1:24 AM

    Hi,
    Try this code...
    For Late Incomplete
    IF ( SOURCEFIELD-0DLV_STS NE 'C' ) AND ( SOURCEFIELD-0DLVQLSEC GE '0' ).
    IF ( SOURCEPACKAGE IS INITAL ).
    RESULT = 1.
    ELSE.
    RESULT = RESULT + 1.
    ENDIF.
    For Late Complete
    IF ( SOURCEFIELD-0DLV_STS EQ 'C' ) AND ( SOURCEFIELD-0DLVQLSEC GE '0' ).
    IF ( SOURCEPACKAGE IS INITAL ).
    RESULT = 1.
    ELSE.
    RESULT = RESULT + 1.
    ENDIF.
    For On-Time Complete
    IF ( SOURCEFIELD-0DLV_STS EQ 'C' ) AND ( SOURCEFIELD-0DLVQLSEC EQ '0' ).
    IF ( SOURCEPACKAGE IS INITAL ).
    RESULT = 1.
    ELSE.
    RESULT = RESULT + 1.
    ENDIF.
    For On-TIme Incomplete
    IF ( SOURCEFIELD-0DLV_STS NE 'C' ) AND ( SOURCEFIELD-0DLVQLSEC GE '0' ).
    IF ( SOURCEPACKAGE IS INITAL ).
    RESULT = 1.
    ELSE.
    RESULT = RESULT + 1.
    ENDIF.

  • Error in Open Hub Transformation Routine

    Hi,
    I created an Open Hub Destination which has 67 fields.
    In the transformation, i am using 'routine' for one of the transformation rule.
    In the routine, the target field type is not defined automatically and I am not able to change it. When i save the routine, it gives me error: E:The field string "_TY_S_TG_1" contains no fields.
    Please help.
    Thanks,
    CH
    CLASS routine DEFINITION.
      PUBLIC SECTION.
        TYPES:
          BEGIN OF tys_SC_1,
         InfoObject: 0MATERIAL Product.
            MATERIAL           TYPE /BI0/OIMATERIAL,
          END   OF tys_SC_1.
        TYPES:
          <b><i>BEGIN OF tys_TG_1,
         Field: TXTLG.
          END   OF tys_TG_1.</i></b> 
          PRIVATE SECTION.
        TYPE-POOLS: rsd, rstr.

    Hi,
    In the transformation, have you connected that rule to any target field of your destination? If not, then do that and then try to create the routine.
    Regards,
    Vaibhav

Maybe you are looking for

  • How to create custom report in crm 2013

    Hi, I want to create custom report in crm 2013. I want to show Contact information in report. My scenario is that when I select multiple record and run report then contact information show in different pages. I want to show record in textbox in repor

  • Data Load performance in BI7.0

    Hi, I have a generic question regarding BI7.0. From the perspective of data load performance what are the features  that BI7.0 has compared to earlier versions. Thanks in advance,, Rama Murthy

  • Restrictions for prodcuts in Catalog View

    Hi I have made product catalog with four products P1 P2 P3 P4 I have made 2 views V1: with Product P1 and P2 V2: with Product P3 and P4 Logs in webshop with View V1: In catalog I can see P1 and P2 During order creation for V1, I still can make order

  • HT204088 I got billed for an app that I did not order

    I got billed for an app that I did not order

  • Concerned about battery

    Hello, I'm a little concerned about the battery in my MacBook Air 11-inch. This is the second battery I've had in the computer since I bought it. The first one only last about an hour with a full charge. My AASP replaced it. I'm really only getting a