Showing posts with label BI. Show all posts
Showing posts with label BI. Show all posts

Thursday, July 25, 2013

OBIEE Client Connectivity setup

If you are using OBIEE 11g client tools to create your own RPD or connecting to a Database to import metadata or trying to open the RPD online, you need to first configure the connectivity options for the OBIEE client.

You can connect to a DB source using either ODBC or OCI. If you want to connect via OCI, follow these steps.

  1. Install a Database client on your client machine. e.g. Oracle Database client for 11g. You can also install Oracle XE on your local machine.
  2. Make sure the database client libraries are available in the system path. If not, append this to the System path. Alternately you can set it in the bi_init.bat located at C:\Program Files\Oracle Business Intelligence Enterprise Edition Plus Client\oraclebi\orahome\bifoundation\server\bin

    OBIEEClient01

  3. Locate where your tnsnames.ora file is present (Usually you can find it in  D:\app\Administrator\product\11.2.0\client_1\network\admin).In the tnsnames.ora file create an entry for the DB you want to connect to. For example to connect to the local Database on my laptop, the entry is shown.
    ORCL11GRT = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl11grt) ) )
  4. copy the tnsnames.ora file from your Database location to the OBIEE client location. This is usually in C:\Program Files\Oracle Business Intelligence Enterprise Edition Plus Client\oraclebi\orahome\network\admin

    Note: If the network –> admin directories are not present, you must create them.

  5. Restart the BIAdminTool and try to import the metadata from the server mentioned in the tns entry. If the configuration is correct and there is no network problems, you should be able to connect and import the metadata in your RPD.

Monday, May 6, 2013

OBIEE 11g: Web Catalog Permissions dialog not displayed

 

You come across this problem, especially when you migrate/move the catalog to another server.

permissiondialog01

Initially it might seem to be a browser problem, but it isn’t. Refer to the support doc [ID 1476105.1] to resolve this. The problem is because of the many invalid users that are still present in the catalog and you will need to clean them up.

Opening Catalog Manager in Online mode

If you are on a Windows system, go to Start Menu –> All Programs –> Oracle Business Intelligence –> Catalog Manager.

or you can go to $INSTANCE_HOME\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\catalogmanager and run the runcat.cmd script.

After the Catalog Manager window opens, click on File –> Open CatalogcatalogManager01

After login is successful you are able to view the catalog contents.

catalogManager02

Friday, May 3, 2013

Impersonate / Act as feature in OBIEE

The Impersonate feature in OBIEE enables one user to “act as” or login in as another user without the need for the other user’s password. Why would we need such a feature? This could be helpful in situations where you would want to delegate the rights to another user or when testers want to test certain functionalities (maybe from a security view point), for multiple users.

In this post, I’m going to show how the impersonation setup is done in OBIEE. I’m using version 11.1.1.6.0 for this post.

First you specify in a database table, the associations between user impersonation i.e. which user is allowed to log as which other user. Refer to this doc from Oracle and create your table.

CREATE TABLE OBIEE_PROXY
  (
    PROXY_USER_ID VARCHAR2(100 BYTE) NOT NULL
  , PROXY_TARGET_ID VARCHAR2(100 BYTE) NOT NULL
  , PROXY_LEVEL VARCHAR2(50 BYTE) NOT NULL
  , CONSTRAINT OBIEE_PROXY_PK PRIMARY KEY ( PROXY_USER_ID , PROXY_TARGET_ID ) ENABLE
  )

insert values about the users involved in the impersonation into this table. I have created two users which can impersonate each other.

impersonation01

The PROXY_LEVEL column determines the authority level which is of types

  • Restricted — Permissions are read-only to the objects to which the target user has access. Privileges are determined by the proxy user's account (not the target user's account). For example, suppose a proxy user has not been assigned the Access to Answers privilege, and the target user has. When the proxy user is acting as the target user, the target user cannot access Answers.

  • Full — Permissions and privileges are inherited from the target user's account. For example, suppose a proxy user has not been assigned the Access to Answers privilege, and the target user has. When the proxy user is acting as the target user, the target user can access Answers. Ref: Oracle Docs

Next you import this table into your repository. See below the screenshot of the table that I have imported into the physical layer.

impersonation02

Next, create a separate connection pool ( I called it “VarInitConn”) pool needed for the next step.

Next, you create session variables and initialization blocks to authenticate proxy users.

