+ All Categories
Transcript
Page 1: White Paper - Siebel BI Publisher Integration Concepts
Page 2: White Paper - Siebel BI Publisher Integration Concepts
Page 3: White Paper - Siebel BI Publisher Integration Concepts
Page 4: White Paper - Siebel BI Publisher Integration Concepts

2

Integrating with BI Publisher release 10.1.3.3.2 and earlier, requires wrapping of the Siebel Web

Service with Java code so that it appears as a Web Service with the desired parameters as simple

type parameters. This is because Siebel CRM exposes web services with complex type parameters

and BI Publisher 10.1.3.3.2 does not support web services with complex type parameters - it does

support web services with parameters of simple type.

BI Publisher 10.1.3.4 and later supports complex type Web Services as a data source and

therefore you do not need to complete the java wrapping step.

http://download.oracle.com/docs/cd/E10415_01/doc/bi.1013/e10416/bip_misc_10134.htm#

BABIJJHD

For details on the BI Publisher web services available see the following document section “23

Oracle Business Intelligence Publisher Web Services”:

http://download.oracle.com/docs/cd/E10383_01/doc/bip.1013/e10416/bip_webservice_1013

31.htm#CHDGIJHH

In all cases when configuring BI Publisher reports using Inbound Web Services to Siebel it is

recommended that BI Publisher 10.1.3.4 or higher is used.

Integrating Siebel CRM with BI Publisher reports is simple when using SQL based report

generation. SQL based reports are easily created in BI Publisher and can retrieve data from the

Siebel base tables. It is also possible to pass through parameters from the Siebel application to a

SQL based report (i.e. pass a ROW_ID for the current selected Siebel record into the SQL

statement).

Note that writing SQL based reports against Siebel CRM can be difficult if you need to restrict

user access to the data. The out-of-the-box view and position based visibility used by Siebel

CRM can be very complex to write manually. For this reporting requirement a Siebel Web

Service is preferable, since visibility and other business logic is preserved by the underlying

Integration Objects.

Page 5: White Paper - Siebel BI Publisher Integration Concepts

3

The high level steps to retrieve data from the Siebel application using BI Publisher and Inbound

Web Services are detailed below. Note BI Publisher will need to be licensed to use it with Siebel

CRM.

1. Configure an Inbound Web Service in Siebel. Set the address and modify credentials to use

ClearText.

2. Generate the Siebel WSDL.

3. Test the WSDL and endpoint using SOAP UI or similar to ensure a valid connection returns

data.

4. Modify the Siebel generated WSDL (to specify mandatory fields) so it can be used with BI

Publisher.

5. Create a new BI Publisher report with a Web Service connection using the edited WSDL.

Add parameters as required.

6. Add the „ResponseData XPath‟ parameter value if you wish to view the report output in

other formats such as PDF. The „ResponseData XPath‟ parameter is available after the

10.1.3.4.0c release.

7. Upload a report template.

Here are detailed configuration steps in the Siebel application using the Account entity as an

example:

1. Ensure the Siebel Server is running and the EAI component group is enabled.

2. Go to Site Map > Administration - Web Services > Inbound Web Services and query for

example, „WC_Account_BS‟ in the Name column.

Page 6: White Paper - Siebel BI Publisher Integration Concepts

4

3. Under Service Ports in the Address column add the following URL for the Secure WSDL

for example:

http://siebelhost.siebel.com/eai_anon_enu/start.swe?SWEExtSource=SecureWebServices

&SWEExtCmd=Execute

“siebelhost.siebel.com” can be replaced by any host provided it has EAI running.

4. For Operations of the Web Service set the Authentication Type „Username/Password –clear

text‟ for the Execute and QueryPage method.

5. Now we can generate the WSDL by pressing „Generate WSDL‟ on the top of the Applet.

It is important to test the WSDL and endpoint using SoapUI or similar application to make

sure the WSDL returns data.

Page 7: White Paper - Siebel BI Publisher Integration Concepts

5

To ensure the WSDL generated from Siebel is correct, use an application such as SoapUI to test

the endpoint.

1. Open SOAP UI and start a new project. Enter the WSDL path to the Siebel generated

WSDL file.

2. Expand the tree and method WC_Account_BSQueryPage

3. Double click on Request. Replace the text in the window with the following example:-

4. Edit username/password and click the Green arrow to run the SOAP request.

Page 8: White Paper - Siebel BI Publisher Integration Concepts

6

