OBIEE 10G/11G - Writeback Capabilities (Table of Pivot)

Saw Object

Introduction

Write Back is the ability to enter values directly into a report and have those values used in calculations and charts in the report. For example, a report can have Sales Quota Amount defined as a write back field, Sales Amount as a field from the data warehouse, and Percentage of Quota as a calculated field (Sales Amount/Sales Quota Amount). When viewing the report you can change the Sales Quota Amount and the Percentage of Quota field recalculates appropriately.

This document give a step-by-step guide with picture to help the implementation of this functionality.

You can use this functionnality only in a table view. If you want to use it on a pivot, you must first transform your table view as a pivot view : OBIEE - How to perform a pivot in a table view

For 11g, you must now explicitly select the Writeable option for each logical column for which you want to enable write-back.

Obiee11g Logical Column Writeable

How to

Security, Privileges

First, you must grant your account with the privilege “Write Back to database” :

  1. Login in OBI Presentation Service Website
  2. Follow this links : Setting / Administration / Manage Privileges
  3. Grant the privilege “Write Back to database” to the permitted group

Obiee Write Back Privileges

Second, you must grant the direct access database to the user through the Administration Tool in the security part.

  1. Login in OBI Administration
  2. Go to the menu : Manage / Security
  3. Grant the privilege “Execute Direct Database Access” to the permitted group of user

write_back_execute_direct_database_request.jpg

Configure Write Back Report

Instanceconfig.xml

In 11g only, add the following LightWriteback element in the file Instanceconfig.xml

<WebConfig>
    <ServerInstance>
        <LightWriteback>true</LightWriteback>
    </ServerInstance>
<WebConfig>

Table properties

You must choose a report in Answers to be able to writing back to the database.

  1. Go to the Table Component
  2. Click on the write back properties icon (a green database with a yellow pen). Remark that each column have on this head a letter C and a number (Ex. c1, C2, … )

obiee_write_back_table.jpg

  1. Fill the template name with for example : SetWriteBackValue. (This name will indicate later the statement to update or insert in the database)

Obiee Write Back Table Properties

Column properties

  • Set to “write back” the value integration type of the column you want to be able to update.

Obiee Write Back Column Properties

Write Back Template to define the DML statement

The write back template is an custom messages (XML-formatted) file that contains SQL commands needed to insert and update records in the write back table and columns you have configured. It must be store in the directory:

  • 10g: "OracleBI\web\msgdb\customMessages".
  • 11g: The path of the CustomerResourcePhysicalPath node in the instanceconfig.xml + /customMessages. This is the directory for static files and customer messages. Example: ORACLE_INSTANCE/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obipsn/analyticsRes/customMessages
<?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="SetWriteBackValue">
         <XML>
            <writeBack connectionPool="Connection Pool">
                <insert>INSERT INTO OTHER_SCHEMA.WRITE_BACK VALUES (@{c0})</insert>
                <update>UPDATE OTHER_SCHEMA.WRITE_BACK SET VALUE='@{c0}' WHERE PK=@{c2}</update>
	    </writeBack>
         </XML>
      </WebMessage>
   </WebMessageTable>
</WebMessageTables>

The line <WebMessage name="SetWriteBackValue"> contain the value of the template name. This value must match with the value filled in the table properties.

The line <writeBack connectionPool="Connection Pool"> contain the value of the connection pool. You must have the same name in the repository.

The line <update>UPDATE WRITE_BACK SET VALUE='@{c0}' WHERE PK=@{c2}</update> contain the SQL statement to update the database.

Values can be referenced either by position (such as @1, @3) or by column ID (@{c0}, @{c2}). To find the column ID, see the header columns labels in the table