Open the BI Admin tool. go to the menu Manage –> Variables. In the variable manager dialog, select Session and on the RHS right click in an empty space to bring the context menu and choose “New Session Variable”. You can also do the same thing from the Menu  Action –> New –> Session –> Variable.

The below table shows the details of the session variables and their associated initialization blocks.

Variable Initialization block
PROXY name: proxyblock
code:

SELECT PROXY_TARGET_ID
FROM OBIEE_PROXY
WHERE UPPER(PROXY_USER_ID) = UPPER(':USER')
   AND UPPER(PROXY_TARGET_ID) = UPPER('VALUEOF(NQ_SESSION.RUNAS)')

PROXYLEVEL name: proxylevelblock
code:

SELECT PROXY_LEVEL
FROM OBIEE_PROXY
WHERE UPPER(PROXY_TARGET_ID) = UPPER('VALUEOF(NQ_SESSION.RUNAS)')
  AND  UPPER(PROXY_USER_ID) = UPPER('VALUEOF(NQ_SESSION.RUNASORIGUSER)')

impersonation04

impersonation05

Next, create the custom message template that contains SQL statements to

  • Obtain the list of target users that a proxy user can act as. This list is displayed in the User box in the Act As dialog box.
  • Verify whether the proxy user can act as the target user.
  • Obtain the list of proxy users that can act as the target user. This list is displayed on the target user's My Account screen.

Save (as per oracle docs) your script to  ORACLE_
INSTANCE\bifoundation\OracleBIPresentationServicesComponent\coreapplicati
on_obipsn\analyticsRes\customMessages

I saved the template file as LogonParamSQLTemplate.xml  in MW_HOME\Oracle_BI1\bifoundation\web\msgdb\messages (this is fine too.)

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web.messageSystem">
<WebMessageTable system="SecurityTemplates" table="Messages">
   <WebMessage name="LogonParamSQLTemplate">
      <XML>
       <logonParam name="RUNAS">
       <!-- Repository physical_dbname.conn_pool_name -->
         <getValues>EXECUTE PHYSICAL CONNECTION POOL "DB11g_local"."VarInitConn"
                  select PROXY_TARGET_ID from OBIEE_PROXY where PROXY_USER_ID='@{USERID}'
         </getValues>
         <verifyValue> EXECUTE PHYSICAL CONNECTION POOL "DB11g_local"."VarInitConn"
                  select PROXY_TARGET_ID from OBIEE_PROXY where PROXY_USER_ID='@{USERID}' and PROXY_TARGET_ID='@{VALUE}'
         </verifyValue>
         <getDelegateUsers>EXECUTE PHYSICAL CONNECTION POOL "DB11g_local"."VarInitConn"
                  select PROXY_USER_ID, PROXY_LEVEL from OBIEE_PROXY where PROXY_TARGET_ID='@{USERID}'
         </getDelegateUsers>
       </logonParam>
    </XML>
  </WebMessage>
</WebMessageTable>
</WebMessageTables>

Element Description
getValues

Specifies the SQL statement to return the list of target users and corresponding proxy levels.
The SQL statement must return either one or two columns, where the:
First column returns the IDs of the target users
Optional) Second column returns the names of the target users

verifyValue

Specifies the SQL statement to verify if the current user can act as the specified target user.
The SQL statement must return at least one row if the target user is valid or an empty table if the target user is invalid.

getDelegateUsers

Specifies the SQL statement to obtain the list of proxy users that can act as the current user and their corresponding proxy levels.
The SQL statement must return either one or two columns,where the:
First column returns the names of the proxy users
Optional) Second column returns the corresponding proxy levels

 

Next, edit instanceconfig.xml to configure impersonation settings.

just before the  </ServerInstance>  tag, add the following code

<LogonParam>
  <TemplateMessageName>LogonParamSQLTemplate</TemplateMessageName>
  <MaxValues>100</MaxValues>
</LogonParam>

</ServerInstance>
</WebConfig>

Tag Description
LogonParam

Serves as the parent element for the TemplateMessageName and MaxValues elements

TemplateMessageName

Specifies the name of the custom message template in the Custom Messages folder that contains the SQL statement to perform tasks related to displaying proxy and target users

MaxValues

Specifies the maximum number of target users to be listed in the Userbox in the Act As dialog box. If the number of target users for a proxy user exceeds this value, then an edit box, where the proxy user can enter the ID of a target user, is shown rather than list of target users.

Next, assign the “Act As Proxy privilege”  for each user or Application Role whom we want to enable as proxy users or give the “act as “ functionality. to do this:

