Table of Contents

About

An alternate way of updating the RPD manually is to script it with an XML patch file.

During an update, if an attribute is not present in the patch file, the patch process will take the default value on creation, not the actual one. Therefore, you need to create a patch with all attributes present.

In this approach, you don‟t need to open the RPD through an Admin tool. Instead, the values of the variables will be set in an XML file and then these values will be updated in the RPD by running a command line utility.

Patch File Syntax

The patch file contains only the delta of the changes between the current and original versions.

Example with the xudml format.

Obiee Bi Server Patch

Most of the object have as identifier:

  • the name attribute.
  • and a parentName attribute if the object belongs to a tree structure.

Example of Patch file

Server Variable

To update the values of variable from the sample application, you can use the below XML where:

  • The declare node instruct to create or update the repository
  • The variable tag identify the object type as variable
  • The name attribute identifies the name of the variable.
<?xml version="1.0" encoding="UTF-8" ?>
<Repository xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<DECLARE>
		<Variable name="BI_EE_HOME" >
			<Description><![CDATA[This path should be the path of your OBIEE install]]></Description>
			<Expr><![CDATA['UPDATE - BI_EE_HOME_PATH']]></Expr>
		</Variable>

	</DECLARE>
</Repository>

Connection Pool

To update connection pool parameters such as name, dsn.

The name and parentName attribute are mandatory.

Becareful, this patch does not have all attributes present. This is a bad practice as the missing attributes such as max connection (maxConn) will be set to the default value which is 0. :(

<?xml version="1.0" encoding="UTF-8" ?>
<Repository xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DECLARE>
<ConnectionPool name="CONNECTION_POOL_NAME" parentName="&quot;DATABSE_NAME&quot;" user="USERNAME" dataSource="DSN_NAME" >
</ConnectionPool>
</DECLARE>
</Repository>

for the password, see Nqschangepassword

Steps

Create

You can generate XML patch files using:

  • the Create Patch feature in the Compare dialog in the Administration Tool.
  • or the compareRpd utility

Create Patch feature

Obiee Compare Create Patch

Apply

You can apply a patch to the original file using the following tool

Tool Operation
biserverxmlexec with the -B option (offline) Update/Create
OBIEE - biserverxmlcli (online Modifications) (online) Update / Create ?
The patch merge feature in the Administration Tool merge
The patchrpd utility (perform a merge) merge

Example with biserverxmlexec, to perform only an update (ie no orginal repository is needed)

biserverxmlexec -P repository_password –I xudml_patch_pathname –B base_repository_pathname –O output_repository_pathname

Example of parameter values from the sampleApp installation:

  • -P Admin123
  • -I SampleApp_Patch.xml
  • -B SampleApp.rpd
  • -O SampleApp.rpd

Validate

The validaterpd utility can help validate that the patching process didn't break the repository file.

Validaterpd

Documentation / Reference