The solution is basic and requires a couple of requests to be added to each dashboard page that will have commentary enabled. The report need to duplicate and modify for each page as the page name needs to be added as a parameter. A session variable might be an option to implement this solution generically.
Database Changes
Create a write back table to store comments in Oracle DB schema, I have used the ‘BISAMPLE’ schema.
CREATE TABLE "WRITEBACK"."DASHBOARDCOMMENTS" ( "COMMENT_TS" TIMESTAMP (6) DEFAULT sysdate, "USER_NAME" VARCHAR2(50 BYTE),"DASHBOARD_NAME" VARCHAR2(200 BYTE),"COMMENTS" VARCHAR2(4000 BYTE));
-- Single Null row required for the insert writeback
insert into DASHBOARDCOMMENTS(USER_NAME, DASHBOARD_NAME, COMMENTS)values (null,null,null); -- Single Null row required for the insert Writeback Repository Changes
The repository changes in steps for the configuration to write back to dashboardcomments table are detailed as follows. These steps remain same as far as the configuration steps are concerned for any table to make it be used for “Writeback” option.
Open the “BI Administration” tool and then go to File >> Import Metadata
Provide connection information/ import ‘DASHBOARDCOMMENTS’, then disable the cache for the table
Make the table columns “writeable” of the table ‘DASHBOARDCOMMENTS’ in Business Model layer
Assign the Groups to the “writeable” columns in Presentation layer
Configuration File Changes
Create a folder called “CustomMessages” in the path shown in the below picture, if the folder is not available, then put an XML message file with write back tags as below.
<?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="wb_comment">
- <XML>
- <writeBack connectionPool="Sample Relational Connection">
<insert>INSERT INTO DASHBOARDCOMMENTS(USER_NAME,DASHBOARD_NAME,COMMENTS) VALUES ('@1','@2','@3')</insert>
<update>INSERT INTO DASHBOARDCOMMENTS(USER_NAME,DASHBOARD_NAME,COMMENTS) VALUES ('@1','@2','@3')</update>
</writeBack>
</XML>
</WebMessage> </WebMessageTable>
</WebMessageTable> Add tag ‘LightWriteback” in instanceconfig.xml
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <!-- Oracle Business Intelligence Presentation Services Configuration File -->
- <WebConfig xmlns="oracle.bi.presentation.services/config/v1.1">
- <ServerInstance>
<LightWriteback>true</LightWriteback> - </ServerInstance>
</WebConfig>
Write Back Access and PermissionsSet webcat permission for writeback for selected groups as below.
Create two reports, one report for data entry for comments while other one to display the comments entered by users.
Data Entry ReportGo to ‘Criteria” tab and create a request for comment entry screen as below.
Change the User Name column formula to VALUEOF (NQ_SESSION.USER) and Dashboard Name to ‘2.1 Simple Demo Dashboard' ( Name of dashboard/Page)
Configuration File Changes
Create a folder called “CustomMessages” in the path shown in the below picture, if the folder is not available, then put an XML message file with write back tags as below.
<?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="wb_comment">
- <XML>
- <writeBack connectionPool="Sample Relational Connection">
<insert>INSERT INTO DASHBOARDCOMMENTS(USER_NAME,DASHBOARD_NAME,COMMENTS) VALUES ('@1','@2','@3')</insert>
<update>INSERT INTO DASHBOARDCOMMENTS(USER_NAME,DASHBOARD_NAME,COMMENTS) VALUES ('@1','@2','@3')</update>
</writeBack>
</XML>
</WebMessage> </WebMessageTable>
</WebMessageTable>
- <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
- <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
- <WebMessage name="wb_comment">
- <XML>
- <writeBack connectionPool="Sample Relational Connection">
<insert>INSERT INTO DASHBOARDCOMMENTS(USER_NAME,DASHBOARD_NAME,COMMENTS) VALUES ('@1','@2','@3')</insert>
<update>INSERT INTO DASHBOARDCOMMENTS(USER_NAME,DASHBOARD_NAME,COMMENTS) VALUES ('@1','@2','@3')</update>
</writeBack>
</XML>
</WebMessage> </WebMessageTable>
</WebMessageTable>
Add tag ‘LightWriteback” in instanceconfig.xml
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <!-- Oracle Business Intelligence Presentation Services Configuration File -->
- <WebConfig xmlns="oracle.bi.presentation.services/config/v1.1">
- <ServerInstance>
<LightWriteback>true</LightWriteback> - </ServerInstance>
</WebConfig>
- <!-- Oracle Business Intelligence Presentation Services Configuration File -->
- <WebConfig xmlns="oracle.bi.presentation.services/config/v1.1">
- <ServerInstance>
<LightWriteback>true</LightWriteback> - </ServerInstance>
</WebConfig>
Write Back Access and Permissions
Set webcat permission for writeback for selected groups as below.
Create two reports, one report for data entry for comments while other one to display the comments entered by users.
Data Entry Report
Data Entry Report
Go to ‘Criteria” tab and create a request for comment entry screen as below.
Change the User Name column formula to VALUEOF (NQ_SESSION.USER) and Dashboard Name to ‘2.1 Simple Demo Dashboard' ( Name of dashboard/Page)
Hi,
ReplyDeleteI have done exactly what you have mentioned. But its not working. I am getting the same 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.
Any suggestions ?
Thanks n Regards
Dev
Pravin,
ReplyDeleteJust use BITeamwork, http://www.biteamwork.com
It is much more of a manageable process for commenting on Oracle BI dashboards.
Thanks for sharing such a great blog Keep posting.
ReplyDeletecompanies address with hr email ids
list of companies in delhi ncr with email address
list of mnc companies in delhi ncr with contact details