Login into analytics as the BIAdministrator user (weblogic). In this case, I have assigned user1 and user2, BIAuthor role. Click the Administration link. Under the Security group, click on Manage Privileges.

impersonation06 

Lastly bounce the BI Services.

Login to Answers and you will find the option to Act as, in the top left corner of your Answers page.

impersonation07

impersonation08

you will not be prompted for the password. you will login automatically as the target user (in this case user2)

impersonation09 

Related Support doc: [ID 1418227.1]

Note: You may need to give the manageRepositories permission to each user you want to allow to act as a proxy user. This can be done by creating a new Application policy which in turn will relate to an Application role which in turn will have user groups assigned to it. But I have not done this part. I checked that currently in my system, only the BIAdministrator has the oracle.bi.server.manageRepositories permission.

Wednesday, October 3, 2012

Currency settings in OBIEE part 2

You may be interested in the part 1 post as well.

Configuring user preferred currency options by static mapping.

Login to Answers and in the top right hand corner of the webpage  select the user(e.g. weblogic) –> MyAccount

image

image

notice that the currency option is not yet available.

go to $ORACLE_INSTANCE\config\OracleBIPresentationServicesComponent\coreapplication_obips1 and edit the file userpref_currencies.xml to look like as shown.

<Config>

<UserCurrencyPreferences currencyTagMappingType="static">
  <UserCurrencyPreference sessionVarValue="gc1" displayText="Global Currency 1" currencyTag="int:USD" />
  <UserCurrencyPreference sessionVarValue="gc2" displayText="Global Currency 2" currencyTag="int:euro-l" />
  <UserCurrencyPreference sessionVarValue="gc3" displayText="Global Currency 3" currencyTag="loc:ja-JP" />
  <UserCurrencyPreference sessionVarValue="orgc" displayText="Org Currency" currencyTag="loc:en-BZ" />
  <UserCurrencyPreference sessionVarValue="lc1" displayTag="int:DEM" currencyTag="int:DEM" />
</UserCurrencyPreferences>

</Config>

to quote from the OBIEE Administrator’s guide:

For each currency option to be displayed in the Currencybox or in currency
prompts, add a UserCurrencyPreference element between the

<UserCurrencyPreferences> tags using this format:
<UserCurrencyPreference sessionVarValue="sessionVarValuevalue"
displayMessage="displayMessagevalue" displayText="displayTextvalue"
currencyTag="currencyTagvalue"/>
  • sessionVarValue="sessionVarValue" sets the session variable PREFERRED_
    CURRENCY. For its value, specify a string that uniquely identifies the
    currency, for example, gc1.
  • (optional) displayMessage="displayMessagevalue" sets the presentation variable currency.userPreference to a localized value. To specify a localized value, you first must create the localized message for the currency in the usercurrencymessages.xml file. "Then, for the value of displayMessage, specify the WebMessagename that is identified in the usercurrencymessages.xml file for the currency. For example, if you created this English language entry in the usercurrencymessages.xml file:

    <WebMessage name="kmsgMyCurrency1"><TEXT>My Currency 1</TEXT></WebMessage>

  • (optional) displayText="displayTextvalue" sets the presentation variable currency.userPreference to a value that is not localized. For its value, specify a string that identifies the currency, such as Global Currency 2.
  • currencyTag="currencyTagvalue" identifies the Currency Tag in the
    currencies.xml file whose displayMessage value is to be used to populate the
    Currency box on the My Account dialog: Preferences tab and currency
    prompts.

save userpref_currencies.xml  file and restart OBIEE services. now in the preferences tab, the currency list you configured should be displayed.

image

Monday, October 1, 2012

Currency settings in OBIEE part 1

To set the default system currency

Note: It is a good idea to backup your configuration files before you make any changes.

  • open currencies.xml located in ORACLE_BIHOME\bifoundation\web\display. e.g. on my machine, this is located in D:\OBIEE11g\Oracle_BI1\bifoundation\web\display\currencies.xml
  • In currencies.xml file you will find a list of currencies defined by enclosing them in the <Currency> </Currency> tag. Locate the currency you want to make as the system default. e.g. we want to make Pound as the default currency

<Currency tag="loc:en-GB" type="local" symbol="£" locale="en-GB" format="$#" digits="2">
      <negative tag="minus" format="-$#" />
   </Currency>

  • cut and paste this line just below the <Currencies> tag.
  • next, search for the Currency tag which has the text tag="int:wrhs". locate this tag and comment it.
  • replace the tag value in the pound currency from tag="loc:en-GB" to tag="int:wrhs". Your currency tag for pound should look like this