The custom message are loaded when the OBI Presentation Service is started therefore reload them before testing (if it doesn't work, you can restart it)

Obiee Write Back Table

When the update and insert statement run

  • The insert command runs when the update value is null.
  • Update command runs when a user modifies existing data.

How to update

You are now able to launch “Write Back” capabilities !

  1. Change the value of the column that you have configured (Here above the VALUE column)
  2. Click on the button in the bottom-right corner of the table (Here above the WRITE BACK VALIDATION button)

obiee_write_back_table.jpg

Support

Log

sawlog

OBIEE 10G/11G/12C - Presentation Services log (sawlog.log)

Type: NOTIFICATION
Severity: 20
Time: Tue Sep 29 09:57:02 2015 
File: project/webconnect/connection.cpp Line: 879
Properties: HttpCommand-WriteBack;AuthProps-AuthSchema=UidPwd|PWD=******|UID=ngerar|
NQ_SESSION.RUNAS=myRunasUser|User=ngerar|RunAs=ngerar|
GUID=9f13371e0c8d447ea529d8b93c5870a8;SessionID-192.168.50.230.70.84n5b1b;RemoteIP-192.168.50.230
Location:
	saw.connection.runImmediatelyImpl
	saw.writeback.action.executeimpl
	saw.writeback.action.execute
	saw.writeback.execute
	saw.httpserver.processrequest
	saw.rpc.server.responder
	saw.rpc.server
	saw.rpc.server.handleConnection
	saw.rpc.server.dispatch
	saw.threadpool.socketrpcserver
	saw.threads

Running SQL: EXECUTE PHYSICAL CONNECTION POOL myConnectionPool myStatement

nqquery.log

OBIEE 10G/11G - Nqquery.log (Query logging)

[2015-09-29T08:09:27.603+02:00] [OracleBIServerComponent] [TRACE:2] 
[] [] 
[ecid: 99b264eb267f4da4:-3524ab22:15000fd9a26:-8000-0000000000191445,0:1:3]
[tid: 4d6bb940] [messageid: USER-18] [requestid: ac0000c] [sessionid: ac00000] 
[username: userName] -------------------- 
Sending query to database named myDatabase (id: ExecutePhysical Gateway), connection pool named MyConnectionPool, 
logical request hash 1131f667, physical request hash 6d1fef61:
[[
myStatement
]]

nqserver.log

Only for errors: OBIEE 10G/11G - NQServer.log

[2015-09-28T12:19:49.936+02:00] [OracleBIServerComponent]
[ERROR:1] [] [] [ecid: 99b264eb267f4da4:-3524ab22:15000fd9a26:-8000-00000000001450cf,0:1:3] [tid: 4fe2a940]  
[nQSError: 13017] User or application role has not been granted the Direct Database Access privilege 
to access the database 'databaseName'. Please verify the User/Group Permissions in the Oracle BI Administration Tool. [[
file: server/NQSNative/NQSServEntry/Source/NQSExecPhysSQL.cpp; line: 83

**********  Task: 1. Running for (mls): 1 **********
Description: Prepare Logical Request
User: UserName
SessionID: 530448384
ProcedureID: -1
SQL: EXECUTE PHYSICAL CONNECTION POOL ConnctionPoolName 
statement;
]]

Reload the change online

The files are loaded in memory. You can reload them via Admin > Reload Files and Metadata link.

10G: the Update Button is grey

The write back button is grey when Oracle BI Presentation server hasn't found the XML template message.

Two reasons for this :

  • The name of the template name in the report is different than in the XML message.

Example with the name : SetWriteBackValue
Obiee Write Back Table Properties
must be the same in the node WebMessage of the xml message :

<WebMessage name="SetWriteBackValue">
  • Or may be you simply forgot to restart the OBI Presentation Service. (The messages are loaded during the initialization)

Documentation / Reference





Discover More
Saw Object
OBIEE - Custom Messages

Custom message are XML files used to : manage the multilingual capabilities of Oracle Business Presentation Server manage some configurations of Presentation Services and add some features (,...)...
Obiee Filter On Internet
OBIEE - How to perform a pivot in a table view

This article explains how to obtain a pivot view in a table view through the creation of pivot measures. A pivot table is just the same table where : the pivot column has been suppressed for...
Obiee Pivot Measures
OBIEE - Pivot Measures (The Filter Function)

Indicator, description of Measures are generally the sign that you need to pivot your measure (i.e. to create a Pivot Measure) The revenue is booked. Revenue is the measure and booked is a description...
Saw Object
OBIEE - Table view

You can set them on 11g with the help of FMW Control. Business Intelligence > CoreApplication > Performance tab Maximum Number of Rows to Download to Excel option Maximum Number of Rows Per Page...
Saw Object
OBIEE 10G/11G - Answer/Analytics

(Answers 10g|Analyses 11g) is the base component of BI Presentation Service to create Web report . It provides: ad-hoc query and analysis capabilities. The definition of an answer is principally...



Share this page:
Follow us:
Task Runner