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)