<Currency tag="int:wrhs" type="local" symbol="£" locale="en-GB" format="$#" digits="2">
<negative tag="minus" format="-$#" />
</Currency>

  • Restart OBIEE presentation services.

Reference: OBIEE 11g System Administrator's Guide

Setting preferred currency option for an Analysis column in OBIEE Answers

create an Analysis in OBIEE answers involving the usage of a measure to be displayed as currency.

image

select F1 Revenu –> Column properties

image

image

Friday, September 28, 2012

Resetting weblogic OBIEE admin password / creating new OBIEE admin user / forgot weblogic admin password

During the installation of OBIEE 11g on my humble 6 year old Thinkpad laptop, I came across this error where the admin user namely weblogic was not able to login after the installation even though the password was correctly typed.

Tried shutting down the service and restarting it from command line but Admin server (weblogic) refused to start citing authentication problem for the admin “weblogic” user.

The best way to resolve this is to create another admin user and then login with this new user in the Fusion Middleware console and then change the password for the old admin user “weblogic”.

  1. open a cmd prompt and cd to $DOMAIN_HOME\bin e.g. D:\OBIEE11g\user_projects\domains\bifoundation_domain\bin
  2. and execute setDomainEnv.cmd
  3. in the directory D:\OBIEE11g\user_projects\domains\bifoundation_domain\security rename DefaultAuthenticatorInit.ldift file to DefaultAuthenticatorInit.ldift.org
  4. generate a new admin user and password by
    cd D:\OBIEE11g\user_projects\domains\bifoundation_domain\security
    java weblogic.security.utils.AdminAccount rtadmin rtpass .
    note:
    rtadmin is the new admin user
    rtpass is the password for the new admin user
    .(dot) after password will create a new default authenticator file “DefaultAuthenticatorInit.ldift” in the current directory (which is the “security” directory).
  5. rename boot.properties located in D:\OBIEE11g\user_projects\domains\bifoundation_domain\servers\AdminServer\security to boot.properties.bak
  6. rename DefaultAuthenticatormyrealmInit.initialized located in D:\OBIEE11g\user_projects\domains\bifoundation_domain\servers\AdminServer\data\ldap to DefaultAuthenticatormyrealmInit.initialized.bak
    note: it’s a good idea to backup the entire D:\OBIEE11g\user_projects\domains\bifoundation_domain\servers\AdminServer\data directory
  7. open a cmd prompt and start the Admin server
    D:\OBIEE11g\user_projects\domains\bifoundation_domain\bin>startWebLogic.cmd
    provide the new admin username and password: rtadmin/rtpass
  8. the weblogic server should start and you should have access to the weblogic console http://localhost:7001/console/
    Login to weblogic console with the new admin user and go to Security Realms –> myrealm. select the users and Groups tab


  9. change the password fro the old admin user “weblogic”
    save and logout. Test things work fine by logging in as “weblogic” use with the new password.
  10. in the directory D:\OBIEE11g\user_projects\domains\bifoundation_domain\servers\AdminServer\security create the boot.properties. This file contains the username and password of the admin user. when you start the services, the username and password will be encrypted.
Note: if you delete or rename the data directory located in D:\OBIEE11g\user_projects\domains\bifoundation_domain\servers\AdminServer\data, weblogic will create a new data/ldap directory BUT important users like  BISystemUser and OracleSystemUser will no longer be available and your service will not start properly.

Wednesday, September 26, 2012

Localizing BI Metadata in OBIEE

We Localize metadata specific to user locale deployments. This post explains how to localize the repository meta data. Users can select their preferred language choice and   create and view the analysis.

You can use the Externalize Strings utility in the Administration Tool to localize the
names of subject areas, tables, hierarchies, columns, and their descriptions in the
Presentation layer –> OBIEE Administrator’s guide.

Open your repository in the BI Admin Tool. Select the Subject Area which you want to localize. Right click on the subject area –> Externalize display names –> Generate custom name.

image

go to the Tools Menu –> utilities  and select the “Externalize Strings” utility.

Note: Before you do this, make sure your presentation layer objects have sensible names else the translation won’t make much sense.

image

image

Save the data to a csv file. I have named the file as salesLocalization.csv the contents of which look as shown below.

.localizing04

change the file contents as described below,

  • delete the last column
  • rename the columns to METADATA_OBJECT, SESSION_VAR, MESSAGE
  • create a new column LANG_ID
  • insert translated entries in the languages you want.