5. If you are getting connection errors the SOAP endpoint at the end of the WDSL might be

incorrect. You can easily test a new endpoint and test the connection. Change the WSDL if

the endpoint is invalid:-

Once the endpoint and connection have successfully been tested with a sample SOAP

request, the Siebel generated WSDL needs to be edited for use with BI Publisher.

Page 9: White Paper - Siebel BI Publisher Integration Concepts

7

The WSDL file generated from Siebel has to be altered for use with BI Publisher.

The way BI Publisher works with Siebel Web Services is to parse the WSDL and then obtain the

list of fields to be used in conjunction with the filtering parameters. For example, if the

parameter is “Account Name” in the Siebel Web Service, we allow a user to modify the filter

value to generate a different query for the report based on the parameter. The WSDL generated

from Siebel can contain thousands of optional Integration Object fields, which can cause BI

Publisher usability issues.

For example, from Siebel's WSDL definition, if the SOAP request only allows non-mandatory

fields, the WC_Account_BSQueryPage only has one mandatory field, which is:

This field alone is not sufficient to query Account. If non-mandatory fields are generated from

the WSDL, then there would be thousands of non-mandatory fields and attributes the in SOAP

Request. All these fields are translated in BI Publisher as editable fields on the UI data source. It

would be very hard for a user to scroll through all these fields.

1. All fields that are required for use in the report need to be set to mandatory in the WSDL.

In order to make a few fields mandatory, you need to edit the WSDL generated from Siebel.

To make a field mandatory we set the minOccurs parameter from minOccurs=0 to

minOccurs=1.

In this example, the Account list object and two related fields are set to mandatory for use

with a BI Publisher report that uses Inbound Web Services.

In order to make the "WC_Account_BSQueryPage_Input" element that contains

"ListOfWc_Account_Io" fields as mandatory, we change the WSDL as follows:

2. Fields related to the Account entity are under the „Account‟ element:-

Page 10: White Paper - Siebel BI Publisher Integration Concepts

8

3. Once we have located this section of the WSDL, to get fields from Account we need to

make ListOfWc_Account_Io mandatory, scroll down a bit and make the change below.

4. Next step is to make the Account element mandatory.

5. We can see from the WSDL that „WC_Account_BSQueryPage‟ has "xsdLocal3" as

namespace, so all the related fields should have a prefix of "xsdLocal3:". To include fields in

the report output, set them to mandatory.

Make the „Name‟ field mandatory for xsd:string and also xsdLocal3:queryType:

Page 11: White Paper - Siebel BI Publisher Integration Concepts

9

6. If the endpoint needs to be edited, this resides at the end of the WSDL e.g.

By sending the request with the mandatory Integration Object fields to Siebel, the query

result will include those defined Integration Object fields. For example, in query request, if

we send "Name" as the query field, then the result would include "Name". Otherwise, the

"Name" field won't exist in the result.

Once the WSDL file has been edited, we can use it with BI Publisher.

Page 12: White Paper - Siebel BI Publisher Integration Concepts

10

To create a report in BI Publisher that uses Inbound Web Services, follow these steps:

1. Login to BI Publisher and create a new report

2. Create datasource as “Web Service”

3. Select “Complex Type” as “True”, WS-Security = 2002

4. Enter Username/Password credentials

5. Type in “WSDL URL” location (select the WSDL xml file)

6. If required, set the “ResponseData XPath” parameter accordingly for example:-

/WC_Account_BSQueryPage_Output/ListOfWc_Account_Io

NOTE: The "ResponseData XPath" parameter only appears after the 10.1.3.4.0c release and

it is necessary if you wish to render a report in certain formats, e.g. PDF. If you don't specify

a value for this field, then the Web Service data source is determined from the SOAP

response generated from the Siebel Web Service, which starts from the SOAP response root

element.

The reason for specifying "ResponseData XPath" is for the RTF template to render the

report data. The RTF template renders the XML data from the root level. Viewing the

report in data format does not require the XPath parameter, because it always should

generate report data in XML format. However for viewing a report in PDF format, the RTF

template has to be used to render the report data and without the root element, the report

won't be able to generate in this format.

7. Pick the right “Web Service”

8. Pick the right “Method” i.e QueryPage

9. Parameters will be automatically filled in for you from the WSDL. If the mandatory

fields/parameters do not have a value then an error will be displayed when running the

report. e.g. ensure the Record Count, Page Size and Start Row Num have values.

