BI : ABAP Rule in transformation

Hi Experts ,
I have problem in the ABAP rule. there is an 3x update rule which contains the routine.
In the transformation when i create and check the routine  , I am getting the below error :
"E:The field "SOURCE_FIELDS-PEINH" cannot be changed. -". Kindly advise.
thanks & regards,
M.S
Edited by: M.S on Oct 19, 2009 11:52 AM
Edited by: M.S on Oct 19, 2009 11:52 AM

Hi Experts ,
I am doing transfromation from 3.x update rule which contain the update routine as shown below. Can you please advise me what could be the syntax for this in BI 7.0 transformation. While doing it I am getting lots of errors.  Kindly advise.
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line  -
INCLUDE rs_bct_mm_update_rules.
data g_price_unit type ref to data.
field-symbols <price_unit> type any.
constants c_price_unit type string value
  '/BIC/CS2LIS_02_ITM-price_unit'.
$$ end of global - insert your declaration only before this line   -
FORM compute_data_field
  TABLES   MONITOR STRUCTURE RSMONITOR "user defined monitoring
  USING    COMM_STRUCTURE LIKE /BIC/CS2LIS_02_ITM
           RECORD_NO LIKE SY-TABIX
           RECORD_ALL LIKE SY-TABIX
           SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
  CHANGING RESULT LIKE /BI0/APUR_O0100-NETPRICE
           RETURNCODE LIKE SY-SUBRC "Do not use!
           ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line        -
fill the internal table "MONITOR", to make monitor entries
see OSS note 592090
result value of the routine
1. transfer of net_po_val from order currency into local currency
  PERFORM LOC_CURR_CONVERT
    USING   COMM_STRUCTURE-NET_PO_VAL
            COMM_STRUCTURE-ENTRY_DATE
            COMM_STRUCTURE-ORDER_CURR
            COMM_STRUCTURE-LOC_CURRCY
            COMM_STRUCTURE-EXCHG_RATE
   CHANGING RESULT.
2. consideration of price unit, OSS note 731769
  create data g_price_unit type (c_price_unit).
  assign g_price_unit->* to <price_unit>.
  <price_unit> = COMM_STRUCTURE-price_unit *
                 COMM_STRUCTURE-numerator / COMM_STRUCTURE-denomintr.
3. transfer of order_quan from order unit into base unit of measure
  RESULT = RESULT /
    ( COMM_STRUCTURE-order_quan * COMM_STRUCTURE-numerator /
                                  COMM_STRUCTURE-denomintr )
<price_unit>.
This is necessary because we need the net price in
local currency / base unit of measure
if the returncode is not equal zero, the result will not be updated
if abort is not equal zero, the update process will be canceled
see OSS note 571974
  ABORT = 0.
$$ end of routine - insert your code only before this line         -
ENDFORM.