The first column contains the actual  repository object name, the second contains the session variable name for that object, the third contains the text that should be displayed in Answers and the fourth column you specify the language code.

the modified file will look like this:

image

create a table in your data warehouse schema

CREATE TABLE JT_LOCALIZATION
(
    METADATA_OBJECT     varchar2(200),
    SESSION_VAR     varchar2(200),
    MESSAGE     varchar2(200),
    LANG_ID     varchar2(5)
);

import the data from the csv file into this table by your technique of choice (toad, sql loader, etc).

create a new connection pool and import this table in the repository.

image

image

create a row-wise inilitalization block to match the user selected language session variable.

image

localizing09

give the default initialization string as

select SESSION_VAR, MESSAGE from JT_LOCALIZATION where LANG_ID =
'VALUEOF(NQ_SESSION.WEBLANGUAGE)'

localizing10

localizing11

localizing12

localizing13

localizing14

localizing15

Check for consistency, save your rpd and deploy it.

Login in to Answers, and select the default language (English),

logout and login but this time select French or Spanish and notice the change in the way the  translated text is displayed in answers.

localizing17

Thursday, August 30, 2012

Usage Tracking in OBIEE 11g (11.1.1.5.0)

(updated for 11.1.1.7.0)

When usage tracking is enabled, the BI server collects information related to usage such as the query that was sent to the server, how much time it took to execute it, etc. This information can help in data warehouse optimization and optimization of the BI system as a whole.

when creating the schemas using the repository creation utility (rcu) during OBIEE installation, the below table was created which stores the usage tracking information.

Schema Name Table Name
DEV_BIPLATFORM S_NQ_ACCT

Be sure you remember the above schema password.

Open up BI Admin Tool and create a new repository or use your existing one. create a new database –> add a connection pool –> import metadata

image

image

image

image

got to $ORACLE_INSTANCE\config\OracleBIServerComponent\coreapplication_obis1 and edit the NQSConfig.INI file

[USAGE_TRACKING]

ENABLE = YES; 

DIRECT_INSERT = YES; 

#==============================================================================
#  Parameters used for inserting data into a table (i.e. DIRECT_INSERT = YES).
#
#PHYSICAL_TABLE_NAME = "<Database>"."<Catalog>"."<Schema>"."<Table>";  # Or "<Database>"."<Schema>"."<Table>" ;
PHYSICAL_TABLE_NAME = "UsageDB"."DEV_BIPLATFORM"."S_NQ_ACCT"; 
#CONNECTION_POOL = "<Database>"."<Connection Pool>";
CONNECTION_POOL = "UsageDB"."Usage Connection Pool"; 
BUFFER_SIZE = 250 MB; 
BUFFER_TIME_LIMIT_SECONDS = 5; 
NUM_INSERT_THREADS = 5; 
MAX_INSERTS_PER_TRANSACTION = 1;

notice that there is no data present in the usage table yet.

image

save the NQSConfig file, save your rpd and deploy it using the FM Enterprise Manager.

login to Answers and create / run an analysis and observer the output.

image

you can confirm that usage tracking has been enabledby viewing  the log file

image

usage tracking records will now be available in the S_NQ_ACCT table.

image

you can make better  use of this information in the true business intelligence sense by creating a dimensional data model for the data in the S_NQ_ACCT table and creating some analysis in your presentation layer. This is nicely illustrated in the OBE tutorial  Setting Up Usage Tracking in Oracle BI EE

In OBIEE 11.1.1.6.0, / 11.1.1.7.0 the usage tracking settings can be done from Fusion Middleware enterprise manager.

Login to FM enterprise manager. on the LHS tree view, navigate to Farm_bifoundation_domain –> Welblogic Domain –> bifoundation_domain. right click to get the context menu

usageTracking11.7_01

Expand Application Defined MBeans –> oracle.biee.admin –> Domain: bifoundation_domain.

Lock the domain, as follows: ref [Oracle docs]

  1. Expand BIDomain and select the BIDomain MBean where group=Service.

  2. Display the Operations tab.

  3. Click the lock link.

usageTracking11.7_02

Expand BIDomain.BIInstance.ServerConfiguration, then select the BIDomain.BIInstance.ServerConfiguration MBean.

