BPC75NW: Query on write-back BAdI

Hi,
I have a requirement wherein for 2 set of input schedules that are based on same APPSET and APPLICATION, have different ABAP logic to be built through write-back BAdI.
I try to built a second BAdI to put in the logic for second set of input schedules. But the resultant filter criteria comes out to be same as in the first write-back BAdI, which results in error during activation of object.
Possible solution: I will not be able to alter the filter criteria; but during run-time, is it possible to check the input schedule that invokes the write-back BadI, so I can put the IF at the start of logic to process either for first or second set of input schedules.
Regards,
Pankaj

Hi Rich,
Thanks for the reply. 
Currently as a work-around, I read CT_ARRAY, which has account dimension as a column.
The values coming in CT_ARRAY (for time-being) are different for the first and second set.
So I have written READ TABLE.. for certain values of first set and for certain other values for set 2.
I guess the CL_UJ_CONTEXT class will give me the information about members on current view, which is kind of similar to my current work-around.
Going ahead I anticipate to come across scenarios when the current view remains identical and we need to process the logic based on the input schedule that invokes the BAdI.
Anything identifying the source input schedule should be perfect.
Regards,
Pankaj

Similar Messages

  • Problem with BPC 10 REST SERVICE. (Write-Back  BAdI)

    Hello!
    We have implemented a Write-Back BAdI order to write values ​​to a parent and copy those values ​​to their children in the hierarchy. Proper operation.
    Then through the Default Logic we are making various calculations (many to be honest), based on the data recorded with the Write-Back BADI.
    The problem arises when we try to write in a parent hierarchy with many children.
    We receive the following message in Excel.
    We have configured the service as follows
    The transaction st22 says nothing about our problem.
    If I go to log the EPM Add-in for Excel see the following. A problem with REST service (I think that is the PROBLEM)
    Write-Back BAdI writes values properly.
    Thank you!

    Thanks for answering.
    Yes, if I try to write in a parent without Default.lgf there is no problem. I performed the test to the parent node of all hierachy.
    I send the Default.lgf and the others scripts .
    I think the problem is that the communication between BPC and Netweaver is lost, which is done through the REST service??
    thank you very much.

  • Validate Journal Entries using write back BADI (UJR_WRITE_BACK)

    Hi Experts
    I need to validate journal entries such that the total credit and debit postings for each COMPANY is equal. Also I need to do the same validation by PROFIT CENTER. After doing a bit of research I found out that the best way to do it is by coding it in the write back BADI.
    Has anyone faced such a situation before? Is there any better way to do it? Can anyone share the code?
    Thanks
    Edited by: Shisher Chakrabarty on Mar 1, 2012 10:22 AM

    Hi Shisher,
    Please check the below guide for Write Back BADI. The doc has also got the source code for the same.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0309226-814f-2d10-61a6-ef8da29e3727?QuickLink=index&overridelayout=true&48056389302995
    Regards,
    Raghu

  • Write back Badi

    HI Everyone,
    We have developed Write Back Badi, Which does distribution values equally at two different Parent level (Entity, Product) and all other base members and working fine
    Actually there are some accounts we have called percentage rate accounts.
    If I plan at this all rate accounts against Parent level and all base members. It has to distribute the same value to all Base members and should not roll up.
    Ex: If I plan 4% value at any rate account against parent level, Then BAdi has to be distribute same 4% value to all base members and Value of Rate account is same 4%, So it should not be the roll up
    I used below code to distribute same value to all base members for specific accounts and account is getting roll up.
    Please let me know how to solve this issues.
    "IF SPD_account is anything other than the accounts below then ELSE part will be executed
    IF <zlf_chk> = 'Drivers_001_01_N' OR <zlf_chk> = 'Drivers_002_01_N' OR <zlf_chk> = 'Driver_003_01N' OR <zlf_chk> = 'Driver_003_03_N' OR <zlf_chk> = 'Driver_003_05_N' OR <zlf_chk> = 'Driver_003_07_N' OR <zlf_chk> = 'Driver_004_01_N'.
              " Avoid divide by zero
              IF l_num_base > 0.
                <l_keyfigure> = <l_keyfigure>.
                " Copy N times with new base members
                LOOP AT lt_SPD_PRODUCT_mbr ASSIGNING <l_base_mbr>.
                  <l_SPD_PRODUCT> = <l_base_mbr>.
                  " When IF_CALC_DELTA = true, appending means the latest records take effects,
                  " previous records with same dimension member will be overwritten.
                  " The newly appended records will also be looped and processed.
                  APPEND <ls_record> TO ct_array.
                ENDLOOP.
              ENDIF.
            ELSE.
              IF l_num_base > 0.
                <l_keyfigure> = <l_keyfigure> / l_num_base.
                " Copy N times with new base members
                LOOP AT lt_SPD_PRODUCT_mbr ASSIGNING <l_base_mbr>.
                  <l_SPD_PRODUCT> = <l_base_mbr>.
                  " When IF_CALC_DELTA = true, appending means the latest records take effects,
                  " previous records with same dimension member will be overwritten.
                  " The newly appended records will also be looped and processed.
                  APPEND <ls_record> TO ct_array.
                ENDLOOP.
              ENDIF. " divide by zero
            endif.
            " Remove the old one
            DELETE ct_array.

    Hi Vadim,
    Let me explain,
    The rate accounts (Drivers_001_01_N, Drivers_002_01_N, Driver_003_01_N, Driver_003_03_N, Driver_003_05_N, Driver_003_07_N, Driver_004_01_N )
    If I plan at this all rate accounts against Product (Pharmaceutical Bx- Parent level - Please see the hierarchy below). It has to distribute the same value to all Base members(SKU) and should not aggregate.
    Ex: If I plan 4% value at any rate account against Pharmaceutical Bx, Then BAdi has to be distribute same 4% value to all seven base members(SKU) and Value of Rate account is same 4%, So it should not Aggregate.
           Currently it is distributing 4% Value to all the base members and it is rolling up to 28 for Rate accounts.
    -Viswanath

  • Capture comments in write back badi!!!!

    Hi All,
    Can I capture comments inside write back BAdI?
    i checked to read comments table but the comment table is not updated by then.....
    is there a way i can get comments updated in the same input schedule that triggers the write back BAdI?
    Kind Regards,
    Surya Tamada.

    Thats a very big story mate!!!!!
    Client wants to plan at contract level (highest granular) and he wants to enter some text as the description of the contract. Now I have to read this in the write back badi and dynamically generate a new contract ID and capture the comment and save this comment as the EVdescription of the newly generated contract ID.
    If i have this comment flowing through Write Back Badi then i can update the masterdata with the newly generated contract id and assign the comment to the EVdescription of the contract ID.
    If you need to know more..... please let me know.... i can elaborate the situation and let you know......
    Regards,
    Surya Tamada.

  • The function of IP: write back data from layout or query into DSO?

    hi,guys,
    I am very wondering that if BI-IP has the function of adding or modifying data directly into DSO ?which like the function of BPS layout writing data back to infocube? If it could ,how?
    Alough I don't think it's possible,I hope someone could give me a certain answer.
    Thanks a lot,
    johnson.

    Hi,
    Please search the forum before posting - this question has been asked quite a few times earlier.
    IP can read data from multiple types of infoproviders (including DSO) but it can write back data only to real-time infocubes.

  • FDMEE - Write back - No Data and No Errors

    I am trying to Write Back from Planning 11.1.2.3.500 to EBS R12 using FDMEE 11.1.2.3.530. There is data in Planning, and when I execute an Import it processes successfully, but the Transform Data Process step has a warning symbol and there is no data in the grid in the Write Back Workbnch.
    Here is the log:
    2015-03-12 16:55:58,845 INFO  [AIF]: FDMEE Process Start, Process ID: 265
    2015-03-12 16:55:58,845 INFO  [AIF]: FDMEE Logging Level: 5
    2015-03-12 16:55:58,846 INFO  [AIF]: FDMEE Log File: \\Vmhodrxeap13\fdmee\outbox\logs\RXFin_265.log
    2015-03-12 16:55:58,846 INFO  [AIF]: User:wilsonp
    2015-03-12 16:55:58,846 INFO  [AIF]: Location:RXFin_EBS_PL (Partitionkey:5)
    2015-03-12 16:55:58,847 INFO  [AIF]: Period Name:NA (Period Key:null)
    2015-03-12 16:55:58,847 INFO  [AIF]: Category Name:NA (Category key:null)
    2015-03-12 16:55:58,847 INFO  [AIF]: Rule Name:Test_1 (Rule ID:10)
    2015-03-12 16:56:00,465 INFO  [AIF]: FDM Version: 11.1.2.3.530
    2015-03-12 16:56:00,465 INFO  [AIF]: Jython Version: 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)
    [Oracle JRockit(R) (Oracle Corporation)]
    2015-03-12 16:56:00,466 INFO  [AIF]: Java Platform: java1.6.0_37
    2015-03-12 16:56:00,466 INFO  [AIF]: Log File Encoding: UTF-8
    2015-03-12 16:56:01,904 DEBUG [AIF]: CommWb.importData - START
    2015-03-12 16:56:01,908 DEBUG [AIF]: CommWb.getRuleInfo - START
    2015-03-12 16:56:01,911 DEBUG [AIF]:
            SELECT wr.RULE_ID
            ,wr.RULE_NAME
            ,wr.PARTITIONKEY
            ,ss.SOURCE_SYSTEM_ID
            ,ss.SOURCE_SYSTEM_TYPE
            ,CASE
              WHEN ss.SOURCE_SYSTEM_TYPE LIKE 'EBS%' THEN 'N'
              WHEN ss.SOURCE_SYSTEM_TYPE LIKE 'PS%' THEN 'N'
              WHEN ss.SOURCE_SYSTEM_TYPE LIKE 'FUSION%' THEN 'N'
              WHEN ss.SOURCE_SYSTEM_TYPE LIKE 'FILE%' THEN 'N'
              ELSE 'Y'
             END SOURCE_ADAPTER_FLAG
            ,imp.IMPSOURCECOAID SOURCE_COA_ID  
            ,COALESCE(wr.SOURCE_LEDGER_ID,0) SOURCE_LEDGER_ID
            ,app.APPLICATION_ID
            ,app.TARGET_APPLICATION_NAME
            ,app.TARGET_APPLICATION_TYPE
            ,wr.PLAN_TYPE
            ,CASE wr.PLAN_TYPE
              WHEN 'PLAN1' THEN 1
              WHEN 'PLAN2' THEN 2
              WHEN 'PLAN3' THEN 3
              WHEN 'PLAN4' THEN 4
              WHEN 'PLAN5' THEN 5
              ELSE 0
            END PLAN_NUMBER
            ,wl.POST_BY_YEAR
            ,wl.LEDGER_GROUP
            ,wl.LEDGER
            ,wl.GL_BUDGET_SCENARIO
            ,wl.GL_BUDGET_ORG
            ,wl.GL_BUDGET_VERSION
            ,wl.JE_CATEGORY
            ,wl.JE_SOURCE
            ,wl.CREATE_JOURNAL_FLAG
            ,wl.EXECUTION_MODE
            ,wl.IMPORT_FROM_SOURCE_FLAG
            ,wl.IMPORT_FROM_SOURCE_FLAG RECALCULATE_FLAG
            ,wl.EXPORT_TO_TARGET_FLAG
            ,wl.AS_OF_DATE
            ,wr.DP_MEMBER_NAME
            ,wl.KK_TRAN_ID
            ,wl.KK_SOURCE_TRAN
            ,wl.KK_BUDG_TRANS_TYPE
            ,wl.KK_ACCOUNTING_DT
            ,wl.KK_GEN_PARENT
            ,wl.KK_DEFAULT_EE
            ,wl.KK_PARENT_ENT_TYPE
            ,CASE lg.LEDGER_TEMPLATE
              WHEN 'COMMITMENT' THEN 'Y'
              ELSE 'N'
            END KK_FLAG
            ,CASE
              WHEN (ss.SOURCE_SYSTEM_TYPE LIKE 'PS%' AND wl.KK_SOURCE_TRAN = 'HYP_CHECK') THEN 'Y'
              ELSE 'N'
            END KK_CHECK_FLAG
            ,p.LAST_UPDATED_BY
            ,p.AIF_WEB_SERVICE_URL WEB_SERVICE_URL
            FROM AIF_PROCESSES p
            INNER JOIN AIF_WRITEBACK_LOADS wl
              ON wl.LOADID = p.PROCESS_ID
            INNER JOIN AIF_WRITEBACK_RULES wr
              ON wr.RULE_ID = wl.RULE_ID
            INNER JOIN TPOVPARTITION part
              ON part.PARTITIONKEY = wr.PARTITIONKEY
            INNER JOIN TBHVIMPGROUP imp
              ON imp.IMPGROUPKEY = part.PARTIMPGROUP
            INNER JOIN AIF_SOURCE_SYSTEMS ss
              ON ss.SOURCE_SYSTEM_ID = part.PARTSOURCESYSTEMID
            INNER JOIN AIF_TARGET_APPLICATIONS app
              ON app.APPLICATION_ID = part.PARTTARGETAPPLICATIONID
            LEFT OUTER JOIN AIF_COA_LEDGERS l
              ON l.SOURCE_SYSTEM_ID = part.PARTSOURCESYSTEMID
              AND l.SOURCE_LEDGER_ID = wr.SOURCE_LEDGER_ID
            LEFT OUTER JOIN AIF_PS_SET_CNTRL_REC_STG scr
              ON scr.SOURCE_SYSTEM_ID = l.SOURCE_SYSTEM_ID
              AND scr.SETCNTRLVALUE = l.SOURCE_LEDGER_NAME
              AND scr.RECNAME = 'LED_GRP_TBL'
            LEFT OUTER JOIN AIF_PS_LED_GRP_TBL_STG lg
              ON lg.SOURCE_SYSTEM_ID = scr.SOURCE_SYSTEM_ID
              AND lg.SETID = scr.SETID
              AND lg.LEDGER_GROUP = wr.LEDGER_GROUP
            WHERE p.PROCESS_ID = 265
    2015-03-12 16:56:01,914 DEBUG [AIF]:
          SELECT wld.DIMENSION_NAME
          ,wld.FILTER_CONDITION
          ,app.TARGET_APPLICATION_NAME
          FROM AIF_WRITEBACK_LOAD_DTLS wld
          INNER JOIN AIF_WRITEBACK_LOADS wl
            ON wl.LOADID = wld.LOADID
          INNER JOIN AIF_WRITEBACK_RULES wr
            ON wr.RULE_ID = wl.RULE_ID
          INNER JOIN TPOVPARTITION part
            ON part.PARTITIONKEY = wr.PARTITIONKEY
          INNER JOIN AIF_TARGET_APPLICATIONS app
            ON app.APPLICATION_ID = part.PARTTARGETAPPLICATIONID
          INNER JOIN AIF_TARGET_APPL_DIMENSIONS adim
            ON adim.APPLICATION_ID = app.APPLICATION_ID
            AND adim.TARGET_DIMENSION_NAME = wld.DIMENSION_NAME
            AND adim.TARGET_DIMENSION_CLASS_NAME = 'Scenario'
          WHERE wld.LOADID = 265
    2015-03-12 16:56:01,916 DEBUG [AIF]: 
          SELECT COALESCE(pca.CATKEY, pc.CATKEY) CATKEY
          FROM TPOVCATEGORY pc
          LEFT OUTER JOIN TPOVCATEGORYADAPTOR pca
            ON pca.INTSYSTEMKEY = 'RXFin'
            AND pca.CATTARGET = NULL
          WHERE pc.CATTARGET = NULL
    2015-03-12 16:56:01,918 DEBUG [AIF]:
          SELECT acks.source_segment_column_name DIMNAME, ss.source_system_type SOURCE_SYSTEM_TYPE
            FROM AIF_PROCESSES p
            INNER JOIN AIF_WRITEBACK_LOADS wl
              ON wl.LOADID = p.PROCESS_ID
            INNER JOIN AIF_WRITEBACK_RULES wr
              ON wr.RULE_ID = wl.RULE_ID
            INNER JOIN TPOVPARTITION part
              ON part.PARTITIONKEY = wr.PARTITIONKEY
            INNER JOIN AIF_CB_KEY_SEGMENTS acks
              ON acks.control_budget_id = wr.SOURCE_LEDGER_ID
              AND acks.source_system_id = part.PARTSOURCESYSTEMID
            INNER JOIN AIF_SOURCE_SYSTEMS ss
              ON ss.SOURCE_SYSTEM_ID = part.PARTSOURCESYSTEMID
          WHERE p.PROCESS_ID = 265
    2015-03-12 16:56:01,919 DEBUG [AIF]:
          SELECT lv.LOOKUP_DISPLAY_CODE DIMNAME
          ,wld.TEMP_COLUMN_NAME
          ,cs.COA_SEGMENT_NAME
          ,cs.VALUE_SET_ID
          ,cs.ACCOUNT_TYPE_FLAG
          FROM AIF_COA_SEGMENTS cs
          INNER JOIN TPOVPARTITION tpp
            ON tpp.PARTITIONKEY = 5
          INNER JOIN AIF_LOOKUP_TYPES lt
            ON lt.SOURCE_SYSTEM_ID = 0
            AND lt.LOOKUP_TYPE = 'AIF_SEGMENT_COLUMN_MAP'
          INNER JOIN AIF_LOOKUP_VALUES lv
            ON lv.LOOKUP_TYPE_ID = lt.LOOKUP_TYPE_ID
            AND lv.LOOKUP_CODE = cs.COA_SEGMENT_NAME
          LEFT OUTER JOIN TBHVIMPITEMERPI tiie
            ON tiie.IMPGROUPKEY = tpp.PARTIMPGROUP
            AND tiie.IMPMAPTYPE = 'EPM'
            AND tiie.IMPSOURCECOALINEID1 = cs.COA_LINE_ID
          LEFT OUTER JOIN AIF_WRITEBACK_LOAD_DTLS wld
            ON wld.LOADID = 265
            AND wld.DIMENSION_NAME = tiie.IMPDIMNAME
          WHERE cs.SOURCE_SYSTEM_ID = 4
          AND cs.SOURCE_COA_ID = 50348
          ORDER BY lv.LOOKUP_DISPLAY_CODE
    2015-03-12 16:56:01,922 DEBUG [AIF]: CommWb.getRuleInfo - END
    2015-03-12 16:56:01,924 DEBUG [AIF]: AIFUtil.callOdiServlet - START
    2015-03-12 16:56:01,948 DEBUG [AIF]: cloudMode: NONE
    2015-03-12 16:56:01,949 DEBUG [AIF]: GlobalUserForAppAccess from Profile: null
    2015-03-12 16:56:01,951 INFO  [AIF]: Resolved user name for application access: wilsonp
    2015-03-12 16:56:02,450 INFO  [AIF]: [HPLService] Info: Cube Name: Finance
    2015-03-12 16:56:02,451 INFO  [AIF]: [HPLService] Info: Importing data from RXFin:Finance...
    2015-03-12 16:57:31,732 INFO  [AIF]: [HPLService] Info: Data import complete
    2015-03-12 16:57:31,738 INFO  [AIF]: [HPLService] Info: [importWritebackData:265] END (true)
    2015-03-12 16:57:31,747 DEBUG [AIF]: AIFUtil.callOdiServlet - END
    2015-03-12 16:57:31,747 DEBUG [AIF]:
            SELECT STATUS
            FROM AIF_PROCESS_DETAILS
            WHERE PROCESS_ID = 265
            AND ENTITY_TYPE = 'PROCESS_WB_IMP'
    2015-03-12 16:57:31,752 DEBUG [AIF]: CommWb.insertPeriods - START
    2015-03-12 16:57:31,755 DEBUG [AIF]:
          SELECT DIMENSION_NAME
          ,FILTER_CONDITION
          FROM AIF_WRITEBACK_LOAD_DTLS
          WHERE LOADID = 265
          AND COLUMN_TYPE = 'Year'
    2015-03-12 16:57:31,758 DEBUG [AIF]: commAppPeriodMappingExists: N
    2015-03-12 16:57:31,758 DEBUG [AIF]:
            INSERT INTO AIF_PROCESS_PERIODS (
              PROCESS_ID
              ,PERIODKEY
              ,PERIOD_ID
              ,ADJUSTMENT_PERIOD_FLAG
              ,GL_PERIOD_YEAR
              ,GL_PERIOD_NUM
              ,GL_PERIOD_NAME
              ,GL_PERIOD_CODE
              ,GL_EFFECTIVE_PERIOD_NUM
              ,YEARTARGET
              ,PERIODTARGET
              ,IMP_ENTITY_TYPE
              ,IMP_ENTITY_ID
              ,IMP_ENTITY_NAME
              ,TRANS_ENTITY_TYPE
              ,TRANS_ENTITY_ID
              ,TRANS_ENTITY_NAME
              ,PRIOR_PERIOD_FLAG
              ,SOURCE_LEDGER_ID
            SELECT q.PROCESS_ID
            ,q.PERIODKEY
            ,NULL PERIOD_ID
            ,'N' ADJUSTMENT_PERIOD_FLAG
            ,0 GL_PERIOD_YEAR
            ,'0' GL_PERIOD_CODE
            ,'0' GL_PERIOD_NAME
            ,q.ENTITY_NAME_ORDER GL_PERIOD_NUM
            ,q.ENTITY_NAME_ORDER GL_EFFECTIVE_PERIOD_NUM
            ,q.YEARTARGET
            ,q.PERIODTARGET
            ,'PROCESS_WB_IMP' IMP_ENTITY_TYPE
            ,NULL IMP_ENTITY_ID
            ,p.PERIODDESC IMP_ENTITY_NAME
            ,'PROCESS_WB_TRANS' TRANS_ENTITY_TYPE
            ,NULL TRANS_ENTITY_ID
            ,p.PERIODDESC TRANS_ENTITY_NAME
            ,'N' PRIOR_PERIOD_FLAG
            ,NULL SOURCE_LEDGER_ID         
            FROM (
              SELECT PROCESS_ID
              ,MIN(PERIODKEY) PERIODKEY
              ,PERIODTARGET
              ,YEARTARGET
              ,ENTITY_NAME_ORDER
              FROM (
                SELECT wld.LOADID PROCESS_ID
                ,pp.PERIODKEY PERIODKEY
                ,pp.PERIODTARGET PERIODTARGET
                ,pp.YEARTARGET YEARTARGET
                ,CASE
                  WHEN (INSTR(UPPER(wld.TEMP_COLUMN_NAME),'AMOUNT',1) = 1) THEN
                    CAST(SUBSTR(wld.TEMP_COLUMN_NAME,7,LENGTH(wld.TEMP_COLUMN_NAME)) AS NUMERIC(15,0))
                  ELSE 0
                END ENTITY_NAME_ORDER
                FROM (
                  AIF_WRITEBACK_LOAD_DTLS wld
                    INNER JOIN TPOVPERIOD_FLAT_V pp
                      ON pp.PERIODTARGET = wld.DIMENSION_NAME
                      AND pp.YEARTARGET = 'FY14')
                WHERE wld.LOADID = 265
                AND wld.COLUMN_TYPE = 'DATA'
              ) query
              GROUP BY PROCESS_ID
              ,PERIODTARGET
              ,YEARTARGET
              ,ENTITY_NAME_ORDER
            ) q
            ,TPOVPERIOD p
            WHERE p.PERIODKEY = q.PERIODKEY             
            ORDER BY p.PERIODKEY 
    2015-03-12 16:57:31,764 DEBUG [AIF]: CommWb.insertPeriods - END
    2015-03-12 16:57:31,772 DEBUG [AIF]: COMM GL Writeback Load Data - Load TDATASEGW - START
    2015-03-12 16:57:31,774 DEBUG [AIF]: CommWb.getLedgerListAndMap - START
    2015-03-12 16:57:31,775 DEBUG [AIF]: CommWb.getLedgerSQL - START
    2015-03-12 16:57:31,775 DEBUG [AIF]: CommWb.getLedgerSQL - END
    2015-03-12 16:57:31,775 DEBUG [AIF]:
              SELECT l.SOURCE_LEDGER_ID
              ,l.SOURCE_LEDGER_NAME
              ,l.FUNCTIONAL_CURRENCY
              ,l.CALENDAR_ID
              ,'0' SETID
              ,l.PERIOD_TYPE
              FROM AIF_WRITEBACK_LOADS wl
              ,AIF_WRITEBACK_RULES wr
              ,TPOVPARTITION part
              ,AIF_COA_LEDGERS l
              WHERE wl.LOADID = 265
              AND wr.RULE_ID = wl.RULE_ID
              AND part.PARTITIONKEY = wr.PARTITIONKEY
              AND l.SOURCE_SYSTEM_ID = part.PARTSOURCESYSTEMID
              AND l.SOURCE_LEDGER_ID = wr.SOURCE_LEDGER_ID
    2015-03-12 16:57:31,777 DEBUG [AIF]: CommWb.getLedgerListAndMap - END
    2015-03-12 16:57:31,778 DEBUG [AIF]:
          SELECT acks.source_segment_column_name DIMNAME, ss.source_system_type SOURCE_SYSTEM_TYPE
            FROM AIF_PROCESSES p
            INNER JOIN AIF_WRITEBACK_LOADS wl
              ON wl.LOADID = p.PROCESS_ID
            INNER JOIN AIF_WRITEBACK_RULES wr
              ON wr.RULE_ID = wl.RULE_ID
            INNER JOIN TPOVPARTITION part
              ON part.PARTITIONKEY = wr.PARTITIONKEY
            INNER JOIN AIF_CB_KEY_SEGMENTS acks
              ON acks.control_budget_id = wr.SOURCE_LEDGER_ID
              AND acks.source_system_id = part.PARTSOURCESYSTEMID
            INNER JOIN AIF_SOURCE_SYSTEMS ss
              ON ss.SOURCE_SYSTEM_ID = part.PARTSOURCESYSTEMID
          WHERE p.PROCESS_ID = 265
    2015-03-12 16:57:31,779 DEBUG [AIF]:
          SELECT lv.LOOKUP_DISPLAY_CODE DIMNAME
          ,wld.TEMP_COLUMN_NAME
          ,cs.COA_SEGMENT_NAME
          ,cs.VALUE_SET_ID
          ,cs.ACCOUNT_TYPE_FLAG
          FROM AIF_COA_SEGMENTS cs
          INNER JOIN TPOVPARTITION tpp
            ON tpp.PARTITIONKEY = 5
          INNER JOIN AIF_LOOKUP_TYPES lt
            ON lt.SOURCE_SYSTEM_ID = 0
            AND lt.LOOKUP_TYPE = 'AIF_SEGMENT_COLUMN_MAP'
          INNER JOIN AIF_LOOKUP_VALUES lv
            ON lv.LOOKUP_TYPE_ID = lt.LOOKUP_TYPE_ID
            AND lv.LOOKUP_CODE = cs.COA_SEGMENT_NAME
          LEFT OUTER JOIN TBHVIMPITEMERPI tiie
            ON tiie.IMPGROUPKEY = tpp.PARTIMPGROUP
            AND tiie.IMPMAPTYPE = 'EPM'
            AND tiie.IMPSOURCECOALINEID1 = cs.COA_LINE_ID
          LEFT OUTER JOIN AIF_WRITEBACK_LOAD_DTLS wld
            ON wld.LOADID = 265
            AND wld.DIMENSION_NAME = tiie.IMPDIMNAME
          WHERE cs.SOURCE_SYSTEM_ID = 4
          AND cs.SOURCE_COA_ID = 50348
          ORDER BY lv.LOOKUP_DISPLAY_CODE
    2015-03-12 16:57:31,783 DEBUG [AIF]: CommWb.getPovList - START
    2015-03-12 16:57:31,784 DEBUG [AIF]:
          SELECT wld.DIMENSION_NAME
          ,wld.FILTER_CONDITION
          ,app.TARGET_APPLICATION_NAME
          FROM AIF_WRITEBACK_LOAD_DTLS wld
          INNER JOIN AIF_WRITEBACK_LOADS wl
            ON wl.LOADID = wld.LOADID
          INNER JOIN AIF_WRITEBACK_RULES wr
            ON wr.RULE_ID = wl.RULE_ID
          INNER JOIN TPOVPARTITION part
            ON part.PARTITIONKEY = wr.PARTITIONKEY
          INNER JOIN AIF_TARGET_APPLICATIONS app
            ON app.APPLICATION_ID = part.PARTTARGETAPPLICATIONID
          INNER JOIN AIF_TARGET_APPL_DIMENSIONS adim
            ON adim.APPLICATION_ID = app.APPLICATION_ID
            AND adim.TARGET_DIMENSION_NAME = wld.DIMENSION_NAME
            AND adim.TARGET_DIMENSION_CLASS_NAME = 'Scenario'
          WHERE wld.LOADID = 265
    2015-03-12 16:57:31,785 DEBUG [AIF]: 
          SELECT COALESCE(pca.CATKEY, pc.CATKEY) CATKEY
          FROM TPOVCATEGORY pc
          LEFT OUTER JOIN TPOVCATEGORYADAPTOR pca
            ON pca.INTSYSTEMKEY = 'RXFin'
            AND pca.CATTARGET = NULL
          WHERE pc.CATTARGET = NULL
    2015-03-12 16:57:31,787 DEBUG [AIF]:
            SELECT PARTITIONKEY
            ,PARTNAME
            ,CATKEY
            ,CATNAME
            ,PERIODKEY
            ,COALESCE(PERIODDESC, TO_CHAR(PERIODKEY,'YYYY-MM-DD HH24:MI:SS')) PERIODDESC
            ,RULE_ID
            ,RULE_NAME
            ,YEARTARGET
            FROM (
              SELECT DISTINCT wr.PARTITIONKEY
              ,part.PARTNAME
              ,cat.CATKEY
              ,cat.CATNAME
              ,pprd.PERIODKEY
              ,pp.PERIODDESC
              ,wr.RULE_ID
              ,wr.RULE_NAME
              ,pprd.YEARTARGET
              FROM AIF_WRITEBACK_LOADS wl
              INNER JOIN AIF_WRITEBACK_RULES wr
                ON wr.RULE_ID = wl.RULE_ID
              INNER JOIN TPOVPARTITION part
                ON part.PARTITIONKEY = wr.PARTITIONKEY
              INNER JOIN TPOVCATEGORY cat
                ON cat.CATKEY = NULL
              INNER JOIN AIF_PROCESS_PERIODS pprd
                ON pprd.PROCESS_ID = wl.LOADID
              LEFT OUTER JOIN TPOVPERIOD pp
                ON pp.PERIODKEY = pprd.PERIODKEY             
              WHERE wl.LOADID = 265
            ) q
            ORDER BY PARTITIONKEY
            ,CATKEY
            ,PERIODKEY
            ,RULE_ID
    2015-03-12 16:57:31,788 DEBUG [AIF]: CommWb.getPovList - END
    2015-03-12 16:57:31,789 DEBUG [AIF]: COMM GL Writeback Load Data - Load TDATASEGW - END
    2015-03-12 16:57:31,789 DEBUG [AIF]: CommWb.importData - END
    2015-03-12 16:57:31,879 DEBUG [AIF]: CommWb.insertTransProcessDetails - START
    2015-03-12 16:57:31,880 DEBUG [AIF]:
              INSERT INTO AIF_PROCESS_DETAILS (
                PROCESS_ID
                ,ENTITY_TYPE
                ,ENTITY_ID
                ,ENTITY_NAME
                ,ENTITY_NAME_ORDER
                ,TARGET_TABLE_NAME
                ,EXECUTION_START_TIME
                ,EXECUTION_END_TIME
                ,RECORDS_PROCESSED
                ,STATUS
                ,LAST_UPDATED_BY
                ,LAST_UPDATE_DATE
              SELECT PROCESS_ID
              ,ENTITY_TYPE
              ,ENTITY_ID
              ,ENTITY_NAME
              ,ENTITY_NAME_ORDER
              ,'TDATASEGW' TARGET_TABLE_NAME
              ,CURRENT_TIMESTAMP EXECUTION_START_TIME
              ,NULL EXECUTION_END_TIME
              ,0 RECORDS_PROCESSED
              ,'PENDING' STATUS
              ,'wilsonp' LAST_UPDATED_BY
              ,CURRENT_TIMESTAMP LAST_UPDATE_DATE
              FROM (
                SELECT PROCESS_ID
                ,TRANS_ENTITY_TYPE ENTITY_TYPE
                ,MIN(TRANS_ENTITY_ID) ENTITY_ID
                ,TRANS_ENTITY_NAME ENTITY_NAME
                ,MIN(GL_EFFECTIVE_PERIOD_NUM) ENTITY_NAME_ORDER
                FROM AIF_PROCESS_PERIODS
                WHERE PROCESS_ID = 265
                AND PRIOR_PERIOD_FLAG = 'N'
                GROUP BY PROCESS_ID
                ,TRANS_ENTITY_TYPE
                ,TRANS_ENTITY_NAME
              ) q
              ORDER BY ENTITY_NAME_ORDER
    2015-03-12 16:57:31,887 DEBUG [AIF]: CommWb.insertTransProcessDetails - END
    2015-03-12 16:57:31,891 DEBUG [AIF]:
            DELETE FROM TDATAMAP_T
            WHERE LOADID < 265
            AND EXISTS (
              SELECT 1
              FROM AIF_PROCESSES p
              WHERE p.RULE_ID = 10
              AND p.PROCESS_ID = TDATAMAP_T.LOADID
    2015-03-12 16:57:31,901 DEBUG [AIF]:
            DELETE FROM AIF_WRITEBACK_ESS_DATA_T
            WHERE LOADID < 265
            AND EXISTS (
              SELECT 1
              FROM AIF_PROCESSES p
              WHERE p.RULE_ID = 10
              AND p.PROCESS_ID = AIF_WRITEBACK_ESS_DATA_T.LOADID
    2015-03-12 16:57:33,060 DEBUG [AIF]:
            DELETE FROM AIF_PROCESS_PERIODS
            WHERE PROCESS_ID < 265
            AND EXISTS (
              SELECT 1
              FROM AIF_PROCESSES p
              WHERE p.RULE_ID = 10
              AND p.PROCESS_ID = AIF_PROCESS_PERIODS.PROCESS_ID
    2015-03-12 16:57:33,066 DEBUG [AIF]:
            DELETE FROM TDATASEGW
            WHERE LOADID < 265
            AND EXISTS (
              SELECT 1
              FROM AIF_PROCESSES p
              WHERE p.RULE_ID = 10
              AND p.PROCESS_ID = TDATASEGW.LOADID
    2015-03-12 16:57:33,069 DEBUG [AIF]: CommMap.loadTDATAMAP_T - START
    2015-03-12 16:57:33,071 DEBUG [AIF]: CommData.getMapPartitionKeyandName - START
    2015-03-12 16:57:33,071 DEBUG [AIF]:
            SELECT COALESCE(part_parent.PARTITIONKEY, part.PARTITIONKEY) PARTITIONKEY
            ,COALESCE(part_parent.PARTNAME, part.PARTNAME) PARTNAME
            FROM TPOVPARTITION part
            LEFT OUTER JOIN TPOVPARTITION part_parent
              ON part_parent.PARTITIONKEY = part.PARTPARENTKEY
            WHERE part.PARTITIONKEY = 5
    2015-03-12 16:57:33,073 DEBUG [AIF]: CommData.getMapPartitionKeyandName - END
    2015-03-12 16:57:33,073 DEBUG [AIF]:
            INSERT INTO TDATAMAP_T (
              LOADID
              ,DATAKEY
              ,PARTITIONKEY
              ,DIMNAME
              ,SRCKEY
              ,SRCDESC
              ,TARGKEY
              ,WHERECLAUSETYPE
              ,WHERECLAUSEVALUE
              ,CHANGESIGN
              ,SEQUENCE
              ,VBSCRIPT
              ,TDATAMAPTYPE
              ,SYSTEM_GENERATED_FLAG
              ,RULE_ID
            SELECT 265
            ,DATAKEY
            ,5 PARTITIONKEY
            ,DIMNAME
            ,SRCKEY
            ,SRCDESC
            ,CASE WHEN (TDATAMAPTYPE = 'EPM' AND TARGKEY = '<BLANK>') THEN ' ' ELSE TARGKEY END
            ,WHERECLAUSETYPE
            ,CASE WHEN (TDATAMAPTYPE = 'EPM' AND WHERECLAUSEVALUE = '<BLANK>') THEN ' ' ELSE WHERECLAUSEVALUE END       
            ,CHANGESIGN
            ,SEQUENCE
            ,VBSCRIPT
            ,TDATAMAPTYPE
            ,SYSTEM_GENERATED_FLAG
            ,RULE_ID
            FROM TDATAMAP tdm
            WHERE PARTITIONKEY = 5
            AND (RULE_ID IS NULL OR RULE_ID = 10)
            AND (
              TDATAMAPTYPE = 'EPM'
              OR (
                TDATAMAPTYPE = 'MULTIDIM'
                AND EXISTS (
                  SELECT 1
                  FROM TDATAMAP multidim
                  WHERE multidim.PARTITIONKEY = tdm.PARTITIONKEY
                  AND multidim.TDATAMAPTYPE = 'EPM'
                  AND multidim.DATAKEY = tdm.TARGKEY
    2015-03-12 16:57:33,077 DEBUG [AIF]: Number of Rows inserted into TDATAMAP_T: 14
    2015-03-12 16:57:33,122 DEBUG [AIF]: CommMap.updateTDATASEG_T_TDATASEGW - START
    2015-03-12 16:57:33,123 DEBUG [AIF]:
            SELECT DIMNAME
            ,SRCKEY
            ,TARGKEY
            ,WHERECLAUSETYPE
            ,WHERECLAUSEVALUE
            ,CHANGESIGN
            ,SEQUENCE
            ,DATAKEY
            ,MAPPING_TYPE
            ,CASE WHEN (RULE_ID IS NOT NULL) THEN 'Y' ELSE 'N' END IS_RULE_MAP
            FROM (
              SELECT DISTINCT tdm.DIMNAME
              ,tdm.RULE_ID
              ,NULL SRCKEY
              ,NULL TARGKEY
              ,tdm.WHERECLAUSETYPE
              ,tdm.WHERECLAUSEVALUE
              ,NULL CHANGESIGN
              ,1 SEQUENCE
              ,COALESCE(tdm.SYSTEM_GENERATED_FLAG,'N') SYSTEM_GENERATED_FLAG     
              ,NULL DATAKEY
              ,CASE
                WHEN tdm.WHERECLAUSETYPE IS NULL THEN 1
                ELSE 3
              END MAPPING_TYPE
              FROM TDATAMAP_T tdm
              WHERE tdm.LOADID = 265
              AND tdm.PARTITIONKEY = 5
              AND tdm.TDATAMAPTYPE = 'EPM'
              AND (tdm.RULE_ID IS NULL OR tdm.RULE_ID = 10)
              AND tdm.WHERECLAUSETYPE IS NULL
              UNION ALL
              SELECT tdm.DIMNAME
              ,tdm.RULE_ID
              ,tdm.SRCKEY
              ,tdm.TARGKEY
              ,tdm.WHERECLAUSETYPE
              ,tdm.WHERECLAUSEVALUE
              ,tdm.CHANGESIGN
              ,CASE tpp.PARTSEQMAP
                WHEN 0 THEN CASE
                  WHEN (tdm.WHERECLAUSETYPE = 'BETWEEN') THEN 2
                  WHEN (tdm.WHERECLAUSETYPE = 'IN') THEN 3
                  WHEN (tdm.WHERECLAUSETYPE = 'MULTIDIM') THEN 4
                  WHEN (tdm.WHERECLAUSETYPE = 'LIKE') THEN 5
                  ELSE 0
                END     
                ELSE tdm.SEQUENCE
              END SEQUENCE
              ,COALESCE(tdm.SYSTEM_GENERATED_FLAG,'N') SYSTEM_GENERATED_FLAG
              ,tdm.DATAKEY
              ,CASE
                WHEN tdm.WHERECLAUSETYPE IS NULL THEN 1
                ELSE 3
              END MAPPING_TYPE
              FROM TDATAMAP_T tdm
              INNER JOIN TPOVPARTITION tpp
                ON tpp.PARTITIONKEY = tdm.PARTITIONKEY
              WHERE tdm.LOADID = 265
              AND tdm.PARTITIONKEY = 5
              AND tdm.TDATAMAPTYPE = 'EPM'
              AND (tdm.RULE_ID IS NULL OR tdm.RULE_ID = 10)
              AND tdm.WHERECLAUSETYPE IN ('BETWEEN','IN','MULTIDIM','LIKE')
            ) q
            ORDER BY DIMNAME
            ,SEQUENCE
            ,RULE_ID
            ,SYSTEM_GENERATED_FLAG
            ,SRCKEY
    2015-03-12 16:57:33,129 DEBUG [AIF]: CommMap.updateTDATASEG_T_TDATASEGW - END
    2015-03-12 16:57:33,138 DEBUG [AIF]: CommMap.loadTDATAMAPSEG_TDATASEG - START
    2015-03-12 16:57:33,139 DEBUG [AIF]: CommMap.loadTDATAMAPSEG_TDATASEG - END
    2015-03-12 16:57:33,217 DEBUG [AIF]: CommMap.validateData - START
    2015-03-12 16:57:33,218 DEBUG [AIF]: CommMap.validateData - END
    2015-03-12 16:57:33,311 DEBUG [AIF]: Comm.finalizeProcess - START
    2015-03-12 16:57:33,312 DEBUG [AIF]: CommWb.updateRuleStatus - START
    2015-03-12 16:57:33,313 DEBUG [AIF]:
        UPDATE AIF_WRITEBACK_RULES
        SET STATUS = CASE 'SUCCESS'
          WHEN 'SUCCESS' THEN
            CASE (
              SELECT COUNT(*)
              FROM AIF_PROCESS_DETAILS pd
              WHERE pd.PROCESS_ID = 265
              AND pd.STATUS IN ('FAILED','WARNING')
            WHEN 0 THEN 'SUCCESS'
            ELSE (
              SELECT MIN(pd.STATUS)
              FROM AIF_PROCESS_DETAILS pd
              WHERE pd.PROCESS_ID = 265
              AND pd.STATUS IN ('FAILED','WARNING')
            END
          ELSE 'SUCCESS'
        END
        WHERE RULE_ID = 10
    2015-03-12 16:57:33,317 DEBUG [AIF]: CommWb.updateRuleStatus - END
    2015-03-12 16:57:33,318 DEBUG [AIF]: Comm.updateProcess - START
    2015-03-12 16:57:33,322 DEBUG [AIF]: Comm.updateProcess - END
    2015-03-12 16:57:33,323 INFO  [AIF]: FDMEE Process End, Process ID: 265
    I have created the following write-back mappings:
    UD1,*,*,Z_Catch All Entity
    UD1,CO_*,*,"Remove prefix ""Co_"""
    UD2,*,*,Z_Catch All Account
    UD2,ACC_*,*,Remove ACC_
    UD3,*,*,Local Account Pass Through
    UD4,*,*,Z_Catch All MC
    UD4,CC_*,*,"Remove prefix ""CC_"""
    UD5,*,*,Z_Catch All Event Edition
    UD5,SY*,*,"Remove prefix ""SY"""
    UD6,*,*,Activity pass through
    UD7,*,*,Z_Catch All Product
    UD7,PRD_*_I,*,Remove prefix PRD
    UD8,*,*,ICP pass through
    UD9,*,*,Spare pass through
    Which is basically to strip off some prefixes, or just pass through the values.
    In the Import Format I have the following Write Back Mapping:
    Source Dimension     Source Segment
    Account                     Account
    Activity                      Activity
    Entity                        Entity
    SessionYear            Event Edition
                                     Intercompany
                                     Local Account
    ManagementCentre  Management Centre
    Product                    Product
                                     Spare
    For my Write Back Rule I select the Location: RXFin_EBS_PL, the Primary Ledger in EBS
    Period: Dec-14
    Category: Budget - The name of the scenario in Planning.
    Source:  RX_EBS
    Target: RXFIN
    Plan Type: Finance
    I have Source Filters to limit the amount of data it tries to pull in.
    Account: @Relative("Profit & Loss",0)
    Entity: "CO_0052"
    Activit:y @Relative("AllActivities",0)
    Period: @Relative("YearTotalPlan",0)
    Version: "FinalVersion"
    Year: "FY14"
    And for Budget: RX RF1 2014
    Budget Organization: RX Budget Org - Though I am not sure what this does.
    I execute Import from Source, and it process for several minutes, and then nothing is in the Workbench.
    There is data in Planning as far as I can see, and with no errors I am at a loss on what to investigate.
    Can anyone assist?
    Thanks,

    Do you have any luck if you simplify the source filter to try and be as specific as possible and only bring in as few rows as possible from a known good intersection as a sanity check?
    Regards
    Craig

  • Query Database - Write to Database

    I am querying a SQL DB which has 10 results in total with 15 fields each. The run book will filter out 2 eventually based on some rules.
    Once all the activities are complete as per the runbook, I want to write back to the database as 'Complete' under Field called Status
    The write works, however it creates a new item completely. I want to update the existing request
    Regards, Vik Singh "If this thread answered your question, please click on "Mark as Answer"

    So if I understand correctly you are querying a database and based on the response you do some activities and then you want to update the records you queried in order to indicate that the activities have been completed?
    If you just want to update the existing records then I would probably just do an Update query based on the primary-key of the record you queried using the "Query Database" activity instead of the "Write to Database" (which always writes
    a new record).
    Something like: Update [Table Name] set Status = 'Completed' where PrimaryKey = 'xxx'
    You will probably need to cut up the Query Result from your first query first in order to get the Primary Key.
    Usually I do this by reading Published Data "Full Line as String Seperated by ;" with a PowerShell Script (Run .NET Activity).
    For example:
    $Query = <Full Line as String >   //Published Data from the Query activity
    $All_Records = $Query.Split(";") //this creates an array where every record is a column from the query result
    $PrimaryKey = $All_Records[0]  (if the primarykey is found in the first record of the array of course)
    Then use that $PrimaryKey value in your new query.

  • OBIEE Write Back - Insert New Row

    Hello,
    I am new to these forums and looking for some help with OBIEE's Write Back feature.
    I have Write Back working fine with respect to updating existing rows in a table (ie: the UPDATE tag), but was wondering how to force Write back to invoke the INSERT feature. I would like to be able to create new rows in a table to allow my end user to dynamically add and remove information. I have heard of this being possible (perhaps through some sort of temp. table) in other forum posts, but have yet to see how this is implemented. Also, is it at all possible to use Write Back to delete rows in a table? Any help here would be greatly appreciated. Thanks!
    -Mike
    Here is an exerpt from my working XML file:
    <WebMessage name="NEWSNOTESADMIN">
    <XML>
    <writeBack connectionPool="Oracle Data Warehouse Connection Pool">
    <insert>INSERT INTO WC_NEWS_NOTES (CONTENTS, CONTENT_DATE, IMPORTANCE_LVL) VALUES(@{c0},@c{4},@{c2})</insert>
    <update>UPDATE WC_NEWS_NOTES SET CONTENTS='@{c0}', CONTENT_DATE='@{c4}', IMPORTANCE_LVL=@{c2} WHERE CONTENT_ID='@{c1}' </update>
    </writeBack>
    </XML>
    </WebMessage>

    Well first and foremost, Oracle explicitly states that writeback isn't meant to be used to transform OBIEE into a data entry system. Check the other posts on this subject...
    On the "force insert": put the same statement you have for INSERT into the UPDATE tag. Related to the initial point I mentioned: you will have to worry about uniqueness yourself. OBIEE isn't an OLTP platform!
    Re. delete: I liked Stijns recent post, so I'm going to use that as well:
    http://www.justfuckinggoogleit.com/search.pl?query=obiee+delete+through+writeback
    Third hit. Venkats blog.

  • OBIEE Write Back

    Hi,
    I am trying to configure write back in one of my reports. I have already created a Write back template which looks as follows:
    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
         <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
         <WebMessage name="WriteBack">
         <XML>
         <writeBack connectionPool="Connection Pool_DM">
         <insert>INSERT INTO Debt_Fact VALUES('@{c9}')</insert>
         <update>UPDATE Debt_Fact SET Remarks =('@{c9}')</update>
              <postupdate>COMMIT</postupdate>
         </writeBack>
         </XML>
         </WebMessage>
         </WebMessageTable>
    </WebMessageTables>
    When i try to enter values in the write back field it give me the following error:
    An error occurred while writing to the server. Please check to make sure you have entered appropriate values. If the problem persists, contact your system administrator.
    Odbc driver returned an error (SQLExecDirectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43093] An error occurred while processing the EXECUTE PHYSICAL statement. [nQSError: 16001] ODBC error state: 37000 code: 8180 message: [Microsoft][SQL Native Client][SQL Server]Statement(s) could not be prepared.. [nQSError: 16001] ODBC error state: 21S01 code: 213 message: [Microsoft][SQL Native Client][SQL Server]Insert Error: Column name or number of supplied values does not match table definition.. [nQSError: 16002] Cannot obtain number of columns for the query result. (HY000)
    SQL Issued: EXECUTE PHYSICAL CONNECTION POOL "Connection Pool_DM" INSERT INTO Debt_Fact VALUES('d')
    Any Help is appreciated.... Thanks
    Edited by: Siddharth Chitre on May 8, 2010 7:57 PM

    Hi Siddharth,
    I came across the same while implementing the write back.
    Make sure following points are checked.
    1.Table whoch you are updating should disable cache
    2.In Answers,user must have acess writeback previleges.For this access,you need to go manage previleges and give access.
    3.Template name in Answers should match with the values in XML...i.e<WebMessage name="WriteBack">
    For the error,the solution is
    To ignore/fix this error, with ifnull(tablename.Remarks,'n/a') in the Fx section. Try it
    Regards
    Uday Annagiri

  • WRITE BACK ERROR URGENT HELP

    Hi Experts,
    Below is the xml code for the write back and i am getting the error .
    Please go through and let me know how shud i correct the code if it is wrong,...
    <?xml version="1.0" encoding="utf-8"?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
    <WebMessageTable lang="en-us" system="writeBack" table="Messages">
    <WebMessage name="CUST_FPP_REV1">
    <XML>
    <writeBack connectionPool="RecoPool">
    <insert>INSERT into DAILY.REVRECAT (SERVICE_REV) values (@{c4})</insert>
    <update> UPDATE DAILY.REVRECAT set SERVICE_REV=@(c4) where COMBI='@(c17)'</update>
    </writeBack>
    </XML>
    </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    The error I am getting when I click on the write back button is
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. NQODBC SQL_STATE: HY000 nQSError: 10058 A general error has occurred. nQSError: 43093 An error occurred while processing the EXECUTE PHYSICAL statement. nQSError: 17001 Oracle Error code: 904, message: ORA-00904: "C4": invalid identifier at OCI call OCIStmtExecute: UPDATE DAILY.REVRECAT set SERVICE_REV=(c4) COMBI='(c17)'. nQSError: 17011 SQL statement execution failed. (HY000)
    SQL Issued: EXECUTE PHYSICAL CONNECTION POOL RecoPool UPDATE DAILY.REVRECAT set SERVICE_REV=(c4) where COMBI='(c17)' "Also can we pass prsentation variables in the write back xml template..(.in the where clause in the SQL query)
    Appreciate your immediate reponse as this has become a work stopper for me ...
    Please let me know where I am going wrong.
    Regards,
    Veena A
    Edited by: mithuu on Mar 3, 2009 3:17 AM
    Edited by: mithuu on Mar 3, 2009 3:19 AM

    Hi Nico,
    Thanks for your reply but i am really confused...
    I tried with the points you told but not now gettig the error as
    " Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. NQODBC SQL_STATE: HY000 nQSError: 10058 A general error has occurred. nQSError: 43093 An error occurred while processing the EXECUTE PHYSICAL statement. nQSError: 17001 Oracle Error code: 904, message: ORA-00904: "C4": invalid identifier at OCI call OCIStmtExecute: UPDATE DAILY.REVRECAT set SERVICE_REV=(c4) COMBI='(c17)'. nQSError: 17011 SQL statement execution failed. (HY000)
    SQL Issued: EXECUTE PHYSICAL CONNECTION POOL RecoPool UPDATE DAILY.REVRECAT set SERVICE_REV=(c4) where COMBI='(c17)' "
    Please help as i am new to this tool.
    Appreciate your help.
    Regards,
    Veena A
    Edited by: mithuu on Mar 3, 2009 3:20 AM

  • Write back feature giving an error

    hi all
    i have implemented write back feature in obiee,
    in custom messages i have created one xml file,in that i have written one updated command
    when i am trying to update the record from the answers it is giving an error
    in xml file i have created WebMessage name= "Insertorupdate",even i wrote simple update command,
    <update>
    update user_table set name='@{c1}',description='@{c2}',create_date=sysdate,active='@{c3}' where user_name='{c0}'
    </update>
    this is the error message i am getting,
    The system is unable to read the Write Back Template 'Insertorupdate'. Please contact your system administrator.
    Thanks
    Sreedhar

    hi kishore
    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web.messageSystem">
    <WebMessageTable lang="en-us" system="messages" table="Templates">
    <!-- Testing templates used for writing back into an Excel workbook used as a data source -->
    <!-- Save this file in the OracleBIData\web\msgdb\customMessages folder as WriteBackTemplate.xml -->
    <WebMessage name= "Insertorupdate">
    <XML>
    <writeBack connectionPool="WriteBack">
    <!-- Table has columns Col1, Col2, Col3Char, Col4Date and in query c0 maps to Col1, c1 maps to Col3Char, c2 maps to
    Col4Date, c3 maps to Col2-->
    <update>
    update Create_user set full_name='@{c1}',description='@{c2}',create_date=sysdate,is_active='@{c3}' where
    user_name='{c0}'
    </update>
    </writeBack>
    </XML>
    </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    in my table i am having 7 columns,but here i am using only 4columns for updating.is it wrong???
    Thaks
    Sreedhar
    Edited by: 791907 on Oct 19, 2010 3:18 AM

  • 10g Write back works for some users, not others

    Dear Gurus,
    I have a strange problem with the Write Back in my system. We use Write-back pretty extensively and have maybe 10-20 separate reports, updating a number of tables.
    We have been using this system for almost a year with no problems - Myself (logging in as Administrator) and a member of the Business team, logging in as herself (a member of the Presentation Server Administrator Group).
    We now require two more Business power-users to use our Write-back reports. I have added them to the Presentation Server Administrator group. However, when they try to enter values into ANY of the write-back reports, they get the following error;
    An error occurred while writing to the server. Please check to make sure you have entered appropriate values. If the problem persists...
    *State: HY000. Code 10058 [NQODBC]... A general error has occurred. [nQSERROR 27024] The EXECUTE PHYSICAL statement must specify a physical SQL statement to execute (HY000)*
    SQL issued: EXECUTE PHYSICAL CONNECTION POOL "GL Oracle Data Warehouse Connection Pool"
    I do not understand why the write back is working without error for my own user, the Admin user and a member of the business team who is in the Presentation Server Administrator group, but not for two new additions to that group.
    I have checked that the Presentation Server Admin group is granted on the "Enable/Manage Write Back" privilege and on the Execute SQL privilege.
    Any ideas what else I could check?
    Thanks,
    A.

    Hey Amith,
    Thanks for your quick reply! Unfortunately, this doesn't seem to be the case. The system is pretty much wide open, apart from the Write pack privilege, which only the Presentation Server Administrator group has access to.
    I'm having another of my Presentation Server Administrators who has been in the group forever try to use the write back.
    There's no specific connection pool or database level permissions for write back, is there? And there's no specific permissions which need to be set on the xml template files?
    Thanks,
    A.

  • Error While performing Budget Write Back using ERPi

    Hi,
    We are getting the following error while Importing the data for Budget Write back using ERPi.
    "va.lang.Exception: Cannot get the olap server name for planning application GSECPLAN
    ERPI Process Start, Process ID: 187
    ERPI Logging Level: DEBUG (5)
    ERPI Log File: C:\Users\HYP_SV~1\AppData\Local\Temp\2\/aif_601_187.log
    Jython Version: 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)
    [Java HotSpot(TM) 64-Bit Server VM (Sun Microsystems Inc.)]
    Java Platform: java1.6.0_29
    Call Servlet - START
    Call Servlet - END
    ERPI Process End, Process ID: 187"
    The Write-back was working fine and we have done the write back successfully few days back. We have not made any changes in write back set up except some mapping.
    Any clue on this issue?
    Thanks & Regards,
    Sunil.

    Thanks John for your response.
    I have already restarted the planning service and checked. But no luck.
    Regards,
    Sunil.
    Edited by: 926629 on May 7, 2013 12:26 AM

  • Write Back Error in  OBIEE 11.1.1.7.150120

    Hello everybody,
    i have a problem with the writeback capabilities of OBIEE 11.1.1.7.150120.
    After the Migration from 10g to 11g i would like to customize the write back in 11g. I go like Oracle BI Practice: OBIEE 11g Configure Writeback this, but getting an OBIEE error:
    "Write Back Error
    An error occurred while writing to the server. Please check to make sure you have entered appropriate values. If the problem persists, contact your system administrator."
    The table does not have any constraint. I would like to insert for example the value "2".
    In my table properties i fill in "filling".
    My ...\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\analyticsRes\customMessages\writeback.xml looks like that:
    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
    <WebMessage name="filling">
    <XML>
    <writeBack connectionPool="Connection Pool">
    <insert> </insert>
    <update>update analyticmodel.last_runtimes set laru_exec = @1, laru_runtime_start = sysdate </update>
    </writeBack>
    </XML>
    </WebMessage>
    <WebMessage name="machine_filling">
    <XML>
    <writeBack connectionPool="Connection Pool">
    <insert> </insert>
    <update>update analyticmodel.machine_filling set mf_mach_id = @{c0}</update>
    </writeBack>
    </XML>
    </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    Thank you very much
    Best regards
    Christian

    Hi Cristian,
    You must use '' at script when call some column value. (use '@1' instead of @1)
    Tip.. note you can use your "WebMessage Name" (from your script, like "filling", "machine_filing") into your analisys.
    Hope this help
    Felipe Idalgo

Maybe you are looking for