Primitive APAB editor in start/end routines in transformations

When editing or viewing ABAP code in BI transformations, for example in a start routine, the editor that opens is very primitive compared to the normal SE38 editor. Some of the limitations include:
The editor window doesn't cover the whole screen with seemingly no way to increase its size.
The syntax check doesn't show on which line syntax errors are located.
There is no option to perform a extended program check.
There is no way to insert break-points (other than with the ABAP keyword of course)
These limitations are present regardless of whether i choose the new front-end editor, the old front-end editor or the back-end editor. We're running SAP Netweaver 2004s.
It is of course possible to create a program in SE38 and copy-paste your start routine code to see the code using the "real" editor, but this is very tiresome and time consuming. Is there a way to make this editor look and behave like the normal editor? I have looked through the setting options an searched SDN without finding a way.

Hi,
This is just the settings you need to change to open the start,end, and characteristics routine using the old editor you are comfortable with. No need to go to se38 and check copy the program.
Go to se38->Utilities->settings->abap editor->editor tab->select the old abap editor.
To specifically put break point in transformations (start routine..end routine..)..goto transformation (RSA1) and then display the transformation.
Then goto extra (menu)->generated program. search for start_routine (method now) and put break point in the desired place.
Then from the DTP enable all 4 break points..in tranformation (this will come when u cange it to debug mode simulation). And u can debug the transformation.
The new editor is a good handy one. But take some time to get acquented to it. After you may start liking it :).
Cheers,
-J