Page 13: White Paper - Siebel BI Publisher Integration Concepts

11

NOTE: When navigating between pages within BI Publisher always click the Save button to

make sure any edits/values are not lost. Sometimes this can happen when navigating away

from the Data Model > Data Set page because the values are loaded from the WSDL each

time this view is accessed.

10. Default parameters can also be added in left menu pane to appear at runtime on the report.

Page 14: White Paper - Siebel BI Publisher Integration Concepts

12

11. Save, and execute the report by clicking the View button. Click View to see the Data output,

you can enter dynamic query strings for the report as shown in the image below:

In the image above a value for the Search Spec parameter has been specified [Name] LIKE

„A*‟. It is also possible to enter default values, for a field parameter i.e. LIKE „A*‟ for the

Name field.

If no data is returned from the query or the right parameters have not been entered, the

following output may be displayed:-

Page 15: White Paper - Siebel BI Publisher Integration Concepts

13

Page 16: White Paper - Siebel BI Publisher Integration Concepts

14

1. For MS SQL Server connections download the SQL Server JDBC drivers from Microsoft.

For other databases, separate JDBC drivers are also required. For Oracle database these are

shipped with the application server.

2. Once installed look in the <INSTALL DIR>/lib directory there will be three jar files

mssqlserver.jar, msbase.jar, msutil.jar

3. Copy them into your $OC4J_HOME/j2ee/home/applib if you have installed XMLP under

OC4J otherwise put them in the common apps libraries directory of your J2EE container.

4. Now restart the server. The jdbc libraries will be loaded automatically for all applications on

the instance. If you only want them loaded for the xmlp server application, then copy the jar

files to the directory below and restart the server.

OC4J_HOME/j2ee/home/applications/xmlpserver/xmlpserver/WEB-INF/lib

5. Now login as Administrator to BI Publisher Enterprise server and go to the Admin > JDBC

and enter the details required for the data connection:

Page 17: White Paper - Siebel BI Publisher Integration Concepts

15

Data Source Name: give the connection a name

Driver Type: Enter the database classification or „Other‟.

Database Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver

Connection String: Enter the url to connect to the database:

jdbc:sqlserver://server:port;databaseName=dbname e.g.

jdbc:sqlserver://111.11.1.111:1133;databaseName=AdventureWorks

Username: Enter value

Password: Enter value

6. Now hit the test button to check the connection works. If it fails check your connection

string is valid and the class definition above. The data source will now be available in the

report builder to build queries against.

7. Create a new report using SQL connection. Test the SQL.

Page 18: White Paper - Siebel BI Publisher Integration Concepts

16

8. Upload a report template or select generate template. Run the report by selecting „View‟.

Page 19: White Paper - Siebel BI Publisher Integration Concepts

17

Once a report has been created in BI Publisher to extract data from the Siebel CRM application

it is possible to add UI context integration in which a user can invoke the report, rather than

manually logging into the BI Publisher server to execute the report. Detailed below are some

Siebel CRM configuration options that could be applied to either SQL or Web Service based

reports:-

This method simply invokes a URL to a report on the BI Publisher server and is executed from a

button on an applet.

To avoid the user having to login to the BI Publisher server see the report, there are two options:

1. Use the Guest folder - this can be enabled via the server configuration file, any report in this

folder is open for all to view and execute. If the report is not sensitive then this solution is

possible to implement.

2. Use Single Sign On (SSO) - The BI Publisher server can connect to an SSO server as a

partner application to the calling application and use LDAP for both applications to

minimize the user maintenance. This way you can call any report via a URL and as long as

the user has rights to view/execute the report then BI Publisher will render it without the

need for the user to log in.

Page 20: White Paper - Siebel BI Publisher Integration Concepts

18

1. Create a new Control for the Applet. With the following properties:

Name: ExecuteBIP

Caption String Override: <A

HREF='http://bipserver:9704/xmlpserver/%7Eadministrator/Siebel+SQL+Report/Siebel

+SQL+Report.xdo' target=_blank>Execute BIP</a>

Replace the URL with the path to your BI Publisher server report.

HTML Display Mode: DontEncodeData

HTML Type: MiniButton

Method Invoked: ExecuteBIP

NOTE: If the syntax on the Caption is not correct, the URL will not be invoked correctly.

Ensure the quotes are exactly correct as above.

2. Add the new Button to the applet.

3. Edit the Applet Server Script and add the following code to enable the Button:

