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 AMHi 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 -
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. -
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 PMHi 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 -
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 AMHi 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
Sreedharhi 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
ChristianHi 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
-
How do I get Bridge CS5 to display CR2 previews???
Dear wonderful Adobe community I have recently upgraded to Photoshop CS5 from CS4. As far as I can read/ascertain/gather Camera Raw 6 came with the package and installed when the main installation ran. Bridge CS4 displays my CR2 Raw file previews fro
-
TV Tunner cable connector for Antenna
I recently received a Lenovo All-In-One PC model 3000 C315. The Windows7 Device Manager shows "AverMedia A317 Mini-Card Hybrid Analog/ATSC" device. The TV Tuner connector is not the normal coaxial f-type. It is smaller. What type of cable connecto
-
Warp stabilizer cropping/position issue?
So I don't think I've ever had this issue and I'm wondering if has to do with using it on a 13" macbook, since i've never had this issue on my iMac, but when I place the warp stabilizer effect the clip turns into a small cropped corner like so in the
-
VS 2012 report project query designer greyed out
The graphical editor stopped working while editting a report project dataset. Now it shows all the button greyed out. It now only works in "Edit as Text" mode. I can't seem to find a fix.
-
I bought this MacBook and was wondering how do I figure out what year it was made. It has no harddrive in it.