Init variable

Hi experts!
I have a web template with a table and a dropdown box to set variable values.
when I run it, it requires me a value for the query variable. I need set value automaticaly with the current month and year. it´s possible?
thanks.

You can create a new variable “zcurperiod” of the type customer exit.
When creating this, select “can be changed in query navigation”.
Deselect “ready for input”.
When you create coding for this in CMOD, you need to get the current period.
You can do the same for fiscal year, or calendar month year.
When zcurmonth.
    if i_step = 2.
      clear l_s_range.
      clear h_datum.
      h_datum = sy-datum.
      CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
        EXPORTING
          I_DATE  = h_datum
          I_PERIV = 'Z1'
        IMPORTING
          E_BUPER = h_buper
          E_GJAHR = h_gjahr.
      l_s_range-low+0(4) = h_gjahr.
      l_s_range-low+4(3) = h_buper.
      l_s_range-sign = 'I'.
      l_s_range-opt = 'EQ'.
      append l_s_range to e_t_range.
    endif.

Similar Messages

  • Explain two init variables

    Can somebody explain in simple english what exaclty they do/are the following init variables.
    DB_FILE_NAME_CONVERT
    LOG_FILE_NAME_CONVERT
    Thx

    Oracle Documentation has them explained in English :)
    LOG_FILE_NAME_CONVERT
    Creating a Standby Database with a Different Directory Structure

  • PSP GLOBAL VARIABLE

    I have a problem in Calling a Global Variable(s) That Was Defined in Package and Must be Use in All procedures of Package.
    I Descibe My Problem in Following Steps:
    - First I Define A Global Variable In Package Body.
    - Second Initialize The Values Of Variable In One Of Procedures of Package.
    - Third Call The Initalized Variable In Another Procedure.
    - Forth The Called Varibale don't Have Correct Value
    When use in a Http Address. For Exapmple :
    http://ora-server:7778/pls/psp/main.proc1
    Note : When use PL/SQl I Don't Have Any Problem About.
    Please Assist Me in as Soon as Possible.
    Thank You

    Mansoureh,
    I think you landed in the wrong forum. This one is for Oracle HTML DB.
    Scott

  • Variable type

    Dear All
    I tried to set a path of field as below Code.
    in case of case1, i can set a presence property to extPath.
    but in case of case2, i can't set a presence property to extPath.
    is there any function to change type of variable such as toString().
    case 1
         var extPath = Test_Report.Test_Result2;
    case 2
         var extPath = "Test_Report.Test_Result2";
    ------------------------------------------ Code ------------------------------------------
    var extPath = Test_Report.Test_Result2;
    var typeOfdevice = Test_Report.Test_Cover.sub_Cover_info.Cover_info.info_Device.D_Drop.rawValue;
    var changeEvent = xfa.event.change;
         if(typeOfdevice == "범용"){
              Init.setPresence(extPath, "visible");
    // In the Init variable group
    //Set Presence of Field or subform
    function setPresence(obj, block){
    obj.presence = block;

    var extPath = Test_Report.Test_Result2.rawValue;
    If est_Report.Test_Result2 is a text field extPath should be a string. If you are suspicious of type coercion and run-time errors you can use standard JavaScript methods, for example
    var str = Test_Report.Test_Result2.rawValue;
    var extPath = str.toString();
    or
    var str = Test_Report.Test_Result2.rawValue;
    var extPath = parseInt(str);
    or
    var str = Test_Report.Test_Result2.rawValue;
    var extPath = parseFloat(str);
    etcetera.
    Steve

  • Inventory cube-what is the use of 0ISSCNSSTCK & 0RECCNSSTCK in inventory

    hi experts ,
    in my project
    0RECCNSSTCK-Quantity Received into Consignment Stock
    0ISSCNSSTCK-Quantity Issued from Consignment Stock
    are used and populating data by using field level routine ....(mapping 2lis_03_bf & 0ic_c03)
    can any one tell me what is value these kyfs will hold ...mean in business language
    and in transformations between 2lis_03_bf & 0ic_c03 only above kyfs(2) and char got mapping .
    whether these kyfs alone can bring data for valuated stock,blocked stock,quality stock & stock in trans???
    in  report we are getting values for valuated stock,blocked stock,quality stock & stock in trans ,issued from val and recived from val stock
    only valuated stock, ,issued from val and recived from val stock are correct and others are not matching with r/3
    routine used :
    USING
         COMM_STRUCTURE type _ty_s_SC_1__RULE_14
       CHANGING
         RESULT         TYPE _ty_s_TG_1_full-ISSCNSSTCK
         RETURNCODE     LIKE sy-subrc
         ABORT          LIKE sy-subrc
       RAISING
         cx_sy_arithmetic_error
         cx_sy_conversion_error.
    * init variables
    * fill the internal table "MONITOR", to make monitor entries
    * only goods issue is considered
       IF ( COMM_STRUCTURE-processkey EQ '100'   "Other Issues
         OR COMM_STRUCTURE-processkey EQ '101'   "Returns / Vendor
         OR COMM_STRUCTURE-processkey EQ '104'   "Material Transfer
         OR COMM_STRUCTURE-processkey EQ '105'   "Stock Adjustment InvD
         OR COMM_STRUCTURE-processkey EQ '106'   "Stock Adjustment Other
         OR COMM_STRUCTURE-processkey EQ '110' ) "Issue from Stock Transfer
        AND COMM_STRUCTURE-bwapplnm EQ 'MM'
    * only movements which are relevant for stock control
        AND COMM_STRUCTURE-stockrelev EQ '1'
        AND COMM_STRUCTURE-cpquabu <> 0.
    * only consignment stock is considered
         CASE COMM_STRUCTURE-stockcat.
           WHEN 'K'.
             RESULT = COMM_STRUCTURE-cpquabu.
             RETURNCODE = 0.
           WHEN space.
             IF COMM_STRUCTURE-stocktype CA 'KLM'.
               RESULT = COMM_STRUCTURE-cpquabu.
               RETURNCODE = 0.
             ELSE.
               RETURNCODE = 4.
             ENDIF.
           WHEN OTHERS.
             RETURNCODE = 4.
         ENDCASE.
       ELSE.
    * if the returncode is not equal zero, the result will not be updated
         RETURNCODE = 4.
       ENDIF.
    * if abort is not equal zero, the update process will be canceled
       ABORT = 0.
      ENDFORM.                 
    helpfull suggestions will be appreciated with points
    thanks in advance
    Harry

    consignment stock:
    http://en.wikipedia.org/wiki/Consignment_stock
    So you have stock at a vendor which becomes your property when you use it.
    The 2 KF's are for issue and receipt.
    About the other problem: check your rule groups (if you use transformations).  There are several rule groups, each of them updating different KF's.

  • CALL_FUNCTION_CONFLICT_TYPE Standard Data loading

    Hi,
    I am facing a data loading problem using Business content on CPS_DATE infocube (0PS_DAT_MLS datasource).
    The R/3 extraction processes without any error, but the problem occurs in the update rules while updating the milestone date. Please find hereunder the log from the ST22.
    The real weird thing is that the process works perfectly in development environment and not in integration one (the patch levels are strongly the same: BW 3.5 Patch #16).
    I apologise for the long message below... this is a part of the system log.
    For information the routine_0004 is a standard one.
    Thanks a lot in advanced!
    Cheers.
       CALL_FUNCTION_CONFLICT_TYPE                                                 
    Except.                CX_SY_DYN_CALL_ILLEGAL_TYPE                             
    Symptoms.                                                Type conflict when calling a function module
    Causes                                                        Error in ABAP application program.   
         The current ABAP program "GP420EQ35FHFOCVEBCR6RWPVQBR" had to be terminated because one of the statements could not be executed.                                 
         This is probably due to an error in the ABAP program.                                 
         A function module was called incorrectly.
    Errors analysis
         An exception occurred. This exception is dealt with in more detail below                      
         . The exception, which is assigned to the class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was neither caught nor passed along using a RAISING clause, in the procedure "ROUTINE_0004"               
         "(FORM)" .                                    
        Since the caller of the procedure could not have expected this exception                      
         to occur, the running program was terminated.                                                  The reason for the exception is:     
        The call to the function module "RS_BCT_TIMCONV_PS_CONV" is incorrect:
    The function module interface allows you to specify only fields of a particular type under "E_FISCPER".
        The field "RESULT" specified here is a different field type.
    How to correct the error.
      You may able to find an interim solution to the problem in the SAP note system. If you have access to the note system yourself, use the following search criteria:                                
        "CALL_FUNCTION_CONFLICT_TYPE" CX_SY_DYN_CALL_ILLEGAL_TYPEC                                    
        "GP420EQ35FHFOCVEBCR6RWPVQBR" or "GP420EQ35FHFOCVEBCR6RWPVQBR"                                
        "ROUTINE_0004"                                                                               
        If you cannot solve the problem yourself and you wish to send                                 
        an error message to SAP, include the following documents:                                  
        1. A printout of the problem description (short dump)                                         
           To obtain this, select in the current display "System->List->                              
           Save->Local File (unconverted)".                                              2. A suitable printout of the system log To obtain this, call the system log through transaction SM21.  Limit the time interval to 10 minutes before and 5 minutes  after the short dump. In the display, then select the function                                    
           "System->List->Save->Local File (unconverted)".                                       
        3. If the programs are your own programs or modified SAP programs, supply the source code.               
           To do this, select the Editor function "Further Utilities->  Upload/Download->Download".                                        
        4. Details regarding the conditions under which the error occurred                            
           or which actions and input led to the error.                                               
        The exception must either be prevented, caught within the procedure                           
         "ROUTINE_0004"                                    
        "(FORM)", or declared in the procedure's RAISING clause.                                      
        To prevent the exception, note the following:                                    
    Environment system SAP Release.............. "640"
    Operating system......... "SunOS"   Release.................. "5.9"
    Hardware type............ "sun4u"
    Character length......... 8 Bits     
    Pointer length........... 64 Bits             
    Work process number...... 2        
    Short dump setting....... "full"   
    Database type............ "ORACLE" 
    Database name............ "BWI"  
    Database owner........... "SAPTB1"  
    Character set............ "fr" 
    SAP kernel............... "640"   
    Created on............... "Jan 15 2006 21:42:36"   Created in............... "SunOS 5.8 Generic_108528-16 sun4u" 
    Database version......... "OCI_920 " 
    Patch level.............. "109"    
    Patch text............... " "        
    Supported environment....     
    Database................. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."             
    SAP database version..... "640"
    Operating system......... "SunOS 5.8, SunOS 5.9, SunOS 5.10"
    SAP Release.............. "640"  
    The termination occurred in the ABAP program "GP420EQ35FHFOCVEBCR6RWPVQBR" in      
         "ROUTINE_0004". 
       The main program was "RSMO1_RSM2 ".  
    The termination occurred in line 702 of the source code of the (Include)           
         program "GP420EQ35FHFOCVEBCR6RWPVQBR"                                             
        of the source code of program "GP420EQ35FHFOCVEBCR6RWPVQBR" (when calling the editor 7020).
       Processing was terminated because the exception "CX_SY_DYN_CALL_ILLEGAL_TYPE" occurred in the procedure "ROUTINE_0004" "(FORM)" but was not handled locally, not declared in  the RAISING clause of the procedure. 
        The procedure is in the program "GP420EQ35FHFOCVEBCR6RWPVQBR ". Its source code starts in line 685 of the (Include) program "GP420EQ35FHFOCVEBCR6RWPVQBR ".
    672      'ROUTINE_0003' g_s_is-recno 
    673      rs_c_false rs_c_false g_s_is-recno  
    674      changing c_abort.   
    675     catch cx_foev_error_in_function. 
    676     perform error_message using 'RSAU' 'E' '510'  
    677             'ROUTINE_0003' g_s_is-recno
    678             rs_c_false rs_c_false g_s_is-recno
    679             changing c_abort.
    680   endtry.              
    681 endform.
    682 ************************************************************************ 
    683 * routine no.: 0004
    684 ************************************************************************ 
    685 form routine_0004 
    686   changing 
    687   result  type g_s_hashed_cube-FISCPER3
    688   returncode     like sy-subrc 
    689     c_t_idocstate  type rsarr_t_idocstate
    690     c_subrc        like sy-subrc 
    691     c_abort        like sy-subrc. "#EC *  
    692   data:
    693     l_t_rsmondata like rsmonview occurs 0 with header line. "#EC * 
    694                    
    695  try.             
    696 * init
    variables 
    697   move-corresponding g_s_is to comm_structure.
    698                     
    699 * fill the internal table "MONITOR", to make monitor entries  
    700                     
    701 * result value of the routine
    >>>>    CALL FUNCTION 'RS_BCT_TIMCONV_PS_CONV'  
    703          EXPORTING      
    704               I_TIMNM_FROM       = '0CALDAY'  
    705               I_TIMNM_TO         = '0FISCPER'  
    706               I_TIMVL            = COMM_STRUCTURE-CALDAY
    707               I_FISCVARNT        = gd_fiscvarnt
    708          IMPORTING 
    709               E_FISCPER          = RESULT.                               
    710 * if the returncode is not equal zero, the result will not be updated 
    711   RETURNCODE = 0. 
    712 * if abort is not equal zero, the update process will be canceled
    713   ABORT = 0.
    714              
    715   catch cx_sy_conversion_error   
    716         cx_sy_arithmetic_error.
    717     perform error_message using 'RSAU' 'E' '507'
    718             'ROUTINE_0004' g_s_is-recno
    719             rs_c_false rs_c_false g_s_is-recno
    720             changing c_abort.
    721   catch cx_foev_error_in_function.
    System zones content
    Name                Val.                                                                               
    SY-SUBRC           0                                         
    SY-INDEX           2                                         
    SY-TABIX           0                                         
    SY-DBCNT           0                                         
    SY-FDPOS           65                                        
    SY-LSIND           0                                         
    SY-PAGNO           0                                         
    SY-LINNO           1                                         
    SY-COLNO           1                                         
    SY-PFKEY           0400                                      
    SY-UCOMM           OK                                        
    SY-TITLE           Moniteur - Atelier d'administration       
    SY-MSGTY           E                                         
    SY-MSGID           RSAU                                      
    SY-MSGNO           583                                       
    SY-MSGV1           BATVC  0000000000                         
    SY-MSGV2           0PROJECT                                  
    SY-MSGV3                                           
    SY-MSGV4                                           
    Selected variables
    Nº       23 Tpe          FORM
    Name    ROUTINE_0004           
    GD_FISCVARNT                                 
        22
        00 RS_C_INFO                                                      I
          4
          9                                
    COMM_STRUCTURE-CALDAY
    20060303
    33333333
    20060303  
    SYST-REPID GP420EQ35FHFOCVEBCR6RWPVQBR   4533345334444454445355555452222222222222 704205135686F365232627061220000000000000
    RESULT
    000
    333
    00

    You have an update routine in which youar callin FM 'RS_BCT_TIMCONV_PS_CONV'. Parameter e_fiscper must be the same that type of the variable you use (you can see the data tyoe in FM definition, transaction se37). You should do somethin like the following.
    DATA: var type <the same that e_fiscper in FM definition>
    CALL FUNCTION 'RS_BCT_TIMCONV_PS_CONV'
    EXPORTING
    I_TIMNM_FROM = '0CALDAY'
    I_TIMNM_TO = '0FISCPER'
    I_TIMVL = COMM_STRUCTURE-CALDAY
    I_FISCVARNT = gd_fiscvarnt
    IMPORTING
    E_FISCPER = var.
    result = var.
    --- ASSIGN POINTS IS USEFUL.

  • Issues installing 0IC_C03 dataflow in BW 7.0

    Hi experts,
    We are trying to install the dataflow for stocks infocube (0IC_C03) in BW (release 700 level 0015) from Business Content (release 703 level 0008) and we get the following error message when installing the transformation from Infosource 2LIS_03_BF_TR to the cube:
    Start Routine: Syntax error in routine
    We have checked the code in the start routine and we get the following error message:
    E:In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter
    "SOURCE_PACKAGE" is incompatible with the formal parameter
    "DATA_PACKAGE".
    Has anybody faced with this issue before?
    Any help will be really appreciated.
    Regards,
    David

    Hi,
    Pls add the following code in the start Routine.
    **************Added as per note 1052648****************************************
         InfoObject: 0RMA_XCC RMA Cross-Company Code Stock Transfer.
            RMA_XCC           TYPE /BI0/OIRMA_XCC,
         InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
            RMA_LNK           TYPE /BI0/OIRMA_LNK,
         InfoObject: 0RMA_RFLG RMA Relevance Flag.
            RMA_RFLG           TYPE /BI0/OIRMA_RFLG,
         InfoObject: 0RTHFEES Stock Transfer Fees.
            RTHFEES           TYPE /BI0/OIRTHFEES,
    *******End Added as per note*****1052648*************************************
    After adding the above code no syntactical error in start routine activate the Transformation.
    The Problem is Solved.
    In my system Start routine code:
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        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.
      Rule specific types
        TYPES:
          BEGIN OF tys_SC_1,
         InfoObject: 0STORNO Reversal indicator.
            STORNO           TYPE /BI0/OISTORNO,
         InfoObject: 0RT_PROMO Promotion.
            RT_PROMO           TYPE /BI0/OIRT_PROMO,
         InfoObject: 0VAL_CLASS Valuation class.
            VAL_CLASS           TYPE /BI0/OIVAL_CLASS,
         InfoObject: 0DOC_DATE Document Date.
            DOC_DATE           TYPE /BI0/OIDOC_DATE,
         InfoObject: 0STOCKTYPE Stock type.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Stock Categories.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0PSTNG_DATE Posting date in the document.
            PSTNG_DATE           TYPE /BI0/OIPSTNG_DATE,
         InfoObject: 0COMP_CODE Company code.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BWAPPLNM Application component.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0MOVETYPE Movement Type (Inventory Management).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0STOCKRELEV BW: Relevance to Stock.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0CPPVLC BW: Purchase Value in Local Currency.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0CPSVLC BW: Sales Value in Local Currency.
            CPSVLC           TYPE /BI0/OICPSVLC,
         InfoObject: 0CPSTLC BW: Sales Value in Local Currency.
            CPSTLC           TYPE /BI0/OICPSTLC,
         InfoObject: 0CPQUABU BW: Amount in base unit of measure.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0VAL_TYPE Valuation type.
            VAL_TYPE           TYPE /BI0/OIVAL_TYPE,
         InfoObject: 0PROCESSKEY BW: Transaction Key.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0BATCH Batch number.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0MATMREA Reason for Goods Movement.
            MATMREA           TYPE /BI0/OIMATMREA,
         InfoObject: 0BUS_AREA Business area.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0COSTCENTER Cost Center.
            COSTCENTER           TYPE /BI0/OICOSTCENTER,
         InfoObject: 0SOLD_TO Sold-to party.
            SOLD_TO           TYPE /BI0/OISOLD_TO,
         InfoObject: 0WHSE_NUM Warehouse number / warehouse complex.
            WHSE_NUM           TYPE /BI0/OIWHSE_NUM,
         InfoObject: 0STOR_LOC Storage location.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0STRGE_BIN Storage bin.
            STRGE_BIN           TYPE /BI0/OISTRGE_BIN,
         InfoObject: 0STRGE_TYPE Storage type.
            STRGE_TYPE           TYPE /BI0/OISTRGE_TYPE,
         InfoObject: 0VENDOR Vendor.
            VENDOR           TYPE /BI0/OIVENDOR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0DOC_NUM BW: Document Number.
            DOC_NUM           TYPE /BI0/OIDOC_NUM,
         InfoObject: 0BASE_UOM Base Unit of Measure.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         InfoObject: 0DOC_YEAR BW: Document Year.
            DOC_YEAR           TYPE /BI0/OIDOC_YEAR,
         InfoObject: 0PROFIT_CTR Profit Center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0DCINDIC Debit/credit indicator.
            DCINDIC           TYPE /BI0/OIDCINDIC,
         InfoObject: 0LOC_CURRCY Local currency.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0PLANT Plant.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0FISCVARNT Fiscal year variant.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0CPNOITEMS BW: Number of Activities.
            CPNOITEMS           TYPE /BI0/OICPNOITEMS,
         InfoObject: 0CO_AREA Controlling area.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0DOC_ITEM BW: Document Line Number.
            DOC_ITEM           TYPE /BI0/OIDOC_ITEM,
         InfoObject: 0VALUE_LC Amount in local currency.
            VALUE_LC           TYPE /BI0/OIVALUE_LC,
         InfoObject: 0COORDER Order number.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0QUANT_B Quantity in base units of measure.
            QUANT_B           TYPE /BI0/OIQUANT_B,
         InfoObject: 0MOVE_PLANT Receiving Plant/Issuing Plant.
            MOVE_PLANT           TYPE /BI0/OIMOVE_PLANT,
         InfoObject: 0RECORDMODE BW Delta Process: Update Mode.
            RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0BWCOUNTER Additional Key Field Revaluation Document
    *Record.
            BWCOUNTER           TYPE /BI0/OIBWCOUNTER,
         InfoObject: 0INDSPECSTK Indicator: Valuation of Special Stock.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0GN_R3_SSY Source System for R/3 Entity.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0RT_MOVINV Movement Type is Physical Inventory.
            RT_MOVINV           TYPE /BI0/OIRT_MOVINV,
         InfoObject: 0RT_MOVADJ Movement Type is Stock Adjustment.
            RT_MOVADJ           TYPE /BI0/OIRT_MOVADJ,
         InfoObject: 0RSL_STMAT Structured Article.
            RSL_STMAT           TYPE /BI0/OIRSL_STMAT,
         InfoObject: 0RT_MOVRET Movement Type is Return.
            RT_MOVRET           TYPE /BI0/OIRT_MOVRET,
         InfoObject: 0RSL_STAUTO Automatically Completed Component.
            RSL_STAUTO           TYPE /BI0/OIRSL_STAUTO,
         InfoObject: 0RT_MOVTRAN Movement Type is Stock Transfer.
            RT_MOVTRAN           TYPE /BI0/OIRT_MOVTRAN,
         InfoObject: 0RT_MATPOST Transfer Posting from Article to Article.
            RT_MATPOST           TYPE /BI0/OIRT_MATPOST,
         InfoObject: 0RT_SASTSV Share of Business Volume for Set Sales Val
    *ue in Local Crcy.
            RT_SASTSV           TYPE /BI0/OIRT_SASTSV,
         InfoObject: 0RT_SASTST Share of Business Volume for Set with Tax
    *in Local Currency.
            RT_SASTST           TYPE /BI0/OIRT_SASTST,
         InfoObject: 0RMA_XCC RMA Cross-Company Code Stock Transfer.
            RMA_XCC           TYPE /BI0/OIRMA_XCC,
         InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
            RMA_LNK           TYPE /BI0/OIRMA_LNK,
         InfoObject: 0RMA_RFLG RMA Relevance Flag.
            RMA_RFLG           TYPE /BI0/OIRMA_RFLG,
         InfoObject: 0RTHFEES Stock Transfer Fees.
            RTHFEES           TYPE /BI0/OIRTHFEES,
         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.
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ 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  *
        TYPES:
          BEGIN OF tys_SC_1_full,
         InfoObject: 0STORNO Stornokennzeichen.
            STORNO           TYPE /BI0/OISTORNO,
         InfoObject: 0RT_PROMO Aktion.
            RT_PROMO           TYPE /BI0/OIRT_PROMO,
         InfoObject: 0VAL_CLASS Bewertungsklasse.
            VAL_CLASS           TYPE /BI0/OIVAL_CLASS,
         InfoObject: 0DOC_DATE Belegdatum.
            DOC_DATE           TYPE /BI0/OIDOC_DATE,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0PSTNG_DATE Buchungsdatum im Beleg.
            PSTNG_DATE           TYPE /BI0/OIPSTNG_DATE,
         InfoObject: 0COMP_CODE Buchungskreis.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0CPSVLC BW: Verkaufswert in Hauswährung.
            CPSVLC           TYPE /BI0/OICPSVLC,
         InfoObject: 0CPSTLC BW: VerkWmS Hauswährung.
            CPSTLC           TYPE /BI0/OICPSTLC,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0VAL_TYPE Bewertungsart.
            VAL_TYPE           TYPE /BI0/OIVAL_TYPE,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0BATCH Chargennummer.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0MATMREA Grund für die Warenbewegung.
            MATMREA           TYPE /BI0/OIMATMREA,
         InfoObject: 0BUS_AREA Geschäftsbereich.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0COSTCENTER Kostenstelle.
            COSTCENTER           TYPE /BI0/OICOSTCENTER,
         InfoObject: 0SOLD_TO Auftraggeber.
            SOLD_TO           TYPE /BI0/OISOLD_TO,
         InfoObject: 0WHSE_NUM Lagernummer/Lagerkomplex.
            WHSE_NUM           TYPE /BI0/OIWHSE_NUM,
         InfoObject: 0STOR_LOC Lagerort.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0STRGE_BIN Lagerplatz.
            STRGE_BIN           TYPE /BI0/OISTRGE_BIN,
         InfoObject: 0STRGE_TYPE Lagertyp.
            STRGE_TYPE           TYPE /BI0/OISTRGE_TYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0DOC_NUM BW: Belegnummer.
            DOC_NUM           TYPE /BI0/OIDOC_NUM,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         InfoObject: 0DOC_YEAR BW: Belegjahr.
            DOC_YEAR           TYPE /BI0/OIDOC_YEAR,
         InfoObject: 0PROFIT_CTR Profit Center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0DCINDIC Soll-/Haben-Kennzeichen.
            DCINDIC           TYPE /BI0/OIDCINDIC,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0PLANT Werk.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0FISCVARNT Geschäftsjahresvariante.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0CPNOITEMS BW: Anzahl Vorgänge.
            CPNOITEMS           TYPE /BI0/OICPNOITEMS,
         InfoObject: 0CO_AREA Kostenrechnungskreis.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0DOC_ITEM BW: Belegpositionsnummer.
            DOC_ITEM           TYPE /BI0/OIDOC_ITEM,
         InfoObject: 0VALUE_LC Betrag in Hauswährung.
            VALUE_LC           TYPE /BI0/OIVALUE_LC,
         InfoObject: 0COORDER Auftragsnummer.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0QUANT_B Menge in Basismengeneinheiten.
            QUANT_B           TYPE /BI0/OIQUANT_B,
         InfoObject: 0MOVE_PLANT Empfangendes/Abgebendes Werk.
            MOVE_PLANT           TYPE /BI0/OIMOVE_PLANT,
         InfoObject: 0RECORDMODE BW Deltaverfahren: Update Modus.
            RECORDMODE           TYPE RODMUPDMOD,
    *******************Commented based on oss note1052648*****************************
         InfoObject: 0RT_RMAPIDA RMA Inventurdatum.
           RT_RMAPIDA           TYPE /BI0/OIRT_RMAPIDA,
    End Commented based on oss note1052648************************
         InfoObject: 0BWCOUNTER Zusätzliches Schlüsselfeld Umbewertungsbel
    *egsatz.
            BWCOUNTER           TYPE /BI0/OIBWCOUNTER,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0RT_MOVINV Bewegungsart ist Inventur.
            RT_MOVINV           TYPE /BI0/OIRT_MOVINV,
         InfoObject: 0RT_MOVADJ Bewegungsart ist Bestandskorrektur.
            RT_MOVADJ           TYPE /BI0/OIRT_MOVADJ,
         InfoObject: 0RSL_STMAT Strukturierter Artikel.
            RSL_STMAT           TYPE /BI0/OIRSL_STMAT,
         InfoObject: 0RT_MOVRET Bewegungsart ist Retoure.
            RT_MOVRET           TYPE /BI0/OIRT_MOVRET,
         InfoObject: 0RSL_STAUTO Automatisch ergänzte Komponente.
            RSL_STAUTO           TYPE /BI0/OIRSL_STAUTO,
         InfoObject: 0RT_MOVTRAN Bewegungsart ist Umlagerung.
            RT_MOVTRAN           TYPE /BI0/OIRT_MOVTRAN,
         InfoObject: 0RT_MATPOST Umbuchung Artikel an Artikel.
            RT_MATPOST           TYPE /BI0/OIRT_MATPOST,
         InfoObject: 0RT_SASTSV Umsatzanteil am Set Verkaufswert in Hauswä
    *hrung.
            RT_SASTSV           TYPE /BI0/OIRT_SASTSV,
         InfoObject: 0RT_SASTST Umsatzanteil am Set Verkaufswert mit Steue
    *r in Hauswährung.
            RT_SASTST           TYPE /BI0/OIRT_SASTST,
    **********************Added as per note1052648*****************************************
         InfoObject: 0RMA_XCC RMA Cross-Company Code Stock Transfer.
            RMA_XCC           TYPE /BI0/OIRMA_XCC,
         InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
            RMA_LNK           TYPE /BI0/OIRMA_LNK,
         InfoObject: 0RMA_RFLG RMA Relevance Flag.
            RMA_RFLG           TYPE /BI0/OIRMA_RFLG,
         InfoObject: 0RTHFEES Stock Transfer Fees.
            RTHFEES           TYPE /BI0/OIRTHFEES,
    **********************End Added as per note1052648**************************************
         Field: RECORD.
            RECORD           TYPE RSARECORD,
            END   OF tys_SC_1_full.
        TYPES:
    tyt_SC_1_full        TYPE STANDARD TABLE OF tys_SC_1_full
                            WITH NON-UNIQUE DEFAULT KEY.
        TYPES:
          BEGIN OF tys_TG_1_full,
         InfoObject: 0CHNGID Änderungslauf ID.
            CHNGID           TYPE /BI0/OICHNGID,
         InfoObject: 0RECORDTP Satztyp.
            RECORDTP           TYPE /BI0/OIRECORDTP,
         InfoObject: 0REQUID Request ID.
            REQUID           TYPE /BI0/OIREQUID,
         InfoObject: 0CALDAY Kalendertag.
            CALDAY           TYPE /BI0/OICALDAY,
         InfoObject: 0CALMONTH Kalenderjahr / Monat.
            CALMONTH           TYPE /BI0/OICALMONTH,
         InfoObject: 0CALWEEK Kalenderjahr / Woche.
            CALWEEK           TYPE /BI0/OICALWEEK,
         InfoObject: 0CALYEAR Kalenderjahr.
            CALYEAR           TYPE /BI0/OICALYEAR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0PLANT Werk.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0STOR_LOC Lagerort.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0BATCH Chargennummer.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0GN_VENDOR Lieferant.
            GN_VENDOR           TYPE /BI0/OIGN_VENDOR,
         InfoObject: 0RECVS_VAL Zugangswert Bewerteter Bestand.
            RECVS_VAL           TYPE /BI0/OIRECVS_VAL,
         InfoObject: 0ISSVS_VAL Abgangswert Bewerteter Bestand.
            ISSVS_VAL           TYPE /BI0/OIISSVS_VAL,
         InfoObject: 0ISSBLOSTCK Abgangsmenge Gesperrter Bestand.
            ISSBLOSTCK           TYPE /BI0/OIISSBLOSTCK,
         InfoObject: 0ISSCNSSTCK Abgangsmenge Konsignationsbestand.
            ISSCNSSTCK           TYPE /BI0/OIISSCNSSTCK,
         InfoObject: 0ISSQMSTCK Abgangsmenge Qualitätsbestand.
            ISSQMSTCK           TYPE /BI0/OIISSQMSTCK,
         InfoObject: 0ISSTRANSST Abgangsmenge Transitbestand.
            ISSTRANSST           TYPE /BI0/OIISSTRANSST,
         InfoObject: 0RECBLOSTCK Zugangsmenge Gesperrter Bestand.
            RECBLOSTCK           TYPE /BI0/OIRECBLOSTCK,
         InfoObject: 0RECCNSSTCK Zugangsmenge Konsignationsbestand.
            RECCNSSTCK           TYPE /BI0/OIRECCNSSTCK,
         InfoObject: 0RECQMSTCK Zugangsmenge Qualitätsbestand.
            RECQMSTCK           TYPE /BI0/OIRECQMSTCK,
         InfoObject: 0RECTRANSST Zugangsmenge Transitbestand.
            RECTRANSST           TYPE /BI0/OIRECTRANSST,
         InfoObject: 0ISSSCRP Abgangsmenge Ausschuss.
            ISSSCRP           TYPE /BI0/OIISSSCRP,
         InfoObject: 0ISSVALSCRP Abgangswert Ausschuss.
            ISSVALSCRP           TYPE /BI0/OIISSVALSCRP,
         InfoObject: 0RECTOTSTCK Zugangsmenge Gesamt Bestand.
            RECTOTSTCK           TYPE /BI0/OIRECTOTSTCK,
         InfoObject: 0ISSTOTSTCK Abgangsmenge Gesamtbestand.
            ISSTOTSTCK           TYPE /BI0/OIISSTOTSTCK,
         InfoObject: 0ISSVALSTCK Abgangsmenge Bewerteter Bestand.
            ISSVALSTCK           TYPE /BI0/OIISSVALSTCK,
         InfoObject: 0RECVALSTCK Zugangsmenge Bewerteter Bestand.
            RECVALSTCK           TYPE /BI0/OIRECVALSTCK,
         InfoObject: 0VENCONCON Verbrauchswerte Lieferantenkonsignationsbe
    *stand.
            VENCONCON           TYPE /BI0/OIVENCONCON,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         Field: RECORD Nummer des Datensatzes.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1_full.
        TYPES:
          BEGIN OF tys_SC_1__RULE_9,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_9.
        TYPES:
          BEGIN OF tys_SC_1__RULE_10,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_10.
        TYPES:
          BEGIN OF tys_SC_1__RULE_11,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_11.
        TYPES:
          BEGIN OF tys_SC_1__RULE_12,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_12.
        TYPES:
          BEGIN OF tys_SC_1__RULE_13,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_13.
        TYPES:
          BEGIN OF tys_SC_1__RULE_15,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_15.
        TYPES:
          BEGIN OF tys_SC_1__RULE_19,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_19.
        TYPES:
          BEGIN OF tys_SC_1__RULE_20,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_20.
        TYPES:
          BEGIN OF tys_SC_1__RULE_21,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_21.
        TYPES:
          BEGIN OF tys_SC_1__RULE_22,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_22.
        TYPES:
          BEGIN OF tys_SC_1__RULE_25,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_25.
        TYPES:
          BEGIN OF tys_SC_1__RULE_31,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_31.
        TYPES:
          BEGIN OF tys_SC_1__RULE_37,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_37.
        TYPES:
          BEGIN OF tys_SC_1__RULE_38,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_38.
        TYPES:
          BEGIN OF tys_SC_1__RULE_39,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_39.
        TYPES:
          BEGIN OF tys_SC_1__RULE_40,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_40.
        TYPES:
          BEGIN OF tys_SC_1__RULE_41,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_41.
        TYPES:
          BEGIN OF tys_SC_1__RULE_42,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_42.
        TYPES:
          BEGIN OF tys_SC_1__RULE_43,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_43.
        TYPES:
          BEGIN OF tys_SC_1__RULE_51,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_51.
    Additional types for start routine interface
      TYPES:
        data_package_structure type tys_SC_1_full.
    Additional declaration for update rule interface
      DATA:
        MONITOR       type standard table of rsmonitor  WITH HEADER LINE,
        MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,
        RECORD_NO     LIKE SY-TABIX,
        RECORD_ALL    LIKE SY-TABIX,
        SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.
    global definitions from update rules
    INCLUDE rsbctgn_top.
    INCLUDE rsbctgn_update_rules.
    FORM routine_9998
      TABLES DATA_PACKAGE TYPE tyt_SC_1_full
      CHANGING
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    see OSS note 571669
      LOOP AT DATA_PACKAGE.
        IF DATA_PACKAGE-stockcat EQ 'V' OR
           DATA_PACKAGE-stocktype EQ 'V'.
          DELETE DATA_PACKAGE.
        ENDIF.
      ENDLOOP.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_9998
    FORM routine_0012
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_9
      CHANGING
        RESULT         TYPE tys_TG_1_full-ISSCNSSTCK
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods issue is considered
      IF ( COMM_STRUCTURE-processkey EQ '100'   "Other Issues
        OR COMM_STRUCTURE-processkey EQ '101'   "Returns / Vendor
        OR COMM_STRUCTURE-processkey EQ '104'   "Material Transfer
        OR COMM_STRUCTURE-processkey EQ '105'   "Stock Adjustment InvD
        OR COMM_STRUCTURE-processkey EQ '106'   "Stock Adjustment Other
        OR COMM_STRUCTURE-processkey EQ '110' ) "Issue from Stock Transfer
       AND COMM_STRUCTURE-bwapplnm EQ 'MM'
    only movements which are relevant for stock control
       AND COMM_STRUCTURE-stockrelev EQ '1'
       AND COMM_STRUCTURE-cpquabu <> 0.
    only consignment stock is considered
        CASE COMM_STRUCTURE-stockcat.
          WHEN 'K'.
            RESULT = COMM_STRUCTURE-cpquabu.
            RETURNCODE = 0.
          WHEN space.
            IF COMM_STRUCTURE-stocktype CA 'KLM'.
              RESULT = COMM_STRUCTURE-cpquabu.
              RETURNCODE = 0.
            ELSE.
              RETURNCODE = 4.
            ENDIF.
          WHEN OTHERS.
            RETURNCODE = 4.
        ENDCASE.
      ELSE.
    if the returncode is not equal zero, the result will not be updated
        RETURNCODE = 4.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0012
    FORM routine_0014
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_10
      CHANGING
        RESULT         TYPE tys_TG_1_full-RECCNSSTCK
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods receipt is considered
      IF ( COMM_STRUCTURE-processkey EQ '000'   "Other Receipts
        OR COMM_STRUCTURE-processkey EQ '001'   "Goods Receipt / Vendor
        OR COMM_STRUCTURE-processkey EQ '004'   "Material Transfer
        OR COMM_STRUCTURE-processkey EQ '005'   "Stock Adjustment InvD
        OR COMM_STRUCTURE-processkey EQ '006'   "Stock Adjustment Other
        OR COMM_STRUCTURE-processkey EQ '010' ) "Receipt from Stock Transfer
       AND COMM_STRUCTURE-bwapplnm EQ 'MM'
    only movements which are relevant for stock control
       AND COMM_STRUCTURE-stockrelev EQ '1'
       AND COMM_STRUCTURE-cpquabu <> 0.
    only consignment stock is considered
        CASE COMM_STRUCTURE-stockcat.
          WHEN 'K'.
            RESULT = COMM_STRUCTURE-cpquabu.
            RETURNCODE = 0.
          WHEN space.
            IF COMM_STRUCTURE-stocktype CA 'KLM'.
              RESULT = COMM_STRUCTURE-cpquabu.
              RETURNCODE = 0.
            ELSE.
              RETURNCODE = 4.
            ENDIF.
          WHEN OTHERS.
            RETURNCODE = 4.
        ENDCASE.
      ELSE.
    if the returncode is not equal zero, the result will not be updated
        RETURNCODE = 4.
      ENDIF.

  • 0IC_C03: 2LIS_03_BF Transformation Start Routine Activation error

    Hi all,
    Iam getting activation error (Start Routine) while activating the transformation for the 2LIS_03_BF (Material Movements) data source for 0IC_C03 INFO CUBE. Iam getting an error for the Start Routine  and the error message is as follows:
    + E:In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter "SOURCE_PACKAGE" is incompatible with the formal parameter "DATA_PACKAGE".+
    Scenario: As per my client requirment i have tried to add on info object in to the existing info cube i.e., Movement Type which is an existing field in the info source and the data source and i have tried to map the same in the transformations between the info source and the info cube and activated the transformation. Then iam getting the above said start routine error, so to avoid this i have removed that object i.e., movement type from the info cube and tried to reactivate the transformations still iam getting the same routine error.
    Please suggest me th approach to resolve this issue.
    Regards,
    Prabhakar

    Hi Chandu,
    Please find below is the routine:
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        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.
      Rule specific types
        TYPES:
          BEGIN OF tys_SC_1,
         InfoObject: 0STORNO Reversal Indicator.
            STORNO           TYPE /BI0/OISTORNO,
         InfoObject: 0RT_PROMO promotion.
            RT_PROMO           TYPE /BI0/OIRT_PROMO,
         InfoObject: 0VAL_CLASS Valuation  class.
            VAL_CLASS           TYPE /BI0/OIVAL_CLASS,
         InfoObject: 0DOC_DATE Document Date.
            DOC_DATE           TYPE /BI0/OIDOC_DATE,
         InfoObject: 0STOCKTYPE StockType.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Stock  Categories.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0PSTNG_DATE Posting date in the document.
            PSTNG_DATE           TYPE /BI0/OIPSTNG_DATE,
         InfoObject: 0COMP_CODE Company Code.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BWAPPLNM Application component.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0MOVETYPE movement Type (Inventory Management).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0STOCKRELEV BW: Relevance to Stock.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0CPPVLC BW: Purchase Value in Local currency.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0CPSVLC BW: Sales Value in Local currency.
            CPSVLC           TYPE /BI0/OICPSVLC,
         InfoObject: 0CPSTLC BW: Sales Value in Local currency.
            CPSTLC           TYPE /BI0/OICPSTLC,
         InfoObject: 0CPQUABU BW: Amount in base unit of Measure.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0VAL_TYPE Valuation Type.
            VAL_TYPE           TYPE /BI0/OIVAL_TYPE,
         InfoObject: 0PROCESSKEY BW: Transaction Key.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0BATCH Batch number.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0MATMREA Reason for Goods Movement.
            MATMREA           TYPE /BI0/OIMATMREA,
         InfoObject: 0BUS_AREA Business Area.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0COSTCENTER Cost Center.
            COSTCENTER           TYPE /BI0/OICOSTCENTER,
         InfoObject: 0SOLD_TO Sold-to Party.
            SOLD_TO           TYPE /BI0/OISOLD_TO,
         InfoObject: 0WHSE_NUM Warehouse Number / warehouse complex.
            WHSE_NUM           TYPE /BI0/OIWHSE_NUM,
         InfoObject: 0STOR_LOC Storage Location.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0STRGE_BIN Storage Bin.
            STRGE_BIN           TYPE /BI0/OISTRGE_BIN,
         InfoObject: 0STRGE_TYPE Storage Type.
            STRGE_TYPE           TYPE /BI0/OISTRGE_TYPE,
         InfoObject: 0VENDOR  Vendor.
            VENDOR           TYPE /BI0/OIVENDOR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0DOC_NUM BW: Document Number.
            DOC_NUM           TYPE /BI0/OIDOC_NUM,
         InfoObject: 0BASE_UOM Base Unit of Measure.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         InfoObject: 0DOC_YEAR BW: Document Year.
            DOC_YEAR           TYPE /BI0/OIDOC_YEAR,
         InfoObject: 0PROFIT_CTR Profit center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0DCINDIC Debit/Credit Indicator.
            DCINDIC           TYPE /BI0/OIDCINDIC,
         InfoObject: 0LOC_CURRCY Local currency.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0PLANT Plant.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0FISCVARNT Fiscal year variant.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0CPNOITEMS BW: Number of activities.
            CPNOITEMS           TYPE /BI0/OICPNOITEMS,
         InfoObject: 0CO_AREA Controlling Area.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0DOC_ITEM BW: Document Line Number.
            DOC_ITEM           TYPE /BI0/OIDOC_ITEM,
         InfoObject: 0VALUE_LC Amount in local currency.
            VALUE_LC           TYPE /BI0/OIVALUE_LC,
         InfoObject: 0QUANT_B Quantity in base units of Measure.
            QUANT_B           TYPE /BI0/OIQUANT_B,
         InfoObject: 0MOVE_PLANT Receiving Plant/Issuing Plant.
            MOVE_PLANT           TYPE /BI0/OIMOVE_PLANT,
         InfoObject: 0RECORDMODE BW Delta Process: Update Mode.
            RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0RT_RMAPIDA RMA Physical Inventory Date.
            RT_RMAPIDA           TYPE /BI0/OIRT_RMAPIDA,
         InfoObject: 0BWCOUNTER Additional Key Field Revaluation Document
    *Record.
            BWCOUNTER           TYPE /BI0/OIBWCOUNTER,
         InfoObject: 0INDSPECSTK Indicator: Valuation of Special stock.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0GN_R3_SSY Source System for  R/3 Entity.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0RT_MOVINV movement Type is Physical Inventory.
            RT_MOVINV           TYPE /BI0/OIRT_MOVINV,
         InfoObject: 0RT_MOVADJ movement Type is Stock Adjustment.
            RT_MOVADJ           TYPE /BI0/OIRT_MOVADJ,
         InfoObject: 0RSL_STMAT Structured  Article.
            RSL_STMAT           TYPE /BI0/OIRSL_STMAT,
         InfoObject: 0RT_MOVRET movement Type is Return.
            RT_MOVRET           TYPE /BI0/OIRT_MOVRET,
         InfoObject: 0RSL_STAUTO Automatically Completed Component.
            RSL_STAUTO           TYPE /BI0/OIRSL_STAUTO,
         InfoObject: 0RT_MOVTRAN movement Type is Stock Transfer.
            RT_MOVTRAN           TYPE /BI0/OIRT_MOVTRAN,
         InfoObject: 0RT_MATPOST Transfer Posting from  Article to Article
            RT_MATPOST           TYPE /BI0/OIRT_MATPOST,
         InfoObject: 0RT_SASTSV Share of Business Volume for Set Sales Val
    *ue in Local crcy.
            RT_SASTSV           TYPE /BI0/OIRT_SASTSV,
         InfoObject: 0RT_SASTST Share of Business Volume for Set with Tax
    *in Local currency.
            RT_SASTST           TYPE /BI0/OIRT_SASTST,
         InfoObject: 0COORDER order number.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
            RMA_LNK           TYPE /BI0/OIRMA_LNK,
         InfoObject: 0RMA_RFLG RMA Relevance Flag.
            RMA_RFLG           TYPE /BI0/OIRMA_RFLG,
         InfoObject: 0RTHFEES Stock Transfer Fees.
            RTHFEES           TYPE /BI0/OIRTHFEES,
         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.
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ 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  *
        TYPES:
          BEGIN OF tys_SC_1_full,
         InfoObject: 0STORNO Stornokennzeichen.
            STORNO           TYPE /BI0/OISTORNO,
         InfoObject: 0RT_PROMO Aktion.
            RT_PROMO           TYPE /BI0/OIRT_PROMO,
         InfoObject: 0VAL_CLASS Bewertungsklasse.
            VAL_CLASS           TYPE /BI0/OIVAL_CLASS,
         InfoObject: 0DOC_DATE Belegdatum.
            DOC_DATE           TYPE /BI0/OIDOC_DATE,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0PSTNG_DATE Buchungsdatum im Beleg.
            PSTNG_DATE           TYPE /BI0/OIPSTNG_DATE,
         InfoObject: 0COMP_CODE Buchungskreis.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0CPSVLC BW: Verkaufswert in Hauswährung.
            CPSVLC           TYPE /BI0/OICPSVLC,
         InfoObject: 0CPSTLC BW: VerkWmS Hauswährung.
            CPSTLC           TYPE /BI0/OICPSTLC,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0VAL_TYPE Bewertungsart.
            VAL_TYPE           TYPE /BI0/OIVAL_TYPE,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0BATCH Chargennummer.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0MATMREA Grund für die Warenbewegung.
            MATMREA           TYPE /BI0/OIMATMREA,
         InfoObject: 0BUS_AREA Geschäftsbereich.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0COSTCENTER Kostenstelle.
            COSTCENTER           TYPE /BI0/OICOSTCENTER,
         InfoObject: 0SOLD_TO Auftraggeber.
            SOLD_TO           TYPE /BI0/OISOLD_TO,
         InfoObject: 0WHSE_NUM Lagernummer/Lagerkomplex.
            WHSE_NUM           TYPE /BI0/OIWHSE_NUM,
         InfoObject: 0STOR_LOC Lagerort.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0STRGE_BIN Lagerplatz.
            STRGE_BIN           TYPE /BI0/OISTRGE_BIN,
         InfoObject: 0STRGE_TYPE Lagertyp.
            STRGE_TYPE           TYPE /BI0/OISTRGE_TYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0DOC_NUM BW: Belegnummer.
            DOC_NUM           TYPE /BI0/OIDOC_NUM,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         InfoObject: 0DOC_YEAR BW: Belegjahr.
            DOC_YEAR           TYPE /BI0/OIDOC_YEAR,
         InfoObject: 0PROFIT_CTR Profit Center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0DCINDIC Soll-/Haben-Kennzeichen.
            DCINDIC           TYPE /BI0/OIDCINDIC,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0PLANT Werk.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0FISCVARNT Geschäftsjahresvariante.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0CPNOITEMS BW: Anzahl Vorgänge.
            CPNOITEMS           TYPE /BI0/OICPNOITEMS,
         InfoObject: 0CO_AREA Kostenrechnungskreis.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0DOC_ITEM BW: Belegpositionsnummer.
            DOC_ITEM           TYPE /BI0/OIDOC_ITEM,
         InfoObject: 0VALUE_LC Betrag in Hauswährung.
            VALUE_LC           TYPE /BI0/OIVALUE_LC,
         InfoObject: 0COORDER Auftragsnummer.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0QUANT_B Menge in Basismengeneinheiten.
            QUANT_B           TYPE /BI0/OIQUANT_B,
         InfoObject: 0MOVE_PLANT Empfangendes/Abgebendes Werk.
            MOVE_PLANT           TYPE /BI0/OIMOVE_PLANT,
         InfoObject: 0RECORDMODE BW Deltaverfahren: Update Modus.
            RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0RT_RMAPIDA RMA Inventurdatum.
            RT_RMAPIDA           TYPE /BI0/OIRT_RMAPIDA,
         InfoObject: 0BWCOUNTER Zusätzliches Schlüsselfeld Umbewertungsbel
    *egsatz.
            BWCOUNTER           TYPE /BI0/OIBWCOUNTER,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0RT_MOVINV Bewegungsart ist Inventur.
            RT_MOVINV           TYPE /BI0/OIRT_MOVINV,
         InfoObject: 0RT_MOVADJ Bewegungsart ist Bestandskorrektur.
            RT_MOVADJ           TYPE /BI0/OIRT_MOVADJ,
         InfoObject: 0RSL_STMAT Strukturierter Artikel.
            RSL_STMAT           TYPE /BI0/OIRSL_STMAT,
         InfoObject: 0RT_MOVRET Bewegungsart ist Retoure.
            RT_MOVRET           TYPE /BI0/OIRT_MOVRET,
         InfoObject: 0RSL_STAUTO Automatisch ergänzte Komponente.
            RSL_STAUTO           TYPE /BI0/OIRSL_STAUTO,
         InfoObject: 0RT_MOVTRAN Bewegungsart ist Umlagerung.
            RT_MOVTRAN           TYPE /BI0/OIRT_MOVTRAN,
         InfoObject: 0RT_MATPOST Umbuchung Artikel an Artikel.
            RT_MATPOST           TYPE /BI0/OIRT_MATPOST,
         InfoObject: 0RT_SASTSV Umsatzanteil am Set Verkaufswert in Hauswä
    *hrung.
            RT_SASTSV           TYPE /BI0/OIRT_SASTSV,
         InfoObject: 0RT_SASTST Umsatzanteil am Set Verkaufswert mit Steue
    *r in Hauswährung.
            RT_SASTST           TYPE /BI0/OIRT_SASTST,
         Field: RECORD.
            RECORD           TYPE RSARECORD,      END   OF tys_SC_1_full.
        TYPES:
    tyt_SC_1_full        TYPE STANDARD TABLE OF tys_SC_1_full
                            WITH NON-UNIQUE DEFAULT KEY.
        TYPES:
          BEGIN OF tys_TG_1_full,
         InfoObject: 0CHNGID Änderungslauf ID.
            CHNGID           TYPE /BI0/OICHNGID,
         InfoObject: 0RECORDTP Satztyp.
            RECORDTP           TYPE /BI0/OIRECORDTP,
         InfoObject: 0REQUID Request ID.
            REQUID           TYPE /BI0/OIREQUID,
         InfoObject: 0CALDAY Kalendertag.
            CALDAY           TYPE /BI0/OICALDAY,
         InfoObject: 0CALMONTH Kalenderjahr / Monat.
            CALMONTH           TYPE /BI0/OICALMONTH,
         InfoObject: 0CALWEEK Kalenderjahr / Woche.
            CALWEEK           TYPE /BI0/OICALWEEK,
         InfoObject: 0CALYEAR Kalenderjahr.
            CALYEAR           TYPE /BI0/OICALYEAR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0PLANT Werk.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0STOR_LOC Lagerort.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0BATCH Chargennummer.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0GN_VENDOR Lieferant.
            GN_VENDOR           TYPE /BI0/OIGN_VENDOR,
         InfoObject: 0RECVS_VAL Zugangswert Bewerteter Bestand.
            RECVS_VAL           TYPE /BI0/OIRECVS_VAL,
         InfoObject: 0ISSVS_VAL Abgangswert Bewerteter Bestand.
            ISSVS_VAL           TYPE /BI0/OIISSVS_VAL,
         InfoObject: 0ISSBLOSTCK Abgangsmenge Gesperrter Bestand.
            ISSBLOSTCK           TYPE /BI0/OIISSBLOSTCK,
         InfoObject: 0ISSCNSSTCK Abgangsmenge Konsignationsbestand.
            ISSCNSSTCK           TYPE /BI0/OIISSCNSSTCK,
         InfoObject: 0ISSQMSTCK Abgangsmenge Qualitätsbestand.
            ISSQMSTCK           TYPE /BI0/OIISSQMSTCK,
         InfoObject: 0ISSTRANSST Abgangsmenge Transitbestand.
            ISSTRANSST           TYPE /BI0/OIISSTRANSST,
         InfoObject: 0RECBLOSTCK Zugangsmenge Gesperrter Bestand.
            RECBLOSTCK           TYPE /BI0/OIRECBLOSTCK,
         InfoObject: 0RECCNSSTCK Zugangsmenge Konsignationsbestand.
            RECCNSSTCK           TYPE /BI0/OIRECCNSSTCK,
         InfoObject: 0RECQMSTCK Zugangsmenge Qualitätsbestand.
            RECQMSTCK           TYPE /BI0/OIRECQMSTCK,
         InfoObject: 0RECTRANSST Zugangsmenge Transitbestand.
            RECTRANSST           TYPE /BI0/OIRECTRANSST,
         InfoObject: 0ISSSCRP Abgangsmenge Ausschuss.
            ISSSCRP           TYPE /BI0/OIISSSCRP,
         InfoObject: 0ISSVALSCRP Abgangswert Ausschuss.
            ISSVALSCRP           TYPE /BI0/OIISSVALSCRP,
         InfoObject: 0RECTOTSTCK Zugangsmenge Gesamt Bestand.
            RECTOTSTCK           TYPE /BI0/OIRECTOTSTCK,
         InfoObject: 0ISSTOTSTCK Abgangsmenge Gesamtbestand.
            ISSTOTSTCK           TYPE /BI0/OIISSTOTSTCK,
         InfoObject: 0ISSVALSTCK Abgangsmenge Bewerteter Bestand.
            ISSVALSTCK           TYPE /BI0/OIISSVALSTCK,
         InfoObject: 0RECVALSTCK Zugangsmenge Bewerteter Bestand.
            RECVALSTCK           TYPE /BI0/OIRECVALSTCK,
         InfoObject: 0VENCONCON Verbrauchswerte Lieferantenkonsignationsbe
    *stand.
            VENCONCON           TYPE /BI0/OIVENCONCON,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         Field: RECORD Nummer des Datensatzes.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1_full.
        TYPES:
          BEGIN OF tys_SC_1__RULE_9,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_9.
        TYPES:
          BEGIN OF tys_SC_1__RULE_10,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_10.
        TYPES:
          BEGIN OF tys_SC_1__RULE_11,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_11.
        TYPES:
          BEGIN OF tys_SC_1__RULE_12,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_12.
        TYPES:
          BEGIN OF tys_SC_1__RULE_13,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_13.
        TYPES:
          BEGIN OF tys_SC_1__RULE_15,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_15.
        TYPES:
          BEGIN OF tys_SC_1__RULE_19,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_19.
        TYPES:
          BEGIN OF tys_SC_1__RULE_20,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_20.
        TYPES:
          BEGIN OF tys_SC_1__RULE_21,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_21.
        TYPES:
          BEGIN OF tys_SC_1__RULE_22,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_22.
        TYPES:
          BEGIN OF tys_SC_1__RULE_25,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_25.
        TYPES:
          BEGIN OF tys_SC_1__RULE_31,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_31.
        TYPES:
          BEGIN OF tys_SC_1__RULE_37,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_37.
        TYPES:
          BEGIN OF tys_SC_1__RULE_38,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_38.
        TYPES:
          BEGIN OF tys_SC_1__RULE_39,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_39.
        TYPES:
          BEGIN OF tys_SC_1__RULE_40,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_40.
        TYPES:
          BEGIN OF tys_SC_1__RULE_41,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_41.
        TYPES:
          BEGIN OF tys_SC_1__RULE_42,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_42.
        TYPES:
          BEGIN OF tys_SC_1__RULE_43,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_43.
        TYPES:
          BEGIN OF tys_SC_1__RULE_51,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_51.
    Additional types for start routine interface
      TYPES:
        data_package_structure type tys_SC_1_full.
    Additional declaration for update rule interface
      DATA:
        MONITOR       type standard table of rsmonitor  WITH HEADER LINE,
        MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,
        RECORD_NO     LIKE SY-TABIX,
        RECORD_ALL    LIKE SY-TABIX,
        SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.
    global definitions from update rules
    INCLUDE rsbctgn_top.
    INCLUDE rsbctgn_update_rules.
    FORM routine_9998
      TABLES DATA_PACKAGE TYPE tyt_SC_1_full
      CHANGING
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    see OSS note 571669
      LOOP AT DATA_PACKAGE.
        IF DATA_PACKAGE-stockcat EQ 'V' OR
           DATA_PACKAGE-stocktype EQ 'V'.
          DELETE DATA_PACKAGE.
        ENDIF.
      ENDLOOP.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_9998
    FORM routine_0012
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_9
      CHANGING
        RESULT         TYPE tys_TG_1_full-ISSCNSSTCK
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods issue is considered
      IF ( COMM_STRUCTURE-processkey EQ '100'   "Other Issues
        OR COMM_STRUCTURE-processkey EQ '101'   "Returns / Vendor
        OR COMM_STRUCTURE-processkey EQ '104'   "Material Transfer
        OR COMM_STRUCTURE-processkey EQ '105'   "Stock Adjustment InvD
        OR COMM_STRUCTURE-processkey EQ '106'   "Stock Adjustment Other
        OR COMM_STRUCTURE-processkey EQ '110' ) "Issue from Stock Transfer
       AND COMM_STRUCTURE-bwapplnm EQ 'MM'
    only movements which are relevant for stock control
       AND COMM_STRUCTURE-stockrelev EQ '1'
       AND COMM_STRUCTURE-cpquabu <> 0.
    only consignment stock is considered
        CASE COMM_STRUCTURE-stockcat.
          WHEN 'K'.
            RESULT = COMM_STRUCTURE-cpquabu.
            RETURNCODE = 0.
          WHEN space.
            IF COMM_STRUCTURE-stocktype CA 'KLM'.
              RESULT = COMM_STRUCTURE-cpquabu.
              RETURNCODE = 0.
            ELSE.
              RETURNCODE = 4.
            ENDIF.
          WHEN OTHERS.
            RETURNCODE = 4.
        ENDCASE.
      ELSE.
    if the returncode is not equal zero, the result will not be updated
        RETURNCODE = 4.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0012
    FORM routine_0014
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_10
      CHANGING
        RESULT         TYPE tys_TG_1_full-RECCNSSTCK
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods receipt is considered
      IF ( COMM_STRUCTURE-processkey EQ '000'   "Other Receipts
        OR COMM_STRUCTURE-processkey EQ '001'   "Goods Receipt / Vendor
        OR COMM_STRUCTURE-processkey EQ '004'   "Material Transfer
        OR COMM_STRUCTURE-processkey EQ '005'   "Stock Adjustment InvD
        OR COMM_STRUCTURE-processkey EQ '006'   "Stock Adjustment Other
        OR COMM_STRUCTURE-processkey EQ '010' ) "Receipt from Stock Transfer
       AND COMM_STRUCTURE-bwapplnm EQ 'MM'
    only movements which are relevant for stock control
       AND COMM_STRUCTURE-stockrelev EQ '1'
       AND COMM_STRUCTURE-cpquabu <> 0.
    only consignment stock is considered
        CASE COMM_STRUCTURE-stockcat.
          WHEN 'K'.
            RESULT = COMM_STRUCTURE-cpquabu.
            RETURNCODE = 0.
          WHEN space.
            IF COMM_STRUCTURE-stocktype CA 'KLM'.
              RESULT = COMM_STRUCTURE-cpquabu.
              RETURNCODE = 0.
            ELSE.
              RETURNCODE = 4.
            ENDIF.
          WHEN OTHERS.
            RETURNCODE = 4.
        ENDCASE.
      ELSE.
    if the returncode is not equal zero, the result will not be updated
        RETURNCODE = 4.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0014
    FORM routine_0041
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_11
      CHANGING
        RESULT         TYPE tys_TG_1_full-GN_VENDOR
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    ... determine consolidated key
      IF COMM_STRUCTURE-stockcat EQ 'K'.
        PERFORM  gn_get_global_key TABLES MONITOR
                              USING    COMM_STRUCTURE-gn_r3_ssy
                                       g_c_bwbeoty_r3vendor
                                       COMM_STRUCTURE-vendor
                                       RECORD_NO
                                       RECORD_ALL
                              CHANGING RESULT
                                       ABORT.
    if the returncode is not equal zero, the result will not be updated
      Endif.
      RETURNCODE = 0.
    ENDFORM.                    "routine_0041
    FORM routine_0010
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_12
      CHANGING
        RESULT         TYPE tys_TG_1_full-ISSVS_VAL
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods issue is considered
      IF ( COMM_STRUCTURE-processkey EQ '100'   "Other Issues
        OR COMM_STRUCTURE-processkey EQ '101'   "Returns / Vendor
        OR COMM_STRUCTURE-processkey EQ '104'   "Material Transfer
        OR COMM_STRUCTURE-processkey EQ '105'   "Stock Adjustment InvD
        OR COMM_STRUCTURE-processkey EQ '106

  • Start Routine code error of Perform routine 9998

    Hi,
    I have install standard and then migrate to 7.0 all the flow of modeling.
    but after loading data in PSA, while activation i will found following problem (error in routine).
    In PERFORM or CALL FUNCTION ROUTINE_9998, the actual parameter SOURCE_PACKAGE is incompatible with the formal parameter DATA_PACKAGE.
    please suggest me.

    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        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.
      Rule specific types
        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,
         InfoObject: ZSTEXT Object Number Text.
            /BIC/ZSTEXT           TYPE /BIC/OIZSTEXT,
         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.
    $$ begin of global - insert your declaration only below this line  -
        ... "insert your code here
    $$ 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  *
    TYPES:
      BEGIN OF tys_SC_1_full,
         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: Record Mode.
        RECORDMODE           TYPE RODMUPDMOD,
         Field: RECNO Data record number.
        RECNO           TYPE RSARECORD,
      END   OF tys_SC_1_full.
    TYPES:
      tyt_SC_1_full        TYPE STANDARD TABLE OF tys_SC_1_full
                        WITH NON-UNIQUE DEFAULT KEY.
    TYPES:
      BEGIN OF tys_TG_1_full,
         Field: SID Master data ID.
        SID           TYPE RSSID,
         Field: DATAPAKID Data packet number.
        DATAPAKID           TYPE RSDATAPID,
         Field: RECORD Data record number.
        RECORD           TYPE RSARECORD,
         InfoObject: 0MPOINT Measuring point.
        MPOINT           TYPE /BI0/OIMPOINT,
         InfoObject: 0MDOC Measurement Document.
        MDOC           TYPE /BI0/OIMDOC,
         InfoObject: 0MRMINSI Lower Meas. Limit or Min. Total Counter Read
    *ing in SI Unit.
        MRMINSI           TYPE /BI0/OIMRMINSI,
         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: 0CAT_TYPE Catalog.
        CAT_TYPE           TYPE /BI0/OICAT_TYPE,
         InfoObject: 0CAT_GROUP Code group.
        CAT_GROUP           TYPE /BI0/OICAT_GROUP,
         InfoObject: 0CREATED_BY Created By.
        CREATED_BY           TYPE /BI0/OICREATED_BY,
         InfoObject: 0MPOBJ Object Number of Measuring Point Object.
        MPOBJ           TYPE /BI0/OIMPOBJ,
         InfoObject: 0READEU Measured Value in Document Entry Unit.
        READEU           TYPE /BI0/OIREADEU,
         InfoObject: 0CJUMPSI Counter Overflow Reading in SI Unit.
        CJUMPSI           TYPE /BI0/OICJUMPSI,
         InfoObject: 0PYEARSI Annual Performance in SI Unit.
        PYEARSI           TYPE /BI0/OIPYEARSI,
         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: 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: 0DESIRSI Target Value for Measuring Point in SI Unit.
        DESIRSI           TYPE /BI0/OIDESIRSI,
         InfoObject: 0SIUNIT SI unit.
        SIUNIT           TYPE /BI0/OISIUNIT,
         InfoObject: 0DESIREU Target Value for Measuring Point in Document
    Entry Unit.
        DESIREU           TYPE /BI0/OIDESIREU,
         InfoObject: 0CNTRRSI Counter Reading in SI Unit.
        CNTRRSI           TYPE /BI0/OICNTRRSI,
         InfoObject: 0CDIFFSI Counter Reading Difference in SI Unit.
        CDIFFSI           TYPE /BI0/OICDIFFSI,
         InfoObject: 0RECDU Unit of Measurement for Document Entry.
        RECDU           TYPE /BI0/OIRECDU,
         InfoObject: 0MRMINEU Lower Meas. Limit or Min. Total Counter Read
    *ing Document UoM.
        MRMINEU           TYPE /BI0/OIMRMINEU,
         InfoObject: 0MRMAXEU Upper Meas. Limit or Max. Total Counter Read
    *ing in Doc. M.U..
        MRMAXEU           TYPE /BI0/OIMRMAXEU,
         InfoObject: 0MRMAXI Upper Measurement Area Limit Is Defined.
        MRMAXI           TYPE /BI0/OIMRMAXI,
         InfoObject: 0CNTRREU Counter Reading in Document Entry Unit.
        CNTRREU           TYPE /BI0/OICNTRREU,
         InfoObject: 0CDIFFEU Counter Reading Difference in Document Entry
    Unit.
        CDIFFEU           TYPE /BI0/OICDIFFEU,
         InfoObject: 0RECORDMODE BW Delta Process: Record Mode.
        RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0MRMAXSI Upper Meas. Limit or Max. Total Counter Read
    *ing in SI Unit.
        MRMAXSI           TYPE /BI0/OIMRMAXSI,
         InfoObject: 0READSI Measured Value/Total Counter Reading in SI Un
    *it.
        READSI           TYPE /BI0/OIREADSI,
      END   OF tys_TG_1_full.
    TYPES:
      BEGIN OF tys_SC_1__RULE_34,
         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: 0SIUNIT SI unit.
        SIUNIT           TYPE /BI0/OISIUNIT,
         InfoObject: 0RECDU Unit of Measurement for Document Entry.
        RECDU           TYPE /BI0/OIRECDU,
         Field: RECORD.
        RECORD           TYPE RSARECORD,
      END   OF tys_SC_1__RULE_34.
    TYPES:
      BEGIN OF tys_SC_1__RULE_35,
         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: 0SIUNIT SI unit.
        SIUNIT           TYPE /BI0/OISIUNIT,
         InfoObject: 0RECDU Unit of Measurement for Document Entry.
        RECDU           TYPE /BI0/OIRECDU,
         Field: RECORD.
        RECORD           TYPE RSARECORD,
      END   OF tys_SC_1__RULE_35.
    TYPES:
      BEGIN OF tys_SC_1__RULE_36,
         InfoObject: 0MRMAXI Upper Measurement Area Limit Is Defined.
        MRMAXI           TYPE /BI0/OIMRMAXI,
         InfoObject: 0SIUNIT SI unit.
        SIUNIT           TYPE /BI0/OISIUNIT,
         InfoObject: 0RECDU Unit of Measurement for Document Entry.
        RECDU           TYPE /BI0/OIRECDU,
         InfoObject: 0MRMAXSI Upper Meas. Limit or Max. Total Counter Read
    *ing in SI Unit.
        MRMAXSI           TYPE /BI0/OIMRMAXSI,
         Field: RECORD.
        RECORD           TYPE RSARECORD,
      END   OF tys_SC_1__RULE_36.
    TYPES:
      BEGIN OF tys_SC_1__RULE_37,
         InfoObject: 0SIUNIT SI unit.
        SIUNIT           TYPE /BI0/OISIUNIT,
         InfoObject: 0RECDU Unit of Measurement for Document Entry.
        RECDU           TYPE /BI0/OIRECDU,
         InfoObject: 0CNTRRSI Counter Reading in SI Unit.
        CNTRRSI           TYPE /BI0/OICNTRRSI,
         InfoObject: 0CNTIND Measuring Point is Counter.
        CNTIND           TYPE /BI0/OICNTIND,
         Field: RECORD.
        RECORD           TYPE RSARECORD,
      END   OF tys_SC_1__RULE_37.
    TYPES:
      BEGIN OF tys_SC_1__RULE_38,
         InfoObject: 0SIUNIT SI unit.
        SIUNIT           TYPE /BI0/OISIUNIT,
         InfoObject: 0RECDU Unit of Measurement for Document Entry.
        RECDU           TYPE /BI0/OIRECDU,
         InfoObject: 0CDIFFSI Counter Reading Difference in SI Unit.
        CDIFFSI           TYPE /BI0/OICDIFFSI,
         InfoObject: 0CNTIND Measuring Point is Counter.
        CNTIND           TYPE /BI0/OICNTIND,
         Field: RECORD.
        RECORD           TYPE RSARECORD,
      END   OF tys_SC_1__RULE_38.
    Additional types for start routine interface
    TYPES:
      data_package_structure type tys_SC_1_full.
    Additional declaration for update rule interface
    DATA:
      MONITOR       type standard table of rsmonitor  WITH HEADER LINE,
      MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,
      RECORD_NO     LIKE SY-TABIX,
      RECORD_ALL    LIKE SY-TABIX,
      SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.
    global definitions from update rules
    TABLES: ...
    DATA:   ...
    *******DATA:  G_T_0EQUIPMENT  TYPE STANDARD TABLE OF /BI0/MEQUIPMENT.
    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'.
    *&      Form  routine_9998
          text
         -->DATA_PACKAGE            text
         -->ABORT                   text
         -->RAISING                 text
         -->CX_SY_ARITHMETIC_ERROR  text
         -->CX_SY_CONVERSION_ERROR  text
    FORM routine_9998
      TABLES DATA_PACKAGE TYPE tyt_SC_1_full
      CHANGING
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    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
    in the master data of the equipment
      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.
          LOOP AT DATA_PACKAGE.
            IF ( DATA_PACKAGE-FUNCT_LOC IS INITIAL ) AND
               ( DATA_PACKAGE-EQUIPMENT IS NOT INITIAL ).
              READ TABLE <G_T_0EQUIPMENT> WITH KEY
                ('EQUIPMENT') = DATA_PACKAGE-EQUIPMENT INTO <G_S_0EQUIPMENT>
              IF SY-SUBRC = 0.
                IF ( DATA_PACKAGE-MDATE >= <DATEFROM> )
                   AND ( DATA_PACKAGE-MDATE <= <DATETO> ).
    record for equipment exists and valid
                  DATA_PACKAGE-FUNCT_LOC = <FUNCT_LOC>.
                  MODIFY DATA_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
      ABORT = 0.
    ENDFORM.                    "routine_9998
    *&      Form  routine_0001
          text
         -->COMM_STRUCTURE          text
         -->RESULT                  text
         -->RETURNCODE              text
         -->ABORT                   text
         -->RAISING                 text
         -->CX_SY_ARITHMETIC_ERROR  text
         -->CX_SY_CONVERSION_ERROR  text
    FORM routine_0001
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_34
      CHANGING
        RESULT         TYPE tys_TG_1_full-DESIREU
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
      CLEAR RESULT.
      IF COMM_STRUCTURE-TVIND = 'X'.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
          EXPORTING
            INPUT                      = COMM_STRUCTURE-DESIRSI
            NO_TYPE_CHECK              = 'X'
      ROUND_SIGN                 = ' '
            UNIT_IN                    = COMM_STRUCTURE-SIUNIT
            UNIT_OUT                   = COMM_STRUCTURE-RECDU
          IMPORTING
      ADD_CONST                  =
      DECIMALS                   =
      DENOMINATOR                =
      NUMERATOR                  =
            OUTPUT                     = RESULT
       EXCEPTIONS
         CONVERSION_NOT_FOUND       = 1
         DIVISION_BY_ZERO           = 2
         INPUT_INVALID              = 3
         OUTPUT_INVALID             = 4
         OVERFLOW                   = 5
         TYPE_INVALID               = 6
         UNITS_MISSING              = 7
         UNIT_IN_NOT_FOUND          = 8
         UNIT_OUT_NOT_FOUND         = 9
         OTHERS                     = 10
        IF SY-SUBRC <> 0.
          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.
        ENDIF.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0001
    *&      Form  routine_0002
          text
         -->COMM_STRUCTURE          text
         -->RESULT                  text
         -->RETURNCODE              text
         -->ABORT                   text
         -->RAISING                 text
         -->CX_SY_ARITHMETIC_ERROR  text
         -->CX_SY_CONVERSION_ERROR  text
    FORM routine_0002
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_35
      CHANGING
        RESULT         TYPE tys_TG_1_full-MRMINEU
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
      CLEAR RESULT.
      IF COMM_STRUCTURE-MRMINI = 'X'.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
          EXPORTING
            INPUT                      = COMM_STRUCTURE-MRMINSI
            NO_TYPE_CHECK              = 'X'
      ROUND_SIGN                 = ' '
            UNIT_IN                    = COMM_STRUCTURE-SIUNIT
            UNIT_OUT                   = COMM_STRUCTURE-RECDU
          IMPORTING
      ADD_CONST                  =
      DECIMALS                   =
      DENOMINATOR                =
      NUMERATOR                  =
            OUTPUT                     = RESULT
       EXCEPTIONS
         CONVERSION_NOT_FOUND       = 1
         DIVISION_BY_ZERO           = 2
         INPUT_INVALID              = 3
         OUTPUT_INVALID             = 4
         OVERFLOW                   = 5
         TYPE_INVALID               = 6
         UNITS_MISSING              = 7
         UNIT_IN_NOT_FOUND          = 8
         UNIT_OUT_NOT_FOUND         = 9
         OTHERS                     = 10
        IF SY-SUBRC <> 0.
          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.
        ENDIF.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0002
    *&      Form  routine_0003
          text
         -->COMM_STRUCTURE          text
         -->RESULT                  text
         -->RETURNCODE              text
         -->ABORT                   text
         -->RAISING                 text
         -->CX_SY_ARITHMETIC_ERROR  text
         -->CX_SY_CONVERSION_ERROR  text
    FORM routine_0003
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_36
      CHANGING
        RESULT         TYPE tys_TG_1_full-MRMAXEU
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
      CLEAR RESULT.
      IF COMM_STRUCTURE-MRMAXI = 'X'.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
          EXPORTING
            INPUT                      = COMM_STRUCTURE-MRMAXSI
            NO_TYPE_CHECK              = 'X'
      ROUND_SIGN                 = ' '
            UNIT_IN                    = COMM_STRUCTURE-SIUNIT
            UNIT_OUT                   = COMM_STRUCTURE-RECDU
          IMPORTING
      ADD_CONST                  =
      DECIMALS                   =
      DENOMINATOR                =
      NUMERATOR                  =
            OUTPUT                     = RESULT
       EXCEPTIONS
         CONVERSION_NOT_FOUND       = 1
         DIVISION_BY_ZERO           = 2
         INPUT_INVALID              = 3
         OUTPUT_INVALID             = 4
         OVERFLOW                   = 5
         TYPE_INVALID               = 6
         UNITS_MISSING              = 7
         UNIT_IN_NOT_FOUND          = 8
         UNIT_OUT_NOT_FOUND         = 9
         OTHERS                     = 10
        IF SY-SUBRC <> 0.
          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.
        ENDIF.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0003
    *&      Form  routine_0004
          text
         -->COMM_STRUCTURE          text
         -->RESULT                  text
         -->RETURNCODE              text
         -->ABORT                   text
         -->RAISING                 text
         -->CX_SY_ARITHMETIC_ERROR  text
         -->CX_SY_CONVERSION_ERROR  text
    FORM routine_0004
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_37
      CHANGING
        RESULT         TYPE tys_TG_1_full-CNTRREU
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
      CLEAR RESULT.
      IF COMM_STRUCTURE-CNTIND = 'X'.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
          EXPORTING
            INPUT                      = COMM_STRUCTURE-CNTRRSI
            NO_TYPE_CHECK              = 'X'
      ROUND_SIGN                 = ' '
            UNIT_IN                    = COMM_STRUCTURE-SIUNIT
            UNIT_OUT                   = COMM_STRUCTURE-RECDU
          IMPORTING
      ADD_CONST                  =
      DECIMALS                   =
      DENOMINATOR                =
      NUMERATOR                  =
            OUTPUT                     = RESULT
       EXCEPTIONS
         CONVERSION_NOT_FOUND       = 1
         DIVISION_BY_ZERO           = 2
         INPUT_INVALID              = 3
         OUTPUT_INVALID             = 4
         OVERFLOW                   = 5
         TYPE_INVALID               = 6
         UNITS_MISSING              = 7
         UNIT_IN_NOT_FOUND          = 8
         UNIT_OUT_NOT_FOUND         = 9
         OTHERS                     = 10
        IF SY-SUBRC <> 0.
          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.
        ENDIF.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0004
    *&      Form  routine_0005
          text
         -->COMM_STRUCTURE          text
         -->RESULT                  text
         -->RETURNCODE              text
         -->ABORT                   text
         -->RAISING                 text
         -->CX_SY_ARITHMETIC_ERROR  text
         -->CX_SY_CONVERSION_ERROR  text
    FORM routine_0005
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_38
      CHANGING
        RESULT         TYPE tys_TG_1_full-CDIFFEU
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
      CLEAR RESULT.
      IF COMM_STRUCTURE-CNTIND = 'X'.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
          EXPORTING
            INPUT                      = COMM_STRUCTURE-CDIFFSI
            NO_TYPE_CHECK              = 'X'
      ROUND_SIGN                 = ' '
            UNIT_IN                    = COMM_STRUCTURE-SIUNIT
            UNIT_OUT                   = COMM_STRUCTURE-RECDU
          IMPORTING
      ADD_CONST                  =
      DECIMALS                   =
      DENOMINATOR                =
      NUMERATOR                  =
            OUTPUT                     = RESULT
       EXCEPTIONS
         CONVERSION_NOT_FOUND       = 1
         DIVISION_BY_ZERO           = 2
         INPUT_INVALID              = 3
         OUTPUT_INVALID             = 4
         OVERFLOW                   = 5
         TYPE_INVALID               = 6
         UNITS_MISSING              = 7
         UNIT_IN_NOT_FOUND          = 8
         UNIT_OUT_NOT_FOUND         = 9
         OTHERS                     = 10
        IF SY-SUBRC <> 0.
          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.
        ENDIF.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0005
    TYPES: BEGIN OF TY_/BI0/PMPOINT,
          MPOINT      TYPE /BI0/PMPOINT-MPOINT,
       MRNGU     TYPE /BI0/PMPOINT-MRNGU,
    END of TY_/BI0/PMPOINT.
    DATA: /BI0/PMPOINT_TEMP TYPE STANDARD TABLE OF
    TY_/BI0/PMPOINT,
          W_/BI0/PMPOINT_TEMP like line of /BI0/PMPOINT_TEMP.
    $$ 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        *-*
        Data:
          l_subrc          type sy-tabix,
          l_abort          type sy-tabix,
          ls_monitor       TYPE rsmonitor,
          ls_monitor_recno TYPE rsmonitors.
        REFRESH:
          MONITOR,
          MONITOR_RECNO.
    Runtime attributs
        SOURCE_SYSTEM  = p_r_request->get_logsys( ).
    Migrated update rule call
        Perform routine_9998
        TABLES
          SOURCE_PACKAGE
        CHANGING
          l_abort.
    *-- Convert Messages in Transformation format
        LOOP AT MONITOR_RECNO INTO ls_monitor_recno.
          move-CORRESPONDING ls_monitor_recno to MONITOR_REC.
          append monitor_rec to MONITOR.
        ENDLOOP.
        LOOP AT MONITOR INTO ls_monitor.
          move-CORRESPONDING ls_monitor to MONITOR_REC.
          append monitor_rec to MONITOR.
        ENDLOOP.
        IF l_abort <> 0.
          RAISE EXCEPTION TYPE CX_RSROUT_ABORT.
        ENDIF.
    $$ 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

  • 2lis_03_BF transformation

    Hi,
    i am using standard Business content transformation for BF ,
    when i trying to activate the transformation it is showing syntax error in start routine.
    error: E:In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter "SOURCE_PACKAGE" is incompatible with the formal parameter "DATA_PACKAGE".
    The routine is
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        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.
      Rule specific types
        TYPES:
          BEGIN OF tys_SC_1,
         InfoObject: 0STORNO Reversal indicator.
            STORNO           TYPE /BI0/OISTORNO,
         InfoObject: 0RT_PROMO Promotion.
            RT_PROMO           TYPE /BI0/OIRT_PROMO,
         InfoObject: 0VAL_CLASS Valuation class.
            VAL_CLASS           TYPE /BI0/OIVAL_CLASS,
         InfoObject: 0DOC_DATE Document Date.
            DOC_DATE           TYPE /BI0/OIDOC_DATE,
         InfoObject: 0STOCKTYPE Stock type.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Stock Categories.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0PSTNG_DATE Posting date in the document.
            PSTNG_DATE           TYPE /BI0/OIPSTNG_DATE,
         InfoObject: 0COMP_CODE Company code.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BWAPPLNM Application component.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0MOVETYPE Movement Type (Inventory Management).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0STOCKRELEV BW: Relevance to Stock.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0CPPVLC BW: Purchase Value in Local Currency.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0CPSVLC BW: Sales Value in Local Currency.
            CPSVLC           TYPE /BI0/OICPSVLC,
         InfoObject: 0CPSTLC BW: Sales Value in Local Currency.
            CPSTLC           TYPE /BI0/OICPSTLC,
         InfoObject: 0CPQUABU BW: Amount in base unit of measure.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0VAL_TYPE Valuation type.
            VAL_TYPE           TYPE /BI0/OIVAL_TYPE,
         InfoObject: 0PROCESSKEY BW: Transaction Key.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0BATCH Batch number.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0MATMREA Reason for Goods Movement.
            MATMREA           TYPE /BI0/OIMATMREA,
         InfoObject: 0BUS_AREA Business area.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0COSTCENTER Cost Center.
            COSTCENTER           TYPE /BI0/OICOSTCENTER,
         InfoObject: 0SOLD_TO Sold-to party.
            SOLD_TO           TYPE /BI0/OISOLD_TO,
         InfoObject: 0WHSE_NUM Warehouse number / warehouse complex.
            WHSE_NUM           TYPE /BI0/OIWHSE_NUM,
         InfoObject: 0STOR_LOC Storage location.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0STRGE_BIN Storage bin.
            STRGE_BIN           TYPE /BI0/OISTRGE_BIN,
         InfoObject: 0STRGE_TYPE Storage type.
            STRGE_TYPE           TYPE /BI0/OISTRGE_TYPE,
         InfoObject: 0VENDOR Vendor.
            VENDOR           TYPE /BI0/OIVENDOR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0DOC_NUM BW: Document Number.
            DOC_NUM           TYPE /BI0/OIDOC_NUM,
         InfoObject: 0BASE_UOM Base Unit of Measure.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         InfoObject: 0DOC_YEAR BW: Document Year.
            DOC_YEAR           TYPE /BI0/OIDOC_YEAR,
         InfoObject: 0PROFIT_CTR Profit Center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0DCINDIC Debit/credit indicator.
            DCINDIC           TYPE /BI0/OIDCINDIC,
         InfoObject: 0LOC_CURRCY Local currency.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0PLANT Plant.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0FISCVARNT Fiscal year variant.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0CPNOITEMS BW: Number of Activities.
            CPNOITEMS           TYPE /BI0/OICPNOITEMS,
         InfoObject: 0CO_AREA Controlling area.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0DOC_ITEM BW: Document Line Number.
            DOC_ITEM           TYPE /BI0/OIDOC_ITEM,
         InfoObject: 0VALUE_LC Amount in local currency.
            VALUE_LC           TYPE /BI0/OIVALUE_LC,
         InfoObject: 0COORDER Order number.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0QUANT_B Quantity in base units of measure.
            QUANT_B           TYPE /BI0/OIQUANT_B,
         InfoObject: 0MOVE_PLANT Receiving Plant/Issuing Plant.
            MOVE_PLANT           TYPE /BI0/OIMOVE_PLANT,
         InfoObject: 0RECORDMODE BW Delta Process: Update Mode.
            RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0BWCOUNTER Additional Key Field Revaluation Document
    *Record.
            BWCOUNTER           TYPE /BI0/OIBWCOUNTER,
         InfoObject: 0INDSPECSTK Indicator: Valuation of Special Stock.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0GN_R3_SSY Source System for R/3 Entity.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0RT_MOVINV Movement Type is Physical Inventory.
            RT_MOVINV           TYPE /BI0/OIRT_MOVINV,
         InfoObject: 0RT_MOVADJ Movement Type is Stock Adjustment.
            RT_MOVADJ           TYPE /BI0/OIRT_MOVADJ,
         InfoObject: 0RSL_STMAT Structured Article.
            RSL_STMAT           TYPE /BI0/OIRSL_STMAT,
         InfoObject: 0RT_MOVRET Movement Type is Return.
            RT_MOVRET           TYPE /BI0/OIRT_MOVRET,
         InfoObject: 0RSL_STAUTO Automatically Completed Component.
            RSL_STAUTO           TYPE /BI0/OIRSL_STAUTO,
         InfoObject: 0RT_MOVTRAN Movement Type is Stock Transfer.
            RT_MOVTRAN           TYPE /BI0/OIRT_MOVTRAN,
         InfoObject: 0RT_MATPOST Transfer Posting from Article to Article.
            RT_MATPOST           TYPE /BI0/OIRT_MATPOST,
         InfoObject: 0RT_SASTSV Share of Business Volume for Set Sales Val
    *ue in Local Crcy.
            RT_SASTSV           TYPE /BI0/OIRT_SASTSV,
         InfoObject: 0RT_SASTST Share of Business Volume for Set with Tax
    *in Local Currency.
            RT_SASTST           TYPE /BI0/OIRT_SASTST,
         InfoObject: 0RMA_XCC RMA Cross-Company Code Stock Transfer.
            RMA_XCC           TYPE /BI0/OIRMA_XCC,
         InfoObject: 0RMA_LNK RMA Stock Transfer Reference Item.
            RMA_LNK           TYPE /BI0/OIRMA_LNK,
         InfoObject: 0RMA_RFLG RMA Relevance Flag.
            RMA_RFLG           TYPE /BI0/OIRMA_RFLG,
         InfoObject: 0RTHFEES Stock Transfer Fees.
            RTHFEES           TYPE /BI0/OIRTHFEES,
         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.
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ 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  *
        TYPES:
          BEGIN OF tys_SC_1_full,
         InfoObject: 0STORNO Stornokennzeichen.
            STORNO           TYPE /BI0/OISTORNO,
         InfoObject: 0RT_PROMO Aktion.
            RT_PROMO           TYPE /BI0/OIRT_PROMO,
         InfoObject: 0VAL_CLASS Bewertungsklasse.
            VAL_CLASS           TYPE /BI0/OIVAL_CLASS,
         InfoObject: 0DOC_DATE Belegdatum.
            DOC_DATE           TYPE /BI0/OIDOC_DATE,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0PSTNG_DATE Buchungsdatum im Beleg.
            PSTNG_DATE           TYPE /BI0/OIPSTNG_DATE,
         InfoObject: 0COMP_CODE Buchungskreis.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0CPSVLC BW: Verkaufswert in Hauswährung.
            CPSVLC           TYPE /BI0/OICPSVLC,
         InfoObject: 0CPSTLC BW: VerkWmS Hauswährung.
            CPSTLC           TYPE /BI0/OICPSTLC,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0VAL_TYPE Bewertungsart.
            VAL_TYPE           TYPE /BI0/OIVAL_TYPE,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0BATCH Chargennummer.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0MATMREA Grund für die Warenbewegung.
            MATMREA           TYPE /BI0/OIMATMREA,
         InfoObject: 0BUS_AREA Geschäftsbereich.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0COSTCENTER Kostenstelle.
            COSTCENTER           TYPE /BI0/OICOSTCENTER,
         InfoObject: 0SOLD_TO Auftraggeber.
            SOLD_TO           TYPE /BI0/OISOLD_TO,
         InfoObject: 0WHSE_NUM Lagernummer/Lagerkomplex.
            WHSE_NUM           TYPE /BI0/OIWHSE_NUM,
         InfoObject: 0STOR_LOC Lagerort.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0STRGE_BIN Lagerplatz.
            STRGE_BIN           TYPE /BI0/OISTRGE_BIN,
         InfoObject: 0STRGE_TYPE Lagertyp.
            STRGE_TYPE           TYPE /BI0/OISTRGE_TYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0DOC_NUM BW: Belegnummer.
            DOC_NUM           TYPE /BI0/OIDOC_NUM,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         InfoObject: 0DOC_YEAR BW: Belegjahr.
            DOC_YEAR           TYPE /BI0/OIDOC_YEAR,
         InfoObject: 0PROFIT_CTR Profit Center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0DCINDIC Soll-/Haben-Kennzeichen.
            DCINDIC           TYPE /BI0/OIDCINDIC,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0PLANT Werk.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0FISCVARNT Geschäftsjahresvariante.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0CPNOITEMS BW: Anzahl Vorgänge.
            CPNOITEMS           TYPE /BI0/OICPNOITEMS,
         InfoObject: 0CO_AREA Kostenrechnungskreis.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0DOC_ITEM BW: Belegpositionsnummer.
            DOC_ITEM           TYPE /BI0/OIDOC_ITEM,
         InfoObject: 0VALUE_LC Betrag in Hauswährung.
            VALUE_LC           TYPE /BI0/OIVALUE_LC,
         InfoObject: 0COORDER Auftragsnummer.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0QUANT_B Menge in Basismengeneinheiten.
            QUANT_B           TYPE /BI0/OIQUANT_B,
         InfoObject: 0MOVE_PLANT Empfangendes/Abgebendes Werk.
            MOVE_PLANT           TYPE /BI0/OIMOVE_PLANT,
         InfoObject: 0RECORDMODE BW Deltaverfahren: Update Modus.
            RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0RT_RMAPIDA RMA Inventurdatum.
            RT_RMAPIDA           TYPE /BI0/OIRT_RMAPIDA,
         InfoObject: 0BWCOUNTER Zusätzliches Schlüsselfeld Umbewertungsbel
    *egsatz.
            BWCOUNTER           TYPE /BI0/OIBWCOUNTER,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0RT_MOVINV Bewegungsart ist Inventur.
            RT_MOVINV           TYPE /BI0/OIRT_MOVINV,
         InfoObject: 0RT_MOVADJ Bewegungsart ist Bestandskorrektur.
            RT_MOVADJ           TYPE /BI0/OIRT_MOVADJ,
         InfoObject: 0RSL_STMAT Strukturierter Artikel.
            RSL_STMAT           TYPE /BI0/OIRSL_STMAT,
         InfoObject: 0RT_MOVRET Bewegungsart ist Retoure.
            RT_MOVRET           TYPE /BI0/OIRT_MOVRET,
         InfoObject: 0RSL_STAUTO Automatisch ergänzte Komponente.
            RSL_STAUTO           TYPE /BI0/OIRSL_STAUTO,
         InfoObject: 0RT_MOVTRAN Bewegungsart ist Umlagerung.
            RT_MOVTRAN           TYPE /BI0/OIRT_MOVTRAN,
         InfoObject: 0RT_MATPOST Umbuchung Artikel an Artikel.
            RT_MATPOST           TYPE /BI0/OIRT_MATPOST,
         InfoObject: 0RT_SASTSV Umsatzanteil am Set Verkaufswert in Hauswä
    *hrung.
            RT_SASTSV           TYPE /BI0/OIRT_SASTSV,
         InfoObject: 0RT_SASTST Umsatzanteil am Set Verkaufswert mit Steue
    *r in Hauswährung.
            RT_SASTST           TYPE /BI0/OIRT_SASTST,
         Field: RECORD.
            RECORD           TYPE RSARECORD,      END   OF tys_SC_1_full.
        TYPES:
    tyt_SC_1_full        TYPE STANDARD TABLE OF tys_SC_1_full
                            WITH NON-UNIQUE DEFAULT KEY.
        TYPES:
          BEGIN OF tys_TG_1_full,
         InfoObject: 0CHNGID Änderungslauf ID.
            CHNGID           TYPE /BI0/OICHNGID,
         InfoObject: 0RECORDTP Satztyp.
            RECORDTP           TYPE /BI0/OIRECORDTP,
         InfoObject: 0REQUID Request ID.
            REQUID           TYPE /BI0/OIREQUID,
         InfoObject: 0CALDAY Kalendertag.
            CALDAY           TYPE /BI0/OICALDAY,
         InfoObject: 0CALMONTH Kalenderjahr / Monat.
            CALMONTH           TYPE /BI0/OICALMONTH,
         InfoObject: 0CALWEEK Kalenderjahr / Woche.
            CALWEEK           TYPE /BI0/OICALWEEK,
         InfoObject: 0CALYEAR Kalenderjahr.
            CALYEAR           TYPE /BI0/OICALYEAR,
         InfoObject: 0MATERIAL Material.
            MATERIAL           TYPE /BI0/OIMATERIAL,
         InfoObject: 0PLANT Werk.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0STOR_LOC Lagerort.
            STOR_LOC           TYPE /BI0/OISTOR_LOC,
         InfoObject: 0BATCH Chargennummer.
            BATCH           TYPE /BI0/OIBATCH,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0GN_VENDOR Lieferant.
            GN_VENDOR           TYPE /BI0/OIGN_VENDOR,
         InfoObject: 0RECVS_VAL Zugangswert Bewerteter Bestand.
            RECVS_VAL           TYPE /BI0/OIRECVS_VAL,
         InfoObject: 0ISSVS_VAL Abgangswert Bewerteter Bestand.
            ISSVS_VAL           TYPE /BI0/OIISSVS_VAL,
         InfoObject: 0ISSBLOSTCK Abgangsmenge Gesperrter Bestand.
            ISSBLOSTCK           TYPE /BI0/OIISSBLOSTCK,
         InfoObject: 0ISSCNSSTCK Abgangsmenge Konsignationsbestand.
            ISSCNSSTCK           TYPE /BI0/OIISSCNSSTCK,
         InfoObject: 0ISSQMSTCK Abgangsmenge Qualitätsbestand.
            ISSQMSTCK           TYPE /BI0/OIISSQMSTCK,
         InfoObject: 0ISSTRANSST Abgangsmenge Transitbestand.
            ISSTRANSST           TYPE /BI0/OIISSTRANSST,
         InfoObject: 0RECBLOSTCK Zugangsmenge Gesperrter Bestand.
            RECBLOSTCK           TYPE /BI0/OIRECBLOSTCK,
         InfoObject: 0RECCNSSTCK Zugangsmenge Konsignationsbestand.
            RECCNSSTCK           TYPE /BI0/OIRECCNSSTCK,
         InfoObject: 0RECQMSTCK Zugangsmenge Qualitätsbestand.
            RECQMSTCK           TYPE /BI0/OIRECQMSTCK,
         InfoObject: 0RECTRANSST Zugangsmenge Transitbestand.
            RECTRANSST           TYPE /BI0/OIRECTRANSST,
         InfoObject: 0ISSSCRP Abgangsmenge Ausschuss.
            ISSSCRP           TYPE /BI0/OIISSSCRP,
         InfoObject: 0ISSVALSCRP Abgangswert Ausschuss.
            ISSVALSCRP           TYPE /BI0/OIISSVALSCRP,
         InfoObject: 0RECTOTSTCK Zugangsmenge Gesamt Bestand.
            RECTOTSTCK           TYPE /BI0/OIRECTOTSTCK,
         InfoObject: 0ISSTOTSTCK Abgangsmenge Gesamtbestand.
            ISSTOTSTCK           TYPE /BI0/OIISSTOTSTCK,
         InfoObject: 0ISSVALSTCK Abgangsmenge Bewerteter Bestand.
            ISSVALSTCK           TYPE /BI0/OIISSVALSTCK,
         InfoObject: 0RECVALSTCK Zugangsmenge Bewerteter Bestand.
            RECVALSTCK           TYPE /BI0/OIRECVALSTCK,
         InfoObject: 0VENCONCON Verbrauchswerte Lieferantenkonsignationsbe
    *stand.
            VENCONCON           TYPE /BI0/OIVENCONCON,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         Field: RECORD Nummer des Datensatzes.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1_full.
        TYPES:
          BEGIN OF tys_SC_1__RULE_9,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_9.
        TYPES:
          BEGIN OF tys_SC_1__RULE_10,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_10.
        TYPES:
          BEGIN OF tys_SC_1__RULE_11,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_11.
        TYPES:
          BEGIN OF tys_SC_1__RULE_12,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_12.
        TYPES:
          BEGIN OF tys_SC_1__RULE_13,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_13.
        TYPES:
          BEGIN OF tys_SC_1__RULE_15,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_15.
        TYPES:
          BEGIN OF tys_SC_1__RULE_19,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_19.
        TYPES:
          BEGIN OF tys_SC_1__RULE_20,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_20.
        TYPES:
          BEGIN OF tys_SC_1__RULE_21,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_21.
        TYPES:
          BEGIN OF tys_SC_1__RULE_22,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0INDSPECSTK Kennzeichen Bewertung Sonderbestand.
            INDSPECSTK           TYPE /BI0/OIINDSPECSTK,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_22.
        TYPES:
          BEGIN OF tys_SC_1__RULE_25,
         InfoObject: 0GN_R3_SSY Quellsystem der R/3 Entität.
            GN_R3_SSY           TYPE /BI0/OIGN_R3_SSY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0VENDOR Lieferant.
            VENDOR           TYPE /BI0/OIVENDOR,
          END   OF tys_SC_1__RULE_25.
        TYPES:
          BEGIN OF tys_SC_1__RULE_31,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_31.
        TYPES:
          BEGIN OF tys_SC_1__RULE_37,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_37.
        TYPES:
          BEGIN OF tys_SC_1__RULE_38,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_38.
        TYPES:
          BEGIN OF tys_SC_1__RULE_39,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_39.
        TYPES:
          BEGIN OF tys_SC_1__RULE_40,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_40.
        TYPES:
          BEGIN OF tys_SC_1__RULE_41,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKCAT Bestandstypen.
            STOCKCAT           TYPE /BI0/OISTOCKCAT,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_41.
        TYPES:
          BEGIN OF tys_SC_1__RULE_42,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0PROCESSKEY BW:Vorgangsschlüssel.
            PROCESSKEY           TYPE /BI0/OIPROCESSKEY,
         InfoObject: 0STOCKRELEV BW: Best.Relevanz.
            STOCKRELEV           TYPE /BI0/OISTOCKRELEV,
         InfoObject: 0STOCKTYPE Bestandsausprägung.
            STOCKTYPE           TYPE /BI0/OISTOCKTYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_42.
        TYPES:
          BEGIN OF tys_SC_1__RULE_43,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPQUABU BW: Menge in Basismengeneinheit.
            CPQUABU           TYPE /BI0/OICPQUABU,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0BASE_UOM Basismengeneinheit.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
          END   OF tys_SC_1__RULE_43.
        TYPES:
          BEGIN OF tys_SC_1__RULE_51,
         InfoObject: 0BWAPPLNM Anwendungskomponente.
            BWAPPLNM           TYPE /BI0/OIBWAPPLNM,
         InfoObject: 0CPPVLC BW: Einkaufswert in Hauswährung.
            CPPVLC           TYPE /BI0/OICPPVLC,
         InfoObject: 0MOVETYPE Bewegungsart (Bestandsführung).
            MOVETYPE           TYPE /BI0/OIMOVETYPE,
         InfoObject: 0LOC_CURRCY Hauswährung.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
          END   OF tys_SC_1__RULE_51.
    Additional types for start routine interface
      TYPES:
        data_package_structure type tys_SC_1_full.
    Additional declaration for update rule interface
      DATA:
        MONITOR       type standard table of rsmonitor  WITH HEADER LINE,
        MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,
        RECORD_NO     LIKE SY-TABIX,
        RECORD_ALL    LIKE SY-TABIX,
        SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.
    global definitions from update rules
    INCLUDE rsbctgn_top.
    INCLUDE rsbctgn_update_rules.
    FORM routine_9998
      TABLES DATA_PACKAGE TYPE tyt_SC_1_full
      CHANGING
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    see OSS note 571669
      LOOP AT DATA_PACKAGE.
        IF DATA_PACKAGE-stockcat EQ 'V' OR
           DATA_PACKAGE-stocktype EQ 'V'.
          DELETE DATA_PACKAGE.
        ENDIF.
      ENDLOOP.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_9998
    FORM routine_0012
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_9
      CHANGING
        RESULT         TYPE tys_TG_1_full-ISSCNSSTCK
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods issue is considered
      IF ( COMM_STRUCTURE-processkey EQ '100'   "Other Issues
        OR COMM_STRUCTURE-processkey EQ '101'   "Returns / Vendor
        OR COMM_STRUCTURE-processkey EQ '104'   "Material Transfer
        OR COMM_STRUCTURE-processkey EQ '105'   "Stock Adjustment InvD
        OR COMM_STRUCTURE-processkey EQ '106'   "Stock Adjustment Other
        OR COMM_STRUCTURE-processkey EQ '110' ) "Issue from Stock Transfer
       AND COMM_STRUCTURE-bwapplnm EQ 'MM'
    only movements which are relevant for stock control
       AND COMM_STRUCTURE-stockrelev EQ '1'
       AND COMM_STRUCTURE-cpquabu <> 0.
    only consignment stock is considered
        CASE COMM_STRUCTURE-stockcat.
          WHEN 'K'.
            RESULT = COMM_STRUCTURE-cpquabu.
            RETURNCODE = 0.
          WHEN space.
            IF COMM_STRUCTURE-stocktype CA 'KLM'.
              RESULT = COMM_STRUCTURE-cpquabu.
              RETURNCODE = 0.
            ELSE.
              RETURNCODE = 4.
            ENDIF.
          WHEN OTHERS.
            RETURNCODE = 4.
        ENDCASE.
      ELSE.
    if the returncode is not equal zero, the result will not be updated
        RETURNCODE = 4.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0012
    FORM routine_0014
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_10
      CHANGING
        RESULT         TYPE tys_TG_1_full-RECCNSSTCK
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods receipt is considered
      IF ( COMM_STRUCTURE-processkey EQ '000'   "Other Receipts
        OR COMM_STRUCTURE-processkey EQ '001'   "Goods Receipt / Vendor
        OR COMM_STRUCTURE-processkey EQ '004'   "Material Transfer
        OR COMM_STRUCTURE-processkey EQ '005'   "Stock Adjustment InvD
        OR COMM_STRUCTURE-processkey EQ '006'   "Stock Adjustment Other
        OR COMM_STRUCTURE-processkey EQ '010' ) "Receipt from Stock Transfer
       AND COMM_STRUCTURE-bwapplnm EQ 'MM'
    only movements which are relevant for stock control
       AND COMM_STRUCTURE-stockrelev EQ '1'
       AND COMM_STRUCTURE-cpquabu <> 0.
    only consignment stock is considered
        CASE COMM_STRUCTURE-stockcat.
          WHEN 'K'.
            RESULT = COMM_STRUCTURE-cpquabu.
            RETURNCODE = 0.
          WHEN space.
            IF COMM_STRUCTURE-stocktype CA 'KLM'.
              RESULT = COMM_STRUCTURE-cpquabu.
              RETURNCODE = 0.
            ELSE.
              RETURNCODE = 4.
            ENDIF.
          WHEN OTHERS.
            RETURNCODE = 4.
        ENDCASE.
      ELSE.
    if the returncode is not equal zero, the result will not be updated
        RETURNCODE = 4.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0014
    FORM routine_0041
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_11
      CHANGING
        RESULT         TYPE tys_TG_1_full-GN_VENDOR
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    ... determine consolidated key
      IF COMM_STRUCTURE-stockcat EQ 'K'.
        PERFORM  gn_get_global_key TABLES MONITOR
                              USING    COMM_STRUCTURE-gn_r3_ssy
                                       g_c_bwbeoty_r3vendor
                                       COMM_STRUCTURE-vendor
                                       RECORD_NO
                                       RECORD_ALL
                              CHANGING RESULT
                                       ABORT.
    if the returncode is not equal zero, the result will not be updated
      Endif.
      RETURNCODE = 0.
    ENDFORM.                    "routine_0041
    FORM routine_0010
      USING
        COMM_STRUCTURE type tys_SC_1__RULE_12
      CHANGING
        RESULT         TYPE tys_TG_1_full-ISSVS_VAL
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    fill the internal table "MONITOR", to make monitor entries
    only goods issue is considered
      IF ( C

    Hello,
    you have to convert the incomming data in SOURCE_PACKAGE to a local table, which has the structure of the called routine "routine_9998", because the parameter DATA_PACKAGE have to reference to the same type.
    Please insert your conversion before statement in startroutine method:
    Your conversion
    TABLES
    SOURCE_PACKAGE --> replace this line by your own internal table with type of DATA_PACKAGE
    CHANGING
    l_abort.
    Regards,
    André
    Edited by: André Klos on Jun 24, 2008 9:33 AM

  • Actionscript help: can not have more than one externally visable def

    package  {
        // these are flash built in classes
         import flash.display.MovieClip;
         import flash.events.TimerEvent;
        import flash.utils.Timer;
         import flash.events.Event;
        //Our own custom class
        import MainTimer;
        import flash.events.KeyboardEvent;
        public class MainDocument extends MovieClip{
            //initial variable values
             private var currentNumberOfEnemiesOnstage:int;
             private var initialNumberOfEnemiesToCreate:int = 2;
             private var enemyKills:int;
             private var childToRemove:int;
             private var level:int = 1;
             private var makeNewEnemyTimer:Timer = new Timer(3000,1);
             private var finishOffEnemy:Timer = new Timer (500, 1);
             private var gameTimer:MainTimer
             private var thePlayer:Player;
             private var theEnemy:Enemy;
             private var maxEnemies:int = 3;
             private var e:int = 0;
             private var childrenOnStage:int;
             private var lastX:int;// variable to determine where the last x of the player was.
             private var theStageNeedsToScroll:Boolean=false;// flag for scrolling
             private var numChildrenInGameStage:int;
             private var jump:JumpSound = new JumpSound();
             private var slap:SlapSound = new SlapSound();
             private var token:TokenSound = new TokenSound();
            public function MainDocument() {
                // constructor code
                trace("the main document is alive");
                makeNewEnemyTimer.addEventListener(TimerEvent.TIMER_COMPLETE,makeNewEnemyHandler);
                makeNewEnemyTimer.start();
                //new instance of the MainTimer class
                gameTimer = new MainTimer();
                //must add it to the stage
                addChild(gameTimer);
                //adjust its position on the stage
                gameTimer.x = 20;
                gameTimer.y = 20;
                //add the player
                thePlayer = new Player();
                addChild(thePlayer);
                // adjust its position on the stage
                thePlayer.x = stage.stageWidth * 0.5;
                // assign the name property
                thePlayer.name = "player";
                while (e< initialNumberOfEnemiesToCreate){
                    createEnemy();
                    e++;
                } //end while
                // init variable for tracking "kills"
                enemyKills = 0;
                killScoreBox.text = String (enemyKills) + " KILLS ";
                // Update this variable every time a child is added to the stage
                childrenOnStage = this.numChildren;
                //Add event listener to control timing of main game loop
                addEventListener (Event.ENTER_FRAME,mainGameLoop);
                 // Prepare for the keystroke listeners
                 stage.focus = stage;
                stage.addEventListener  (KeyboardEvent.KEY_DOWN, keyDownHandler);
                stage.addEventListener  (KeyboardEvent.KEY_UP, keyUpHandler);
            }  //end public function MainDocument
            private function keyDownHandler(e:KeyboardEvent):void {
                switch ( e.keyCode) {
                    case 37:   // left
                        thePlayer.moveLeft();
                        break;
                    case 38://up
                        jump.play();
                        thePlayer.startJumping();
                        break;
                    case 39:    //right
                        thePlayer.moveRight();
                        break;
                    case 40: //down to attack
                        slap.play();
                        thePlayer.attack();
                        break;                   
                }// end switch
            }// end function keyDownHandler
            private function keyUpHandler(e:KeyboardEvent):void {
                switch (e.keyCode) {
                    case 37:    // left
                    case 39:    // right
                        thePlayer.standStill();
                        break;
                    case 38: //jump
                        break;
                    case 40: // down to attack
                    break;
                    default:
                        //anything
                } //end switch
            } // end function keyUpHandler
            private function createEnemy():void{
                trace("create enemy");
                theEnemy = new Enemy((Math.random() * 5) + 1 );
                addChild(theEnemy);
                // Place in a random spot on stage
                theEnemy.x = (Math.random() * stage.stageWidth);
                theEnemy.y = 0;
                // assign the "name" property
                theEnemy.name = "enemy";
                //Update this variable everytime a child is added to the stage
                childrenOnStage = this.numChildren;
            } //end function createEnemy
            //the main loop for the game!!!!!
            private function mainGameLoop (event:Event):void{
                checkForGameReset();
                removeOrCreateNewEnemies();
                processCollisions();
                scrollStage();
            } //end function mainGameLoop
            private function checkForGameReset():void{
                //define conditions
                if(gameTimer.timerHasStopped == true){
                    resetBoard();
                }else if(thePlayer.y > stage.stageHeight){
                    resetBoard();
                }else if (theGameStage.theFish.hitTestPoint(thePlayer.x,thePlayer.y,true)
                                                        && theStageNeedsToScroll == false){
                    resetBoard();
                }else if (health.width <= 2){
                    resetBoard();
            } //end function CheckForGameReset
            private function resetBoard():void{
                health.width = 300;
                thePlayer.x = stage.stageWidth * 0.5;
                theGameStage.x = stage.stageWidth * 0.5;
                thePlayer.y = 0;
                theGameStage.y = 0;
                enemyKills = 0;
                gameTimer.resetTimer();
            } //end function
            private function processCollisions():void{
                //  set up main loop to look through all collidable objects on stage
                for(var c:int;c < childrenOnStage;c++){
                    //trace ("Children on stage c= " + c +
                    // test for a player or enemy child on stage
                    if (getChildAt(c).name == "player" || getChildAt(c).name == "enemy"){
                        // see if ovject is touching the game stage
                        if( theGameStage.hitTestPoint(getChildAt(c).x,getChildAt(c).y,true)){
                            // while it is still touching inch it up just until it stops
                               while ( theGameStage.hitTestPoint(getChildAt(c).x,getChildAt(c).y,true)==true){
                                   // called from CollisionObject Class, so force the connectioin
                                   CollisionObject (getChildAt(c)).incrementUpward();
                                   if (theGameStage.hitTestPoint(getChildAt(c).x,getChildAt(c).y,true)==false){
                                       CollisionObject(getChildAt(c)).keepOnBoundary(); //make it stick
                                   } // end if
                               } //end while
                        } //end if touching
                    }//end if player or enemy
                    ///////////////////////Collision with Enemies///////////////
                    if (getChildAt(c).name == "enemy"){
                        if(getChildAt(c).hitTestPoint (thePlayer.x, thePlayer.y , true) ){
                            if( thePlayer.isAttacking == false) {
                                // we are being attacked (and not defending)
                                health.width = health.width -2;                           
                                Enemy(getChildAt(c)).makeEnemyAttack();
                            }else{
                                // we are attacking that enemy
                                childToRemove = c;
                                Enemy(getChildAt(c)).makeEnemyDie();
                                finishOffEnemy.start();
                                finishOffEnemy.addEventListener(TimerEvent.TIMER_COMPLETE, finishOffEnemyComplete);
                            } //end else
                        }else if (Enemy(getChildAt(c)).enemyIsAttacking ==true) {
                            // if there isn't a collision between player and enemy,BUT the enemy is attacking
                            Enemy(getChildAt(c)).makeEnemyStopAttacking();
                        } //end else
    import flash.events.TimerEvent;
    // end if
                } //end for loop
                /////////////// token collision detection ///////////////
        numChildrenInGameStage = theGameStage.numChildren;
        for (var d:int = 0; d < numChildrenInGameStage; d++){
            if (theGameStage.getChildAt(d).hasOwnProperty("isToken") &&
                            theGameStage.getChildAt(d).visable == true) {
                if (thePlayer.hitTestObject(theGameStage.getChildAt(d))){
                    trace("hit token");
                    //play sound
                    token.play();
                    theGameStage.removeChildAt ( d );
                    numChildrenInGameStage = theGameStage.numChildren;
                }// end if
            }// end if
        } //end for
        }// end function processCollisions
        private function scrollStage():void{
                if (thePlayer.x != lastX){
                    theStageNeedsToScroll = true;
                }else{
                    theStageNeedsToScroll = false;
                }// end if
                if (theStageNeedsToScroll == true){
                    for (var b:int = 0; b < childrenOnStage; b ++){
                        if (getChildAt (b).name =="enemy"){
                            getChildAt (b).x += (stage.stageWidth * 0.5) - thePlayer.x;
                        }// end if
                    } //end for
                    theGameStage.x += (stage.stageWidth * 0.5) - thePlayer.x;
                } //end if
                thePlayer.x = stage.stageWidth * 0.5;
                lastX = thePlayer.x;
            }//  end function scrollStage
            // figure out logic
         //  end function scrollStage
        private function removeOrCreateNewEnemies():void{
            for (var c:int = 0; c < childrenOnStage; c++){
                if (getChildAt(c).name == "enemy" && getChildAt(c).y > stage.stageHeight){
                    removeChildAt(c);
                    createEnemy();
                } //end if
                if (getChildAt(c).name == "enemy" && getChildAt(c).x < thePlayer.x - stage.stageWidth){
                    removeChildAt(c);
                    createEnemy();
                } //end if
            } // end for loop
        }// end function removeOrCreateNewEnemies
        private function makeNewEnemyHandler(event:TimerEvent):void{
            currentNumberOfEnemiesOnstage = 0;
            for (var c:int = 0; c < childrenOnStage; c++){
                if (getChildAt(c).name == "enemy");
                    currentNumberOfEnemiesOnstage++;
                }// end if
            }// end for
            if(currentNumberOfEnemiesOnstage < maxEnemies){
                trace("not enough enemies onstage, make more");
                createEnemy();
            } //end if
            makeNewEnemyTimer.start();                       
        } //end function
        public function finishOffEnemyComplete(event:TimerEvent):void {
            enemyKills ++;
            killScoreBox.text = String ( enemyKills) + " KILLS ";
            removeChildAt (childToRemove);
            childrenOnStage = this.numChildren;
        }// end functioin
        }// end public class

    You have several problems with syntax. Here is the class that has syntactical integrity:
    package
              // these are flash built in classes
              import flash.display.MovieClip;
              import flash.events.TimerEvent;
              import flash.utils.Timer;
              import flash.events.Event;
              //Our own custom class
              import MainTimer;
              import flash.events.KeyboardEvent;
              public class MainDocument extends MovieClip
                        //initial variable values
                        private var currentNumberOfEnemiesOnstage:int;
                        private var initialNumberOfEnemiesToCreate:int = 2;
                        private var enemyKills:int;
                        private var childToRemove:int;
                        private var level:int = 1;
                        private var makeNewEnemyTimer:Timer = new Timer(3000, 1);
                        private var finishOffEnemy:Timer = new Timer(500, 1);
                        private var gameTimer:MainTimer
                        private var thePlayer:Player;
                        private var theEnemy:Enemy;
                        private var maxEnemies:int = 3;
                        private var e:int = 0;
                        private var childrenOnStage:int;
                        private var lastX:int; // variable to determine where the last x of the player was.
                        private var theStageNeedsToScroll:Boolean = false; // flag for scrolling
                        private var numChildrenInGameStage:int;
                        private var jump:JumpSound = new JumpSound();
                        private var slap:SlapSound = new SlapSound();
                        private var token:TokenSound = new TokenSound();
                        public function MainDocument()
                                  // constructor code
                                  trace("the main document is alive");
                                  makeNewEnemyTimer.addEventListener(TimerEvent.TIMER_COMPLETE, makeNewEnemyHandler);
                                  makeNewEnemyTimer.start();
                                  //new instance of the MainTimer class
                                  gameTimer = new MainTimer();
                                  //must add it to the stage
                                  addChild(gameTimer);
                                  //adjust its position on the stage
                                  gameTimer.x = 20;
                                  gameTimer.y = 20;
                                  //add the player
                                  thePlayer = new Player();
                                  addChild(thePlayer);
                                  // adjust its position on the stage
                                  thePlayer.x = stage.stageWidth * 0.5;
                                  // assign the name property
                                  thePlayer.name = "player";
                                  while (e < initialNumberOfEnemiesToCreate)
                                            createEnemy();
                                            e++;
                                  } //end while
                                  // init variable for tracking "kills"
                                  enemyKills = 0;
                                  killScoreBox.text = String(enemyKills) + " KILLS ";
                                  // Update this variable every time a child is added to the stage
                                  childrenOnStage = this.numChildren;
                                  //Add event listener to control timing of main game loop
                                  addEventListener(Event.ENTER_FRAME, mainGameLoop);
                                  // Prepare for the keystroke listeners
                                  stage.focus = stage;
                                  stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
                                  stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
                        } //end public function MainDocument
                        private function keyDownHandler(e:KeyboardEvent):void
                                  switch (e.keyCode)
                                            case 37: // left
                                                      thePlayer.moveLeft();
                                                      break;
                                            case 38: //up
                                                      jump.play();
                                                      thePlayer.startJumping();
                                                      break;
                                            case 39: //right
                                                      thePlayer.moveRight();
                                                      break;
                                            case 40: //down to attack
                                                      slap.play();
                                                      thePlayer.attack();
                                                      break;
                                  } // end switch
                        } // end function keyDownHandler
                        private function keyUpHandler(e:KeyboardEvent):void
                                  switch (e.keyCode)
                                            case 37: // left
                                            case 39: // right
                                                      thePlayer.standStill();
                                                      break;
                                            case 38: //jump
                                                      break;
                                            case 40: // down to attack
                                                      break;
                                            default:
                                            //anything
                                  } //end switch
                        } // end function keyUpHandler
                        private function createEnemy():void
                                  trace("create enemy");
                                  theEnemy = new Enemy((Math.random() * 5) + 1);
                                  addChild(theEnemy);
                                  // Place in a random spot on stage
                                  theEnemy.x = (Math.random() * stage.stageWidth);
                                  theEnemy.y = 0;
                                  // assign the "name" property
                                  theEnemy.name = "enemy";
                                  //Update this variable everytime a child is added to the stage
                                  childrenOnStage = this.numChildren;
                        } //end function createEnemy
                        //the main loop for the game!!!!!
                        private function mainGameLoop(event:Event):void
                                  checkForGameReset();
                                  removeOrCreateNewEnemies();
                                  processCollisions();
                                  scrollStage();
                        } //end function mainGameLoop
                        private function checkForGameReset():void
                                  //define conditions
                                  if (gameTimer.timerHasStopped == true)
                                            resetBoard();
                                  else if (thePlayer.y > stage.stageHeight)
                                            resetBoard();
                                  else if (theGameStage.theFish.hitTestPoint(thePlayer.x, thePlayer.y, true) && theStageNeedsToScroll == false)
                                            resetBoard();
                                  else if (health.width <= 2)
                                            resetBoard();
                        } //end function CheckForGameReset
                        private function resetBoard():void
                                  health.width = 300;
                                  thePlayer.x = stage.stageWidth * 0.5;
                                  theGameStage.x = stage.stageWidth * 0.5;
                                  thePlayer.y = 0;
                                  theGameStage.y = 0;
                                  enemyKills = 0;
                                  gameTimer.resetTimer();
                        } //end function
                        private function processCollisions():void
                                  //  set up main loop to look through all collidable objects on stage
                                  for (var c:int; c < childrenOnStage; c++)
                                            //trace ("Children on stage c= " + c +
                                            // test for a player or enemy child on stage
                                            if (getChildAt(c).name == "player" || getChildAt(c).name == "enemy")
                                                      // see if ovject is touching the game stage
                                                      if (theGameStage.hitTestPoint(getChildAt(c).x, getChildAt(c).y, true))
                                                                // while it is still touching inch it up just until it stops
                                                                // while it is still touching inch it up just until it stops
                                                                while (theGameStage.hitTestPoint(getChildAt(c).x, getChildAt(c).y, true) == true)
                                                                          // called from CollisionObject Class, so force the connectioin
                                                                          CollisionObject(getChildAt(c)).incrementUpward();
                                                                          if (theGameStage.hitTestPoint(getChildAt(c).x, getChildAt(c).y, true) == false)
                                                                                    CollisionObject(getChildAt(c)).keepOnBoundary(); //make it stick
                                                                          } // end if
                                                                } //end while
                                                      } //end if touching
                                            } //end if player or enemy
                                            ///////////////////////Collision with Enemies///////////////
                                            if (getChildAt(c).name == "enemy")
                                                      if (getChildAt(c).hitTestPoint(thePlayer.x, thePlayer.y, true))
                                                                if (thePlayer.isAttacking == false)
                                                                          // we are being attacked (and not defending)
                                                                          health.width = health.width - 2;
                                                                          Enemy(getChildAt(c)).makeEnemyAttack();
                                                                else
                                                                          // we are attacking that enemy
                                                                          childToRemove = c;
                                                                          Enemy(getChildAt(c)).makeEnemyDie();
                                                                          finishOffEnemy.start();
                                                                          finishOffEnemy.addEventListener(TimerEvent.TIMER_COMPLETE, finishOffEnemyComplete);
                                                                } //end else
                                                      else if (Enemy(getChildAt(c)).enemyIsAttacking == true)
                                                                // if there isn't a collision between player and enemy,BUT the enemy is attacking
                                                                Enemy(getChildAt(c)).makeEnemyStopAttacking();
                                                      } //end else
                                  } //end for loop
                                  /////////////// token collision detection ///////////////
                                  numChildrenInGameStage = theGameStage.numChildren;
                                  for (var d:int = 0; d < numChildrenInGameStage; d++)
                                            if (theGameStage.getChildAt(d).hasOwnProperty("isToken") && theGameStage.getChildAt(d).visable == true)
                                                      if (thePlayer.hitTestObject(theGameStage.getChildAt(d)))
                                                                trace("hit token");
                                                                //play sound
                                                                token.play();
                                                                theGameStage.removeChildAt(d);
                                                                numChildrenInGameStage = theGameStage.numChildren;
                                                      } // end if
                                            } // end if
                                  } //end for
                        } // end function processCollisions
                        private function scrollStage():void
                                  if (thePlayer.x != lastX)
                                            theStageNeedsToScroll = true;
                                  else
                                            theStageNeedsToScroll = false;
                                  } // end if
                                  if (theStageNeedsToScroll == true)
                                            for (var b:int = 0; b < childrenOnStage; b++)
                                                      if (getChildAt(b).name == "enemy")
                                                                getChildAt(b).x += (stage.stageWidth * 0.5) - thePlayer.x;
                                                      } // end if
                                            } //end for
                                            theGameStage.x += (stage.stageWidth * 0.5) - thePlayer.x;
                                  } //end if
                                  thePlayer.x = stage.stageWidth * 0.5;
                                  lastX = thePlayer.x;
                        } //  end function scrollStage
                        // figure out logic
                        //  end function scrollStage
                        private function removeOrCreateNewEnemies():void
                                  currentNumberOfEnemiesOnstage = 0;
                                  for (var c:int = 0; c < childrenOnStage; c++)
                                            if (getChildAt(c).name == "enemy")
                                                      currentNumberOfEnemiesOnstage++;
                                            } // end if
                                  } // end for
                                  if (currentNumberOfEnemiesOnstage < maxEnemies)
                                            trace("not enough enemies onstage, make more");
                                            createEnemy();
                                  } //end if
                                  makeNewEnemyTimer.start();
                        } //end function
                        public function finishOffEnemyComplete(event:TimerEvent):void
                                  enemyKills++;
                                  killScoreBox.text = String(enemyKills) + " KILLS ";
                                  removeChildAt(childToRemove);
                                  childrenOnStage = this.numChildren;
                        } // end functioin

  • New to swing: Error while using getText() in ActionPerformed

    Hi there!
    I'm fairly new to java and swing, and this problem I'm having drives me nuts!
    // Imports //
    public class Generator extends JFrame {
         // Graphical components
         private JTextField nr1;
         private JTextField nr2;
         // Constructor
         public Generator() {
              // Call superclass
                    // Init variables
              JTextField nr1 = new JTextField(2);
              JTextField nr2 = new JTextField(2);
              nr1.setVisible(true);
              nr2.setVisible(true);
              // Layout stuff..
              // Create listner-object for event handeling
              Lyssnare minLyssnare = new Lyssnare();
              playerName.addActionListener(minLyssnare);
              clear.addActionListener(minLyssnare);
              shuffle.addActionListener(minLyssnare);
              // closing of window
              // Pack
              // Visible
         // Action Listener
         class Lyssnare implements ActionListener {
              public void actionPerformed(ActionEvent ae) {
                   // Some other actions...
                            // Shuffle
                   else if(ae.getSource() == shuffle) {
                        String teams = nr1.getText();
                        String players = nr2.getText();
                        Shuffle.shuffle(name);
                        playerArea.setVisible(false);
                        int teamsint = Integer.parseInt(teams);
                        int playersint = Integer.parseInt(players);
                        error1.setVisible(true);
         }The error I get is after "else if(ae.getSource() == shuffle) {"
    something on the next line (and the line after that) is the one who gives the error...
    I Get this (during running, compile works fine..):
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    AFAIK that means I'm reffering to something that is null... but how can that be when all the textfields are initialised? do I have to make does fields global in some way?
    Grateful for any help!

    Your inner class does not have access to nr1 and nr2 because they are not final variables.
    Instead of creating an inner class Lyssnare, you can have your Generator class implement the ActionListener and add the actionPerformed method inside Generator class as follows:
    public class Generator extends JFrame implements ActionListener {
         // Graphical components
         private JTextField nr1;
         private JTextField nr2;
         // Constructor
         public Generator() {
              // Call superclass
                    // Init variables
              JTextField nr1 = new JTextField(2);
              JTextField nr2 = new JTextField(2);
              nr1.setVisible(true);
              nr2.setVisible(true);
              // Layout stuff..
              // Create listner-object for event handeling
              //Lyssnare minLyssnare = new Lyssnare();
              playerName.addActionListener(this);
              clear.addActionListener(this);
              shuffle.addActionListener(this);
              // closing of window
              // Pack
              // Visible
    public void actionPerformed(ActionEvent ae) {
                   // Some other actions...
                            // Shuffle
                   else if(ae.getSource() == shuffle) {
                        String teams = nr1.getText();
                        String players = nr2.getText();
                        Shuffle.shuffle(name);
                        playerArea.setVisible(false);
                        int teamsint = Integer.parseInt(teams);
                        int playersint = Integer.parseInt(players);
                        error1.setVisible(true);
              }

  • Error in Routine while migrating standard Transformations from 3.5 to BI7.0

    Hi Experts,
    We are migrating the Standard trasformations, from old version to new BI 7.0 version. when trying to create the new transformation we are getting a routine error, and unable activate the transformation.
    Trasformation Name: TRCS ZCO_OM_NAE_1 -> CUBE 0PS_C08
    Routine Desc.: Conversion of Actual / Commitment / Plan to Resid.Order Plan
    Source Fields: 0CURRENCY & 0FISCPER
    Target Fields: 0AMOUNT & 0CURRENCY
    Error Message: E:Field "COMM_STRUCTURE" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement. "DATA" statement.
    Routine:
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        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.
      Rule specific types
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ end of global - insert your declaration only before this line   -
    ENDCLASS.                    "routine DEFINITION
    $$ begin of 2nd part global - insert your code only below this line  *
    $$ end of rule type
        TYPES:
          BEGIN OF tys_TG_1_full,
         InfoObject: 0CHNGID Change Run ID.
            CHNGID           TYPE /BI0/OICHNGID,
         InfoObject: 0RECORDTP Record type.
            RECORDTP           TYPE /BI0/OIRECORDTP,
         InfoObject: 0REQUID Request ID.
            REQUID           TYPE /BI0/OIREQUID,
         InfoObject: 0FISCVARNT Fiscal year variant.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0FISCYEAR Fiscal year.
            FISCYEAR           TYPE /BI0/OIFISCYEAR,
         InfoObject: 0CURRENCY Currency key.
            CURRENCY           TYPE /BI0/OICURRENCY,
         InfoObject: 0CO_AREA Controlling area.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0CURTYPE Currency Type.
            CURTYPE           TYPE /BI0/OICURTYPE,
         InfoObject: 0METYPE Key Figure Type.
            METYPE           TYPE /BI0/OIMETYPE,
         InfoObject: 0VALUATION Valuation View.
            VALUATION           TYPE /BI0/OIVALUATION,
         InfoObject: 0VERSION Version.
            VERSION           TYPE /BI0/OIVERSION,
         InfoObject: 0VTYPE Value Type for Reporting.
            VTYPE           TYPE /BI0/OIVTYPE,
         InfoObject: 0WBS_ELEMT Work Breakdown Structure Element (WBS Elem
    *ent).
            WBS_ELEMT           TYPE /BI0/OIWBS_ELEMT,
         InfoObject: 0COORDER Order Number.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0PROJECT Project Definition.
            PROJECT           TYPE /BI0/OIPROJECT,
         InfoObject: 0ACTIVITY Network Activity.
            ACTIVITY           TYPE /BI0/OIACTIVITY,
         InfoObject: 0NETWORK Network.
            NETWORK           TYPE /BI0/OINETWORK,
         InfoObject: 0PROFIT_CTR Profit Center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0COMP_CODE Company code.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BUS_AREA Business area.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0ACTY_ELEMT Network Activity Element.
            ACTY_ELEMT           TYPE /BI0/OIACTY_ELEMT,
         InfoObject: 0STATUSSYS0 System Status.
            STATUSSYS0           TYPE /BI0/OISTATUSSYS0,
         InfoObject: 0PS_OBJ PS Object Type.
            PS_OBJ           TYPE /BI0/OIPS_OBJ,
         InfoObject: 0VTSTAT Statistics indicator for value type.
            VTSTAT           TYPE /BI0/OIVTSTAT,
         InfoObject: 0AMOUNT Amount.
            AMOUNT           TYPE /BI0/OIAMOUNT,
         Field: RECORD Data record number.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1_full.
    Additional declaration for update rule interface
      DATA:
        MONITOR       type standard table of rsmonitor  WITH HEADER LINE,
        MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,
        RECORD_NO     LIKE SY-TABIX,
        RECORD_ALL    LIKE SY-TABIX,
        SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.
    global definitions from update rules
    TABLES: ...
    DATA:   ...
    FORM routine_0001
      CHANGING
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    not supported
         icube_values = g.
         CLEAR result_table. REFRESH result_table.
      type-pools: PSBW1.
      data: l_psbw1_type_s_int1 type psbw1_type_s_int1.
      data: lt_spread_values type PSBW1_TYPE_T_ACT_SPREAD.
      field-symbols: .
    füllen Rückgabetabelle !
        move-corresponding  to RESULT_TABLE.
        check not RESULT_TABLE-amount is initial.
        append RESULT_TABLE.
      endloop.
    if the returncode is not equal zero, the result will not be updated
      RETURNCODE = 0.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0001
    $$ end of 2nd part global - insert your code only before this line   *
          CLASS routine IMPLEMENTATION
    CLASS lcl_transform IMPLEMENTATION.
    *$*$ begin of routine - insert your code only below this line        *-*
      Data:
        l_subrc          type sy-tabix,
        l_abort          type sy-tabix,
        ls_monitor       TYPE rsmonitor,
        ls_monitor_recno TYPE rsmonitors.
      REFRESH:
        MONITOR.
    Runtime attributs
        SOURCE_SYSTEM  = p_r_request->get_logsys( ).
    Migrated update rule call
      Perform routine_0001
      CHANGING
        l_subrc
        l_abort.
    *-- Convert Messages in Transformation format
        LOOP AT MONITOR INTO ls_monitor.
          move-CORRESPONDING ls_monitor to MONITOR_REC.
          append monitor_rec to MONITOR.
        ENDLOOP.
        IF l_subrc <> 0.
          RAISE EXCEPTION TYPE cx_rsrout_skip_val.
        ENDIF.
        IF l_abort <> 0.
          RAISE EXCEPTION TYPE CX_RSROUT_ABORT.
        ENDIF.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_0AMOUNT
          Method invert_0AMOUNT
          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 invert_0AMOUNT.
    $$ 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.                    "invert_0AMOUNT
    ENDCLASS.                    "routine IMPLEMENTATION
    Regards
    Krishanu.

    Hi,
    Go through the belowl link it may help you a lot
    /message/7377688#7377688 [original link is broken]
    Regards,
    Marasa.

  • Error in transporting the Transformation to Quality system

    Hi All,
    I am trying to transport the transformation which has field level routine as well as start and end routine.
    I have basically ehanced the standard routine and it works perfectly fine in dev server . I have even loaded the data and generated reports on this cube.
    Now i am trying to transport it to Quality system. It throws up some "syntax error in routine" error. Very strange.
    All my routine in Dev is working but during transport ther is some issue.
    i saw some post on same but they are suggesting to regenerate a new transformation. For me this will be a nightmare as there are so many routnies at field level and as end routine.
    Kindly suggest how can i rectify this error.
    Note:- I had generated this transformation via old update rules with Migration function.
    Thanks & Regards,
    Anup

    Hi Anindya,
    Below is my source code for one field level routine in transformation.
    FORM routine_0080
      TABLES
       p_monitor         STRUCTURE rsmonitor
      USING
        COMM_STRUCTURE TYPE _ty_s_sc_1__rule_52
      CHANGING
        RESULT         TYPE _ty_s_tg_1_full-srvclen
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    * init variables
    * fill the internal table "MONITOR", to make monitor entries
      DATA: ultimo LIKE sy-datum.
      IF g_record_no <> RECORD_NO.
        g_record_no = RECORD_NO.
        CLEAR: employee_wa, person_wa.
        CLEAR: employee_md, person_md.
      ENDIF.
      PERFORM read_md_employee
              USING    COMM_STRUCTURE-employee
                       COMM_STRUCTURE-calday
                       RECORD_NO
                       RECORD_ALL
                       SOURCE_SYSTEM
              CHANGING employee_wa
                       RETURNCODE.
      employee_md = employee_wa.
      PERFORM calculate_ultimo
              USING COMM_STRUCTURE-calday+0(6)
                     RECORD_NO
                     RECORD_ALL
                     SOURCE_SYSTEM
              CHANGING ultimo
                       RETURNCODE.
      IF NOT employee_md-entrydate IS INITIAL.
        RESULT = ultimo+0(4) - employee_md-entrydate+0(4).
        IF ultimo+4(4) LT employee_md-entrydate+4(4).
          RESULT = RESULT - 1.
        ENDIF.
      ENDIF.
    * result value of the routine
    * if the returncode is not equal zero, the result will not be updated
      RETURNCODE = 0.
    * if abort is not equal zero, the update process will be canceled
      ABORT = 0.
      p_monitor[] = MONITOR[].
      CLEAR:
        MONITOR[].
    CLASS lcl_transform IMPLEMENTATION.
      METHOD compute_0AGE_RANGE.
    *   IMPORTING
    *     request     type rsrequest
    *     datapackid  type rsdatapid
    *     SOURCE_FIELDS-CALDAY TYPE /BI0/OICALDAY
    *     SOURCE_FIELDS-EMPLOYEE TYPE /BI0/OIEMPLOYEE
    *    EXPORTING
    *      RESULT type _ty_s_TG_1-AGE_RANGE
        DATA:
          MONITOR_REC    TYPE rsmonitor.
    *$*$ begin of routine - insert your code only below this line        *-*
      Data:
        COMM_STRUCTURE   type _ty_s_SC_1__RULE_20,
        l_subrc          type sy-tabix,
        l_abort          type sy-tabix,
        ls_monitor       TYPE rsmonitor,
        ls_monitor_recno TYPE rsmonitors.
      data:
        l_monitor        type standard table of rsmonitor.
      REFRESH:
        MONITOR.
    * Runtime attributs
        SOURCE_SYSTEM  = p_r_request->get_logsys( ).
        MOVE-CORRESPONDING SOURCE_FIELDS to COMM_STRUCTURE.
    *  Migrated update rule call
      Perform routine_0070
      TABLES
        l_monitor
      USING
        COMM_STRUCTURE
      CHANGING
        RESULT
        l_subrc
        l_abort.
    *-- Convert Messages in Transformation format
        LOOP AT l_monitor INTO ls_monitor.
          move-CORRESPONDING ls_monitor to MONITOR_REC.
          append monitor_rec to MONITOR.
        ENDLOOP.
        IF l_subrc <> 0.
          RAISE EXCEPTION TYPE CX_RSROUT_SKIP_RECORD.
        ENDIF.
        IF l_abort <> 0.
          RAISE EXCEPTION TYPE CX_RSROUT_ABORT.
        ENDIF.
    I am not able to change the code which are marked with " * ". Where can i change the code here?
    Regards,
    Anup

  • We have problems in abap rules when migrate the infosource

    We are having problems to do the migration of some objects of version
    3.x to version 7.
    There are some objects standard like Update Rule, InfoSource and
    Datasource that when we migrated the rules ABAPS contained in the
    Update Rule and Infosource are not migrate properly.
    We are using the method of automatic migration that when clicking the
    right button on the object, choosing the option additional functions,
    create transformation and input the name of the new infosource. The
    same way is necessary to migrate the transfer structure. After this we
    migrated the Datasource and we tried to activate all objects, but
    several erros happened in the abap rules.
    Example: In the new Transformation based n Upadate Rule 0PS_C08 in the
    key figure 0AMOUNT, the routine show me the follow error:
    “E:Field "COMM_STRUCTURE" is unknown. It is neither in one of the
    specified tables nor defined by a "DATA" statement. "DATA" statement
    "DATA" statement.”
    This is one example, but this conversion happened for several
    transformations with abap rules.
    Which is the recommendation for the standard objects in this case and
    the others cases ? For objects Z* there some recommendation too?
    Old Routine in Upadte Rule:
    "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   -
    FORM compute_data_field
      TABLES   MONITOR STRUCTURE RSMONITOR "user defined monitoring
               RESULT_TABLE STRUCTURE /BI0/V0PS_C08T
      USING    COMM_STRUCTURE LIKE /BIC/CS0CO_OM_NAE_1
               RECORD_NO LIKE SY-TABIX
               RECORD_ALL LIKE SY-TABIX
               SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
               ICUBE_VALUES LIKE /BI0/V0PS_C08T
      CHANGING RETURNCODE LIKE SY-SUBRC
               ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
    $$ begin of routine - insert your code only below this line        -
      type-pools: PSBW1.
      data: l_psbw1_type_s_int1 type psbw1_type_s_int1.
      data: lt_spread_values type PSBW1_TYPE_T_ACT_SPREAD.
      field-symbols: .
    füllen Rückgabetabelle !
        move-corresponding  to RESULT_TABLE.
        check not RESULT_TABLE-amount is initial.
        append RESULT_TABLE.
      endloop.
    if the returncode is not equal zero, the result will not be updated
      RETURNCODE = 0.
    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.
    New Routine - Based on Update - DTP:
    "PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        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.
      Rule specific types
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ end of global - insert your declaration only before this line   -
    ENDCLASS.                    "routine DEFINITION
    $$ begin of 2nd part global - insert your code only below this line  *
    $$ end of rule type
        TYPES:
          BEGIN OF tys_TG_1_full,
         InfoObject: 0CHNGID ID de execução de modificação.
            CHNGID           TYPE /BI0/OICHNGID,
         InfoObject: 0RECORDTP Categoria de registro.
            RECORDTP           TYPE /BI0/OIRECORDTP,
         InfoObject: 0REQUID ID requisição.
            REQUID           TYPE /BI0/OIREQUID,
         InfoObject: 0FISCVARNT Variante de exercício.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0FISCYEAR Exercício.
            FISCYEAR           TYPE /BI0/OIFISCYEAR,
         InfoObject: 0CURRENCY Código da moeda.
            CURRENCY           TYPE /BI0/OICURRENCY,
         InfoObject: 0CO_AREA Área de contabilidade de custos.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0CURTYPE Tipo de moeda.
            CURTYPE           TYPE /BI0/OICURTYPE,
         InfoObject: 0METYPE Tipo de índice.
            METYPE           TYPE /BI0/OIMETYPE,
         InfoObject: 0VALUATION Perspectiva de avaliação.
            VALUATION           TYPE /BI0/OIVALUATION,
         InfoObject: 0VERSION Versão.
            VERSION           TYPE /BI0/OIVERSION,
         InfoObject: 0VTYPE Ctg.valor para reporting.
            VTYPE           TYPE /BI0/OIVTYPE,
         InfoObject: 0WBS_ELEMT Elemento do plano da estrutura do projeto
    *(elemento PEP).
            WBS_ELEMT           TYPE /BI0/OIWBS_ELEMT,
         InfoObject: 0COORDER Nº ordem.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0PROJECT Definição do projeto.
            PROJECT           TYPE /BI0/OIPROJECT,
         InfoObject: 0ACTIVITY Tarefa do diagrama de rede.
            ACTIVITY           TYPE /BI0/OIACTIVITY,
         InfoObject: 0NETWORK Diagrama de rede.
            NETWORK           TYPE /BI0/OINETWORK,
         InfoObject: 0PROFIT_CTR Centro de lucro.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0COMP_CODE Empresa.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0BUS_AREA Divisão.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0ACTY_ELEMT Elemento operação diagram.rede.
            ACTY_ELEMT           TYPE /BI0/OIACTY_ELEMT,
         InfoObject: 0STATUSSYS0 Status do sistema.
            STATUSSYS0           TYPE /BI0/OISTATUSSYS0,
         InfoObject: 0PS_OBJ Tipo de objeto do PS.
            PS_OBJ           TYPE /BI0/OIPS_OBJ,
         InfoObject: 0VTSTAT Código estatístico para ctg.valor.
            VTSTAT           TYPE /BI0/OIVTSTAT,
         InfoObject: 0AMOUNT Montante.
            AMOUNT           TYPE /BI0/OIAMOUNT,
         Field: RECORD Nº registro de dados.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1_full.
    Additional declaration for update rule interface
      DATA:
        MONITOR       type standard table of rsmonitor  WITH HEADER LINE,
        MONITOR_RECNO type standard table of rsmonitors WITH HEADER LINE,
        RECORD_NO     LIKE SY-TABIX,
        RECORD_ALL    LIKE SY-TABIX,
        SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS.
    global definitions from update rules
    TABLES: ...
    DATA:   ...
    FORM routine_0001
      CHANGING
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    init variables
    not supported
         icube_values = g.
         CLEAR result_table. REFRESH result_table.
      type-pools: PSBW1.
      data: l_psbw1_type_s_int1 type psbw1_type_s_int1.
      data: lt_spread_values type PSBW1_TYPE_T_ACT_SPREAD.
      field-symbols: .
    füllen Rückgabetabelle !
        move-corresponding  to RESULT_TABLE.
        check not RESULT_TABLE-amount is initial.
        append RESULT_TABLE.
      endloop.
    if the returncode is not equal zero, the result will not be updated
      RETURNCODE = 0.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    ENDFORM.                    "routine_0001
    $$ end of 2nd part global - insert your code only before this line   *
          CLASS routine IMPLEMENTATION
    CLASS lcl_transform IMPLEMENTATION.
    *$*$ begin of routine - insert your code only below this line        *-*
      Data:
        l_subrc          type sy-tabix,
        l_abort          type sy-tabix,
        ls_monitor       TYPE rsmonitor,
        ls_monitor_recno TYPE rsmonitors.
      REFRESH:
        MONITOR.
    Runtime attributs
        SOURCE_SYSTEM  = p_r_request->get_logsys( ).
    Migrated update rule call
      Perform routine_0001
      CHANGING
        l_subrc
        l_abort.
    *-- Convert Messages in Transformation format
        LOOP AT MONITOR INTO ls_monitor.
          move-CORRESPONDING ls_monitor to MONITOR_REC.
          append monitor_rec to MONITOR.
        ENDLOOP.
        IF l_subrc <> 0.
          RAISE EXCEPTION TYPE cx_rsrout_skip_val.
        ENDIF.
        IF l_abort <> 0.
          RAISE EXCEPTION TYPE CX_RSROUT_ABORT.
        ENDIF.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_0AMOUNT
          Method invert_0AMOUNT
          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 invert_0AMOUNT.
    $$ 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.                    "invert_0AMOUNT
    Please, HELP!!!!
    Thanks,
    Mateus.

    Hi,
    I checked the code and as I saw you're using return tables. This feature is not yet implemented in transformations! You have to find a workaoround for a code in start- or endroutines that appends the data.
    In general you have to replace comm_structure and icube_Values by new class attributes/variables.
    On which SP are you currently?
    Regards,
    JUergen

Maybe you are looking for

  • Can't upgrade or uninstall iTunes due to: The folder My Music contains an invalid character!

    Hi,      Something went wrong when i tried to upgrade to 10.5 and now I can't use iTunes. It says that the folder My Music contains an invalid character and although I've tried uninstalling all apple software and re-installing I can't uninstall/repai

  • Safe temperature for G5 2.7 dual

    Hi, I'm looking at a G5 2.7 dual tomorrow and need to know what is a safe temperature range, I will check it with istat pro, if there is there a better way of checking can someone let me know?

  • How to add Abab stack to exiting Java stack

    Hi All, I am having a netweaver Java Stack installed on my system. I would like to install XI - in order to install Xi ,I guess the system should be ABAP + Java. But since I am having java based engine, I would like to add ABAP stack to it. So, my qu

  • Difference between user exit/Function exit / Customer exit and BADI

    Hi Guys, I am confused with the types of exits-user exit/Function exit / Customer exit and BADI. Can you tell me the difference between the different exits/Enhancements? Classify the following: what is the one which is shown in SMOD under enhancement

  • Content Aware with Magic Wand¿

    I used to fill in gaps of missing Panos with content aware in CS5 using the magic wand and fill - content aware. In CS6 it fills it in with the foreground color. The only way I can get the content aware to work is if I make the selection with the las