Similar Messages

  • Convert ABAP code in start routine/update rule to transform. start routine

    Dear BW ABAPers,
    I have created a custom purchasing info cube (YCP_PURC1) based on 0CP_PURC1 standard cube. I would like to convert this new data flow to BI7 (from 3.x), and convert the standard update rule to transformation. I would need to rewrite the below start routine from the standard update rule to a start routine ABAP code in the newly created  transformation / start routine. My ABAP knowledge is limited. Will you please help?
    *this is the start routine from the update rule. As a side note, the data source is 2LIS_02_SCL.
    LOOP AT SOURCE_PACKAGE.
        IF (     SOURCE_PACKAGE-cppvlc  EQ 0
             AND SOURCE_PACKAGE-cppvoc  EQ 0
             AND SOURCE_PACKAGE-cpquaou EQ 0 ).
          DELETE SOURCE_PACKAGE.
          CONTINUE.
        ENDIF.
    no_scl is initial ( e.g. for good receipts, billing)
    value has to be set depending on storno
        IF SOURCE_PACKAGE-no_scl IS INITIAL.
          IF SOURCE_PACKAGE-storno = 'X'.
            SOURCE_PACKAGE-no_scl = -1.
          ELSE.
            SOURCE_PACKAGE-no_scl = 1.
          ENDIF.
          MODIFY SOURCE_PACKAGE.
        ENDIF.
      ENDLOOP.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    Many thanks and look forward to your kind feedback.
    Kind regards,
    Csaba

    Dear All, Durgesh,
    thanks to you all for your valuable input. Mainly the ABAP part was more interesting for me.
    Durgesh, thanks for your input, it was useful. I just had to change the info objects to data source fields and add the lines before the loop:
    DATA: I_PACKAGE TYPE TYT_SC_1.
        FIELD-SYMBOLS <i_package> TYPE tys_sc_1.
        I_PACKAGE[] = SOURCE_PACKAGE[].
        LOOP AT SOURCE_PACKAGE assigning <i_package>.
          IF ( <i_package>-BWGEO EQ 0
          AND <i_package>-BWGEOO EQ 0
          AND <i_package>-BWMNG EQ 0 ).
            DELETE SOURCE_PACKAGE index sy-tabix.
            CONTINUE.
          ENDIF.
    no_scl is initial ( e.g. for good receipts, billing)
    value has to be set depending on storno
          IF <i_package>-NOSCL IS INITIAL.
            IF <i_package>-ROCANCEL = 'X'.
              <i_package>-NOSCL = -1.
            ELSE.
              <i_package>-NOSCL = 1.
            ENDIF.
          ENDIF.
        ENDLOOP.
    Points have been assigned accordingly.
    Thanks,
    Csaba

  • 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

  • In which cases can the ABAP statement CALL TRANSFORMATION be used?

    Hi friends,
    here is my questions with options below.
    In which cases can the ABAP statement CALL TRANSFORMATION be used? (T/F)
    -To transform as iXML document object into and ABAP data structure using
    XSLT.
    - To transform an XML document contained in a string into another XML
    document
    using and XSLT program.
    - To get canonic XML display of an ABAP data structure.
    - To transform an XML document contained in an xstring into another XLM
    document using an ST program (Simple Transformation).
    - To transform and ABAP data structure into an SML document using ST.
    Kindly give me the expalnation to each statement with either True or False.

    CALL TRANSFORMATION is a new language element in ABAP that we can use to <b>call up the transformation</b>.
    The type of transformation:
    XML to XML
    XML to ABAP
    ABAP to XML or
    ABAP to ABAP is already determined by the two additions SOURCE and RESULT in CALL TRANSFORMATION.
    Check this link for more details.
    http://help.sap.com/saphelp_nw04/helpdata/en/a8/824c3c66177414e10000000a114084/content.htm
    Regards,
    Maha

  • Convert Date to Week - ABAP Routine in transformation

    Hi all,
    I am trying to convert a date to a week using ABAP in a transformation.
    The date is coming from an external database and has the format YYYYMMDD.  I want to convert this into the standard 0CALWEEK format.
    I thought that converting the date to the SAP internal format, and then running DATE_GET_WEEK on it, would work.  Firstly I am running the FM 'CONVERSION_EXIT_PDATE_OUTPUT' to get the date into the DDMMYYYY format then running DATE_GET_WEEK on the result of the first FM.
    This works up until the end of the first step; the internal date format is returned.  However, the code fails when it hits the 'DATE_GET_WEEK' FM.
    I would be really grateful if someone could tell me where I am going wrong.  Thanks, Mischa
    My code so far is:
    DATA:
    WEEK(6) TYPE C,
    CS_DT(8) TYPE C,
    TEMP_DT TYPE D,
    RESULT1 TYPE D.
    CLEAR RESULT.
    CLEAR RESULT1.
        CS_DT = SOURCE_FIELDS-CASE_DT.
    CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT'
      EXPORTING
        INPUT         = CS_DT
    IMPORTING
       OUTPUT        = TEMP_DT
    MOVE TEMP_DT TO RESULT1.
    CALL FUNCTION 'DATE_GET_WEEK'
      EXPORTING
        DATE               = RESULT1
    IMPORTING
       WEEK               = WEEK
    EXCEPTIONS
      DATE_INVALID       = 1
      OTHERS             = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    RESULT = WEEK.

    Hi all,
    Thanks for your replies, but the automatic conversion doesn't work.  I assume this is because the source field is a CHAR field with 8 characters, rather than a Date field as recognised by SAP.  Literally the field contains 8 characters YYYYMMDD for example 20090601. 
    If I try to assign directly, I get the error
    "Automatic time conversion is not possible for source field CASE_DT
    Cannot establish automatic time conversion to 0CALWEEK for source field CASE_DT. The source is a DataSource and consists of fields, not InfoObjects. Time conversion can only be performed automatically for InfoObjects."
    This is why I assumed I needed some ABAP code.  I  have tried assigning the time char 0CALDAY to my source field CASE_DT in the transformation, and this is not accepted either - I get the message
    "The properties of the InfoObject selected, 0CALDAY, do not match the properties of the available source field."
    Again, grateful for any help.
    Mischa

  • Why not allow Business Rule Design Transformer to overwrite existing BRDDs

    Hi,
    It can be quite annoying during development to continually having to remove the BRDD Trigger and PL/SQL Definition when running the BR Design Transformer reveals missing information in the BR Analysis definition. It seems that it would be practical to have at least the option to have the Business Rule Design Transformer overwrite an existing Business Rule Design Definition.
    You could think of an additional parameter in this utilily labeled "Overwrite existing BRDD?" with allowable values Y(es) and N(o) with No as default (so that the default functionality is the same as before).
    Below you find the code that can be added to the HSU_BRTR package to realize such a functional improvement. Maybe you can consider it for a next release...?!
    best regards,
    Lucas Jellema
    AMIS Services BV
    code to add to HSU_BRTR to provide a parameter that allows the user to specify whether or not the HSU_BRTR is allowed to overwrite an existing BRDD:
    in the revision history:
    09-jan-2003 Lucas Jellema
    6.5.2.3AMIS1.1 Added new parameter and supporting code that allows user to indicate
    whether existing Business Rule Design Definitions may be/should be overwritten
    at the end of procedure install
    hsu_install.add_parameter
    ( PACKAGE_NAME -- package name
    , 40 -- sequence
    , 'Overwrite existing BRDDs?' -- prompt
    , 'N' -- default value actual
    , 'No' -- default value displayed
    , 'Y' -- mandatory
    , 'N' -- allow multi-select
    , 'N' -- include shared elements
    , '' -- element type short name
    , '' -- sql expression actual
    , '' -- sql expression displayed
    , null -- where clause
    , null -- synchronize with
    , null -- foreign key column
    , -- help text
    'Choose whether you want this utility to overwrite existing Business Rule Design Definitions.'
    hsu_install.add_allowable_value
    ( PACKAGE_NAME -- package name
    , 40 -- parameter
    , 1 -- sequence
    , 'Y' -- actual value
    , 'Yes' -- displayed value
    hsu_install.add_allowable_value
    ( PACKAGE_NAME -- package name
    , 40 -- parameter
    , 2 -- sequence
    , 'N' -- actual value
    , 'No' -- displayed value
    --------6.5.2.3AMIS1.1
    Just before procedure transform_stage2
    procedure delete_brdds
    ( p_tbl_id in ci_table_definitions.id%type
    , p_br_name in varchar2
    -- Purpose Delete existing Business Rule Design Definition
    -- Usage from run procedure
    -- Remarks Find PL/SQl Module Definition based on Business Rule Label
    is
    cursor c_brdd
    ( b_tbl_id in ci_table_definitions.id%type
    , b_br_name in varchar2
    is
    select trg.id trg_id
    , trg.name name
    , plm.id plm_id
    from ci_database_triggers trg
    , ci_plsql_modules plm
    where trg.table_definition_reference = b_tbl_id
    and trg.plsql_module_reference = plm.id
    and plm.name = b_br_name
    begin
    -- loop over journalling busrules of this application
    <<brdd>>
    for r_brdd in c_brdd(p_tbl_id, p_br_name) loop
    -- delete busrule (delete of trigger is since 6i not enough anymore, so
    -- explicitly delete PL/SQL module also)
    bllog.write
    ( 'Deleting trigger '||r_brdd.name||' and PL/SQL module '
    ||hsu_name.get_name_and_path(r_brdd.plm_id)
    ||', a new business rule design definition overwrites this old one.'
    , bllog.information
    bltrg.del(r_brdd.trg_id);
    blplm.del(r_brdd.plm_id);
    end loop brdd;
    end delete_brdds;
    inside procedure transform_stage2
    (just before the comment: -- check if BRDD with this plm_name already exists)
    if p_overwrite_br = 'Y'
         then
    delete_brdds
    ( p_tbl_id => g_trg_tbl(i).tbl_id
    , p_br_name => l_plm_name
         end if; -- find_trg and overwrite =Y
    A new parameter in procedure transform_br_fun
    procedure transform_br_fun
    , p_overwrite_br in varchar2 default 'N' -- 6.5.2.3AMIS1.1
    use the parameter p_overwrite_br in the call to transform_stage2
    transform_stage2
    ( p_fun_id => p_fun_id
    , p_fun_label => r_fun.fun_function_label
    , p_fun_short_definition => r_fun.fun_short_definition
    , p_msg_prefix => p_msg_prefix
    , p_msg_language => p_msg_language
    , p_rule_type => l_rule_type
                   , p_overwrite_br => p_overwrite_br -- 6.5.2.3AMIS1.1
    new parameter p_overwrite_br in the procedure run
    NOTE: in both PACKAGE SPECIFICATION and BODY
    , p_overwrite_br in varchar2 default'N' -- 6.5.2.3AMIS1.1
    use the parameter p_overwrite_br in all calls to transform_br_fun inside procedure run
    transform_br_fun
    ( p_fun_id => r_fun_tree.id
    , p_msg_prefix => p_msg_prefix
    , p_msg_language => p_msg_language
    , p_create_att_usages => p_create_att_usages
    , p_overwrite_br => p_overwrite_br -- 6.5.2.3AMIS1.1

    Among the alternatives not mentioned... Using a TiVo DVR, rather than the X1; a Roamio Plus or Pro would solve both the concern over the quality of the DVR, as well as providing the MoCA bridge capability the poster so desperately wanted the X1 DVR to provide. (Although the TiVo's support only MoCA 1.1.) Just get a third-party MoCA adapter for the distant location. Why the hang-up on having a device provided by Comcast? This seems especially ironic given the opinions expressed regarding payments over time to Comcast. If a MoCA 2.0 bridge was the requirement, they don't exist outside providers. So couldn't the poster have simply requested a replacement XB3 from the local office and configured it down to only providing MoCA bridging -- and perhaps as a wireless access point? Comcast would bill him the monthly rate for the extra device, but such is the state of MoCA 2.0. Much of the OP sounds like frustration over devices providing capabilities the poster *thinks* they should have.

  • Rule+ in transformations

    hi,
        can any body explain me what is rule+ and what is rule- in transformations and what is the use?. i have tried adding the object and its populating to the target . but what is the use of it?
    regards,
    manju

    Hi Manjunath,
                  Rule+ is used to create a new rule.
    Rule- is used to delete a rule. Using Rule+ you can create new rule for a keyfigure.
    Thanks,

  • How to upgrade Update rules to Transformations

    Hi
      My is to Update/Upgrade UPDATE RULES to TRANSFORMATIONS
      How can i do it in BI 7.0.
      Is there any programe that will upgrade the update rules to transformations
    Thanks

    Hi,
    Right click on your update rule
    Goto -> additional functions
    say create transformations.
    It will automatically convert your update rule into BI 7.0 transformation.
    Regards
    Githen

  • Business Rule Design Transformer fails with ORA-00001

    I'm stuck with the Business Rule Design Transformer Utility of Headstart. After running this utility over one BR it is impossible to run it over other BR's because of violation of the unique constraint HST65.QMS_MSP_PK (table QMS_MESSAGE_PROPERTIES). The problem is that the utility tries to insert a record (message, specified in the Notes property of Designer) into QMS_MESSAGE_PROPERTIES with the code "ABI-10000", that was already created by running the utility for the first time.
    Exact error message: "Activity aborted with ORACLE internal errors.
    -1 ORA-00001: unique constraint (HST65.QMS_MSP_PK) violated"
    I'm using Designer 6i (6.5.52.1.0) and Headstart 6.5.1.3
    If someone has any clue about this I would be very grateful
    Cheers,
    Dimce

    Jan,
    The name of the business rule is already in the CONSTRAINT_NAME of the QMS_MESSAGE_PROPERTIES table.
    I already tested by deleting the records in the two tables, QMS_MESSAGE_PROPERTIES and QMS_MESSAGE_TEXT, and ran the utility, but it didn't help either. I can run the utility for one rule, but when I want to run it again at some later point, it fails with this error.
    But, I managed to create rule definitions using the HSU Create Business Rule Design Definition, rule by rule. I only had to add references in the business rule to the used module.
    Dimce

  • Migration of update rules to transformations

    Hi Experts,
    We are in process of migrating update rules to Transformations.
    We have following data flow for one info cube.
    *Existing*
    Data source -
    >transfer Rules--->info source->update rules--
    >cube
    New
    Data source -
    >transformations----
    >cube
    When I am trying to create transformations, I am not able to read master data properties for all info objects.
    It gives error that No info object is available.
    Now my question is
    it is not possible to read mster data in one transformation?
    If I change my new scenario to this then it workes.
    Data source -
    >transformations----->info source(new BI7)--
    >transformations -
    >cube
    But then I need to convert All existing info source to new one in BI7 then only I can use read from master data functionality.
    Please advice.
    <removed by moderator>
    Edited by: Siegfried Szameitat on Nov 25, 2008 9:05 AM

    In the Transformation maintenance, open the rule details.
    Here you see the source fields of the rule.
    Update 'IOAssgnmnt' with the InfoObject corresponding to the field from the source system.
    Example
    Field PERNR
    Description Personnel No.
    Type NUMC
    Length 8               
    Conversion
    IOAssgnmnt 0EMPLOYEE  <-- Entered manually
    Then you should be able to use the 'Read master data' functionality.
    Regards,
    Lars

  • Rule-based transformations perfomance

    Hello.
    Oracle 9.2.0.8.
    We were tuned a replication on Oracle Streams.
    There are 1 capture process and more than one apply processes.
    We need to hide some columns in apply databases, for example, replace it with *.
    Now we use triggers on apply schemas, which replace column value with * before insert. But with update and delete operations there are problems, because apply process generate errors - 'no data found' and put transactions in error queue.
    Optimal variant is to use rule-based transformations on the capture process on a table, where are columns, which need to hide.
    We wrote pl/sql transformation function and create rule with action_context associated with this function, but see, that processor loading of capture process increase doubly.
    Please tell me, who work with transformations. Are really transformation hardly load capture machine or it is mistake? And how I can do aforesaid task with other methods?

    Hello Kinney,
    From what I've seen in your code, your code appears to be incorrectly written.
    1. The transformaiton function should not execute the LCR, it just have to do the necessary modifications for the LCR. The apply process would execute the LCR and commits the transaction when all the LCRs executed.
    2. You should not perform COMMIT in the transformation function. You need to eliminate the COMMIT from the code. The transformation function should not execute and COMMIT the LCR. The apply process would execute and COMMIT the transaction when it receives a commit lcr.
    Please eliminate the following from the function and re-create the function:
    lcr.EXECUTE(true);
    commit;
    Please test and see if the function is working as expected.
    Thanks,
    Rijesh

  • Write ABAP routine in transformation rule

    Dear all,
    I am very new to ABAP. Currently I would like to transfer some data from cube A to cube B. The problem is
    Cube A and B have different Unit of Mesure. The product standard cost is based on each Item's UOM. For example:
    Cube A data:
    ItemNo }      UOM   }     Standard cost
    ABC     }      P5      }            30
    Cube B data:
    ItemNo }      UOM        }     Standard cost
    ABC     }      EACH      }            5  (30/5)
    In transformation rule, I plan to use ABAP routine to calculate each record to new Stand cost if Cube A has different UOM than Cube B.
    Can I call a program in this ABAP routine?
    In ABAP routine, how can I delare other source table and fields?
    Thanks for you help!

    The preferable method, if you're on BI 7 or later, is to create a filter in the DTP so that the records where 0CLR_DOC_NO is blank aren't even passed into the Transformation.
    If not, then you can add the following code into the Start Routine of your Transformation.
    DELETE
      source_package
    WHERE
      clr_doc_no EQ ' '.

  • ABAP code in transformation

    Hello,
    I have a transformation routine as follows:
    DATA:l_lifnr1 TYPE /BI0/MBATCH-VENDOR,
             l_greybatch TYPE /BI0/MBATCH-BATCH,
             oref   TYPE REF TO cx_root,
              l_num type i,
              l_len  type i,
              l_len1(2)  type c.
        l_len = strlen( SOURCE_FIELDS-/BIC/ZBAT_SUP ).
        l_len1 = ( l_len - 1 ).
        try.
            concatenate SOURCE_FIELDS-/BIC/ZBAT_SUP+0(l_len1) 'G' into
            l_greybatch.
          catch CX_SY_CONVERSION_NO_NUMBER INTO oref.
        ENDTRY.
    =============
    this transformation is between a infosource and infoobject. When i run the DTP, it gives an error at the line "concatenate SOURCE_FIELDS-/BIC/ZBAT_SUP+0(l_len1) 'G' into l_greybatch."
    This -/BIC/ZBAT_SUP is calculated using a routine in the transformation between the datasource and the infosource. The same DTP is used for both load across both these transformations.
    what is wrong? any suggestions?

    Hello Siegfried,
    Thank you very much.
    As you rightly pointed out -/BIC/ZBAT_SUP is not filled.
    But i didnt want to fill it in the second transformation(between the infosrc and infoobject) becoz, this is used for populating 2 differnt objects for which there are different rules. I will have to run the logic(for populating -/BIC/ZBAT_SUP) twice in these 2 rules.
    Hence i was trying to populate it in the first transformation(between the datasrc and the infosrc) and then use this value in the 2 rules in the second transformation.
    Can you give me some other logic to do the same with the necessary ABAP code?
    Following is the routine use to populate -/BIC/ZBAT_SUP in the first transformation:
    $$ begin of routine - insert your code only below this line        -
    DATA: l_charg TYPE /BIC/AZMM_O0100-BATCH.
          SELECT SINGLE /BIC/ZBAT_SUP FROM /BIC/AZMM_O0100
          into l_charg
              WHERE BATCH = SOURCE_FIELDS-CHARG.
         RESULT = l_charg .
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_ZBAT_SUP
    ====================================================
    The second transformation populates 2 different vendor fields in 2 different rules. Both the rules use the follwing 2 routines:
    $$ begin of routine - insert your code only below this line        -
        DATA:l_lifnr1 TYPE /BI0/MBATCH-VENDOR,
             l_greybatch TYPE /BI0/MBATCH-BATCH,
             oref   TYPE REF TO cx_root,
              l_num type i,
              l_len  type i,
              l_len1(2)  type c.
        l_len = strlen( SOURCE_FIELDS-/BIC/ZBAT_SUP ).
        l_len1 = ( l_len - 1 ).
          try.
              concatenate SOURCE_FIELDS-/BIC/ZBAT_SUP+0(l_len1) 'G' into
              l_greybatch.
         move SOURCE_FIELDS-/BIC/ZBAT_SUP(l_len1) to l_greybatch.
         move 'G' to l_greybatch+l_len1(1).
            catch CX_SY_CONVERSION_NO_NUMBER INTO oref.
          ENDTRY.
    *Populating Supplying(finished) batch vendor
          select single VENDOR from /BI0/MBATCH
          into l_lifnr1
          where BATCH = l_greybatch.
          RESULT = l_lifnr1.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_0VENDOR
    =====================================================
    METHOD compute_ZVENDOR.
      IMPORTING
        request     type rsrequest
        datapackid  type rsdatapid
        SOURCE_FIELDS-/BIC/ZBAT_SUP TYPE /BIC/OIZBAT_SUP
       EXPORTING
         RESULT type tys_TG_1-/BIC/ZVENDOR
        DATA:
          MONITOR_REC    TYPE rsmonitor.
    $$ begin of routine - insert your code only below this line        -
    DATA:l_lifnr1 TYPE /BI0/MBATCH-VENDOR.
    *Populating Supplying(finished) batch vendor
                select single VENDOR from /BI0/MBATCH
                into l_lifnr1
                where BATCH = SOURCE_FIELDS-/BIC/ZBAT_SUP.
         RESULT = l_lifnr1.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_ZVENDOR
    ===================================
    thank you....

  • Error during converting update rule into transformation

    Hi,
    I'm convertng update rule 2lis_03_bx in to transformation. Not all the keyfigure abap routine are changed in ABAP 00.
    Like 0RECVS_VAL, 0ISSVS_VAL are not converted where as some of them are converted. Will i need to make changes manually..
    Sachin K

    Hi Sachin,
    Please take a look at this OSS note - 981194.
    Hope this helps,
    Bye...

  • How to delete the rule in transformation

    Hi all ,
    I have remodeled the info-cube and added one characteristics ZRMACTTRS.  This characteristics got updated in transformation rule..Now i want to delete it from transformation but i am unable to do so ..
    I tried  deleting  the rule and message was populated "one rule is successfully deleted  " but yet it is not removed from transformation structure (this rule has a key,can i remove key from rule ?).
    I have tried to remove the characteristics through remodeling but delete characteristics request is not getting active...
    Please help

    yoiu can try by putting the rule to 'initial' (in rule details)...ignore the subsequent warning and delete the arrow with a right-click. Then activate your rule again...maybe this will work.
    M.

Maybe you are looking for