4. Compile the applet and the button should now display. When the user clicks it, a new IE

window should open displaying the URL link to the BI Publisher report.

Page 21: White Paper - Siebel BI Publisher Integration Concepts

19

This method invokes a URL from behind a button to a report on the BI Publisher server similar

to the static URL example, but passes the highlighted applet records‟ ROW_ID as a parameter in

the URL.

For more information on URL switches and parameters please review the BI Publisher

documentation, “Accessing Reports via a URL”

http://download.oracle.com/docs/cd/E10415_01/doc/bi.1013/e12187/T518230T518233.htm

#4498862

1. Create a new Control for the Applet. With the following properties:

Name: LaunchBIP

Caption String Override: Launch BIP

HTML Display Mode: DontEncodeData

HTML Type: MiniButton

Method Invoked: LaunchBIP

2. Add the new Button to the applet.

Page 22: White Paper - Siebel BI Publisher Integration Concepts

20

3. Edit the Applet Server Script and add the following code to enable the button:

4. Edit the Applet Browser Script and add the following code:

5. Compile the applet and the button should now display. When the user clicks it, a new IE

window should open displaying the URL link to the BI Publisher report with the ContactId

included as a URL parameter.

6. The BI Publisher report needs to be modified to accept this parameter as an input in the

query. The following steps use a SQL report as an example.

7. Navigate to the BI Publisher report, select Edit > Parameters > click New. Add the

following and click Save:

Page 23: White Paper - Siebel BI Publisher Integration Concepts

21

8. To reference the parameter in the SQL, modify the SQL query as follows:

The ROW_ID from Siebel will now be included in the SQL query when the report is

executed.

9. Save and Test the BI Publisher report, you should be able to enter a valid ROW_ID in the

report execution. The report should only display the corresponding record.

Page 24: White Paper - Siebel BI Publisher Integration Concepts

22

Page 25: White Paper - Siebel BI Publisher Integration Concepts

23

This method invokes a URL from a hyperlink in a calculated field to a report on the BI Publisher

server similar to the dynamic example, but passes the highlighted applet records ROW_ID as a

parameter in the URL.

1. Create new Calculated Field in the BusComp, depending on the string length, it may be

necessary to create more than one field. For example with the Contact BusComp create the

following new records:

Name: BI Publisher Report 1

Calculated: True

Calculated Value: "<A

HREF='http://bipserver:9704/xmlpserver/~administrator/Siebel+SQL+Report+with+Pa

rameter/Siebel+SQL+Report+with+Parameter.xdo?_xpf=&_xpt=0&_xdo=/~administrat

or/Siebel+SQL+Report+with+Parameter/Siebel+SQL+Report+with+Parameter.xdo&"

Data Type: DTYPE_TEXT

Name: BI Publisher Report 2

Calculated: True

Page 26: White Paper - Siebel BI Publisher Integration Concepts

24

Calculated Value: "&_xf=pdf&_xmode=4' target=_blank>" + "Execute BIP" + "</a>"

Data Type: DTYPE_TEXT

Name: BI Publisher Report

Calculated: True

Calculated Value: [BI Publisher Report 1] + "ContactId=" + [Id] + [BI Publisher Report 2]

Data Type: DTYPE_TEXT

2. Create a new List Column record in the Applet definition:

Name: BI Publisher Report

Field: BI Publisher Report

Display Name: Report

HTML Type: Caption

NOTE: Be sure to enter the calculated field expressions exactly as above with the right

quotes, or the URL will not be invoked correctly.

3. Compile the changes; you should see the new field in the list applet. When clicking the

hyperlink a new browser should open, passing the ContactId parameter (ROW_ID) to the

report. The report can display in a window without the headers and directly in PDF due to

the other URL string parameters passed.

Complete URL example:

http://bipserver:9704/xmlpserver/~administrator/Siebel+SQL+Report+with+Parameter/

Siebel+SQL+Report+with+Parameter.xdo?_xpf=&_xpt=0&_xdo=/~administrator/Siebel

+SQL+Report+with+Parameter/Siebel+SQL+Report+with+Parameter.xdo&ContactId=6

SIA-4Y6E3&_xf=pdf&_xmode=4

Page 27: White Paper - Siebel BI Publisher Integration Concepts

25

The URL should specify '?' for the first parameter and '&' for subsequent ones. Test the

URL string in IE first before invoking from Siebel CRM.

Page 28: White Paper - Siebel BI Publisher Integration Concepts

Top Related