Start Routine & DTP

Hi Friends !
Facing a bit strange issue. When I run the DTP with selection for all AC_DOC_NO, start routine works fine & I am getting the expected result. But when I run the DTP without selection, result is not as expected. During debugging also I can see the correct records. Please advise.
With Regards
Rekha

Hi,
If you are loading to DSO, I am sure there could be some overwrite is happening where u r missing the expected records.
if this is the scenario then try to add keyfield in DSO to overcome from overwrite.

Similar Messages

  • Problems in Start Routine of Transfermations (DTP)

    Hi Abap OO Gurus,
    I am migrating the 3.x data source to BI 7.0 ,here I am getting problems in DTP especially in the start routine . we are using the SP10, pls see the below code  . I have fixed some code still I am getting problems  at the below loop statement .
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
        TYPES:
          BEGIN OF tys_SC_1,
         InfoObject: 0MPOINT Measuring point.
            MPOINT           TYPE /BI0/OIMPOINT,
         InfoObject: 0MDOC Measurement Document.
            MDOC           TYPE /BI0/OIMDOC,
         InfoObject: 0MPOBJ Object Number of Measuring Point Object.
            MPOBJ           TYPE /BI0/OIMPOBJ,
         InfoObject: 0MPTYP Type of Measuring Point.
            MPTYP           TYPE /BI0/OIMPTYP,
         InfoObject: 0PSORT Position Number of Measuring Point in Object (
    *Sort Field).
            PSORT           TYPE /BI0/OIPSORT,
         InfoObject: 0ASSEMBLY Assembly.
            ASSEMBLY           TYPE /BI0/OIASSEMBLY,
         InfoObject: 0ATINN Internal Characteristic Number.
            ATINN           TYPE /BI0/OIATINN,
         InfoObject: 0MDATE Date of Measurement.
            MDATE           TYPE /BI0/OIMDATE,
         InfoObject: 0TIME Time.
            TIME           TYPE /BI0/OITIME,
         InfoObject: 0DESIRSI Target Value for Measuring Point in SI Unit.
            DESIRSI           TYPE /BI0/OIDESIRSI,
         InfoObject: 0TVIND Target Value for Measuring Point Is Defined.
            TVIND           TYPE /BI0/OITVIND,
         InfoObject: 0MRMINI Lower Measurement Area Limit Is Defined.
            MRMINI           TYPE /BI0/OIMRMINI,
         InfoObject: 0MRMINSI Lower Meas. Limit or Min. Total Counter Read
    *ing in SI Unit.
            MRMINSI           TYPE /BI0/OIMRMINSI,
         InfoObject: 0MRMAXI Upper Measurement Area Limit Is Defined.
            MRMAXI           TYPE /BI0/OIMRMAXI,
         InfoObject: 0SIUNIT SI unit.
            SIUNIT           TYPE /BI0/OISIUNIT,
         InfoObject: 0CJUMPSI Counter Overflow Reading in SI Unit.
            CJUMPSI           TYPE /BI0/OICJUMPSI,
         InfoObject: 0PYEARSI Annual Performance in SI Unit.
            PYEARSI           TYPE /BI0/OIPYEARSI,
         InfoObject: 0CREATED_BY Created By.
            CREATED_BY           TYPE /BI0/OICREATED_BY,
         InfoObject: 0READSI Measured Value/Total Counter Reading in SI Un
    *it.
            READSI           TYPE /BI0/OIREADSI,
         InfoObject: 0READEU Measured Value in Document Entry Unit.
            READEU           TYPE /BI0/OIREADEU,
         InfoObject: 0RECDU Unit of Measurement for Document Entry.
            RECDU           TYPE /BI0/OIRECDU,
         InfoObject: 0CNTRRSI Counter Reading in SI Unit.
            CNTRRSI           TYPE /BI0/OICNTRRSI,
         InfoObject: 0CDIFFSI Counter Reading Difference in SI Unit.
            CDIFFSI           TYPE /BI0/OICDIFFSI,
         InfoObject: 0CAT_TYPE Catalog.
            CAT_TYPE           TYPE /BI0/OICAT_TYPE,
         InfoObject: 0CAT_GROUP Code group.
            CAT_GROUP           TYPE /BI0/OICAT_GROUP,
         InfoObject: 0FI_STATUS Processing Status.
            FI_STATUS           TYPE /BI0/OIFI_STATUS,
         InfoObject: 0DIM_ID Dimension Key.
            DIM_ID           TYPE /BI0/OIDIM_ID,
         InfoObject: 0CNTIND Measuring Point is Counter.
            CNTIND           TYPE /BI0/OICNTIND,
         InfoObject: 0EQUIPMENT Equipment Number.
            EQUIPMENT           TYPE /BI0/OIEQUIPMENT,
         InfoObject: 0FUNCT_LOC Functional Location.
            FUNCT_LOC           TYPE /BI0/OIFUNCT_LOC,
         InfoObject: 0CAT_CODE Code.
            CAT_CODE           TYPE /BI0/OICAT_CODE,
         InfoObject: 0MRMAXSI Upper Meas. Limit or Max. Total Counter Read
    *ing in SI Unit.
            MRMAXSI           TYPE /BI0/OIMRMAXSI,
         InfoObject: 0DOCAF Measurement Document Included for Associated T
    *ask.
            DOCAF           TYPE /BI0/OIDOCAF,
         InfoObject: 0RECORDMODE BW Delta Process: Update Mode.
            RECORDMODE           TYPE RODMUPDMOD,
         Field: RECORD.
            RECORD           TYPE RSARECORD,
          END   OF tys_SC_1.
        TYPES:
          tyt_SC_1        TYPE STANDARD TABLE OF tys_SC_1
                            WITH NON-UNIQUE DEFAULT KEY.
        DATA:
          p_check_master_data_exist
                TYPE RSODSOCHECKONLY READ-ONLY,
    *-    Instance for getting request runtime attributs;
        Available information: Refer to methods of
        interface 'if_rsbk_request_admintab_view'
          p_r_request
                TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
      PRIVATE SECTION.
        TYPE-POOLS: rsd, rstr.
    $$ begin of global - insert your declaration only below this line  -
    TABLES: ...
    DATA:   ...
    *constants: c_tabname type rstlogotab value '/BI0/MEQUIPMENT'.
    $$ end of global - insert your declaration only before this line   -
        METHODS
          start_routine
            IMPORTING
              request                  type rsrequest
              datapackid               type rsdatapid
            EXPORTING
              monitor                  type rstr_ty_t_monitors
            CHANGING
              SOURCE_PACKAGE              type tyt_SC_1
            RAISING
              cx_rsrout_abort.
        METHODS
          inverse_start_routine
            IMPORTING
              i_th_fields_outbound         TYPE rstran_t_field_inv
              i_r_selset_outbound          TYPE REF TO cl_rsmds_set
              i_is_main_selection          TYPE rs_bool
              i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
              i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
            CHANGING
              c_th_fields_inbound          TYPE rstran_t_field_inv
              c_r_selset_inbound           TYPE REF TO cl_rsmds_set
              c_exact                      TYPE rs_bool.
    ENDCLASS.                    "routine DEFINITION
    $$ begin of 2nd part global - insert your code only below this line  *
    ... "insert your code here
    data: lt_data type ref to data.
    data: ls_data type ref to data.
    field-symbols: <G_T_0EQUIPMENT> type standard table.
    field-symbols: <G_S_0EQUIPMENT> type any.
    field-symbols: <FUNCT_LOC> type any.
    field-symbols: <DATEFROM> type any.
    field-symbols: <DATETO> type any.
    constants: c_tabname type rstlogotab value '/BI0/MEQUIPMENT'.
    $$ end of 2nd part global - insert your code only before this line   *
          CLASS routine IMPLEMENTATION
    CLASS lcl_transform IMPLEMENTATION.
          Method start_routine
          Calculation of source package via start routine
      <-> source package
      METHOD start_routine.
    *=== Segments ===
        FIELD-SYMBOLS:
          <SOURCE_FIELDS>    TYPE tys_SC_1.
        DATA:
          MONITOR_REC     TYPE rstmonitor.
    $$ begin of routine - insert your code only below this line        -
    fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
    to make monitor entries
    In this start routine missing functional location for
    an equipment is added to a Data Package record, if it is available
        create data lt_data type table of (c_tabname).
        assign lt_data->* to <G_T_0EQUIPMENT>.
        create data ls_data type (c_tabname).
        assign ls_data->* to <G_S_0EQUIPMENT>.
        assign component 'FUNCT_LOC' of structure <G_S_0EQUIPMENT> to
        <FUNCT_LOC>.
        assign component 'DATE_FROM' of structure <G_S_0EQUIPMENT> to
        <DATEFROM>.
        assign component 'DATE_TO' of structure <G_S_0EQUIPMENT> to
        <DATETO>.
        CALL FUNCTION 'RSAU_READ_MASTER_DATA'
          EXPORTING
            I_IOBJNM                = '0EQUIPMENT'
            I_FLG_WHOLE_TABLE       = 'X'
          IMPORTING
            E_TABLE                 = <G_T_0EQUIPMENT>
          EXCEPTIONS
            READ_ERROR              = 1
            NO_SUCH_ATTRIBUTE       = 2
            WRONG_IMPORT_PARAMETERS = 3
            CHAVL_NOT_FOUND         = 4
            OTHERS                  = 5.
        CASE SY-SUBRC.
          WHEN 0.
            LOOP AT <G_T_0EQUIPMENT> INTO <G_S_0EQUIPMENT>.
              IF <FUNCT_LOC> IS INITIAL.
                DELETE <G_T_0EQUIPMENT>.
              ENDIF.
    master data collected and condensed
            ENDLOOP.
            <b>LOOP AT SOURCE_PACKAGE ASSIGNING <SOURCE_FIELDS>.
              IF ( SOURCE_PACKAGE-FUNCT_LOC IS INITIAL ) AND
              ( SOURCE_PACKAGE-EQUIPMENT IS NOT INITIAL ).
                READ TABLE <G_T_0EQUIPMENT> WITH KEY
                ('EQUIPMENT') = SOURCE_PACKAGE-EQUIPMENT INTO <G_S_0EQUIPMENT>
                IF SY-SUBRC = 0.
                  IF ( SOURCE_PACKAGE-MDATE >= <DATEFROM> )
                  AND ( SOURCE_PACKAGE-MDATE <= <DATETO> ).</b>* record for equipment exists and valid
                    SOURCE_PACKAGE-FUNCT_LOC = <FUNCT_LOC>.               MODIFY SOURCE_PACKAGE.
                  ENDIF.
                ENDIF.
              ENDIF.
            ENDLOOP.
          WHEN 4.
    master data is not (yet) loaded
          WHEN OTHERS.
    problem occured, output as warning
            MONITOR-MSGID = SY-MSGID.
            MONITOR-MSGTY = 'W'.
            MONITOR-MSGNO = SY-MSGNO.
            MONITOR-MSGV1 = SY-MSGV1.
            MONITOR-MSGV2 = SY-MSGV2.
            MONITOR-MSGV3 = SY-MSGV3.
            MONITOR-MSGV4 = SY-MSGV4.
            APPEND MONITOR.
        ENDCASE.
    if abort is not equal zero, the update process will be canceled
    DEL  :ABORT = 0.
    Please adjust the syntax manually.
        - Automatically replaced: COMM_STRUCTURE with SOURCE_FIELDS
        - Included the new Exception Handling (instead of ABORT)
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "start_routine
          Method inverse_start_routine
          This subroutine needs to be implemented only for direct access
          (for better performance) and for the Report/Report Interface
          (drill through).
          The inverse routine should transform a projection and
          a selection for the target to a projection and a selection
          for the source, respectively.
          If the implementation remains empty all fields are filled and
          all values are selected.
      METHOD inverse_start_routine.
    $$ begin of inverse routine - insert your code only below this line-
        ... "insert your code here
    $$ end of inverse routine - insert your code only before this line -
      ENDMETHOD.                    "inverse_start_routine
    ENDCLASS.                    "routine IMPLEMENTATION
    here I am getting the error like ""SOURCE_PACKAGE" is a table without a header line and therefore has no component called "FUNCT_LOC". I tried many ways to fix this problem.
    Could you some kind soul educate how to fix the problem .
    Thanks in advacne ,RP.

    Since the MONITOR is a table without header-line, u can no longer use it as a workarea for record entry. You can use MONITOR_REC defined in the data-section of this method to fill in the record and then append it to the table.
    MONITOR-MSGID = SY-MSGID.
    MONITOR-MSGTY = 'W'.
    MONITOR-MSGNO = SY-MSGNO.
    MONITOR-MSGV1 = SY-MSGV1.
    MONITOR-MSGV2 = SY-MSGV2.
    MONITOR-MSGV3 = SY-MSGV3.
    MONITOR-MSGV4 = SY-MSGV4.
    APPEND MONITOR.
    has to be replaced with
    clear MONITOR_REC.
    MONITOR_REC-MSGID = SY-MSGID.
    MONITOR_REC-MSGTY = 'W'.
    MONITOR_REC-MSGNO = SY-MSGNO.
    MONITOR_REC-MSGV1 = SY-MSGV1.
    MONITOR_REC-MSGV2 = SY-MSGV2.
    MONITOR_REC-MSGV3 = SY-MSGV3.
    MONITOR_REC-MSGV4 = SY-MSGV4.
    APPEND MONITOR_REC to MONITOR.

  • DTP selection criteria in start routine

    Hi,
    I have a code in the start routine where a variable lv_date gets the date from the DTP selections...
    DATA : i_filter TYPE rsbk_th_range,
                wa_filter TYPE rsbk_s_range.
    READ TABLE i_filter INTO wa_filter WITH  KEY
          fieldnm = 'ACT_GI_DTE '.
        IF sy-subrc EQ 0.
          lv_date = wa_filter-low.
       ELSE.
    But now my problem is that we are no more giving the range, instead we are giving the single value. so now my code should read the single value ( lv_date = wa_filter-low) instead of the low value of the range. So how can I achieve this?
    I mean my lv_date should get the single value populated in the DTP selections instead of the low value of the range values.
    How can i achieve this??
    Regards,
    Shreesh.

    Hi,
    When you give range in any variable, it lower value is captured in low whereas upper value is captured in high of the variable.
    Now that you are no more giving range but only single values, it would be enough if your code reads the data from low of the variable.

  • How to add new records in Start routine or end routine.

    Hi All,
            My requirement is to transfer data from one DSO to anothe DSO. But while transfering a single record frorm DSO1 i want to add 7 records to DSO2 for each record in DSO1 with slight change in data( with a different key). I want to do it in start routine or end routine. How can i do it. If you have any ABAP code for this then please send.
    Regards
    Amlan

    you can use this code, replace the fields where i have marked with <>.
    DATA : WA_RESULT_PACKAGE TYPE DSO2,
           WA_RESULT_PACKAGE1 LIKE WA_RESULT_PACKAGE.
    DATA : IT_RESULT_PACKAGE LIKE TABLE OF WA_RESULT_PACKAGE.
    DATA : DATE1 TYPE SY-DATUM.
    DATA : DAYDIFF TYPE i.
    DATA : RECORD_NO type rsarecord.
    SORT RESULT_PACKAGE BY <KEY FIELDS> "specify the key fields here
    RECORD_NO = 1.
    LOOP AT RESULT_PACKAGE INTO WA_RESULT_PACKAGE.
         IF WA_RESULT_PACKAGE_1-<KEYFIELDS> NE WA_RESULT_PACKAGE-<KEYFIELDS>.
              WA_RESULT_PACKAGE_1 = WA_RESULT_PACKAGE.
              DAYDIFF = WA_RESULT_PACKAGE-ENDDATE - WA_RESULT_PACKAGE-STARTDATE.
                   WHILE DAYDIFF NE 0.
                        DATE1 = WA_RESULT_PACKAGE-STARTDATE + DAYDIFF.
                        MOVE DATE1 TO WA_RESULT_PACKAGE-<KEYFIELDDATE>.
                        MOVE RECORD_NO TO WA_RESULT_PACKAGE-RECORD.
                        APPEND WA_RESULT_PACKAGE INTO IT_RESULT_PACKAGE.
                        DAYDIFF = DAYDIFF - 1.
                        RECORD_NO = RECORD_NO + 1.
                        CLEAR DATE1.
                   ENDWHILE.
              CLEAR DAYDIFF.
         ENDIF.
    ENDLOOP.
    DELETE RESULT_PACKAGE[].
    RESULT_PACKAGE[] = IT_RESULT_PACKAGE[].
    Reg Point 3.
    The Key figures will then show up in the report aggregated.Hope that is fine with you.
    Note:
    Before loading data, in DTP set the semantic key with the key field of the DSO1.This brings all the similar data w.r.t the key fields from the PSA together in a single package.
    rgds, Ghuru

  • 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.

  • The field "SOURCE_PACKAGE" is unknown IN THE START ROUTINE?

    Hi all,
    i am trying to create a start routine in the DTP FROM THE CUBE TO THE OPEN HUB.
    But when i check the syntax : it throws me an error message stating.
    The field "SOURCE_PACKAGE" is unknown IN THE START ROUTINE?
    how come the source package is unknow in the start routine can anyone pls advise  me on this!!
    DATA: l_tabix TYPE sy-tabix, wa_source_package TYPE tys_sc_1.
    LOOP AT SOURCE_PACKAGE INTO wa_source_package.
    l_tabix = sy-tabix.
    IF wa_source_package-SALES EMP EQ ' '.
    DELETE SOURCE_PACKAGE
    WHERE SALESEMP EQ ' '.
    INDEX l_tabix.
    ENDIF.
    ENDLOOP.

    Hi Pooja,
    I think that the error comes from the delete statement.
    As you already said, the SOURCE_PACKAGE is from BI7.0. That means that the LOOP AT statement cannot be wrong (although I prefer field-symbols)
    I would restate you code like below:
    DATA: l_tabix TYPE sy-tabix,
          wa_source_package TYPE _ty_s_sc_1.
    LOOP AT SOURCE_PACKAGE ASSIGNING <source_fields>.     "<source_fields> is declared as line from source_package
    * l_tabix = sy-tabix.
      IF <source_fields>-SALES_EMP IS INITIAL.
        DELETE <source_fields> FROM SOURCE_PACKAGE.
    * If this line does not work, try to add TABLE after the FROM-statement
    *WHERE SALESEMP EQ ' '.
    *INDEX l_tabix.
      ENDIF.
    ENDLOOP.
    Hopefully this will help.
    Alternatively you can try a single statement, because it is not necessary to do a loop.
    DELETE SOURCE_PACKAGE WHERE sales_emp IS INITIAL.
    Good luck!
    Steven Groot
    Edited by: S. Groot on Aug 11, 2010 7:50 AM

  • Syntax error in start routine

    Dear All,
    I have activated the infocube 0sd_c03 with grouping "in data flow before" and the infocube is activated with datasources
    2LIS_11_VAITM
    2LIS_11_VAHDR
    2LIS_12_VCITM
    2LIS_12_VCHDR
    2LIS_13_VDITM
    2LIS_13_VDHDR in 3.x where as
    TRCS 2LIS_13_VDITM -> CUBE 0SD_C03 in transformation with DTP.
    when I activate the transformation I get error as mentioned below:
    Start Routine: Syntax error in routine and in the start routine when I check the details of the error is
                      E:In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter
                               "SOURCE_PACKAGE" is incompatible with the formal parameter
                                   "DATA_PACKAGE".
    If source pakage is replaced by data package the system message is data_package is not available.
    What do I do to resolve this issue.
    KS

    hi,
    There is a structral diffrence between SOURCE_PACKAGE and DATA_PACKAGE
    so you need to change tys_SC_1_full
    go through the below links for similar problem
    Re: 0IC_C03: 2LIS_03_BF Transformation Start Routine Activation error
    Re: 2LIS_03_BF transformation problem

  • Using internal tables in BI 7 Start routines

    Hi All
    I tried searching for using internal tables in a start routine in BI 7 could not find the right pointers.
    This is what I am trying to do is the following:
    In a DSO ZSD_O01  I have a sales order and sales order item number and this DSO also contains the Contract number and the contract Item number.
    The DSO structure is as follows:
    /BIC/AZSD_O0100
    DOC_NUMBER
    ITEM
    CONTRACT
    CITEMNUM
    I want to read the data in this DSO into a internal table. But the key fields in this DSO is DOC_NUMBER and ITEM so I want to read this data into a internal table only for the first data package into the internal table. Thereafter I want to lookup into the internal table given the doc_number and ITEM to find the CONTRACT and CITEMNUM.
    Can any of you kindly show me how to :
    - Read data from a DSO into a internal table
    - Read the internal table for the first data package
    - How do I make the access in the internal table fast when my lookup in the internal table is not on the
      DSO key columns but on a different key column
    Appreciate your help
    Thanks
    Karen

    Hi Karen ,
    It will be helpful if you tell your requirement  as the approach you suggested is not looks convincing .May be their is some easy way and we can suggest you better approach
    -how to check for source_package = 1
    You need to hard code it .
    We decide package size at DTP level so you can declare a global variable .let say you have 50000 size of your  package then use global variable as counter and read only when record_count is <= 50000 .
    -how to declare the internal table so the values in it exists between different data packages
    Declare a global table and select data into it .A global table retain data across  the packages .
    - The key on which I need to lookup in the internal table is not the key fields as in the DSO
    Its ok .Let say you are doing lookup on A B and C field of DSO1 and the values may duplicate  in your source .then you just need to read the internal table having data from DSO2  with key field  A B C .
    Better if you set them as semantic keys at DTP level so that all  duplicate entries of A B  C will appear in same package .
    global Declarations
    In your start routine you will have this following code :
      TYPES:
          tyt_SC_1        TYPE STANDARD TABLE OF tys_SC_1
                            WITH NON-UNIQUE DEFAULT KEY.
    $$ begin of global - insert your declaration only below this line  -
    ...   insert your code here
    $$ end of global - insert your declaration only before this line   -
    One question
    Why you want to populate values for 1 source package only not for all ?This will be helpful to understand your requirement and may be we can fulfill it in some other manner .
    Regards,
    Jaya Tiwari

  • Get the request id from a PSA in start routine in transformation

    Hello All,
    I need to get the request id of the PSA (source_package) during the start routine or field routine and then use it to look up the Date when requested was created using the table RSREQDONE.
    I'm extracting data from ECC, and then I load the data from the Datasource, then I use DTP/Transformation to load data into a ODSO.
    <removed>
    Thanks Guys,
    JMelo
    Edited by: Arun Varadarajan on Feb 6, 2009 12:09 PM

    Hi John,
    its pretty simple to read data from a Info-cube.
    Use the Function Module :RSDRI_INFOPROV_READ".
    You can pass the name of fields and filters which you want to read from the cube.
    Hope this wil help.

  • How to set request number of info package using start routine

    Hi All,
    I have a specific requirement in which I need to upload only selective request nos from PSA to DSO.
    Any one can suggest how to set request number of info package using start routine or any other mode so that only selective request should proceed using DTP?
    Thanks
    Sangita

    You'll probably want to do this in a start routine.  It is probably not advisable to hard-code the technical name of the InfoPak.  They seem to remain the same upon transport, unlike DTP technical names which are locally generated.
    I would do a SQL select like this in a start routine, and then filter based on the results of the SQL.  You'll probably want to sort the results by date and time, both descending.  Or do a MAX in the SQL.
    Please let me know if this isn't clear.
    select q~rnr q~logdpid q~tdatum q~tuzeit
    from rsreqdone as q
      inner join rsldpio as p
        on p~logdpid = q~logdpid
    where p~objvers = 'A'
    and p~logdpid like 'ZPAK%'
    and p~source = 'your data source'

  • Start routine 3.x  - 7.0

    Hello people,
    I'm working on DSO 0CRM_COM2 in BI 7.0.
    I created a transformation between DataSource 0CRM_COMPLAINTS_I and this DSO.
    I'm using the "same" routines used in standard update rules (3.x).
    But the start routine needs g_s_minfo-upmode, which seems to have disappeared in 7.0.
    So which is the corresponding field to upmode in BI 7 ?
    The code is the following one :
        DATA: lv_fsname(60)   TYPE c.
        FIELD-SYMBOLS: <fs_gsminfo> TYPE ANY.
        lv_fsname = 'g_s_minfo-updmode'.
        ASSIGN (lv_fsname) TO <fs_gsminfo>.
        IF <fs_gsminfo> = 'F'
        OR <fs_gsminfo> = 'C'.
          REFRESH source_package.
        ENDIF.
    Cheers,
    Vince.

    Hi Vince,
    this is actually a very interesting question. First of all I would not recommend to migrate this DataSource.
    Second, the field that the 3.X business content is using to determine the info what kind of load is processed is not available in 7.0 anymore.
    You know that we have now the InfoPackage that can handle init/delta and full uploads to the PSA and we have the DTP that can distinguish between a full and a delta from the PSA in the InfoProvider. We do not have a INIT for DTP's anymore. This makes it now a bit complex. Even if you load via full into the PSA, it would be a Delta for the DTP.
    Please have a look into my blog. I describe which info is available during the transformation.
    SAP NetWeaver 7.0 BI: Get runtime information of a Data Transfer Process (DTP) in a Transformation
    I would say there is no easy solution to determine in the transformation how the data has been loaded into the PSA. Do you kow why this is info is necessary?
    Best Michael

  • Short dump because of start routine.

    Hi ,
    I have a start routine to delete the certain records of Source package based on some condition .
    My code is supposed to delete the source package when the 0DOC_CATEG ( Documant category )
    is equal to 'B' or 'G'.Below is my code :
        LOOP AT SOURCE_PACKAGE into <SOURCE_FIELDS> .
          *IF   <SOURCE_FIELDS>-DOC_CATEG EQ 'B'
            *OR <SOURCE_FIELDS>-DOC_CATEG EQ 'G'. 
            DELETE SOURCE_PACKAGE from <SOURCE_FIELDS> .
          ENDIF.
        ENDLOOP.
    There is no synatx error but at the runtime when executing DTP, it throws short dump.
    Could somebody tell me what is the issue and if there is any alternate way of code .
    Thanks,
    Vels

    Hi siggi,
    The short dump is as follows:
    Runtime Errors         GETWA_NOT_ASSIGNED
    Error analysis
        You attempted to access an unassigned field symbol
        (data segment 32774).
        This error may occur if
        - You address a typed field symbol before it has been set with
          ASSIGN
        - You address a field symbol that pointed to the line of an
          internal table that was deleted
        - You address a field symbol that was previously reset using
          UNASSIGN or that pointed to a local field that no
          longer exists
        - You address a global function interface, although the
          respective function module is not active - that is, is
          not in the list of active calls. The list of active calls
          can be taken from this short dump.

  • Not able to debug the start routine

    Dear All,
    I am facing a weired situation.
    I have a transformation(DSO -> Cube) with start routine. I am able to debug the routine in Development System.
    I transported the routine to Production System successfuly, but i am not able to debug the start routine there. I have all the necessary authorisations(SAP_ALL, SAP_NEW)
    I am perplexed. Never seen such issue before.
    Can someone help me here?
    Regards,
    Avinash.
    Edited by: Avinash Kumar on Nov 5, 2008 11:16 AM

    Dear Jerry,
    Thanks for writing.
    I followed the instruction, but it didn't work.
    Can there be any technical reason for data package to be empty, even if the source has data(Note: There is no filter in DTP)?
    Also, i just checked with other start routines...I am not able to debugg there also. System is not entering the debug mode.
    Here, the patch level is: 0010. Can this be the villain?
    Please advise.
    Regards,
    Avinash.
    Edited by: Avinash Kumar on Nov 6, 2008 4:26 AM
    Edited by: Avinash Kumar on Nov 6, 2008 4:51 AM

  • Restricting data in cube using start routine

    Hi,
    Can anyone help me with my scenariou2026.I am trying to restrict the absence data being loaded into the cube where the absence is less than or equal to twenty.
    Firstly I put in a start routine in the update rules against actual time.
    DELETER DATA_PACKAGE WHERE  DUR_ACTUAL GT 20
    But this didnu2019t work.
    Secondly I put this code in the change routine for the key figure actual time
    IF RESULT GT 20.
      RETURNCODE = 1.
    ELSE.
      RETURNCODE = 0.
    ENDIF.
    But all the actual time fields were set to 0.
    Can anyone please help with the correct code.
    Thanks
    Forhad

    It is hard to say without debugging your code, and inspecting the input package.  Maybe you just need quotes around your values, or something simple like that.
    But did you know that it is faster to put a filter in a DTP?  Using a filter, you're pushing the criteria down to the SQL WHERE clause, and limiting the amount of data.
    And, you're eliminating the need for ABAP.
    Sorry, if you're not on BI7, disregard, because you don't have DTPs.
    Edited by: Jerry Coleman on Jan 29, 2009 10:05 AM

  • Start Routine and Variables

    Hii All
    A couple of questions for you gurus.
    a) Am I right in thinking that the start routine is called once for each data package (BI 7).
    b) Is it also truethat all variables including globals and internal tables are re-initialised for each data package ?
    Thanx
    Asif

    Hi Guys,
    It is right that start routine is called once for each data package.
    But variables and interal tables are not re-initialized for each data package.
    Value in variable is retained and can be used for further data packages.
    For that you can use a counter.  Usage will be like this
    IF counter is INITIAL.
         Put your logic.
       Counter = 1.
    ENDIF.
    In this way, you can do the calculation common for all data packages.
    The only problem with this is when packages are loaded in parallel.
    To avoid this, do the serial processing. To achieve that, In DTP
    Goto > Settings for Batch Manager > Number of Processes 1
    I hope the given information is helpful.
    Regards,
    Gaurav

Maybe you are looking for

  • Windows compatible video card for OSX?

    I have a windows PC with an ATI All-In-Wonder 9600XT card that i put in it a few years back. I was wondering if this card is compatible with my PPC Powermac G5 Dual 2.7 machine to add on as a second video card. It's only purpose would be for me to im

  • Why can't I read a lot of my mail?

    does anyone else have this problem: at least a third to a half of all the eMails I receive on the iPhone come in a completely unreadable form - a lot of code, or a message that I can't decipher. Not just one or two, but a good portion of everything.

  • Trouble with Iweb SEO

    So I am finally catching up to the 21st century by getting into Google analytics and Stat tracker. I downloaded Iweb SEO tool from rage and did about 2 hours of work filling in all the correct titles, meta data, etc... I published (from Iweb SEO) to

  • Creation of Process Chains

    Hi Gurus, I am a beginner in <b>SAP BW</b>, can anyone kindly guide me in creation of <b>process chains (step by step)</b> and if its not of too much trouble give some detailed info on this topic. thanking you in advance. with regards sreedhar

  • File Dialog - How to remove all files pattern in LV 8.x

    How to remove "all files" pattern in LV 8.x in the file dialog. Is it possible? Thanks Dany Dany Allard