Similar Messages

  • Difference between Start Routine  and End Routine in Transformations

    Hi  Friends,
      I'm using BI 7.0... here in Transformations step  we have two options..that is START ROUTINE... and END ROUTINE... What is the Difference between Start Routine  and End Routine in Transformations..
       When  we go for Start Routine.. and when we go for End Routine..
    Plz clarrify... points will be rearded..
    thanks
    babu

    Hi,
    One real time scenario for End Routine.
    We have a scenario where in a datasource field is mapped to three infoobjects on the datatarget side. There are 2 key figures which need to get data after these these Infoobjects are filled. The best place for this to happen would be in a End Routine, where in we would loop through the results package and using the values of the infoobjects from the data target ( Cube in this case).
    Hope this helps,
    HD

  • Finding the simulation mode in start/end routine

    Hi ,
    I am also updating some other tables in my transformation apart from the actual target infoprovider data.
    But I would like to update those other tables only when the DTP is actually run and don't want to update when DTP is run in simulation mode.
    Is there any way in the start/end routine to find whether the DTP execution is simulation or Real?
    Regards,
    Ramesh

    Hi,
    This is not possible in the start routine as this check is done even before reaching the start routine by using the method :
    if_rsbk_dtp_maintain~set_simulation
    -Vikram

  • Thumbrule for Start/End Routines Usage

    Friends,
                 Is there any thumb rule to decide when to use start or end routine in BW 7 in transformations ?  Can anybody provide a scenario for demonstration .. from performing simple lookups on different DSOs to get descriptions vs any other specific scenarios..   Is there any scenario in which only start or only end routine can be performed.. ?
    Any thoughts would be great..?
    thanks,
    Sunil

    Start routine is totally concerned with source data , where you need to write logic for source_package.
    Start routine will execute before transformation execution.
    Executes packageby package.
    loop at source_package into source-feilds.
    End routine works on target structure  and we have lo write logic on result_package.
    Genarally dso lookups are concerned with end routines.
    loop at result_package into result-feilds.
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/609eea32-455e-2c10-c08a-c23adf8c934e
    http://forums.sdn.sap.com/thread.jspa?threadID=1963087
    Regards,
    rvc

  • Start & End Routines in BI 7  Transformations

    Hi,
    In Transformations from DSO1-->DSO2
    In Start Routine for all entries in Source Package i read some fields from DSO3 and filled an iternal table
    And  in end routine i read the iternal table and filled the result package/fields
    In the mapping i haven't mapped any thing to the fields to which i intended to fill using routines
    When i executed data load those fields are not populated with any value
    But if i debug the transformation...results are updating in all fields in the  result package.......
    Do i need to make any setting or mappings to the fields which i want to update using end routine
    Thanks

    HI,
    For support pack 16 and above you get one more button besides End Routine (once end routine is created).
    This button is to update behaviour of fields in End Routines. You get two options once you select this button. One needs to make selection of proper option as it is mandatory.
    The default setting for the pushbutton is that only the fields with active rules are updated in the transformation. With this selection, fields populated in End routine wont be updated in the data target if no active rule exists for them in Transformation.
    Alternatively, you can define that all the fields should always be updated by selecting 2nd radio button. As a result, fields filled in the end routine are not lost if there is no other active rule.
    So in your case if you are in SP 15 or lower, then you will have to map the fields.
    Go through this article it gives the above explanation along with screenshots.
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/30d35342-1fe3-2c10-70ba-ad0da83d23bd
    Hope this helps.
    Thanks,
    Rahul

  • Check if a DSO has been lookup by other DSO/cube in start/end routine

    I have to support on of the client system which I am not part of the development.
    I found one DSO has been schedule to load data in daily process chain but it is not update to any target.
    Is it possible to check if this DSO has been using in the staging  i.e look up the reference field by other cube/DSO in start or end routine ?

    Hi,
    Possible by invoking respective field into code part.
    I think not much stuff required in this regard.
    Thanks - RK

  • End Routine in Transformation

    Hi Experts,
    We have a scenario wherein we need to write END Routine in the transfromation between  two cubes. While doing so we need to Look up at a DSO to fetch Financial Document Number.
    Details:
    We will be loading the Invoice data from 0LIV_DS01 ODS to the target cube ZLIV_DS01. We have a field called Invoice Clearing Date(0clear_date) in the target cube which is not present in this  0LIV_DS01 ODS. We have Invoice clearing date in the second cube(ZCSOINV). We need to write an END routine in the transformation between ZCSOINV and the target cube.
    We need to select Financial Document Number from Active table of 0liv_ds01 ods and store it in an internal table.
    Then compare this Financial Document Number with the Financial Document Number in the ZCSOINV cube. If there a match we need to select 0clear_date from ZCSOINV cube and assign it to result package.
    Please let me know what code needs to be written to achieve the above requirement in End Routine. Thanks
    Regards,
    Kavitha Jagannath

    In order to read the info cube you can use this function module: RSDRI_INFOPROV_READ
    This is the link in order to help you to use that function :
    /people/dinesh.lalchand/blog/2006/06/07/reading-infocube-data-in-updatetransfer-rules
    SAP also have the demo about it:
    You can open it in this program : RSDRI_INFOPROV_READ_DEMO
    1. go to tcode : se38
    2. type : RSDRI_INFOPROV_READ_DEMO then execute it.
    Edited by: Ananda Theerthan on Apr 12, 2010 6:20 PM

  • BI end routine at transformation to populate info object by vlookup attribu

    Hi ,
    I am APO consultant working in Bi routines and I have the follwoing situation and need some guidance in ABAP code (routine) .
    We sales info from markets as flat filea snd lod them into cubes. One of the filed is file is External sales Group: ZEXSGRP. This is an attribute or Sales Group info object ZSLSGRP.
    We get external sales group populated in file when we upload the file into cube -  I  want to use end routine to vlook up the  info infoobject table ZSLSGRP - all the external sales groups and use the matching value to write Sales Group (ZSLSGRP).Example  if ZSLSGRP  is NAM and it attribute is  ZEXSGRP  and has value N0000032. The file gets value N0000032 so the end routine should look all attribute of all infoobject ZSLSGRP and match the value and populate in example above it populates NAM.
    Hope i am clear - can any help with this.
    thaks
    Varma

    Replace your select statement ,
    SELECT *
    FROM /BIC/PZF31SALOFF
    INTO CORRESPONDING FIELDS OF TABLE it_tab4.
    instead of selecting all the fields , pick only the fields which are required.(one good performance improvement)
    SELECT    /BIC/PZF31SALOFF  comp_code
    FROM /BIC/PZF31SALOFF
    INTO CORRESPONDING FIELDS OF TABLE it_tab4.
    Remove the line below , this is not required
    MODIFY it_tab4 FROM wa_tab4.

  • Start - end routine modeling

    Hello experts,
    I have a fairly large source package 3 million lines. From that one line that starts with a specific patern for example date* has the date of the file.
    I need that date in order to use it at the transformation.
    The problem is that i cannot know in which package the system will find that date.
    So even if i find it with abap at the start routine, the packages before that will not have that date which i need.
    Any thoughts?
    Thanks
    Yannis

    Hi Yannis,
    here's an idea that allows you to stay in BW.
    1) Load your file into a new DSO or new InfoObject. In the start routine you delete all lines except the one of the 3 million that you need first.
    2)Then as a second step you load the same file into your main target and you use a lookup into the new DSO to get the date you are after.
    If you use the same datasource for both you can even use the same PSA. Use a Process Chain to make sure step 1 is executed before step 2 is started.
    Best,
    Ralf

  • Start/End routine code to delete last 5 characters

    Hi All,
              I have a field 15 CHAR in length in my data source. The first 10 characters are always numbers followed by a hyphen(-) and 4 more numbers.
    I want to store this into my DSO as a 10 character field containing just the first 10 numbers and drop the last 5 characters. Can anyone suggest me the routine for this?
    Thanks!
    Missy

    Hi Missy,
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/609eea32-455e-2c10-c08a-c23adf8c934e?quicklink=index&overridelayout=true
    Have a look to above docs link.
    I hope, it will help you alot!!!
    Thanks,
    Ajay

  • Start/Field Routine in Transformations (ABAP)

    Hi Experts
    Please update me on how to proceed and ABAP Code required.
    DSOFULL->CUBE
    DSO Active Table: /BIC/AEMPPED00
    Data In DSO
    Emp_ID--Emp_SDATE--Emp_TDate
    1-----01.01.2008
    1---01.01.2008--01.06.2008
    1-----01.01.2008
    Data Expected in CUBE
    Emp_ID--Emp_SDATEEmp_TDate-----Ter_Date
    1---01.01.2008--
    01.06.2008
    1---01.01.200801.06.2008---01.06.2008
    1---01.01.2008--
    I need a start routine or field routine that
    Will loading data from DSO to CUBE the code should look for employee latest record and if it find Emp_TDatevalue then it should populate both recordsTer_date in cube with  Emp_TDate
    Please advise

    Hi,
    i am providin you a sample code please modify it (field name and tables name's as per your requirement).
    Please write the code in transformation rule of field Emp_TDate.
    Map field Emp_SDATE  to the target field for Emp_TDATE .
        SELECT * FROM /BIC/AEMPPED00
                        WHERE Emp_SDATE NE ' '.
    if sy-subrc is initial.
    result = source_field-Emp_SDATE.
    else.
    result = ' '.
    endif.
    Please replace the emp_SDATE field with the source field name.
    But still i have some question...
    1. On what basis u decide the latest record ??
    Can u please explain scenarion bit mroe clearly.
    Thanks
    Dipika
    Edited by: Dipika Tyagi on Jun 24, 2008 8:47 AM

  • BI End Routine MONITOR entry overwrites Start Routine MONITOR entries

    Hi Colleagues,
    I'm using MONITOR TYPE rstr_ty_t_monitors in start routine as well as in end routine of transformations.
    But DTP request monitor shows only my end routine monitor entries under "Start routine" and my start routine monitor entries are not shown.
    msgid = RSM1
    msgty = W or E
    msgno = 799
    Any suggestions?
    Thanks and regards,
    Wolfgang

    Fixed by SAP by means of support package.

  • Using the end routine to populate the Cubes

    Hi BI Gurus,
    I am having following requirement:
    DSO: ZODS1  -
    > This DSO gets all the raw data from Source system.
    DSO:ZODS4   -
    >  Updates ZCUBE4
           ,ZODS5    -
    > Updates ZCUBE5
    there is no data flow between ZODS1 and  ZODS4
                                                     ZODS1  and  ZODS5
    I have added same new fields to ZODS1,ZCUBE4,ZCUBE5.
    So i want to populate fields of ZCUBE4,ZCUBE5.What is best possible way to do that without chaning ZODS4,ZODS5 structure?
    I am thinking to write an end routine ?Any idea if its possible?
    Also if possible can somebody sample code .
    Please help.

    Hi,
      U can populate ur new fields easily thorugh end routine in transformation ds04 to cube 4 ....
    Provided u can sufficient key in ds04 and which is the same key in ds01 to get the information of newly added fields in cube....
    please give ur fields and some sample data then it will be more clear ....
    but it can be achieved if u have necessary key fields in both dso's.
    Regards
    vamsi

  • ABAP routine in Transformations syntax fix

    Hi
    As i am beginner in ABAP please correct the Start/End routine which i have written in Transformations for the below requirment
    DSO1------->DSO2
    While load data to DSO1-->DSO2 in need a look that refer active table of DSO3 and perform if condition to fill value to a field in DSO2
    DSO1 (SOURCE FIELDS)
    Field X
    Field Y (X,Y are Key fields)
    Field Z
    Field W
    DSO2 (Result Field)
    Field P (The field which i want to update with Value by routine)
    DSO3 (Look up)
    Field A
    Field B (A,B are Key fields) (A=X,B=Y)
    Field C
    Requirement:
    While loading data from DSO1-->DSO2...We should read active table of DSO3 and pass it to Internal Table (A,B,C)with a key (A=X,B=Y)
    and in the end routine
    First check wether if Field C is not initial...then Result Field P should be updated with E
    ELSE CHECK SOURCE FIELD Field Z = 1..then Result Field P should be updated with F
    ELSE CHECK SOURCE FIELD Field W = T..then Result Field P should be updated with G
    else if all the above conditions are not met .then Result Field P should be updated with H
    Syntax i wrote (Not working correctly)
    GLOBAL DECLARATION:
    TYPES:
    BEGIN OF ty_sou,
    W           TYPE /bi0/W,
    Z            TYPE /bi0/Z,
    END OF ty_sou,
    BEGIN OF ZDSO_3,
    A          TYPE     /bi0/oiA,
    B          TYPE     /bi0/oiB,
    C          TYPE     /bi0/oiC,
    END OF ZDSO_3.
    DATA : ty_ZDSO_3_wa           TYPE   ZDSO_3,
                 ty_ZDSO_3_tab          TYPE   TABLE OF ZDSO_3,
                 ty_ZDSO_3_tab_temp     TYPE   TABLE OF ZDSO_3.
    DATA : ty_sou_tab            TYPE   TABLE OF ty_sou,
                ty_sou_wa             TYPE   ty_sou.
    START ROUTINE
    $$ begin of routine - insert your code only below this line        -
        LOOP AT SOURCE_PACKAGE ASSIGNING <source_fields>.
          IF  <source_fields>-XIS NOT INITIAL AND
              <source_fields>-Y  IS NOT INITIAL.
            ty_ZDSO_3_wa-A = <source_fields>-X.
            ty_ZDSO_3_wa-B = <source_fields>-Y.
            ty_sou_wa-Z =  <source_fields>-Z.
            ty_sou_wa-W  =  <source_fields>-W.
            COLLECT ty_sou_wa INTO ty_sou_tab.
            COLLECT ty_ZDSO_3_wa INTO ty_ZDSO_3_tab.
          ENDIF.
        ENDLOOP.
    *Select Statement to select values from ZDSO_3 Active Table
        SELECT A B C
        FROM /bic/aZDSO_300 INTO TABLE ty_ZDSO_3_tab_temp   FOR ALL
        ENTRIES IN
             ty_ZDSO_3_tab WHERE A = ty_ZDSO_3_tab-A.
        SORT ty_ZDSO_3_tab BY A B.
    END ROUTINE
    LOOP AT RESULT_PACKAGE ASSIGNING <result_fields> .
    Read table ty_ZDSO_3_tab_temp into ty_ZDSO_3_wa with key
    A = <result_fields>-P
    B = <result_fields>-Q
    binary search.
    If sy-subrc = 0.
    IF ty_ZDSO_3_wa-C IS NOT INITIAL.
    <result_fields>-/BIC/P = 'E'.
    ELSEIF
    ty_sou_wa-Z = 1.
    <result_fields>-/BIC/P = 'Fu2019.
    ELSEIF ty_sou_wa-W= 'T'.
    <result_fields>-/BIC/P = 'G'.
    ELSE.
    <result_fields>-/BIC/P = 'H'.
    ENDIF.
    Endif.
    ENDLOOP.
    But this is not working...i tried to debug but as i am a learner in ABAP i am not familiar....
    Please advise me where or what is wrong with my code and greatful if you can make changes

    Routine End
    LOOP AT RESULT_PACKAGE ASSIGNING<RESULT-FIELD>-/ . 
    Read table ty_ZDSO_3_tab_temp into ty_ZDSO_3_wa
    with key A = -P B = -Q binary search. 
    If sy-subrc = 0. 
    IF ty_ZDSO_3_wa-C IS NOT INITIAL.
    <RESULT-FIELD>-/BIC/P = 'E'.
    ELSEIF ty_sou_wa-Z = 1.
    <RESULT-FIELD>-/-/BIC/P = 'Fu2019.
    ELSEIF ty_sou_wa-W= 'T'.
    <RESULT-FIELD>-/-/BIC/P = 'G'.
    ELSE. 
    <RESULT-FIELD>-/-/BIC/P = 'H'.
    ENDIF.
    Endif.
    ENDLOOP.

  • ABAP Routine in Transformations Syntax Correction

    Hi,
    As i am beginner in ABAP please correct the Start/End routine which i have written in Transformations for the below requirement
    DSO1------->DSO2
    While load data to DSO1-->DSO2 in need a look that refer active table of DSO3 and perform if condition to fill value to a field in DSO2
    DSO1 (SOURCE FIELDS)
    Field X
    Field Y (X,Y are Key fields)
    Field Z
    Field W
    DSO2 (Result Field)
    Field P (The field which i want to update with Value by routine)
    DSO3 (Look up)
    Field A
    Field B (A,B are Key fields) (A=X,B=Y)
    Field C
    Requirement: While loading data from DSO1-->DSO2...We should read active table of DSO3 and pass it to Internal Table (A,B,C)with a key (A=X,B=Y) and in the end routine First check wether
    if Field C is not initial...then Result Field P should be updated with E
    ELSE CHECK SOURCE FIELD Field Z = 1..then Result Field P should be updated with F
    ELSE CHECK SOURCE FIELD Field W = T..then Result Field P should be updated with G
    else if all the above conditions are not met .then Result Field P should be updated with H 
    Syntax i wrote (Not working correctly) 
         Declaration-Global
    TYPES: BEGIN OF ty_sou,
                   W TYPE /bi0/W,
                   Z TYPE /bi0/Z, END OF ty_sou,
    BEGIN OF ZDSO_3,
    A TYPE /bi0/oiA,
    B TYPE /bi0/oiB,
    C TYPE /bi0/oiC, END OF ZDSO_3. 
    DATA : ty_ZDSO_3_wa TYPE ZDSO_3,
    ty_ZDSO_3_tab TYPE TABLE OF ZDSO_3,
    ty_ZDSO_3_tab_temp TYPE TABLE OF ZDSO_3. 
    DATA : ty_sou_tab TYPE TABLE OF ty_sou,
                 ty_sou_wa TYPE ty_sou. 
    Routine Start
    LOOP AT SOURCE_PACKAGE ASSIGNING .
    IF -XIS NOT INITIAL AND -Y IS NOT INITIAL.
         ty_ZDSO_3_wa-A = -X.
         ty_ZDSO_3_wa-B = -Y.
      ty_sou_wa-Z = -Z.
      ty_sou_wa-W = -W. 
    COLLECT ty_sou_wa INTO ty_sou_tab.
    COLLECT ty_ZDSO_3_wa INTO ty_ZDSO_3_tab.
    ENDIF.
    ENDLOOP. 
    *Select Statement to select values from ZDSO_3 Active Table 
    SELECT A B C FROM /bic/aZDSO_300 INTO TABLE ty_ZDSO_3_tab_temp FOR ALL ENTRIES IN ty_ZDSO_3_tab WHERE
    A = ty_ZDSO_3_tab-A. 
    SORT ty_ZDSO_3_tab BY A B. 
    Routine End
    But this is not working...i tried to debug but as i am a learner in ABAP i am not familiar.... Please advise me where or what is wrong with my code and greatful if you can make changes
    Edited by: SAP7593 on Jan 21, 2010 7:56 AM
    Edited by: SAP7593 on Jan 21, 2010 7:56 AM

    Routine End
    LOOP AT RESULT_PACKAGE ASSIGNING<RESULT-FIELD>-/ . 
    Read table ty_ZDSO_3_tab_temp into ty_ZDSO_3_wa
    with key A = -P B = -Q binary search. 
    If sy-subrc = 0. 
    IF ty_ZDSO_3_wa-C IS NOT INITIAL.
    <RESULT-FIELD>-/BIC/P = 'E'.
    ELSEIF ty_sou_wa-Z = 1.
    <RESULT-FIELD>-/-/BIC/P = 'Fu2019.
    ELSEIF ty_sou_wa-W= 'T'.
    <RESULT-FIELD>-/-/BIC/P = 'G'.
    ELSE. 
    <RESULT-FIELD>-/-/BIC/P = 'H'.
    ENDIF.
    Endif.
    ENDLOOP.

Maybe you are looking for