Ensure that the UsageTrackingCentrallyManaged attribute is set to true. When UsageTrackingCentrallyManaged is set to false, the following parameters are managed using the NQSConfig.INI file (just like in OBIEE 11.1.1.5) on each Oracle BI Server computer rather than the System MBean Browser:

  • SummaryAdvisorTableName

  • SummaryStatisticsLogging

  • UsageTrackingConnectionPool

  • UsageTrackingDirectInsert

  • UsageTrackingEnabled

  • UsageTrackingPhysicalTableName

Set the UsageTrackingEnabled attribute to true to enable usage tracking.

Set the UsageTrackingDirectInsert attribute to true to enable direct insertion.

Set the UsageTrackingPhysicalTableName and the UsageTrackingConnectionPool with the values as shown previously above in the NQSConfig.INI file

After applying your changes, release the lock on the domain, as follows:

  1. Return to the BIDomain MBean where group=Service under oracle.biee.admin, Domain:bifoundation_domain, BIDomain.

  2. Display the Operations tab.

  3. Click one of the commit operations.

Restart OBIEE services.

Tuesday, August 28, 2012

Writeback Analysis in OBIEE 11g - part 1

writeback –> ability to modify data that is displayed in an analysis in oracle answers.  very crude way of putting it. Please refer to the OBIEE docs from Oracle for the limitations.

Interestingly, this contradicts the basic concept of an OLAP system, which is primarily meant for fetching data rather than inserting data. However there are some special cases, where you would want this functionality. There are certain design considerations too that are involved with the data warehouse, which we will discuss in another post.

I’m creating a demo table for this purpose

create table JT_DEMO_WRITEBACK
(
    CUST_KEY    NUMBER  PRIMARY KEY,
    CUST_NAME VARCHAR2(255) NOT NULL,
    CUST_RATING NUMBER NOT NULL
);

lets insert some data to look like this:

image

Login to Oracle Answers. got to Administration page. Under security click the “Manage Privileges” link

image

change the “Write Back to Database” privilege

image

image

start the BI Admin Tool and open your rpd. In the physical layer, create a new connection pool called “WB Connection Pool”. Import this table. create an alias for this table.

image

disable caching on your physical table that you want to write back to.

image

create a new Business Model to look like this

image

we want the Customer Rating field to be editable(writable) in our Answers page.

image

Create the new subject area in the presentation layer as shown below. for simplicity purpose, I’m setting an implicit fact for the WB Test Subject area.

image

set the permission to read write for the relevant users

image

save your rpd and check for consistency.

Enable writeback in the configuration file by Modifying  the instanceconfig.xml file located in $(ORACLE_INSTANCE)\config\OracleBIPresentationServicesComponent\coreapplication_obips1

add the following to the instanceconfig.xml file

<WebConfig xmlns="oracle.bi.presentation.services/config/v1.1">
   <ServerInstance>
      <!-- added by JT -->
      <LightWriteback>true</LightWriteback>

</ServerInstance>
</WebConfig>

Deploy your rpd and restart the BI services.

create a new Analysis as shown

image

go to the Advanced tab and note the column ids in the xml code. we will use these ids in our xml template to specify the SQL to update the customer rating field.

image

In the criteria tab, mark the customer rating column writable ( this option is enabled in Answers if you enabled the writable flag for the column in the rpd).

image

go to results tab –> edit view (pencil icon) –> Table view properties (the xyz icon) and enable writeback option and specify the template name

image

create your template file which contains the SQL code for the update.

<?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_cusRating">
<XML>
<writeBack connectionPool="WB Connection Pool">
<insert> </insert>
<update>
UPDATE BISAMPLE.JT_DEMO_WRITEBACK SET CUST_RATING=@{c8f6dc321eca7766c} WHERE CUST_KEY=@{c6657b10f6946b91b}
</update>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>

save the above text to a new file called writebacktemplateJT.xml put it in the location $(ORACLE_INSTANCE)\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\analyticsRes\customMessages

note:

  1. you may want to create customMessages directory if it does not exist.
  2. the line <WebMessage name="wb_cusRating"> specifies the template name.
  3. save your analysis to a folder as “WB Test”.

Restart OPMN services. login to Answers page with the user, whom you have given the necessary rights. open the “WB Test” analysis

image

notice that the Cust Rating  field is editable, change the value and click on the update button. OBIEE updates the data to the physical database and refreshes the page with the new values.

image

image

note: you might get the writeback error in red as shown below

image

There seems to be a bug with the write back feature in OBIEE 11g. A patch
is currently available only for 64 bit Win systems. Bug 13067844, Patch
13067844. After installing the patch, the writeback works properly.