BIEE set write back in logic level
Hello!When I do biee toos write back setting in logic level.set column write back and i chacked it ,then when I check OK , BI TOOS closed itself.
BIEE:11.1.1.5.0.who can help me ,tanhks!
Hi MuRam,
Thanks for your quick reply. The following are some setting in my environment, please let me know if I miss something.
1. I have a table WBTEST with 2 column A and B, both of them are VARCHAR2.
2. I active the Write Back to A and B in BMM layer. And grant Read/Write to ConnPool in Physical layer. I tried to grant Read/Write to Presentation Table, it comes some problem to my Subject Area.
3. I add a template as ORACLE_INSTANCE/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obipsn/analyticsRes/customMessages/WBTest.xml, and the content as following:
<?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="WBTestSample">
<XML>
<writeBack connectionPool="ylbist02-DM">
<insert>INSERT INTO WBTEST VALUES('@1', '@2')</insert>
<update>UPDATE WBTEST SET B='@2' WHERE A='@1'</update>
<postUpdate>COMMIT</postUpdate>
</writeBack>
</XML>
</WebMessage>
<WebMessage name="WBTestSample2">
<XML>
<writeBack connectionPool="ConnPool">
<insert>INSERT INTO WBTEST VALUES('@1', '@2')</insert>
<update>UPDATE WBTEST SET B='@2' WHERE A='@1'</update>
<postUpdate>COMMIT</postUpdate>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>
4. I active the Write Back in Answer and use WBTestSample and WBTestSample2. Both of them gave the same error to me.
By the way, there is nothing in my nqquery.log. Do I have to turn something on so it can be logged?
Best Regards,
Martin
Similar Messages
-
Setting aggregation content for logical level in 11g
Hi Guys,
When working on with horizontal and vertical federation in OBIEE 11g with multiple data sources here in my case it is essbase and RDBMS.
1) pulled the columns and dragged into the concerened table.
2) The related heirarchies have been defined.
3) when trying to go to one of the LTS and trying to set the logical level aggregation im not able to see the levels columns corresponding nor im getting the get levels option to get them. where am i going wrong?
when im trying to join a fact by pulling it on to the fact...i can see the levels in content tab,but when i try to define levels and check it its giving me error "There are no levels matching the BI algorithm"
Any answers wud be appreciated.
TIA,
KK
Edited by: Kranthi.K on Sep 5, 2011 2:52 AMIt is autocreated,i dint customize it.....Im dropping the RDBMS table onto the Essbase cube dimension table and im not getting the RDBMS content levels that should be defined in the LTS of the table,and the RDBMS table has an level based hierarchy but still no sucess.
Any more ideas
UPDATED POST
Deepak,it was not helpful as i have gone through tht document before....Im trying it in all scenerios to figure out where actually it is going wrong.
If i dont find the path,i will let you kne what im trying to do so you can help me out.
UPDATED POST-2
Any more pointers from the experts.
Edited by: Kranthi.K on Sep 6, 2011 7:01 AM -
Hi all,
Usually we set the Logical Level (Content Tab) for the LTS in the Fact table.
Is there any best practice to set it for the LTS in Dimension tables too? If yes, why do we do that?
Please clarify on this. This is very urgent.
Regards.one thing is If you have multiple LTS in a single dimension like detail dim and aggregated dim. then you have to set the content levels for each LTS. Its always a good practice to mention which level the dimension is in any case.
-
Help on Setting logical Levels in Fact tables and on Dimension tables
Hi all
Can any body provide any blogs or any king of material on what exactly is levelling .
Like after creating the Dimensional hierarchies we need to set the logical levels for the LTS of fact tabels ri8 .So what is the difference between setting logical levels to fact tabels and also Setting levelling on Dimension tables .
Any kind of help is appreciated
Thanks
Xavier.
Edited by: Xavier on Aug 4, 2011 10:50 AMI have read these blogs ,but what my question is
Setting the logical levels in LTS of Fact tables i understood .
But we can also set the logical levels for dimensions also ri8 .I didn't understand why do we set the logical levels for dimensions .Is there any reason why we go with the levelling at dimensions
Thanks
Xavier
Edited by: Xavier on Aug 4, 2011 2:03 PM
Edited by: Xavier on Aug 4, 2011 2:32 PM -
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. -
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 -
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 - 11.1.1.6.2
Hi,
Has anyone been able to update records using writeback in 11.1.1.6.2?
Update works, in 10g but in 11.1.1.6.2 I get always the error "Write Back Error".
I have tried the following steps:
1) physical table non-cacheable.
2) in logical column writeback option
3) grant read/write columns in rpd
3) LightWriteback element in the instanceconfig.xml file
4) In Oracle BI Presentation Services, grant write-back privileges to the user
4) pasting xml file in custommessages folders:
D:\OBIEE11g\instances\instance1\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\analyticsRes\customMessages
D:\OBIEE11g\instances\instance1\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\analyticsRes\WEB-INF\customMessages
My template is:
<?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="test">
<XML>
<writeBack connectionPool="testdb">
<insert>UPDATE user1.table_write_back SET val1=@{c4}, val2=@{c10} WHERE cod_month=@{c8} and cod_line = @{c9}</insert>
<update>UPDATE user1.table_write_back SET val1=@{c4}, val2=@{c10} WHERE cod_month=@{c8} and cod_line = @{c9}</update>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>
Any suggestion?
Thanks.Hello PeterJwindows8,
I understand that your iPhone 5 is not recognized by iTunes. The following article may help to resolve your issue:
iOS: Device not recognized in iTunes for Windows
http://support.apple.com/kb/TS1538
Thanks,
Matt M. -
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,
PankajHi 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 -
hi
I am using BI11g. How can i create write back in BI11g?
thanks
kaviKavitha,
Considering you already have an idea about implementing writeback in BIEE 10g. On presentation services side the configuration remains the same except the writeback selection in column properties is bit change but there is specific change in RPD side configuration that should be taken care of to enable write back on a particular column, you must select the Writeable option for the logical column, and enable the Read/Write permission for the corresponding presentation column. You must also disable caching on the corresponding physical table.
Hope you find this useful..
Thanks,
Deepak -
Hi I've installed BIEE on a XP machine, with the OC4J option. The machine also has Oracle10gR2 database on it.
I've been able to set up a repository and this is accessing the database ok. The answers page shows my created presentation layer.
I'm now trying to implement write back and think the configuration to be correct (more than likely not) other than the connection pool in the xml. Anyway I get the following error(s) when I press commit on the dashboard.
(I've tried the sql direct and this works)
Type: Error
Severity: 40
Time: Sun Feb 10 22:57:14 2008
File: project/webodbcaccess/odbcstatementimpl.cpp Line: 196
Properties: ConnId-10;StmtId-75;ThreadID-716;HttpCommand-WriteBack;RemoteIP-192.168.1.207;User-isdb_admin
Location:
saw.odbc.statement.execute
saw.httpserver.request
saw.rpc.server.responder
saw.rpc.server
saw.rpc.server.handleConnection
saw.rpc.server.dispatch
saw.threadPool
saw.threads
Odbc driver returned an error (SQLExecDirectW).
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred.
[nQSError: 27022] Unresolved Connection Pool object: "JWH"."Connection_Pool". (HY000)
Type: Error
Severity: 42
Time: Sun Feb 10 22:58:04 2008
File: project/webcomm/socket.cpp Line: 635
Properties: ThreadID-716
Location:
saw.rpc.server
saw.rpc.server.handleConnection
saw.rpc.server.dispatch
saw.threadPool
saw.threads
An error occurred during execution of "recv". An unknown error occurred in the sockets library. [Socket:-1]
The XML for the write-back is
<?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="SHNEW">
<XML>
<writeBack connectionPool="JWH"."Connection_Pool">
<insert> </insert>
<update>UPDATE SEARCH SET S_STRING='@{c1}'</update>
<postUpdate>COMMIT</postUpdate>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>
Note I've tried combinations with out source name 'JWH' and versions with and with out the _ (configured in the repository also)
Any hints at what to look next are most welcome.
everything else seems to work. The machine has full oracle on (so includes tns etc)
John
Message was edited by:
johnhol_rokeOk found my error.
Connection pool in repository had space in name "Connection _Pool" instead of "Connection_Pool", only visible if you cut and paste the connection details from repository into note pad.
Every thing now works.
Message was edited by:
johnhol_roke -
Write Back - Database update logs user out
Hi All,
I have implemented write back functionality on a single varchar field in one of my reports. Everything appears to be setup correctly (permissions are set at the presentation and rpd layer to allow for the write back and the write back template appears to have no issues). When a user logs in they are able to see the editable fields and the Update button is enabled. When a user then changes a field value and hits the update button, everything again appears to complete without any error and checking the database side the update shows up correctly.
The issue is that after the Update button is pressed and the database changes are committed successfully, the users session keeps getting logged out. Once they hit the update button and then try to click anywhere else within OBIEE, they are automatically hit with the logged out page and need to log back in. This happens everytime and the changes do take to the database.
Has anyone ever seen this before? I have tried shutting down all windows and clearing browser cache and then coming in fresh but keeps happening.
Thanks,
kHi,
though this thread is closed i just want to put some note.
try playing with the Isolation Levels.
If you used Toad, you might have come across a functionality when your logging off...which is to commit your transactions before logging off.
Envisioning this functionality i presume there should be some db level property that might be causing this in that particular environment.
thanks
-nag
http://www.obinotes.com -
Logical level in Fact tables - best practice
Hi all,
I am currently working on a complex OBIEE project/solution where I am going straight to the production tables, so the fact (and dimension) tables are pretty complex since I am using more sources in the logical tables to increase performance. Anyway, what I am many times struggling with is the Logical Levels (in Content tab) where the level of each dimension is to be set. In a star schema (one-to-many) this is pretty straight forward and easy to set up, but when the Business Model (and physical model) gets more complex I sometimes struggle with the aggregates - to get them work/appear with different dimensions. (Using the menu "More" - "Get levels" does not allways give the best solution......far from). I have some combinations of left- and right outer join as well, making it even more complicated for the BI server.
For instance - I have about 10-12 different dimensions - should all of them allways be connected to each fact table? Either on Detail or Total level. I can see the use of the logical levels when using aggregate fact tables (on quarter, month etc.), but is it better just to skip the logical level setup when no aggregate tables are used? Sometimes it seems like that is the easiest approach...
Does anyone have a best practice concerning this issue? I have googled for this but I haven't found anything good yet. Any ideas/articles are highly appreciated.Hi User,
For instance - I have about 10-12 different dimensions - should all of them always be connected to each fact table? Either on Detail or Total level.It not necessary to connect to all dimensions completely based on the report that you are creating ,but as a best practice we should maintain all at Detail level only,when you are mentioning any join conditions in physical layer
for example for the sales table if u want to report at ProductDimension.ProductnameLevel then u should use detail level else total level(at Product,employee level)
Get Levels. (Available only for fact tables) Changes aggregation content. If joins do not exist between fact table sources and dimension table sources (for example, if the same physical table is in both sources), the aggregation content determined by the administration tool will not include the aggregation content of this dimension.
Source admin guide(get level definition)
thanks,
Saichand.v -
Logical level for logical fact table sources
it is clear that for fact aggregates, we should use the Content tab of the Logical Table Source dialog to assign the correct logical level to each dimension.
question is : is it mandatory to assign even for non-aggregates fact tables the logical level for each dimension (which normally should be set to the most detailed level of each dimension) ? is it any known issue if "logical levels"in content tab are not set ?
the reason I'm asking this is a strange bug I have (I'm not going to discuss it here) and then only workaround seems to be NOT setting the logical levels (on content tab) for logical fact table sources.
thank you !If levels are not set: By default levels are considered as lowest level
It should not matter if you set or not
Generally we set for facts explicitly when we are using Aggregate tables.
Your current issue might be a case by case; I would suggest to check implicit fact, any table mapped to the source to force a join etc
Mark if helps
Let me know how it helps
Edited by: Srini VEERAVALLI on Feb 5, 2013 8:33 AM
Any updates on this?+_
Edited by: Srini VEERAVALLI on Feb 14, 2013 9:09 AM -
Use of New logical Level Key in OBIEE
Hi all,
can anybody tell me what is the use of newlogicallevel key in hierarchies(OBIEE).
why we need to set a newlogical level key for each level in hierarchies.
pls explain in detail....
regards
bharathYou may get info as below if you use Admin tool help file
Level keys. Each logical level (except the topmost level defined as a Grand Total level) needs to have one or more attributes that compose a level key. The level key defines the unique elements in each logical level. The dimension table logical key has to be associated with the lowest level of a dimension and has to be the level key for that level.
A logical level may have more than one level key. When that is the case, specify the key that is the primary key of that level. All dimension sources which have an aggregate content at a specified level need to contain the column that is the primary key of that level. Each logical level should have one level key that will be displayed when an Answers or Intelligence Dashboard user clicks to drill down. This may or may not be the primary key of the level. To set the level key to display, select the Use for drill down check box on the Level Key dialog box.
Be careful using level keys such as Month whose domain includes values January, February, and so on—values that are not unique to a particular month, repeating every year. To define Month as a level key, you also need to include an attribute from a higher level, for example, Year. To add Year, click the Add button in this dialog and select the logical column from the dialog that is presented.
Maybe you are looking for
-
The problem i am having is when i go to open a file from the menu bar that as "FILE" is blackcolor
the problem i am having is when i go to open a file from the menu bar that as "FILE" is all black in color and i cant see what i'm picking how do i change that so i can see what i'm picking
-
How to send an ABAP report to Microsoft Outlook
Hi All. May you please help me out on this one, i am trying to send an ABAP report to Microsoft Outlook? I am not even sure where to start so please help me out i know you can help me... Kind Regards, Fred.
-
Minimum font size RichEditableText
I'm using RichEditableText (with a TextConverter textFlow) to display emails that have been received which works great for bot clear text as well as HTML emails, however sometimes the HTML is really tiny. Now I've looked at this for a while and it al
-
Hi Gurus, Is there any possibility to restrict the viewing or editing of attachments in PO, unless it belongs to the purchasing group. Is there any commands which will enable this in SAP? Thanks.
-
[SOLVED] Best language for coding games
Hi All, My son has been learning BASIC-256 and he's interested in writing games. Can someone recommend a programming language useful for that purpose. He's young so easier would be better than harder but he's quite determined so I'd be interested in