You are on page 1of 218

Integrating Siebel 8.

0 Applications

Activity Guide

D49558GC10 Edition 1.0 December 2007 D53632

Authors
Siebel Curriculum Development Team

Copyright 2007, Oracle. All rights reserved. Disclaimer This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way. Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy, print, display, perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization of Oracle. The information contained in this document is subject to change without notice. If you find any problems in the document, please report them in writing to: Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not warranted to be error-free. Restricted Rights Notice If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS The U.S. Governments rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract. Trademark Notice Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Technical Contributors and Reviewers


Siebel Review team

Editor
Daniel Milne

Publisher
Jobi Varghese

Integrating Siebel 8.0 Applications

Contents
Lab 2-1 Exploring XML and XSD Documents...........................................................................1 Solutions 2-1 Exploring XML and XSD Documents ..................................................................7 Lab 2-2 Transforming an XML Document.................................................................................8 Lab 3-1 Examining External and Internal Data .......................................................................15 Solutions 3-1 Examining External and Internal Data ..............................................................20 Lab 4-1 Creating an Internal Integration Object......................................................................23 Lab 4-2 Creating an External Integration Object.....................................................................29 Solutions 4-2 Creating an External Integration Object............................................................32 Lab 5-1 Using the EAI Siebel Adapter Query Method ............................................................33 Solutions 5-1 Using the EAI Siebel Adapter Query Method ...................................................37 Lab 5-2 Using the EAI Siebel Adapter QueryPage Method....................................................38 Solutions 5-2 Using the EAI Siebel Adapter QueryPage Method ...........................................40 Lab 5-3 Comparing the EAI Siebel Adapter's Synchronize, Update, and Upsert Methods ....41 Solutions 5-3 Comparing the EAI Siebel Adapter's Synchronize, Update, and Upsert Methods................................................................................................................45 Lab 6-1 Using the EAI XML Converter....................................................................................47 Solutions 6-1 Using the EAI XML Converter...........................................................................50 Lab 6-2 Using the EAI XML Write To File Service ..................................................................51 Solutions 6-2 Using the EAI XML Write To File Service .........................................................52 Lab 6-3 Removing the Siebel Message Envelope ..................................................................53 Lab 7-1 Creating an Outbound Integration Workflow..............................................................57 Lab 7-2 Creating an Inbound Integration Workflow ................................................................62 Solutions 7-2 Creating an Inbound Integration Workflow .......................................................63 Lab 8-1 Creating a Data Map..................................................................................................65 Lab 8-2 Invoking a Data Map in an Integration Workflow .......................................................68 Lab 9-1 Using Outbound HTTP Transport ..............................................................................71 Lab 9-2 Using Inbound HTTP Transport.................................................................................74 Solutions 9-2 Using Inbound HTTP Transport ........................................................................79 Lab 9-3 (Optional) Using Session Mode for Inbound HTTP Transport...................................80 Lab 10-1 Exploring Application Services Interfaces................................................................83 Solutions 10-1 Exploring Application Services Interfaces.......................................................85 Lab 10-2 Using an ASI in a Workflow .....................................................................................86 Lab 11-1 Exploring Web Services...........................................................................................89 Solutions 11-1 Exploring Web Services..................................................................................96

iii

Integrating Siebel 8.0 Applications

Lab 12-1 Examining a Siebel Inbound Web service ...............................................................97 Lab 12-2 Exposing an ASI as a Web Service .......................................................................100 Lab 13-1 Creating an Outbound Web Service ......................................................................105 Solutions 13-1 Creating an Outbound Web Service .............................................................110 Lab 14-1 Exploring a Fusion Middleware Process................................................................111 Solutions 14-1 Exploring a Fusion Middleware Process.......................................................114 Lab 15-1 Creating an ESB Service .......................................................................................115 Lab 15-2 Initiating an ESB Service from Siebel CRM...........................................................134 Lab 15-3 Invoking Siebel Web Services from ESB...............................................................138 Lab 16-1 Checking Product Inventory...................................................................................147 Solutions 16-1 Checking Product Inventory..........................................................................159 Lab 16-2 Invoking Siebel Web Services Using BPEL PM ....................................................160 Solutions 16-2 Invoking Siebel Web Services Using BPEL PM ...........................................171 Lab 17-1 Using Siebel Schema with BPEL PM ....................................................................173 Solutions 17-1 Using Siebel Schema with BPEL PM............................................................184 Lab 17-2 Invoking a BPEL Process from Siebel CRM..........................................................185 Lab 19-1 Exploring Virtual and External Business Components ..........................................193 Solutions 19-1 Exploring Virtual and External Business Components .................................196 Lab 20-1 Creating an External Table Object Definition ........................................................199 Lab 20-2 Creating an External Business Component...........................................................204 Lab 20-3 Displaying the External Business Component.......................................................206 Lab 21-1 Creating a Virtual Business Component................................................................209 Solutions 21-1 Creating a Virtual Business Component.......................................................213

iv

Module 2: XML Concepts

Lab 2-1 Exploring XML and XSD Documents


Goals Time To explore the structure of XML and XSD documents and understand the relationship between them 15 25 minutes

Instructions:
In these labs you will examine several XML and XSD files and explore the structure of these files XML files are used in Siebel integration as a means of exchanging data between applications. You will first use an XML editor called Notepad++. Later in the lab you will use Oracle's JDeveloper application which provides additional XML editing functionality. 1. First you will examine a short XML file. a. Navigate to D:\Labs\Integration\XML and select ContactInternal.xml. b. Double-click ContactInternal.xml to open the file with Notepad++, and observe that the XML document is displayed in a formatted text mode. If the file does not open in Notepad++, consult your instructor for assistance. c. List the attributes of the Contact element.

d. List the child elements of the Contact element.

e. What is the value of the title element?

f. What is the value of the phones element?

g. Select the value of the home element and change it to 510-788-5555. h. Select File > Save to save the new value. 2. You will next examine the XSD file that specifies the structure of ContactInternal.xml file. a. Navigate to D:\Labs\Integration\XML and double-click ContactInternal.xsd. b. Examine the contents and observe that there are multiple elements types that specify the elements that appear in the ContactInternal.xml file. c. How are the elements that have child elements specified in the XSD file?

d. Close Notepad++. Do not save changes if asked.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

3. You will now use JDeveloper to examine the XML and XSD files. a. Navigate to D:\Labs\Integration\XML and right-click ContactInternal.xml. b. Select Open With > Oracle JDeveloper. i. If Oracle JDeveloper is not in the list, select Choose program. ii. Select Oracle JDeveloper from the list of programs and click OK. c. Click Close to close the Tip of the Day dialog. d. Observe that the source XML is displayed in the visual editor in the middle of the application. In addition observe that the structure pane in the lower left corner displays the structure of the XML document.

Visual Editor

Structure Pane

e. If necessary, expand the phones element in the structure pane to display the home element. f. Select the home element in the structure pane. Observe that the properties of the element highlighted in the structure pane are displayed in the property inspector pane in the lower right corner. g. Change the value of the home element back to 510-788-6666 by editing in the property inspector. h. Click in the visual editor to save the restored value. 4. You will next examine the XSD file that specifies the ContactInternal.xml file. Observe that xsi:schemalocation attribute indicates the schema file is ContactInternal.xsd. a. Navigate to D:\Labs\Integration\XML and right-click ContactInternal.xsd. b. Select Open With > Oracle JDeveloper. Observe that JDeveloper displays this file in a second tab in the editing pane. c. Verify that the XSD document is displayed in Source mode and consists of XML. If not, click the Source tab at the bottom left corner of the editing pane. d. Click the Design tab to display a graphical representation of the structure.
2 Integrating Siebel 8.0 Applications

Module 2: XML Concepts

e. Click the + tabs on elements as required to display the complete structure as shown below:

f. Observe that attributes, if any, are displayed underneath the element. 5. You will now use the Validate XML functionality in JDeveloper to determine if an xml file is valid. a. Click the ContactInternal.xml tab to display the xml file. b. Right-click in the visual editor and select Validate XML. c. Verify that the XML document is valid by observing the message that appears in the Message pane. d. Edit the phones start tag to phone. This creates an invalid element since the start and end tags differ.

e. Right-click in the visual editor and select Validate XML.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

f. Verify that the document is no longer a valid XML document by examining the messages in the message pane. g. Undo your edit by selecting Edit > Undo Delete Previous. Make sure your cursor is in the visual editor. h. Validate the XML again to verify that you restored the document completely. 6. You will next create an XML document that is based on the ContactInternal.xsd file. a. In the Applications Navigator, expand SOADEMO. b. Select CreditService. c. Right-click and select New. d. In the New Gallery dialog, expand General and select XML. If necessary change the Filter By drop down to All Technologies. e. Select XML in the Categories list. f. Select XML Document from XML Schema in the Items list as shown below:

g. Click OK. h. Click Next. i. Set XML File to NewContact.xml and the directory to D:\TEMP.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

j. Select Use File System Schema and navigate to D:\Labs\Integration\XML and select ContactInternal.xsd.

k. Click Next. l. Select JDeveloper default encoding.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

m. Click Finish. Observe that a new xml file has been created with the elements as specified in the xsd file. Verify that the file resembles that displayed below.

n. Enter the following values for the elements and attributes. You can edit directly in the Visual Editor or you can use the Property Inspector
isActive type name title email home cell Y business Pat Penguin Developer ppenguin@abc.com 650-654-3210 415-987-6543

o. Validate the document by right-clicking and selecting Validate XML. p. Save your changes once the document is successfully validated. q. Move NewContact.xml to D:\Labs\Integration\XML.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

Solutions 2-1 Exploring XML and XSD Documents


Answers
1.c. List the attributes of the Contact element. IsActive, type, xmlns:xsi, xsi:schemaLocation, xmlnsI. Attributes are name-value pairs that immediately follow a start tag. List the child elements of the Contact element. name,title,email,phone. Elements are items that are delimited by a start and end tag. What is the value of the title element? Mr What is the value of the phones element? The phone element does not contain a value; it contains two child elements. How are the elements that have child elements specified in the XSD file? They contain a complexType element.

1.d. 1.e. 1.f. 2.c.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

Lab 2-2 Transforming an XML Document


Goals Time To transform an XML document from one structure to another using an XML Stylesheet 10 15 minutes

Instructions:
In this lab you will transform an XML document from one structure to another. In this lab you will open all XML documents with Oracle JDeveloper. 1. You will first examine an XML document that contains contact data that is structured differently from that that you observed in the previous lab. a. Navigate to D:\Labs\Integration\XML and open ContactExternal.xml. b. Observe that names of the elements differ and that the phone elements are not contained in a parent phones element. c. Observe that while the structure is different, the values of the elements are identical to those in the contactInternal.xml file used in the previous lab. 2. Examine the XSD document that describes the structure of the ContactExternal.xml file. a. Navigate to D:\Labs\Integration\XML and open ContactExternal.xsd.. b. Expand the elements as required to observe the structure. In the remainder of the lab you will apply a prebuilt mapping stylesheet that transforms an XML document with a ContactInternal.xsd data structure to one with a ContactExternal.xsd structure. To run this transformation, you need to create a JDeveloper project and add the files of interest to the project. 3. First you will create a project and add the files. a. In the Applications Navigator in JDeveloper, right-click Applications and select New Application.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

b. In the Create Application dialog, enter XML Tests for the Application Name.

c. d. e. f. g.

Accept the defaults and click OK. In the Create Project dialog, click Cancel. In the Application Navigator select XML Tests. Right-click and select New Project. In the New Gallery dialog, select Project from Existing Source in the Items list, and click OK.

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

h. Click Next. i. Name the project XSLT Test and click Next.

j. In the Step 2 dialog, click Add, navigate to D:\labs\Integration\XML and click Select.

k. In the Include Content from Subflolders section, click Add.

10

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

l. Select all 6 files from that folder and click OK.

m. Click Finish. n. In the Applications Navigator, expand the project hierarchy under XML Tests until the list of files you added are displayed.

4. You are now ready to execute the prebuilt Int2Ext.xsl transformation. The first step is to set several properties for the XSLT project. a. In the Application Navigator, right-click XSLT Test and select Project Properties. b. In the left list in Project Properties, select Run/Debug. c. Click Edit. d. In the left list, click XSLT under Launch Settings. e. Click the Browse button for the Input XML file and navigate to D:\Labs\Integration\XML \NewContact.xml. f. Click Open.

Integrating Siebel 8.0 Applications

11

Module 2: XML Concepts

g. Click the Browse button for the Output XML file and navigate to: D:\Labs\Integration\XML, and specify a new file called TransformedContact.xml

h. Click the Edit button for the XSLT Source Path. i. Click Add Entry and navigate to D:\Labs\Integration\XML, and select it.

12

Integrating Siebel 8.0 Applications

Module 2: XML Concepts

j. k. l. m.

In the Edit XSLT Source Path dialog, click OK. In the Edit Run Configuration dialog, click OK. Click OK. Select File > Save to save the XSLT Test project

5. You will now test the XSL transformation. Make sure the XSLT Test project is selected. in the tool bar to start the transformation. a. Click the green run button b. If necessary, in the Choose Default Run Target dialog, click Browse and select Int2Ext.xsl in the list of files.

c. Click OK to run the XSLT transformation. d. Examine the messages that appear in the Message window to verify the transformation executed successfully. e. Once the transformation completes successfully, select File > Open. f. Navigate to D:\Labs\Integration\XML and select TransformedContact.xml. g. Click Open to display it in the Visual Editor. h. Right-click in the Visual Editor and select Reformat. i. Verify that the generated document resembles the file shown below. Observe that the file contains the Pat Penguin's contact data but in a different structure.

Integrating Siebel 8.0 Applications

13

Module 2: XML Concepts

14

Integrating Siebel 8.0 Applications

Module 3: Overview of Integration Workflows

Lab 3-1 Examining External and Internal Data


Goals Time To identify Siebel data that corresponds to external data 15 20 minutes

Instructions:
In the labs for this course, the ISA Company wishes to integrate its custom meeting/conference management system with its newly acquired Siebel CRM system. There are multiple integration points that ISA will need to implement, but for the purposes of this course, you will focus on one particular integration point; namely the exchange of contact data. ISA needs to be able to move data consisting of an account record and its contacts from the Siebel application to the meeting system for marketing and tracking purposes. In addition, after a conference or meeting has been held, ISA needs to move similar records collected by the meeting software system to the Siebel application. Understanding the structure of the data of interest in the two applications is one of the first steps in implementing an integration project. In this lab you will examine the data structure in each application. 1. You will first look at the structure of the account contact records in the custom meeting application. The team managing that application has provided you with an XSD file that describes the data structure. a. Navigate to D:\Labs\Integration\IO. b. Open ISA_Client.xsd using Oracle JDeveloper. c. If necessary, click the Design tab at the lower left corner of the visual editor.

Integrating Siebel 8.0 Applications

15

Module 3: Overview of Integration Workflows

d. If necessary, expand the elements until the complete structure is displayed as show below.

e. How many contacts can be associated with a client?

f. How many addresses can a client have?

g. Click the source tab and observe that the actual XML statements in the XSD file are displayed.

16

Integrating Siebel 8.0 Applications

Module 3: Overview of Integration Workflows

2. You will next look at he corresponding data in the Siebel CRM application in which accounts and contacts are used to store the data. You will use the Siebel Developer Web client and the sample database to explore this data a. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database by selecting Start > Programs > Siebel Web Client 8.0 > Siebel Call Center - ENU. b. Navigate to the Accounts > My Accounts view. c. Select the 3Com account. d. Click the select button in the address field to display the address multi value group (MVG). e. How many addresses can an account have?

f. Drill down on the account name to navigate to the Account Contacts view. g. How many contacts can an account have?

A major step in determining the Siebel data that corresponds to your external data is identifying the correct business components. This can often be accomplished by exploring the Siebel client application and finding views that display candidate Siebel data. In this case the account contacts detail view shows account and contact fields that correspond to the fields in the external client data structure. You can then use the Siebel feature Help About View to determine the business components that are exposed in this view. 3. You will now determine the underlying business components for this view. a. Select Help > About View. i. Which business object is referenced in this view?

ii. Which applets are displayed in this view?

iii. Which business components support these applets?

4. You observed earlier that an account has an address multi value group (MVG). Determining the business component that supports an MVG often requires a considerable exploration of Siebel Tools as well as the Siebel client. In some cases there is a detail (parent-child) view that displays the data in the MVG. a. Verify that an Account Address view does not appear in the view tabs in the accounts screen. b. Navigate to the Site Map and drill down on Accounts. c. Observe that there is an Addresses detail view listed under Account List. d. Drill down on Addresses. e. Which applets are displayed in this view?

Integrating Siebel 8.0 Applications

17

Module 3: Overview of Integration Workflows

f. Which business components support these applets?

5. You will identify fields in the Siebel application that correspond to elements in the external data structure. You will perform this for several such elements. a. Inspect the applets in the Account Address View and enter the Siebel details that correspond to each of the elements listed below
Element in ISA_Client ClientName URL Phone City Zip Siebel Applet Siebel Business Component Siebel UI Field

6. You will now use Siebel Tools to identify fields in these applets. a. Start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. i. Select Start > Programs > Siebel Tools 8.0 > Siebel Tools. ii. If asked, accept Agree to Terms. b. Select Applet :: Account Entry Applet. c. Open the Web Layout Editor. i. Right-click the Account Entry Applet and select Edit Web Layout. ii. Click OK to confirm that you will be viewing the applet in read-only mode. d. Select the Account Name text box control in the Web Layout editor, and right-click and select View Properties Window. e. Examine the Field property in the properties window to identify the business component field, and enter the field name in the table.
Element in ISA_Client ClientName URL Phone City Zip Siebel UI Field Account name URL Main Phone # City Zip Code Siebel Business Component Siebel BC Field Account Account Account Business Address Business Address

f. Identify the underlying fields for the remaining UI fields. Remember to examine the address list applet to determine the Business Address fields.

18

Integrating Siebel 8.0 Applications

Module 3: Overview of Integration Workflows

7. You will finally expose several additional object types in Siebel Tools that you will use during the remainder of the course. a. In Siebel Tools, select View > Options. b. Click the Object Explorer tab. c. Uncheck and re-check the checkbox for the following object types (this selects all the child object types for display in the Object Explorer):
Object Type Applet Business Component Business Service Integration Object Table Workflow Process

d. Click OK. This lab demonstrates how to perform mappings to identify the Siebel CRM data that corresponds to the external data of interest. You will implement these mappings in a subsequent lab when you configure integration objects.

Integrating Siebel 8.0 Applications

19

Module 3: Overview of Integration Workflows

Solutions 3-1 Examining External and Internal Data


Answers
1.d. 1.e. 2.e. How many contacts can be associated with a client? A client can have zero, one, or more contacts. How many addresses can a client have? A client has one address. How many addresses can an account have? An account can have multiple addresses, as indicated by the fact that the address in a multi value group. How many contacts can an account have? An account can have multiple contacts. Which business object is referenced in this view? Account Which applets are displayed in this view? Account Entry Applet, Account Contact List Applet Which business component supports these applets? Account, Contact Which applets are displayed in this view? Account Entry Applet, Account Address List Applet (SCW) Which business components support these applets? Account, Business Address Inspect the applets in the Account Detail - Business Address View and enter the Siebel details that corresponds to each of the elements listed below.
Element in ISA_Client ClientName URL Phone City Zip Siebel Applet Account Entry Applet Account Entry Applet Account Entry Applet Account Address List Applet (SCW) Account Address List Applet (SCW) Siebel Business Component Account Account Account Business Address Business Address Siebel UI Field Account Name URL Main Phone # City Zip Code

2.g. 3.a.i. 3.a.ii. 3.a.iii. 4.e. 4.f. 5.a.

20

Integrating Siebel 8.0 Applications

Module 3: Overview of Integration Workflows

6.e.

Examine the Field property in the properties window to identify the business component field, and enter the field name in the table
Element in ISA_Client ClientName URL Phone City Zip Siebel UI Field Account name URL Main Phone # City Zip Code Siebel Business Component Siebel BC Field Account Account Account Business Address Business Address Name Home Page Main Phone Number City Postal Code

Integrating Siebel 8.0 Applications

21

Module 3: Overview of Integration Workflows

22

Integrating Siebel 8.0 Applications

Module 4: Integration Objects

Lab 4-1 Creating an Internal Integration Object


Goals Time To build an integration object based on an account and child contact fields 15 25 minutes

Instructions:
In a previous lab, you examined the external data and identified some of the corresponding source Siebel data you will integrate. You will create an integration object to represent the Siebel data to be integrated. 1. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. 2. You will first create a new project. a. Select Project in the Siebel Tools Object Explorer (OE). b. In the OBLE, right-click and select New Record. c. Enter ISA Account as the project name. d. Lock the project. 3. You will next invoke the Integration Object wizard a. Select File > New Object and click the EAI tab to display several EAI wizards.

b. Select Integration Object and click OK. c. In the first Integration Object Builder dialog, select ISA Account as the Project.

Integrating Siebel 8.0 Applications

23

Module 4: Integration Objects

d. Select EAI Siebel Wizard from the Specify the source system of the new Integration Object drop-down.

e. Click Next. 4. You will next specify the source data for the new integration object. a. Select Account as the source object for the new integration object. b. Select Account as the source root. c. Enter ISA Meeting Account as the name for the new integration object.

d. Click Next.

24

Integrating Siebel 8.0 Applications

Module 4: Integration Objects

5. You will finally choose the integration components that are included in the integration object a. Click the + sign next to Account to display the candidate integration components. b. Select the components that you need to include in this integration object by checking the appropriate items in the Choose Integration Components window. Since there are only a few components (Account, Account_Business Address, and Contact), it is easier to deselect Account to clear the entire list, and then select Account_Business Address and Contact. The top part of the list should look like the screen hot below. You will need to scroll down to select Contact.

c. Click Next. d. Note that several messages appear, and then click Finish. 6. You will examine the ISA Meeting Account integration object that is created. Siebel Tools should display the newly created object definition. a. Select Integration Object :: ISA Meeting Account | Integration Component to verify that the integration object contains the Account, Account_Business Address and Contact integration components.

Integrating Siebel 8.0 Applications

25

Module 4: Integration Objects

7. You will next configure the required integration component fields. By default, all fields in the selected business components are present in the integration components created by the wizard. In a previous lab you identified some of the fields that you wish to integrateyou will now inactivate the fields within each integration component that you do not wish to integrate. a. Select Integration Object :: ISA Meeting Account | Integration Component :: Account | Integration Component Field. i. Select the first two records. ii. Scroll down to the last record and select it while pressing the Shift key. This will select all the integration component fields. iii. From the application-level menu select Edit > Change Records. iv. In the Change 1 field of the Change Selected Records window, enter the following parameters:
Field Value Inactive Y

v. Click OK. vi. For the Account integration component, make the following fields active. Use columns displayed to reposition the Inactive column
Account Integration Component Fields Id Integration Id Home Page Main Phone Number Name operation (note that this is a system field) searchspec (note that this is a system field)

b. Select Integration Object :: ISA Meeting Account | Integration component :: Account_Business Address | Integration component Field. i. Repeat the steps from above to make all Account_Business Address integration component fields inactive.

26

Integrating Siebel 8.0 Applications

Module 4: Integration Objects

ii. For the Account_Business Address integration component, make the following fields active:
Account_Business Address Integration Component Fields Address Name City Country IsPrimaryMVG Postal Code State Street Address Street Address2 operation searchspec

c. Select Integration Object :: ISA Meeting Account | Integration Component :: Contact | Integration Component Field. i. Repeat the steps from above to make all Contact integration component fields inactive. ii. For the Contact integration component, make the following fields active:
Contact Integration Component Fields Account Integration Id Email Address First Name Job Title Last Name Person UId operation searchspec

Note that you have added Account Integration Id as an integration component field. It serves as the foreign key field to the parent account record. In addition, you have also added the Person UId field. You will use this field as part of a user key in the next step.

Integrating Siebel 8.0 Applications

27

Module 4: Integration Objects

8. Finally you will specify the integration component key and integration component key fields for the integration object. a. Select Integration Object :: ISA Meeting Account | Integration Component :: Account | Integration Component Key :: V77 Wizard-Generated User Key:1 | Integration Component Key Field. b. Verify that there is only a single key field named Integration Id c. Select Integration Object :: ISA Meeting Account | Integration Component :: Account | Integration Component Key :: V77 Wizard-Generated User Key:2 | Integration Component Key Field. d. Observe that there are three key fields. Set all but the Name field to inactive. e. Configure the integration component keys (for the remaining integration components) to make sure that only the key fields listed in the table below are active. Set any other key fields to inactive.
Integration Component Account_Business Address Contact Contact Integration Component Key V77 Wizard-Generated User Key:2 V77 Wizard-Generated User Key:1 V77 Wizard-Generated User Key:2 Integration Component Key Field Address Name Account Integration Id Person UId

f. Set the V77 Wizard-Generated User Key:1 for Account_Business Address to inactive. 9. You will finally compile the new integration object into the client .srf file. a. Select Integration Object :: ISA Meeting Account. b. Right-click ISA Meeting Account and select Compile Selected Objects. c. Ensure that you are compiling to D:\OUsea\Client\OBJECTS\ENU\siebel.srf. d. Click Compile.

28

Integrating Siebel 8.0 Applications

Module 4: Integration Objects

Lab 4-2 Creating an External Integration Object


Goals Time To create an integration object based on an XSD file that describes external data 5 10 minutes

Instructions:
In this lab you will create an external integration object that describes the structure of the data used by the external meeting system. The Meeting System team has generated an XSD file that describes the structure. You examined this XSD file in a previous lab and a copy of the structure follows.

Integrating Siebel 8.0 Applications

29

Module 4: Integration Objects

1. You will create an external integration object to represent the ISA Client data structure. a. In Siebel Tools select File > New Object. b. Select the EAI tab. c. Select Integration Object, then click OK. d. Select ISA Account as the project and EAI XSD Wizard from the Specify the source system of the new Integration Object drop-down. e. Select D:\Labs\Integration\IO\ISA_Client.xsd as the XSD file f. Verify that Simplify Integration Object Hierarchy is true and click Next. g. Select Client as the source object for the new integration object. h. Enter ISA Client as the name for the new integration object. i. Click Next. j. Expand the Client component to display the child components. Verify that the three components displayed correspond to the complex elements in the XSD file.

k. Click Next.. l. Verify that the integration object was successfully created. m. Click Finish.

30

Integrating Siebel 8.0 Applications

Module 4: Integration Objects

2. You will now examine the external integration object. a. Select Integration Object :: ISA Client | Integration Component :: Client | Integration Component Field. Observe that there is a field for each element in the ISA Client..

b. Which fields are parts of the Contact integration component?

c. Why are there no fields for the Contacts integration component?

3. You will finally compile the external integration object into the client repository (.srf) file. a. Select Integration Object :: ISA Client. b. Right-click ISA Client and select Compile Selected Objects. c. Ensure that you are compiling to D:\OUsea\Client\OBJECTS\ENU\siebel.srf, and click Compile.

Integrating Siebel 8.0 Applications

31

Module 4: Integration Objects

Solutions 4-2 Creating an External Integration Object


Answers
2.b. 2.c. Which fields are parts of the Contact integration component? ContactID, FirstName, LastName, emailAddress. Why are there no fields for the Contacts integration component? The Contacts integration component corresponds to the contacts element in the XSD. This element is complex element type that contains only other complex element types. Accordingly is serves as a container or header for the child elements.

32

Integrating Siebel 8.0 Applications

Module 5: EAI Siebel Adapter

Lab 5-1 Using the EAI Siebel Adapter Query Method


Goals Prerequisites Time To use the EAI Siebel Adapter Query method to retrieve data from a Siebel application You must have created the ISA Meeting Account integration object. 10 15 minutes

Instructions:
In this lab you will query a sample account using the EAI Siebel Adapter Query method. You will identify arguments to insert into the input property set that is passed into the business service. You will then run the Business Service Simulator to retrieve an output property set. You will examine the property set and save it for later use. 1. You will first identify a sample account to query. a. If necessary, start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. b. Select Accounts > Accounts List. c. Locate and select the account named Delta Valley Brewers, Ltd. d. What is the row # for this account? To identify the row #, right-click the record, and select About Record e. Drill down on the account name and verify that two contacts are associated with the account. Record the name and title for each contact.

2. You will next examine the business service and identify the arguments for the query method. a. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. b. Select Business Service :: EAI Siebel Adapter | Business Service Method :: Query | Business Service Method Arg. The business service method arguments (Display Name) used for this exercise are: i. Output Integration Object Name ii. Object ID c. What is the business service argument name for Output Integration Object Name?

d. What does this argument reference?

Integrating Siebel 8.0 Applications

33

Module 5: EAI Siebel Adapter

e. What is the business service argument name for Object ID?

f.

What does this argument reference?

3. You will test this method of the business service using the business service simulator. a. In Siebel Call Center, select Administration - Business Service > Simulator. b. Create a new Simulator record with the following values:
Service Name Method Name EAI Siebel Adapter Query

c. Create a new record in the Input Arguments list and open the Property Name MVG to add the following arguments: Caution: The Business Service Simulator reads object definitions from the repository file. These object definitions are case-sensitive so make sure that you enter the property names and values exactly as specified.
Property Name OutputIntObjectName PrimaryRowId Value ISA Meeting Account 1-2EDYH

d. Run the Business Process Simulator by clicking Run on One Input in the top applet. 4. You will next explore the data returned by the business service. a. Scroll down to view the Output Arguments list applet. b. Click the Select button in the Property Name field. This will invoke the Property Set Properties window.

34

Integrating Siebel 8.0 Applications

Module 5: EAI Siebel Adapter

c. What is the value for Primary Row ID?

d. Click OK to close the Property Set Properties window. e. Click the Select button in the Child Type field.

f. In the PropertySet window, continue clicking the Select button in the Child Type field to drill down in the property set hierarchy until you reach the Contact child type. g. Drill down into the Child contact and verify that two Contact records are displayed.

h. Click the Select button in the Property Key field in the first record to examine the data returned in the property set.

i. Verify that the record for the second contact was also successfully retrieved. 5. It is often easier to save the output to a file and examine the output using an appropriate tool. a. In the Output Arguments applet, click Save To File. b. Click Save. c. Save As: D:\Temp\EAI-1 output.xml. d. Click Close. e. Close the windows. f. Navigate to D:\Temp\EAI-1 output.xml and open the file with Oracle JDeveloper.

Integrating Siebel 8.0 Applications

35

Module 5: EAI Siebel Adapter

g. Right-click in the tabbed window that displays the file and select Reformat.

h. Observe that the file displays the set of integration components that you configured in the previous lab. Observe that spaces in the names of Siebel business component fields have been replaced with special characters to allow the file to display as XML. i. When finished, close the file in JDeveloper. Do not save changes if asked.

36

Integrating Siebel 8.0 Applications

Module 5: EAI Siebel Adapter

Solutions 5-1 Using the EAI Siebel Adapter Query Method


Answers
1.d. 1.e. What is the row number for this account? 1-2EDYH. Drill down on the account name and verify that two contacts are associated with the account. Record the name and title for each contact. Blake Nadler, Facilities Supervisor; Teresa Stimms, Plant manager What is the business service argument name for Output Object Integration Name? OutputIntObjectName. What does this argument reference? The integration object for which this business service will output a hierarchical property set. What is the business service argument name for Object ID? PrimaryRowId. What does this argument reference? The row number for the account from which you will retrieve data for output. What is the value for Primary Row ID? 1-2EDYH.

2.c 2.d

2.e 2.f 4.c.

Integrating Siebel 8.0 Applications

37

Module 5: EAI Siebel Adapter

Lab 5-2 Using the EAI Siebel Adapter QueryPage Method


Goals Time To use the EAI Siebel Adapter QueryPage method 5 10 minutes

Instructions:
In this lab you will test the EAI Siebel Adapters QueryPage method using the Business Service Simulator in Siebel Call Center. You will use Siebel Tools to identify the arguments to insert into the input property set that is passed into the business service. You will then run the service and explore the output hierarchical property set. 1. You will first examine the business service and identify the arguments for the querypage method. a. In Siebel Tools, select Business Service :: EAI Siebel Adapter | Business Service Method :: QueryPage | Business Service Method Arg. b. The method arguments used from the QueryPage business service method for this lab are: i. PageSize ii. OutputIntObjectName iii. StartRowNum c. What does the PageSize argument represent?

d. What does the StartRowNum argument represent?

2. You will test this method of the business service using the business service simulator. a. In Siebel Call Center, select Administration - Business Service > Simulator. b. Create a new Simulator record with the following values:
Service Name Method Name EAI Siebel Adapter QueryPage

c. Create a new input arguments record with the following values. Note: A value of 0 for the start row returns the first record in the database.
Property Name OutputIntObjectName PageSize StartRowNum Value ISA Meeting Account 2 0

d. Make sure that the new record you created is selected in each applet and click Run on One Input to test the business service.
38 Integrating Siebel 8.0 Applications

Module 5: EAI Siebel Adapter

3. You will now examine the output of the business service. a. Select the output in the output arguments list applet. b. Click the Select button in the Child Type field and examine the record. Continue clicking the Select button in the Child Type field until property sets of type Account are displayed.

c. How many objects of Type = Account were output?

d. Why?

e. Click the select button in the Property Key field to examine the account fields. f. What are the names of the accounts returned?

g. Close the Property Set window. 4. You will save this output for a later lab. a. In the Output Arguments list applet, click Save To File. b. Click Save. c. Name the file D:\Temp\EAI-2 output.xml. d. Close the windows. 5. (Optional) Change the value of the StartRowNum (in the input arguments property set) to 1000, and rerun the business service. Which accounts are returned?

Integrating Siebel 8.0 Applications

39

Module 5: EAI Siebel Adapter

Solutions 5-2 Using the EAI Siebel Adapter QueryPage Method


Answers
1.c. 1.d. What does the PageSize argument represent? The PageSize argument represents the maximum number of records that will be retrieved. What does the StartRowNum argument represent? The StartRowNum argument represents the order number in the retrieved record set of the first row of the page to be output. How many objects of Type = Account were output? Two. Why? The input argument PageSize value was set to 2, returning two records per invocation. What are the names of the accounts returned? MKTG Account 106, MKTG Account 107. These two demo records happen to be the first two account records in the database. (Optional) Change the value of the StartRowNum (in the input arguments property set) to 1000, and rerun the business service. Which accounts are returned? Angelo's Italian Garden, First Records Inc.

3.c. 3.d. 3.f.

5.

40

Integrating Siebel 8.0 Applications

Module 5: EAI Siebel Adapter

Lab 5-3 Comparing the EAI Siebel Adapter's Synchronize, Update, and Upsert Methods
Goals Time To observe the difference in behavior of the EAI Siebel Adapter's synchronize, update, and upsert methods 15 25 minutes

Instructions:
In this lab you will investigate the EAI Siebel Adapters Synchronize, Update, and Upsert methods using the Business Service Simulator in Siebel Call Center. In particular you will observe the differences in behavior among the three methods. 1. You will first create a test account record that you will use for this lab. a. Navigate to Accounts > Accounts List > My Accounts. b. Create a new account with the following:
Account Name Main Phone Number URL ISA Corp 925-555-1111 www.isacorp.com

c. d. e. f.

Save the record. Record the Row Number of the new account record. Drill down on the record to navigate to the Accounts Contacts view. Create two new contacts with the following:
First name Betty David Last Name Baer Dawg Job Ttitle Analyst Engineer Email bb@isacorp.com dd@isacorp.com

2. You will next use the business service simulator to execute an EAI Siebel Adapter query operation to extract the ISA Corp record from the Siebel application. a. In Siebel Call Center, select Administration - Business Service > Simulator. b. Create a new Simulator record with the following values:
Service Name Method Name EAI Siebel Adapter Query

Integrating Siebel 8.0 Applications

41

Module 5: EAI Siebel Adapter

c. Create a new record in the Input Arguments list and open the Property Name MVG to add the following arguments: Caution: The Business Service Simulator reads object definitions from the repository file. These object definitions are case-sensitive so make sure that you enter the property names and values exactly as specified.
Property Name OutputIntObjectName PrimaryRowId Value ISA Meeting Account <enter the row number of the ISA Corp account>

d. Run the Business Process Simulator by clicking Run on One Input in the top applet. e. Examine the output of the business service and verify that the ISA Corp account was extracted. f. In the Output Arguments applet, click Save To File. g. Click Save. h. Save As: D:\Temp\EAI-3 ISA original.xml. i. Click Close. j. Close the windows. 3. You will now make a copy of the output and make a small set of modifications to the account and contact records for use later in the lab. a. Copy D:\Temp\EAI-3 ISA original.xml. and name the copy D:\Temp\EAI-3 ISA new.xml.: b. Open the copied file with Oracle JDeveloper. c. Right-click in the tabbed window that displays the file and select Reformat. d. Observe that the file resembles an XML file but is in an XML-based format used by the business service simulator. Note in particular that the business component fields are represented as attributes of the element representing the business component. e. In the <Account> element, change the main phone number to 925-555-9999. f. In the <Contact> element for Betty Baer, change the job title to Senior Analyst. g. In the <Contact> element for David Dawg, replace the following attribute values:
First_spcName Last_spcName Person_spcUId Email_spcAddress Peter Piethawn ABCDEF pp@isacorp.com

This effectively deletes the original record and creates a new record. This will allow you to observe what happens when a new child record synchronized. h. Save the modified XML file. 4. You will use this modified file to observe the behavior of several methods of the EAI Siebel Adapter. You will first examine the Synchronize behavior. a. In the business service simulator create a new Simulator record with the following values:
Service Name Method Name EAI Siebel Adapter Synchronize

42

Integrating Siebel 8.0 Applications

Module 5: EAI Siebel Adapter

b. c. d. e. f. g. h. i. j. k.

In the Input Arguments list applet, click Load From File. Click Browse. Select D:\Temp\EAI-3 ISA new.xml and click Open. Click Load. Make sure the EAI Siebel Adapter Synchronize record is still selected in the top applet, and click Run on One Input. Navigate to the Accounts > Accounts List > My Account view. Select the ISA Corp record and drill down on it. Verify that the Account main phone number has been updated. Verify that the job title for Betty Baer has been updated to Senior Analyst. How many contacts does the account have? What happened to the previous contacts?

5. You will now restore the original ISA Corp record by executing another synchronization process using the file with the original data. a. Use the Internet Explorer back arrow to return to the Business Service Simulator view. Navigating this way preserves the records in the view, and reduces the amount or data entry you may need to do. b. In the Input Arguments list applet, click Load From File. c. Click Browse. d. Select D:\Temp\EAI-3 ISA original.xml and click Open. e. Click Load. f. Make sure the EAI Siebel Adapter Synchronize record is still selected in the top applet, and click Run on One Input. g. Navigate to the Accounts Contacts view and verify that the ISA Corp record has been restored to its original state with Betty Baer and David Dawg as contacts. 6. You will now observe the behavior of the Update method. a. Return to the Business Service Simulator view making sure to use the browser back arrow. b. In the business service simulator create a new Simulator record with the following values:
Service Name Method Name EAI Siebel Adapter Update

In the Input Arguments list applet, click Load From File. Click Browse. Select D:\Temp\EAI-3 ISA new.xml and click Open. Click Load. Make sure the EAI Siebel Adapter Update record is still selected in the top applet, and click Run on One Input. h. Navigate to the Accounts Contacts view and observe that the ISA Corp record has been modified. Verify that Betty's job title has been updated once again to Senior Analyst and that

c. d. e. f. g.

Integrating Siebel 8.0 Applications

43

Module 5: EAI Siebel Adapter

David Dawg has been replaced by Peter Piethawm. Note that the modifications are identical to those using the synchronization method. i. Restore the ISA Corp account data to its initial state using the procedure you followed after you executed the Synchronization method. 7. You will now observe the behavior of the Upsert method. a. Return to the Business Service Simulator view making sure to use the browser back arrow. b. In the business service simulator create a new Simulator record with the following values:
Service Name Method Name EAI Siebel Adapter Upsert

In the Input Arguments list applet, click Load From File. Click Browse. Select D:\Temp\EAI-3 ISA new.xml and click Open. Click Load. Make sure the EAI Siebel Adapter Upsert record is still selected in the top applet, and click Run on One Input. h. Navigate to the Accounts Contacts view and observe that the ISA Corp record has been modified. i. How many contacts does the account have now? Why is there an additional contact?

c. d. e. f. g.

44

Integrating Siebel 8.0 Applications

Module 5: EAI Siebel Adapter

Solutions 5-3 Comparing the EAI Siebel Adapter's Synchronize, Update, and Upsert Methods
Answers
4.k. How many contacts does the account have? What happened to the previous contacts? The account has two contacts: BettyBaer and Peter Piethawn. Betty's record was updated because her contact data appeared in the input XML file. David Dawg's record was deleted since his contact data did not appear in the input XML file. How many contacts does the account have now? Why is there an additional contact? Upsert adds any new child records that are in the input data. However, unlike the synchronize operation, it does not delete child records from the target record.

7.i.

Integrating Siebel 8.0 Applications

45

Module 5: EAI Siebel Adapter

46

Integrating Siebel 8.0 Applications

Module 6: Data Conversion

Lab 6-1 Using the EAI XML Converter


Goals Prerequisites Time To use EAI XML Converter and EAI File Transport business services to convert an integration object instance into an XML string and write it to a file You must have created XML output file from the EAI Siebel Adapter query method lab. 10 15 minutes

Instructions:
In this lab you will use the EAI XML Converter to convert an integration object instance to an XML string. You will then use the EAI File Transport business service to write this XML string to a file. 1. You will first examine the business service. a. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. b. Select Business Service :: EAI XML Converter | Business Service Method :: IntObjHierToXMLDoc. c. What is the purpose of this business service method?

2.

You will next use the business service simulator to test the business service. a. If necessary, start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. b. Navigate to Administration - Business Service > Simulator. c. Create a new record with the following values:
Service Name Method Name EAI XML Converter IntObjHierToXMLDoc

d. In the Input Arguments list applet, click Load From File. You will load the output file saved in Using the EAI Siebel Adapter Query Method lab. i. Click Browse. ii. Select D:\Temp\EAI-1 output.xml.. iii. Click Open. iv. Click Load. e. Click Run on One Input to run the Business Service Simulator.

Integrating Siebel 8.0 Applications

47

Module 6: Data Conversion

3. You will next examine the output.

a. Scroll down to the Output Arguments list applet. b. Roll your mouse over the Value field to display the contents of the field. Observe that the output is now in standard XML format. c. When you have finished inspecting the output, click Move to Input to transfer the XML to the input arguments list. 4. You will now use the XML File Transport business service to write the XML out to a file. a. In Siebel Tools, select Business Service :: EAI File Transport | Business Service Method :: Send | Business Service Method Argument. b. What is the FileName business service method argument used for?

c. What is the CharSetConversion business service method argument used for?

5. You will finally test the business service. a. In the Business Service Simulator view in Siebel Call Center, create a new Simulator record with the following values:
Service Name Method Name EAI File Transport Send

b. Select the Input Arguments record that represents the output of the EAI XML Converter service and click the Select button in the Property Name Field to display the output properties of the previous business service step. Verify that the output looks like:

48

Integrating Siebel 8.0 Applications

Module 6: Data Conversion

c. Delete all Property Names and Values from this list. Note: These arguments are not needed for the File Transport Business service, so we are removing them for easy reading of the property set. They would not do any harm if they were left in place. d. Add the following values:
Property Name FileName CharSetConversion Value D:\Temp\DC-1 output.xml UTF-8

e. Make sure that the EAI File Transport record is still selected in the top applet and click Run on One Input. 6. You will now examine the XML file a. Navigate to D:\Temp\DC -1 output.xml and open the file with Oracle JDeveloper. b. Right-click in the tabbed window that displays the file and select Reformat. c. Observe that this file contains an XML string. It has a top-level element of type SiebelMessage. In addition all the child element types are formatted properly for XML documents as they contain no spaces or special characters. The first file contains a property set in which spaces (and other special characters) have been replaced with _spc in order to generate an XML document.

Integrating Siebel 8.0 Applications

49

Module 6: Data Conversion

Solutions 6-1 Using the EAI XML Converter


Answers
1.c. What is the purpose of this business service method? This business service method will convert a SiebelMessage (Integration Object based Property Set) to an XML string. What is the FileName business service method argument used for? Is used to specify the Filename and path of the output file. What is the CharSetConversion business service method argument used for? Is used to apply the specified character set to the output file.

4.b. 4.c.

50

Integrating Siebel 8.0 Applications

Module 6: Data Conversion

Lab 6-2 Using the EAI XML Write To File Service


Goals Time To convert and write an integration object instance using the EAI XML Write to File business service 5 10 minutes

Instructions:
In this lab you will use the EAI Write to File business service to convert an integration object and write the XML to a file in a single step. 1. You will first examine the business service method argument to be used. a. In Siebel Tools, select Business Service :: EAI XML Write to File | Business Service Method :: WriteEAIMsg. b. What does the WriteEAIMsg business service method do?

2. You will next test the business service. a. In the business service simulator view in Siebel Call Center, create a new record with the following values:
Service Name Method Name EAI XML Write to File WriteEAIMsg

b. In the Input Arguments list applet, click Load From File. You will load the output file saved in Using the EAI Siebel Adapter Query Method lab. i. Click Browse. ii. Select D:\Temp\EAI-1 output.xml.. iii. Click Open. iv. Click Load. c. Delete all the Property Name Property Value pairs in the input record you just loaded. d. Add the following property names and values:
Property Name FileName Value D:\Temp\DC-2 output.xml

e. Click Run on One Input to run the Business Service Simulator. 3. You will now examine the XML file a. Navigate to D:\Temp\DC-2 output.xml and open the file with Oracle JDeveloper. b. Right-click in the tabbed window that displays the file and select Reformat. c. Verify that the output is identical to that produced in the previous lab.

Integrating Siebel 8.0 Applications

51

Module 6: Data Conversion

Solutions 6-2 Using the EAI XML Write To File Service


Answers
1.b What does the WriteEAIMsg business service method do? It converts an integration object instance (Siebel Massage) inot an XML string and writes the XML string to a file.

52

Integrating Siebel 8.0 Applications

Module 6: Data Conversion

Lab 6-3 Removing the Siebel Message Envelope


Goals Time To configure the EAI XML Converter business services to remove the Siebel Message envelope when converting an integration object 10 15 minutes

Instructions:
In this lab you will use the EAI XML Converter to convert an integration object instance to an XML string that does not include the Siebel Message envelope. 1. You will first examine the business service and identify the method argument that controls the appearance of the Siebel Message envelope. a. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. b. Select Business Service :: EAI XML Converter | Business Service Method :: IntObjHierToXMLDoc | Business Service Method Arg :: UseSiebelMessageEnvelope. This argument is optional and its default value is true. You can explicitly set this argument to false to remove the Siebel Message envelope. 2. You will next use the business service simulator to test setting this argument. a. If necessary, start Siebel Call Center and log in as SADMIN/SADMIN to the Sample database. b. Navigate to Administration - Business Service > Simulator. c. Create a new record with the following values:
Service Name Method Name EAI XML Converter IntObjHierToXMLDoc

d. In the Input Arguments list applet, click Load From File. You will load the output file saved in Using the EAI Siebel Adapter Query Method lab. i. Click Browse. ii. Select D:\Temp\EAI-1 output.xml.. iii. Click Open. iv. Click Load. e. Delete all the Property Name Property Value pairs in the input record you just loaded. f. Add the following property names and values:
Property Name UseSiebelMessageEnvelope Value False

g. Click Run on One Input to run the Business Service Simulator. h. Scroll down to the Output Arguments list applet.

Integrating Siebel 8.0 Applications

53

Module 6: Data Conversion

i. Roll your mouse over the Value field. This will display the contents of the field. Observe that the output is now in standard XML format. j. Verify that there is no longer a SiebelMessage element at the top level of the XML string. k. When you have finished inspecting the output, click Move to Input to transfer the XML to the input arguments list. 3. You will run the EAI File Transport business service to write the XML you produced in the previous step to a file. a. In the Business Service Simulator view in Siebel Call Center, create a new Simulator record with the following values:
Service Name Method Name EAI File Transport Send

b. Select the Input Arguments record that represents the output of the EAI XML Converter service and delete all the Property Name Property Value pairs in that record. c. Add the following values:
Property Name FileName CharSetConversion Value D:\Temp\DC-3 output.xml UTF-8

d. Make sure that the EAI File Transport record is still selected in the top applet and click Run on One Input. e. Navigate to D:\ Temp\DC-3 output.xml and open the file with Oracle JDeveloper. f. Right-click in the tabbed window that displays the file and select Reformat. g. Observe that the XML in this file does not have a SiebeMessage header. This is the difference between the XML you just generated and the XML you generated in the early parts of this lab. 4. You will now read a file back in using the EAI Read From File business service. a. In the Business Service Simulator view in Siebel Call Center, create a new Simulator record with the following values:
Service Name Method Name EAI XML Read From File ReadEAIMsg

b. Create a new Input Arguments record and add the following values: Add the following values:
Property Name FileName Value D:\Temp\DC-1 output.xml

c. Make sure that the EAI XML Read From File record is still selected in the top applet and click Run on One Input. d. Observe that a properly formatted Siebel integration object is created.

54

Integrating Siebel 8.0 Applications

Module 6: Data Conversion

5. You will now attempt to read a file that does not have a Siebel Message envelope. a. Modify the Input Arguments record you just used by changing the FileName to D:\Temp\DC-3 output.xml. b. Make sure that the EAI XML Read From File record is still selected in the top applet and click Run on One Input. c. Observe that the business service fails because the file does not include a Siebel Message envelope. The envelope specifies the integration object into which the XML file is to be converted. 6. You will now add an additional argument that specifies the integration object and test the business service again. a. Modify the Input Arguments you just used by adding the following:
Property Name IntObjectName Value ISA Meeting Account

b. Make sure that the EAI XML Read From File record is still selected in the top applet and click Run on One Input. c. Observe that the business service runs this time, and verify that the integration object instance that is produced has a Siebel Message envelope.

Integrating Siebel 8.0 Applications

55

Module 6: Data Conversion

56

Integrating Siebel 8.0 Applications

Module 7: Integration Workflows

Lab 7-1 Creating an Outbound Integration Workflow


Goals Prerequisites Time To create an outbound integration workflow that retrieves account data, converts it to an XML string, and writes it to a file You must have created the ISA Meeting Account integration object. 20 25 minutes

Instructions:
In this lab, you will create a workflow that incorporates the three fundamental EAI business services you explored in the previous labs. You will use Siebel Tools to first build the workflow and to test it using the workflow simulator. 1. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. 2. Create a new project called ISA EAI Workflows and lock it. 3. First you will create the new workflow record and add required process properties. a. Select Workflow Process in the Object Explorer. b. Create a new Workflow Process object definition with the following properties
Process Name Business Object Project ISA Export Account to File Account ISA EAI Workflows

c. Verify that the Status and Workflow modes default to In Progress and Service Flow respectively. d. Right-click the workflow and select Edit Workflow Process to invoke the workflow designer. e. Make sure the Multi Value Property Window is displayed at the bottom of the Tools application. Observe that the five default process properties appear.

Integrating Siebel 8.0 Applications

57

Module 7: Integration Workflows

f. Create two additional process properties for the SiebelMessage and the XML string that are produced by the EAI business services.
Name Siebel Msg XML String In/Out In/Out In/Out Data Type Hierarchy Binary

4. You will now create the details of the workflow. a. Build a workflow consisting of a start step, three business service steps, and an end step. i. Select and drag the corresponding icon from the palette onto the drawing surface. ii. Add a connector to connect each of the steps. Make sure that a red circle appears at each end of each connector to indicate that the connector is properly anchored to the step. b. Select View > Windows > Properties Window to display the Properties window. You will configure the business service steps using this window. c. Select each business service step in sequence and configure the properties as follows. Make sure you select the business service name before you enter the method. Also select the values of the business service name and method from the picklists rather than typing them in directly. These picklists are unbounded and anything typed in will be accepted. This allows users to pass additional inputs to a business service if desired. Your workflow should resemble that in the following screen shot.
Step Name Business Service Name Business Service Method EAI Siebel Adapter EAI XML Converter EAI File Transport Query IntObjHierToXMLDoc Send Business Service 0 Get Account Business Service 1 Convert to XML Business Service 2 Write to File

d. Rename the end step to End.

58

Integrating Siebel 8.0 Applications

Module 7: Integration Workflows

5. Next you will assign the inputs and outputs of the various workflow steps. a. Assign the inputs of the Get Account step. i. In the designer, select the Get Account business service step. ii. Create two new records with the following properties in the Input Arguments tab of the Multi Value Properties Window (MVPW):
Input Argument PrimaryRowId Type Process Property ISA Meeting Account Value Property name Object Id

OutputIntObjectName Literal

iii. Create a new record as follows in the Output Arguments tab of the MVPW.
Property name Siebel Msg Type Output Argument Value Output Argument SiebelMessage

Note: This assigns the SiebelMessage output argument of the business service to the process property with the name Siebel Msg.

b. Assign the inputs and outputs to the Convert to XML business service. i. In the designer, select the Convert to XML business service step. ii. Create a new record in the Input Arguments tab of the MVPW, and add the following record:
Input Argument SiebelMessage Property name XML String Input Argument <value> FileName Type Process Property Type Output Argument Type Literal Output Argument <value> Value D:\Temp\WF output.xml Value Property name Siebel Msg Value

iii. Create a new record in the Output Arguments tab, and add the following record:

c. Create two input arguments for the Write to File business service with the following:
Property name Process Property XML String

Integrating Siebel 8.0 Applications

59

Module 7: Integration Workflows

6. Before you can test the workflow, you will verify the set of debug parameters in Siebel Tools. a. In Siebel Tools select View > Options and click the Debug tab. b. Verify the Runtime start up information using the following:
Executable CFG File Browser Working Directory Arguments User name Password Data source D:\OUsea\client\BIN\siebel.exe D:\OUsea\client\BIN\ENU\uagent.cfg D:\Program Files\Internet Explorer\IEXPLORE.EXE D:\OUsea\client\BIN /h SADMIN SADMIN Sample

c. Click OK. 7. You will now invoke the Workflow Simulator to test the workflow process. The simulator can be invoked from either the workflow process list in the object list editor or directly from the workflow designer. You will use the Delta Valley Brewers account that you used in a previous lab. Its Row # is 1-2EDYH. a. Click the Process Properties tab on the MVPW. b. Select the Object Id process property and enter the row number (1-2EDYH) for the Default String property. You may have to scroll to the right to display the Default String property. c. Save the new data by clicking the Save button in the toolbar. Configuration data in the workflow designer must be saved explicitly. d. Close all open instances (if any) of Siebel Call Center. Make sure that there are no other open instances of Siebel Tools. e. If the simulation toolbar is not displayed, select View > Toolbars > Simulate to display it. f. Right-click in the workflow designer and select Simulate. Observe that a new tabbed window appears in the editor with the first step of the workflow outlined. Also note that the first button in the Simulator toolbar is highlighted.

g. Click the (green) Start Simulation button in the Simulate toolbar. Observe that an instance of the Siebel client starts, and that it will take several seconds for the client to display a view titled Workflow Simulator. h. Wait until the initiation of the simulation has completed and you are retuned to Siebel Tools. You should see the second step in the workflow process highlighted.

60

Integrating Siebel 8.0 Applications

Module 7: Integration Workflows

i. Right-click in the simulator window and select Watch Window to open the watch window. If necessary expand PS:Property Set to display the properties in the watch window.

to execute the Get Account step. j. Click the Simulate Next button k. Expand the PS: Siebel Msg property and observe that it is now populated. l. Click the Simulate Next button to execute the Convert to XML step. Again verify that the XML string property was populated m. Click the Simulate Next button until the End step is highlighted. n. Click the Simulate Next button once more to complete the simulation. o. Click OK and then close the Simulator window. 8. Navigate to the D:\Temp and open the WF output.xml file using Oracle JDeveloper. Observe that the Delta Valley Brewers account record was exported and that it contains two contact child records.

Integrating Siebel 8.0 Applications

61

Module 7: Integration Workflows

Lab 7-2 Creating an Inbound Integration Workflow


Goals Time To create an inbound integration workflow that reads account data from a file and updates an existing Siebel account 15 20 minutes

Instructions:
In this lab, you will create a workflow that reads a file containing updated account information and updates the corresponding account in the Siebel application. You will modify the file you created in the previous lab and use that to test the workflow that you have built. The instructions in this lab are not as detailed as those in previous labs. Feel free to refer back to the detailed instructions for a given step. 1. You will first make a small change to the file that was created in the previous lab. a. Navigate to the D:\Temp and copy the WF output.xml file b. Paste it and rename it WF input.xml. c. Edit the file (using Notepad++) to change the value of the Main Phone Number from 9257556455 to 9257556400. d. Save and close the file. 2. Create a workflow called ABC Update Account from File that: a. Reads the D:\Temp\WF input.xml file using the EAI XML Read From File business service. Using this service allows you to reduce the number of steps in your workflow. Make sure you select the method that outputs a Siebel Message. b. Updates an account using the EAI Siebel Adapter business services Update method. 3. Use the workflow simulator to test the workflow. Once the workflow simulator has completed, examine the Delta valley Brewers account in Siebel Call Center. Verify that the workflow updated the Main Phone Number.

62

Integrating Siebel 8.0 Applications

Module 7: Integration Workflows

Solutions 7-2 Creating an Inbound Integration Workflow


Answers
2. Create a workflow process with the following two business service steps:

Integrating Siebel 8.0 Applications

63

Module 7: Integration Workflows

64

Integrating Siebel 8.0 Applications

Module 8: Data Mapping

Lab 8-1 Creating a Data Map


Goals Prerequisites Time To use the Siebel Data Mapper to create a data map You must have created the ISA Meeting Account and ISA Client integration objects. 10 15 minutes

Instructions:
In this lab you will use the Siebel Data Mapper to create a data map that transforms an internal Siebel account record into an external ISA Client record. You will use the two integration objects you created earlier in the course. Make sure the ISA Meeting Account and ISA Client integration objects have been created and are compiled into the sample srf file. 1. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. 2. Before you build the data map, you will first review the structure of the target object. a. Navigate to D:\Labs\Integration\IO. b. Open ISA_Client.xsd using Oracle JDeveloper. c. Observe that the Client element contains a complex element Contacts that contains a set of complex elements Contact. Contacts does not contain any simple elements. d. In Siebel Tools select Integration Object :: ISA Client | Integration Components :: /Client/Contacts/Contact | Integration Component Fields. e. Observe that there are four integration component fields that correspond to the four simple elements contained in the Contact element f. In Siebel Tools select Integration Object :: ISA Client | Integration Components :: /Client/Contacts | Integration Component Fields. g. Observe that there are no integration component fields for this integration component. 3. First you will create the object map. a. If necessary, start Siebel Call Center and log in as SADMIN/SADMIN to the Sample database. b. Navigate to Administration - Integration > Data Map Editor. c. Create a new Integration Object Map record with the following:
Name Source Object Name Target Object Name ISA Client Outbound Map ISA Meeting Account ISA Client

Integrating Siebel 8.0 Applications

65

Module 8: Data Mapping

4. Next you will create the component maps. a. Create the three following Integration Component Map child records. Since the target integration object has three components, three integration component maps are needed. The reason for mapping each component will be discussed as you map the fields for each component.
Name Contact Client Contacts Source Component Name Contact Account Target Component Name Contact Contacts

Account_Business Address Client

b. Verify that the map looks like:

5. Create the following field map records for the Contact integration component map. Observe that each target field in the Contact integration component is populated by mapping a field from the Contact source integration component.
Source Expression [Email Address] [First Name] [Last Name] [Person UId] Target Field Name emailAddress FirstName LastName ContactID

66

Integrating Siebel 8.0 Applications

Module 8: Data Mapping

6. You will next configure the Client integration component map. a. Create the following field map records for the Client component map. Observe that each target field in the Client integration component is populated by mapping a field from either the Account_Business Address source component or its parent the Account source component. Note the use of the dot notation to reference fields in another integration component. You must do this in a single set of mappings since the Data Mapper does not allow a single target component to be populated from two different integration component maps.
Source Expression [City] [Postal Code] [State] [Street Address] [Account.Home Page] [Account.Integration Id] [Account.Name] [Account.Main Phone Number Target Field Name City Zip State Address URL ClientID ClientName Phone

b. Add a search specification to the Client integration component map. This makes sure that in the event the source account has multiple business addresses that only the primary address is mapped to the target.
Source Search Specification [IsPrimaryMVG]="Y"

7. Do not create any field maps for the Contacts integration component map. Remember the Contacts integration component contains only the Contact integration component but does not contain any fields itself. Creating the integration component map is all that is necessary to create the target integration component. 8. Click the Validate button at the top of the view to check the data maps. 9. Click OK to dismiss the verification dialog.

Integrating Siebel 8.0 Applications

67

Module 8: Data Mapping

Lab 8-2 Invoking a Data Map in an Integration Workflow


Goals Prerequisites Time To add a data mapping step to an integration workflow You must have created the ISA Export Account to File integration workflow. 15 25 minutes

Instructions:
In this lab you will extend the integration workflow to export a Siebel account to an external file by including a data transformation step that transforms the Siebel account to an ISA Client account. You will use the data map you just created. 1. You will create a copy of the ISA Export Account to File to use in this lab. a. In Siebel Tools select Workflow Process :: ISA Export Account to File. b. Copy the workflow process and name it ISA Export and Transform Account. c. Right-click the workflow process and select Edit Workflow Process to invoke the workflow designer. d. If the new workflow process cannot be edited, click the Publish button and then the Revise button to create a new version that is editable. 2. You next add a business service step and configure it to transform the Siebel account. a. Create a new process property of type Hierarchy called Mapped Siebel Msg for the workflow. b. Insert a business service step in between the Get Account and Convert to XML steps in the workflow, and adjust the connectors accordingly.

c. Configure the new business service step as follows using the Properties window.
Name Business Service Name Map Account EAI Data Transformation Engine

68

Integrating Siebel 8.0 Applications

Module 8: Data Mapping

Business Service Method

Execute Value ISA Client Outbound Map Output Argument SiebelMessage Value Property name Siebel Msg

d. Configure the inputs to the Map Account business service step using the MVPW.
Input Argument SiebelMessage MapName Property name Mapped Siebel Msg Type Process Property Literal Type Output Argument

e. Configure the output of the Map Account business service step using the MVPW.

3. You will modify several input arguments for other steps. a. In the Convert to XML step, change the process property for the SiebelMessage input argument to Mapped Siebel Msg. b. In the Convert to XML step, add a new input argument record to explicitly set the UseSiebelMessageEnvelope to false. This strips the Siebel message envelope from the resultant XML string. c. In the Write To File step, change the value for the FileName input argument to D:\Temp\DM lab.xml. 4. Test the workflow process using the Workflow Simulator, and exam the values of the process properties in the watch window as the simulation proceeds to completion. Remember to close any open instances of Siebel Call Center. 5. You will examine the output file to verify that the mapping occurred as desired. a. Navigate to D:\Temp and open DM Lab.xml using Oracle JDeveloper.

Integrating Siebel 8.0 Applications

69

Module 8: Data Mapping

b. Verify that the resultant XML file looks like:

6. Close the workflow simulator when you have successfully tested the workflow. 7. Close the Siebel Call Center Developer Web client. 1. Close Oracle JDeveloper. You will not be using Oracle Developer until much later in the course, and closing it will improve your machine's performance.

70

Integrating Siebel 8.0 Applications

Module 9: EAI HTTP Transport

Lab 9-1 Using Outbound HTTP Transport


Goals Prerequisites Time To create an integration workflow that uses outbound HTTP transport You must have created the ISA Export Account to File integration workflow 15 25 minutes

Instructions:
In this lab you will create a workflow process that extracts an account from the Siebel application, converts it to an XML string, and uses HTTP Transport to send it to a target application. For the purposes of testing the workflow in this lab, the Web server on your machine serves as the target application. It has been configured to return a success message. In addition you will use an HTTP utility that allows you to examine the HTTP message sent to and received from the Web server. Rather than building this workflow from scratch, you will copy the workflow you built to export a Siebel account to a file and modify the transport business service step. The first two steps in the previous workflow remain the same for the HTTP Transport workflow. 1. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. 2. Copy the ISA Export Account to File workflow process and name it ISA Export Account via HTTP. 3. You will now re-configure the final (transport) business service for HTTP transport. a. Right-click ISA Export Account via HTTP and select Edit Workflow Process. b. Make sure the Properties window is open. c. Select the Write to File step and modify the following properties:
Name Business Service Name Business Service Method Send HTTP EAI HTTP Transport Send

d. Configure the following inputs for the Send HTTP business step. The 1088 port you specify is used by the HTTP monitoring tool.
Input Argument <Value> HTTPRequestMethod Type Process Property Literal GET http://localhost:1088 Value Property name XML String

HTTPRequestURLTemplate Literal

4. You will use the Delta Valley Brewers (Row # = 1-2EDYH) account to test this workflow. a. In the workflow designer, click on the designer surface to display the process properties for this workflow.
Integrating Siebel 8.0 Applications 71

Module 9: EAI HTTP Transport

b. If necessary, enter 1-2EDYH for the Default String property for the Object Id process property. c. Save the edits you made. 5. Before you start the simulation, you will set up the NetTool utility to examine the HTTP messages sent to and received from the Web server. NetTool includes a HHTP Tunnel tool that captures HTTP messages sent between a HTTP client and a Web server. a. Navigate to D:\Labs\Integration\HTTP\NetTool\ NetTool-4.7.2\ and double-click startnettool.bat. b. Click the TCP Tunnel tab. c. Set the Listen Port to 1088. This is the port to which the workflow has been configured to send the XML. d. Verify that the Tunnel to Port is 80.

e. Click Listen to start monitoring HTTP traffic. 6. Use the workflow simulator to execute the workflow you created. Remember to first close all open instances of Siebel Call Center, and to run the workflow to completion. 7. You will next examine the HTTP message that was sent and received. a. Scan through the message in the left pane of the Nettool utility and verify that it looks like the XML document you wrote to file in a previous lab.

72

Integrating Siebel 8.0 Applications

Module 9: EAI HTTP Transport

b. Click Stop to terminate HTTP monitoring.

Integrating Siebel 8.0 Applications

73

Module 9: EAI HTTP Transport

Lab 9-2 Using Inbound HTTP Transport


Goals Time To send HTTP messages to a Siebel application using POST 10 15 minutes

Instructions:
In this lab you will generate several HTTP messages and send them to the Siebel server on your local machine. The EAI object manager receives and processes these messages. Your Siebel server must be running to process these messages. The server srf file must also contain the ISA Meeting Account object. 1. You will first compile the ISA Meeting Account integration object into the repository (.srf) file on the server. a. Make sure the Siebel Server service is not running.. b. In Siebel Tools, select Integration Object :: ISA Meeting Account. c. Compile this object definition into the siebel.srf file in D:\OUsea\siebsrvr\OBJECTS\ENU. d. Start the Siebel Server service. Remember to wait until the Siebel Server has completely started. You can monitor the progress in the performance tab in Task manager and wait until the CPU usage drops to 0%. 2. You will next examine the HTTP services that are provided with the as-delivered Siebel application. a. Navigate to D:\OUsea\siebsrvr\BIN\ENU and open the eai.cfg file. b. Locate the service whose name (left side) is SiebelUpsert. You will need to scroll to the bottom of the file to find the HTTP services. c. Observe that the profile configuration it references is SiebelUpsertDispatch. 3. Start the Siebel Call Center Web client and login as SADMIN/SADMIN by starting Internet Explorer and entering http://localhost/callcenter_enu in the address bar. 4. You will now examine the SiebelUpsertDispatch profile configuration. a. Navigate to Administration - Server Configuration > Enterprises > Profile Configuration. b. Query for the profile configuration whose alias is SiebelUpsertDispatch. c. What is the name of the service to execute and the service method to execute?

d. Click the Advanced button. e. What is the name of the Converter Service?

f. Click Reset to return to the primary parameters.


74 Integrating Siebel 8.0 Applications

Module 9: EAI HTTP Transport

5. You will check the My Account view to observe the initial set of accounts. a. Navigate to the My Accounts view. b. Examine the accounts if the event you retrieve any. If there are any accounts, verify that none of them have a suffix of isa. 6. You will use a custom Web form to enter the parameters required to post a message to the Siebel server on your machine. This form was developed by one of colleagues on the integration team to facilitate testing. a. Navigate to D:\Labs\Integration\HTTP and double-click HTTP-PostToAccount.htm. This opens the form you will use.

b. Verify that the SWE parameters are set as follows:


SWEExtSource SweExtCmd UserName Password SiebelUpsert Execute SADMIN SADMIN

c. Delete the entire contents of the SWEExtData field. This data is unrelated to the rest of this lab. 7. You will use this form to add three new accounts to the Siebel application. The accounts are specified in an XML file. a. Navigate to D:\Labs\Integration\HTTP. b. Open Account Upsert input.xml using Notepad++. c. Scroll through the XML file and observe that the file contains three accounts. Also note that the document references the ISA Meeting Account integration object. d. Copy the contents of the file and paste into the SWEExtData field e. Click Submit.

Integrating Siebel 8.0 Applications

75

Module 9: EAI HTTP Transport

f. Observe the Web page response from the EAI object manager. The response indicates the three accounts were upserted Note: The EAI Object manager will take a short time to start.

8. In Siebel Call Center, navigate to the My Accounts view and verify that the three new accounts were added. You can recognize these accounts because they all have the suffix isa. 9. You will now use the same form to query the accounts that you just inserted. a. Click the back arrow in the browser window that displays the EAI object manager response to return to the HTTP test harness. b. Delete the contents of the SWEExtData field. c. Navigate to D:\Labs\Integration\HTTP. d. Open Query body.xml using Notepad++. e. Copy the contents and paste them into the SWEExtData field. f. Observe that the XML file contains only the account name element and that its value is Moore LLC isa. This will serve as query to return the Moore LLC isa account. g. Change the SWEExtSource to SiebelQuery. This is the profile configuration that executes a query. h. Click Submit.

76

Integrating Siebel 8.0 Applications

Module 9: EAI HTTP Transport

i. Observe that this query returns the complete account record for the Moore LLC isa account.

10. Return to the HTTP test harness and replace the value Moore LLC isa with B*. Submit this new query and verify that the EAI object manager returns the Belcon isa and BSP isa accounts. 11. (Optional) The HTTP test harness uses the POST method. You can execute the query to retrieve the Moore LLC isa account using the GET method by placing all of the information into the URL itself. a. Navigate to D:\Labs\Integration\HTTP.and open URL_1.txt. b. Make sure that word wrap is turned off. Verify that the URL text is on a single line only. The URL contains a query request using query-by-example for an account with Name = Moore LLC isa. Observe that the URL contains the login credentials as well as well as the request itself. c. Copy the complete URL by scrolling to the far right of the window. d. Open another instance of Internet Explorer. e. Paste the URL into the address bar, and press Enter.

Integrating Siebel 8.0 Applications

77

Module 9: EAI HTTP Transport

f. Inspect the response from the EAI object manager. Verify that the Moore LLC isa account is retrieved.

78

Integrating Siebel 8.0 Applications

Module 9: EAI HTTP Transport

Solutions 9-2 Using Inbound HTTP Transport


Answers
4.c. 4.e. What is the name of the service to execute and the service method to execute?. EAI Siebel Adapter, Upsert What is the name of the Converter Service? EAI XML Converter.

Integrating Siebel 8.0 Applications

79

Module 9: EAI HTTP Transport

Lab 9-3 (Optional) Using Session Mode for Inbound HTTP Transport
Goals Time To send HTTP messages to a Siebel application in session mode 5 10 minutes

Instructions:
In the previous lab you generated HTTP messages to the Siebel application in sesssionless mode. Each message required credentials to create a session that lasted only to process that specific message. In this lab you will use a different utility to send HTTP messages in session mode. You will first send a login message and receive a sessionID (cookie) in the response. You will then generate subsequent query messages using the sessionID, and finally you will send an explicit message to log off. 1. You will use the HHTP Client functionality in NetTool to send HTTP messages and to examine the response from the EAI object manager. For simplicity you will use the GET method which places the entire message into the URL. The URLs you will use have been created for you. a. If necessary, start NetTool. b. Click the HTTP Client tab. c. Verify that you can reposition the bar between the left and right panes in the tool. d. If the bar cannot be repositioned, perform the following to reset the utility: i. Exit NetTool. ii. Navigate to D:\Labs\Integration\NetTool\ nettool-4.7.2\ and delete the contents of the folder. iii. Navigate up one level to D:\Labs\Integration\NetTool\. iv. Right-click nettool-4.7.2.zip and select WinZip > Extract to D:\Labs\Integration\NetTool\ nettool-4.7.2\ v. Navigate to D:\Labs\Integration\NetTool\ nettool-4.7.2\ and double-click startnettool.bat. e. Navigate to D:\Labs\Integration\HTTP and open URL_2.txt. f. Make sure that word wrap is turned off. Verify that the URL text is on a single line only. Observe that the URL contains primarily the login credentials and that the command is ExecuteLogin. g. Copy the complete URL. h. In NetTool, delete the default contents in the URL field. i. Paste the URL into URL field. j. Click Send.

80

Integrating Siebel 8.0 Applications

Module 9: EAI HTTP Transport

k. Inspect the response from the EAI object manager that appears in the right half of the utility. Observe that the response contains a cookie with the sessionID:

2. Now that a session has been started, you will submit the query request. a. Click New Tx, and observe that the cookie has been transferred to the header of the message. b. Delete the contents of the URL field. c. Navigate to D:\Labs\Integration\HTTP and open URL_3.txt. Observe that this string contains only the SWEEXTdata that specifies the query. d. Paste the string into the blank URL field, and click Send. e. Verify that the returned message contains the Moore LLC isa account:

3. Finally you will log off from the session. a. Click New Tx, b. Delete the contents of the URL field. c. Navigate to D:\Labs\Integration\HTTP and open URL_4.txt. Observe that this string contains only the logoff command. d. Paste the string into the blank URL field, and click Send. e. Observe that EAI object manager returns an empty message that ends the session. 4. Repeat the steps to send the contents of URL_3.txt to observe what happens when you attempt to send a request with an expired session cookie. 5. Close NetTool. 6. Log out of the Siebel Call Center Web client. 7. Stop the Siebel Server service.
Integrating Siebel 8.0 Applications 81

Module 9: EAI HTTP Transport

82

Integrating Siebel 8.0 Applications

Module 10: Application Services Interfaces

Lab 10-1 Exploring Application Services Interfaces


Goals Time To examine the properties of a Siebel CRM Application Services Interface (ASI) 10 15 minutes

Instructions:
1. If necessary, start Siebel Tools and log in as SADMIN/SADMIN connecting to the Sample database. 2. Select Business Service in the Object Explorer, and then query for business services with a class of CSSEAIDataSyncService. These are the prebuilt inbound ASIs. 3. You will examine the Siebel Account ASI in some detail. In particular you will identify the internal integration object for the Siebel Account ASI. a. Select Business Service :: Siebel Account | Business Service User Prop. b. Note the Application Services Interface user property that identifies the business service as an ASI. c. What is the name of the internal integration object for the Siebel Account ASI?

4. In addition to an internal integration object, the Siebel Account ASI also has an interface integration object specified as a business service method argument. a. Select Business Service :: Siebel Account | Business Service Method :: QuerybyID | Business Service Method Arg. b. What is the name of the interface integration object for the Siebel Account ASI? (Hint: examine the Integration Object property.)

c. Examine the interface integration object specified for some of the other methods. Verify that the same interface integration object is used in all the methods. 5. Next you will examine the Account Interface and Internal Account Interface integration objects. a. Select Integration Object and query for Name = *Account Interface. This returns the internal and interface integration objects identified above. b. Examine the integration components for each integration object. Notice that each integration object has the same set of seven integration components. c. Examine the integration component fields for the Account integration component for each integration object. he internal interface integration object (Internal Account Interface) has a large number of fields, many of which are set to inactive. The interface integration object

Integrating Siebel 8.0 Applications

83

Module 10: Application Services Interfaces

(Account Interface) has a smaller set of fields all of which are active. However, upon closer inspection the sets of active fields (38 in this case) are the same for both integration objects 6. You will now use the Business Service Simulator to test the operation of the Siebel Account ASI. a. If necessary, start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. b. Navigate to the Business Service Simulator. c. In the Simulator applet create a record with:
Service Name Method Name Siebel Account QueryByID

d. In the Input Arguments applet create a record with:


Property Name Property Value PrimaryRowId 1-2EDYH

e. Click Run on One Input to execute the business service. f. In the Output Arguments applet, click Move to Input to move the output record to Input Arguments applet. g. In the Simulator applet create a record with:
Service Name Method Name EAI XML Converter IntObjHierToXMLDoc

h. Make sure the Siebel Message record is selected in the middle applet. i. Click Run on One Input to execute the converter business service. j. Inspect the output in the lower applet. What record is returned?

k. Notice that the Siebel Account business service requires only PrimaryRowId. The integration objects used to retrieve the data are specified as part of the Siebel Account business service. The Siebel EAI Adapter requires providing both a PrimaryRowId and an internal integration object as input arguments.

84

Integrating Siebel 8.0 Applications

Module 10: Application Services Interfaces

Solutions 10-1 Exploring Application Services Interfaces


Answers
3.c. 4.b. 6.j. What is the name of the internal integration object for the Siebel Account ASI? Internal Account Interface. What is the name of the interface integration object for the Siebel Account ASI? Account Interface. Inspect the output in the lower applet. What record is returned? The Delta Valley Brewers record is returned.

Integrating Siebel 8.0 Applications

85

Module 10: Application Services Interfaces

Lab 10-2 Using an ASI in a Workflow


Goals Time To create a new ASI and use it an integration workflow 15 20 minutes

Instructions:
In this lab you will create a custom ASI that extracts the meeting account data. You will then modify the workflow you constructed earlier by replacing the EAI Siebel Adapter business service step with the custom ASI. You will then run the workflow and observe its behavior. 1. You will create the custom ASI by copying and modifying as existing ASI. a. In Siebel Tools, select Business Service :: Siebel Account. b. Copy the record. c. Set the following fields in the new record:
Name Project Display Name - Sting Override ISA Account ASI ISA Account ISA Account ASI

d. Select Business Service :: ISA Account ASI | Business Service User Prop :: Internal Integration Object. e. Set Value to ISA Meeting Account. 2. The custom ASI is intended to support only the Insert or Update and Query operations, and you will configure only the Query by Id, Query by Example, and InsertOrUpdate methods. You will deactivate the remaining methods. a. Select Business Service :: ISA Account ASI | Business Service Method :: QueryByID | Business Service Method Argument | Siebel Message. b. Set Integration Object to ISA Meeting Account. c. Repeat the above for the QueryByExample method. d. Repeat for the InsertOrUpdate method.

86

Integrating Siebel 8.0 Applications

Module 10: Application Services Interfaces

e. Set the remaining methods to inactive:

3. Compile the ISA Account ASI business service into the client srf file. Make sure that the target repository file is D:\OUsea\client\OBJECTS\ENU\siebel.srf. 4. You will next make a copy of the ISA Export Account that you will configure to use the ISA Account ASI. a. In Siebel Tools, select Workflow Process :: ISA Export Account to File. b. Copy the workflow process and name it ISA Export Account to File ASI. c. Click Yes to dismiss the warning about changing the name of a workflow process. d. Right-click and select Edit Workflow Process. e. Make sure the Object Id process property has its default string property set to 1-2EDYH. f. Use the workflow simulator to verify that the workflow retrieves the Delta Valley Brewers Ltd account. Remember to first close any open Siebel client applications. g. Inspect the output account in D:\Temp\WF output.xml. h. Rename the output account file to EAI output.xml. 5. Now you will modify the workflow to substitute in ISA Account ASI. a. In the workflow designer, rename the Get Account step to ISA Account ASI. b. Change its business service to ISA Account ASI. c. Change the method to QuerybyId d. Delete the OutputIntObjectName input argument. e. Save your changes. f. Test the modified workflow using the simulator. g. Inspect the output file. Observe that the output files for the two workflows look identical. This is a result of using the same internal integration object. h. Rename the output account file to ASI output.xml.

Integrating Siebel 8.0 Applications

87

Module 10: Application Services Interfaces

88

Integrating Siebel 8.0 Applications

Module 11: Web Services

Lab 11-1 Exploring Web Services


Goals Time To examine a Web service that is deployed on the Oracle Application Server 15 20 minutes

Instructions:
In this lab you will examine a demonstration Web service that has been deployed on the Oracle Application server that is part of Oracle's SOA Suite. You will first examine and test the Web service using the Application Server Control in SOA Suite. You will then examine the WSDL that describes the Web service. Finally you use a third-party utility to test the demonstration Web service. 1. You will first exit all Siebel applications to reduce the load on your computer. a. Log out of all Siebel Call Center applications. b. Exit all instances of Siebel Tools. c. If necessary, stop the Siebel Server service. 2. You will next start SOA Suite. a. Select Start > Programs > OU-AppServer > Start SOA Suite. b. After the server has completely started up, click Close to close the startup window. 3. You will next use the Application Server Control to examine the CreditService Web service a. Start Internet Explorer and enter http://localhost:8888. b. Click Application Server Control. c. Log in as oc4jadmin/oracle1.

Integrating Siebel 8.0 Applications

89

Module 11: Web Services

d. Verify that the Application Server Control appears:

e. f. g. h.

Click home (under all application servers). Click the Web Services tab. Scroll down and locate the CreditService Web service. Select it by clicking the radio button at the far left of the record:

90

Integrating Siebel 8.0 Applications

Module 11: Web Services

4. The CreditService service accepts a credit card type and credit card number and returns whether the card is valid. Since this is a demonstration service, a short section of stub code was written that returns true if the card type is either AMEX or Visa and the card number is greater than or equal to 12345678. Otherwise the service returns false. A copy of the code is displayed below. You can find this code in the file ValidateCreditCardImpl.java in D:\SOADEMO\CreditService\src\org\soademo\creditservice.

5. You will now test the CreditService service. a. Click Test Service. b. In the Test Web Service page, click Test Web Service. c. In the CreditService endpoint page, enter the following credit card details.
ccType ccNum AMEX 123456789

Integrating Siebel 8.0 Applications

91

Module 11: Web Services

d. Click Invoke. You may need to scroll down to find the Invoke button. e. In the Test Result page, click Formatted XML

. f. Verify that the response in the body element is true. g. Click the browser back arrow to return to the test form. h. Enter the following credit card details:
ccType ccNum Visa 1234567

i. Click Invoke and verify that the Web service returns a value of false. j. Repeat the test for other combinations of card name (remember case is significant) and card number, and verify that the service does respond as specified in the code fragment
92 Integrating Siebel 8.0 Applications

Module 11: Web Services

6. You will now examine the WSDL file for the CreditService Web service. a. If necessary, return to the CreditService endpoint page. b. Click Service Description to display the WSDL file for this Web service. c. What operations are defined for this Web service? Check the portType element.

d. What are the inputs and outputs for the VerifyCC operation? Inspect the portType element to determine the names of the message, and then inspect the message element to determine the respective types.

7. You will now save a copy of this WSDL file so you can import in a later step in this lab. a. Select File > Save As and save the file as D:\Temp\creditcheck.wsdl 8. You will next use a third-party SOAP utility to import the WSDL file. a. Select Start > Programs > soapUI 1.7.5 > soapUI 1.7.5. b. A command window appears followed shortly by the soapUI utility. Do not close the command window as this will force the soapUI utility to quit. c. In soapUI, select File > New WSDL Project. d. Enter the following parameters:
Project Name Initial WSDL CreditCheck D:\Temp\creditcheck.wsdl

e. Click OK. f. Click Save. g. Verify that a CreditCheck project appears in the left pane.

Integrating Siebel 8.0 Applications

93

Module 11: Web Services

h. Expand the contents of the project

. i. Double-click the ValidateCreditCardSoapHttp item in the CreditCheck project to display the WSDL that was imported. j. Observe that it displays the credit check WSDL you saved in a previous step of the lab.

9. You will finally use soapUI to test the Web service. a. Double-click Request 1. b. Replace the ? in both the ccType and ccNum elements with test values you used before. They are displayed in the screen shot below.

94

Integrating Siebel 8.0 Applications

Module 11: Web Services

c. Click the green play button above the input message to submit the soap message to the Web service. d. Inspect the reply message that is displayed to the right of the test message, and observe that a true is retuned for the element valid.

e. Repeat this test using a test values of Visa 123456 and verify that the service returns the expected value of false.. 10. Finally you will shut down the SOA Suite as you will not be using it during the next lab. You will next stop SOA Suite. a. Select Start > Programs > OU-AppServer > Stop SOA Suite. b. After the server has stopped, click Close to close the shutdown window.

Integrating Siebel 8.0 Applications

95

Module 11: Web Services

Solutions 11-1 Exploring Web Services


Answers
6.c. What operations are defined for this Web service? Hint: Check the portType element. An operation called VerifyCC is defined for the port. What are the inputs and outputs for the VerifyCC operation? Hint: Inspect the portType element to determine the names of the message, and then inspect the message element to determine the respective types. The input has a (complex) type CreditCard which consists of two elements ccType (string) and ccNum (string). The output has (simple) type of valid which consists of a single element valid (Boolean).

6.d

96

Integrating Siebel 8.0 Applications

Module 12: Inbound Web Services

Lab 12-1 Examining a Siebel Inbound Web service


Goals Time To test a Siebel inbound Web service 10 15 minutes

Instructions:
In this lab you will examine an as-delivered Siebel Web service and then test it using the soapUI utility. 1. Start the Siebel Server service since Siebel inbound Web services require the use of the EAI server component. Remember to wait until the service has complete started. 2. Start the Siebel Call Center Web client and login as SADMIN/SADMIN. 3. You will examine the as-delivered Siebel Web service that accesses contact records. a. Navigate to Administration - Web Services > Inbound Web Services. b. Select the inbound Web service with the name of Siebel Contact. c. Observe in the Service Port applet that this Web service exposes a business service called Siebel Contact. This business service is an ASI similar to the Siebel Account ASI you examined in a previous lab. d. Scroll down and observe the suite of operations exposed for this business service. 4. Before you can use the Web service you will complete the configuration of the Web service's address. a. In the Service Ports applet, enter the following values for the placeholders in the address.
<webserver> <lang> <username> <password> localhost enu SADMIN SADMIN

b. Verify that the configured address is http://localhost/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&Us erName=SADMIN&Password=SADMIN

Integrating Siebel 8.0 Applications

97

Module 12: Inbound Web Services

5. You will next generate the WSDL file that describes the Siebel Contact Web service. a. Return to the top applet and set Status to Active for Siebel Contact. Note: some as-delivered Web services are already set to Active, while others must be explicitly activated. b. Click Clear Cache. c. Click Generate WSDL. d. Click Save. e. In the Save As dialog, set Save as Type to All Files. f. Save the file as D:\Temp\SiebelContact.wsdl. g. Click Close. h. Close Internet Explorer if necessary. 6. Since you will test the Web service using the Query By ID operation on a contact record, you will next identify the Row # for a contact in the Siebel application. a. Navigate to Contacts > All Contacts. b. Select the Siebel Administrator record. c. Right-click and select About Record. d. Record the Row #. 7. Finally you will test the Web service using soapUI. a. If necessary, start soapUI. b. Select File > New WSDL Project. c. Enter the following parameters:
Project Name Initial WSDL Siebel Contact D:\Temp\SiebelContact.wsdl

d. e. f. g. h. i. j.

Click OK. Click Save. Verify that a Siebel Contact project appears in the left pane. Expand Default. Expand SiebelContactQueryById. Double-click Request 1. Replace the ? in the PrimaryRowId element with the Row # of the contact record recorded above.

98

Integrating Siebel 8.0 Applications

Module 12: Inbound Web Services

k. Click the green play button above the input message to submit the soap message to the Web service. l. Observe that the Siebel Administrator record is returned by the Web service. Notice that the record contains numerous fields as well as several child records. The data returned by this business service is determined by the interface integration object for the ASI.

Integrating Siebel 8.0 Applications

99

Module 12: Inbound Web Services

Lab 12-2 Exposing an ASI as a Web Service


Goals Prerequisites Time To create a Web service that exposes an underlying ASI You must have created the ISA Account ASI business service. 15 25 minutes

Instructions:
In this lab you will expose the ISA Account ASI you created in the previous lab as a Web service and use it to retrieve relevant account data. Since Web services are handled by the EAI object manager, you will need to compile the ISA Account ASI business service you created to the server srf file. The ISA Meeting Account integration object has already been compiled into the server srf. 1. You will first compile the ISA Account ASI into the repository (.srf) file on the server. a. If necessary, stop the Siebel Server service. b. In Siebel Tools, select Business Service :: ISA Account ASI. c. Compile this object definition into the siebel.srf file in D:\OUsea\siebsrvr\OBJECTS\ENU. 2. Start the Siebel Server service, and wait until the service has completely started. 3. Start the Siebel Call Center Web Client and log in SADMIN/SADMIN. 4. You will now deploy the ISA Account ASI as a Web service. a. Navigate to Administration - Web services > Inbound Services. b. Create a new record with:
Name Namespace Status ISA Account http://Siebel.com/asi Active

c. Create a new Service Port record with:


Name Transport Binding Default HTTP SOAP_DOC_Literal

d. Click the Select button in the Type field. e. Click New in pick applet. f. In the next pick applet select ISA Account ASI from the Service Name/Business Process Name dropdown. g. Set Name to ISA Account ASI. h. Click OK. i. Click OK.
100 Integrating Siebel 8.0 Applications

Module 12: Inbound Web Services

j. In the Address field edit the default address as follows: i. Replace <webserver> with localhost. ii. Replace <lang> with enu. iii. Replace WSSOAP=1 with UserName=SADMIN&Password=SADMIN 5. You will next specify the operations for this Web service. a. In the bottom Operations applet, click New. b. In the Operations pop-up applet, click New. c. Click the Select button in the Method Display Name field in the new record in the Operations list applet. d. Select QueryById. e. Set the Operation Name to ISAAccountQueryById. This name must be unique across all Web services. f. Set the Authentication Type to None. g. Repeat the preceding steps to create two additional operation named ISAAccountInsertOrUpdate that uses the Insert or Update method and ISAQueryByExample that uses the Query by Example method.

6. You will next generate the WSDL file that describes the ISA Account Web service. a. Return to the top applet and make sure ISA Account is still selected. b. Click Clear Cache. c. Click Generate WSDL. d. Click Save. e. In the Save As dialog, set Save as Type to All Files. f. Save the file as D:\Temp\ISA_Account.wsdl. g. Click Close. h. Close Internet Explorer if necessary. 7. You will test the Web service using the Query By ID operation on an account record. a. Navigate to Accounts > My Accounts. b. Select the Moore LLC isa record, and record its Row #. 8. Next you will test the Web service using soapUI. a. If necessary, start soapUI. b. Select File > New WSDL Project. c. Enter the following parameters:
Project Name Initial WSDL ISA Account D:\Temp\ISA_Account.wsdl
Integrating Siebel 8.0 Applications 101

Module 12: Inbound Web Services

d. e. f. g. h. i. j.

Click OK. Click Save. Expand Default. Expand ISAAccountQueryById. Double-click Request 1. Replace the ? in the PrimaryRowId element with the Row # of the Moore LLC isa record. Click the green play button to invoke the Web service

102

Integrating Siebel 8.0 Applications

Module 12: Inbound Web Services

9. Finally you will test the QueryByExample operation. a. In the project pane, expand ISAAccountQueryByExample. b. Double-click Request 1. c. Replace the ? in the Name element with BSP isa. d. Delete all the remaining optional elements, including the business addresses and contacts in the Account element. e. Delete the ? in the operation and searchspec attributes of Account.

f. Invoke the Web service, and observe the Web service returns the BSP isa account record.

10. Stop the Siebel Server service.


Integrating Siebel 8.0 Applications 103

Module 12: Inbound Web Services

104

Integrating Siebel 8.0 Applications

Module 13: Outbound Web Services

Lab 13-1 Creating an Outbound Web Service


Goals Prerequisites Time To create a proxy business service for an external Web service To create an integration workflow that invokes the external Web service You must have created the creditcheck.wsdl file. 20 30 minutes

Instructions:
In this lab you will create and test an outbound Web service that uses the CreditService service you investigated in an earlier lab. 1. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. 2. You will use the WSDL Import wizard to create the proxy business service. a. Create a new project called ISA Web Services and lock it. b. Select File > New Object. c. Click the EAI tab and select Web Service. d. Click OK. e. Enter the following values::
Project WSDL document file ISA Web Services D:\Temp\creditcheck.wsdl

f. Observe that the remaining two files names are automatically specified:

Integrating Siebel 8.0 Applications

105

Module 13: Outbound Web Services

g. Click Next. h. Inspect the Summary of the WSDL import process, and note the object definitions created. i. Click Finish. 3. You will now inspect the object definitions that the Wizard created. a. In the Object Explorer pane, select ISA Web Services in the project drop-down. This displays only those object types and definitions in the ISA Web Services project.

b. Select Integration Object in the Object Explorer. c. Observe that two integration objects were created. Fill in the table below with the integration objects, the child integration components and the integration component fields.
Integration Object Integration Component Integration Component Fields

4. You will next inspect the business service that was created. a. Select Business Service :: ValidateCreditCard | Business Service Method. b. Observe that a method called VerifyCC was created. c. Observe that the method arguments include an input and output parameter pair. d. Observe that each parameter references a corresponding integration object. e. Select Business Service :: ValidateCreditCard | Business Service User Prop. f. Observe that three user properties were created to correspond to values in the WSDL file. 5. Compile the ISA Web Services project into the C:\SUsea\client\OBJECTS\ENU\siebel.srf file. This will make the new definitions available to the Siebel Call Center Developer Web client to complete the configuration of the Web service. 6. You will now complete the configuration of the Web service. a. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. b. Navigate to Administration - Web Services > Outbound Web Services. c. In the Outbound Web Services list applet, click the Import button. d. Browse to D:\Temp\creditcheck.xml. e. Click Import.

106

Integrating Siebel 8.0 Applications

Module 13: Outbound Web Services

f. Verify that an outbound Web service with the name of CreditService has been created.

g. Inspect the Service Port record and verify that its fields correspond to those in the WSDL file.

7. You will next inspect some sample input for the outbound Web service. The input is in the form of an XML file whose structure corresponds to the CreditCard integration object. a. Navigate to D:\Labs\Integration\WS. b. Examine the contents of CreditCard test.xml using Notepad++.

c. Observe that the credit card details represent those for a valid credit card. 8. You will create an integration workflow that reads the XML file, converts it to an integration object instance, and invokes the Web service. a. In Siebel Tools, restore the object explorer so that it displays all projects. b. Select Workflow Process in the object explorer. c. Create a new workflow process with:
Process Name Project ISA Test VerifyCC ISA Web Services

d. Right-click the new process and select Edit Workflow Process. e. In the workflow editor, create two new process properties to hold the input and output of the Web service:
Name Web Service Input Web Service Output Data Type Integration Object Integration Object

Integrating Siebel 8.0 Applications

107

Module 13: Outbound Web Services

9. You will now configure steps for the workflow. a. Create a workflow process that consists of three business service steps.

b. Configure the business service steps as follows:


Name Read XML Input Verify Credit Card Write to XML FIle Input FileName IntObjectName Property Name Web Service Input Input Type Literal Literal Business Service Name EAI XML Read from File ValidateCreditCard EAI XML Write to File Value D:\Labs\Integration\WS\CreditCard test.xml CreditCard Output Argument SiebelMessage Value Property Web Service Input Value Business Service Method ReadEAIMsg VerifyCC WriteEAIMsg Property

c. Configure the following inputs to the Read XML Input step

d. Configure the following output to the Read XML Input step


Type Output Argument

e. Configure the following inputs to the Verify Credit Card step


Type CreditCardValidationRequestMessage: Process CreditCard Property

f. Configure the following output to the Verify Credit Card step


Property Name Type Output Argument CreditCardValidationResponse Message:valid Property Web Service Output Value Web Service Output Output Argument

g. Configure the following inputs to the Write to XML File step


Input FileName Type Literal Value D:\Temp\CreditCard output.xml

SiebelMessage Process Property

h. Save your configuration

108

Integrating Siebel 8.0 Applications

Module 13: Outbound Web Services

10. Make sure that SOA Suite is running on the OU- AppServer. a. Select Start > Programs > OU-AppServer > Start SOA Suite. b. After the server has completely started up, click Close to close the startup window. 11. Use the workflow simulator to test the workflow process, and examine the output file to verify that the correct value (true) is returned by the Web service. 12. Edit the CreditCard test.xml file to change the account number to 123456. 13. Use the workflow simulator to test the workflow process, and examine the output file to verify that the correct value (false) is returned by the Web service. This lab showed you the steps to create and administer a proxy business service for an external Web service. The lab also showed you how to incorporate the proxy business service in an integration workflow. In this lab you used external files to represent the input to the business service and capture the output. In following labs you will learn how to assign a Siebel Message produced using the EAI Siebel Adapter to the input of a proxy business service.

Integrating Siebel 8.0 Applications

109

Module 13: Outbound Web Services

Solutions 13-1 Creating an Outbound Web Service


Answers
3.c. Observe that two integration objects were created. For each integration object, what are the child integration components and integration component fields?
Integration Object CreditCard valid Integration Component /CreditCard /valid Integration Component Fields ccNum, ccType valid_Value

110

Integrating Siebel 8.0 Applications

Module 14: Using Oracle Fusion Middleware

Lab 14-1 Exploring a Fusion Middleware Process


Goals Time To explore a Fusion Middleware process that invokes the credit card Web service you have worked with 10 15 minutes

Instructions:
In a previous lab, you used soapUI to invoke a credit card check Web service. Another developer familiar with Fusion Middleware (FMW) built a FMW service to invoke this Web service. In this lab, you will explore a FMW service that adds additional business logic to the credit card check: You provide a credit card number, type, and amount, and the service returns whether the request is rejected for being too high, denied for credit card problems, or approved. 1. If necessary, stop the Siebel Server [Siebel_OUsrvr] service to improve performance. 2. You will first log in to the BPEL Console. The service you will be exploring is a BPEL service. a. Make sure that SOA Suite is running. i. Select Start > Programs > OU-AppServer > Start SOA Suite. ii. After the server has completely started up, click Close to close the startup window. b. Start Internet Explorer and enter an address of http://localhost:8888. This is the Oracle SOA suite home page. c. Bookmark this page for later use. You will use it throughout the Fusion Middleware labs. d. Click BPEL Control. e. Log in using the following values:
User Name Password oc4jadmin oracle1

3. You will next explore the BPELCCCheck service. a. Click BPELCCCheck under Deployed BPEL Processes. This provides an interface for invoking the service, very similar to soapUI. b. Enter the following values. The service rejects requests over $10,000, so this entry should result in a rejection.
CreditCardNumber Amount CreditCardType 12345678 11000.00 Visa

Integrating Siebel 8.0 Applications

111

Module 14: Using Oracle Fusion Middleware

c. Click Post XML Message. You may need to scroll down to see this button. What is the response?

d. Click Visual Flow. This allows you to see how the request was processed. Although you have not yet seen the details of a BPEL process, do any of the steps names suggest that the Check Credit Card service was invoked?

e. Click BPELCCCheck (v. 1.0) just under the Tree Finder button to return to the test screen:

f. Enter the following values. The credit card number is invalid in this case.
CreditCardNumber Amount CreditCardType 1234 1100.00 Visa

g. Click Post XML Message. What is the response this time?

h. Click Visual Flow. Do any of the steps names suggest that the Check Credit Card service was invoked?

i. Click BPELCCCheck (v. 1.0). j. Enter the following values. This is a valid request.
CreditCardNumber Amount CreditCardType 12345678 1100.00 Visa

112

Integrating Siebel 8.0 Applications

Module 14: Using Oracle Fusion Middleware

k. Click Post XML Message. What is the response this time?

4. Close the BPEL Console window. You have seen that Fusion Middleware can be used to invoke Web services, and to build business logic around Web services. Over the next few labs, you will build several Fusion Middleware processes that interact with Siebel CRM.

Integrating Siebel 8.0 Applications

113

Module 14: Using Oracle Fusion Middleware

Solutions 14-1 Exploring a Fusion Middleware Process


Answers
3.c. Click Post XML Message. You may need to scroll down to see this button. What is the response? Rejected - Requested amount is over $10,000 Click Visual Flow. This allows you to see how the request was processed. Although you have not yet seen the details of a BPEL process, do any of the steps names suggest that the Check Credit Card service was invoked? No; none of the names seem to be related to invoking the Check Credit Card service. This is indeed the case; because the amount was over the limit, the Check Credit Card service was not run. Click Post XML Message. What is the response this time? Denied - Over credit limit or invalid credit card. Note that although the result is the same (the request was rejected), there are different responses depending on the reason for the rejection. Click Visual Flow. Do any of the steps names suggest that the Check Credit Card service was invoked? Yes. Invoke_CCCheck sounds like it invoked the Check Credit Card service. And this is indeed the case. Click Post XML Message. What is the response this time? Approved

3.d.

3.g.

3.h.

3.k.

114

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

Lab 15-1 Creating an ESB Service


Goals Prerequisites Time To build an ESB service that accepts Siebel data, transforms it, and writes it to a file You must have created the ISA Meeting Account integration object 30 40 minutes

Instructions:
Recall that in a previous lab you built an ISA Meeting Account integration object to contain Siebel account data, and later built a Siebel workflow that used business services to transform the data to the ISA Client schema for use in an external application and then export it to a file. In this lab, you will build an ESB service that accepts ISA Meeting Account data as input. The ESB service will then transform the data to ISA Client data, and write the result to a file. Thus, you are creating the same functionality using an ESB service instead of Siebel business services. In particular, you will create the same data mapping you created in a previous lab, but this time you will use the ESB data mapping tool instead of the Siebel data mapping tool. This will give you experience working with ESB projects, as well as show you the differences between data mapping in Siebel CRM and data mapping in JDeveloper. The following labs require that you have created and exposed the ISA Account inbound Web service in the previous labs. If you did not complete these labs, you may import D:\Labs\ISA\ESB\WebServiceObjects.sif to create the integration objects and ASI business service, then compile these objects into the server .srf file, and then administer the inbound Web service. 1. You will first export the ISA Meeting Account integration object schema. ESB services are based on data routing and transformation, hence each end point of an ESB service requires a schema or WSDL telling ESB the form of the data. a. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. b. Select Integration Object :: ISA Meeting Account. c. Click Generate Schema. d. Select EAI XML XSD Generator as the business service. e. Select No Envelope as the envelope.

Integrating Siebel 8.0 Applications

115

Module 15: Building ESB Services to Access Siebel CRM

f. Enter D:\TEMP\ISAMeetingAccount.xsd as the file name. Note that you will need to change the file type from XML to All Files:

g. Click Finish. h. Minimize Siebel Tools. 2. You will next create an ESB project and copy the ISA Meeting Account schema into the project. You will first need to create an application; a container for all of your projects. a. If necessary, start JDeveloper.

116

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

b. In the Applications Navigator pane, right-click Applications and select New Application:

Applications Navigator pane

c. Enter Siebel_Integration_Projects as the application name. Leave the other values at their defaults. Note: Do not use spaces in application names if the applications will contain ESB projects. d. Click OK. A Create Project dialog box is displayed. e. Click Cancel to close the Create Project dialog box. By default, when you create a new application, JDeveloper tries to create a new empty project. It is easier to cancel this dialog and then create an ESB project, rather than trying to populate the empty project. A new application named Siebel_Integration_Projects is displayed in the Application pane:

f. Right-click Siebel_Integration_Projects and select New Project.

Integrating Siebel 8.0 Applications

117

Module 15: Building ESB Services to Access Siebel CRM

g. Select ESB Project in the New Gallery dialog box:

h. Click OK. i. Enter ISAExportAccounts as the project name. Accept the default values for the other fields:

118

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

j. Click OK. The visual editor displays a blank canvas for you to build your ESB project:

k. Copy D:\Temp\ISAMeetingAccount.xsd to D:\JDeveloper\jdev\mywork\Siebel_Integration_Projects\ISAExportAccounts. Note that this directory did not exist until you created the project. l. Copy D:\Labs\Integration\IO\ISA_Client.xsd to D:\JDeveloper\jdev\mywork\Siebel_Integration_Projects\ISAExportAccounts. You will use this schema to build your mapping, exactly as you did using the Siebel mapping tool. This will show you the difference between the mapping tools. m. You have now created an empty ESB project and added two schemas to it. This allows you to build ESB services that route and transform data using those two schemas. 3. You will next create an ESB routing service based on the ISA Meeting Account schema. This will serve as Siebel CRMs entry point to the ESB process. a. Select ESB Services from the Component Palette drop-down list.

Integrating Siebel 8.0 Applications

119

Module 15: Building ESB Services to Access Siebel CRM

b. Drag a Routing Service from the Components Pane to the Visual Editor. The Create Routing Service dialog box is displayed:

c. d. e. f.

Enter ISA_Meeting_Account as the name. Select Generate WSDL from Schemas. Click Browse. Expand Project Schema Files and ISAMeetingAccount.xsd.

120

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

g. Select ListOfIsaMeetingAccount:

h. Click OK.

Integrating Siebel 8.0 Applications

121

Module 15: Building ESB Services to Access Siebel CRM

i. Verify that your routing service matches the screen shot below:

j. Click OK to close the Create Routing Service dialog box. k. You have created an entry point for the ESB service; any application can now invoke the ESB service by passing it data in the format of the ISA Meeting Account schema. 4. You will now create a File Adapter to write the result to a file. This would normally be a Web service for another application, for example, Oracle eBusiness Suite. When creating ESB services, you typically create the various services and adapters before defining the transformations or routing rules. a. Select Adapter Services in the Component Pane drop-down list. b. Drag a File Adapter into the visual editor. The Create File Adapter Service is shown. c. Enter Write_ISA_Client as the name. d. Click the Configure Adapter Service wsdl icon e. Click Next. .

122

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

f. g. h. i.

Click Next to accept the default service name. Select Write File as the operation type and click Next. Enter D:\Temp as the directory for outgoing files. Enter ISA_Client_%SEQ%.xml as the file naming convention. Note that as soon as you type the first %, an auto-complete drop-down list is displayed. You can identify files sequentially or by timestamp:

j. Click Next. k. Click Browse to select the schema location.

Integrating Siebel 8.0 Applications

123

Module 15: Building ESB Services to Access Siebel CRM

l. Expand Project Schema Files and ISA_Client.xsd to select Client:

m. n. o. p.

Click OK. Click Next. Click Finish. Click OK. The two services are now displayed in the visual editor:

5. You will now connect the services using a routing rule. a. On the ISA_Meeting_Account routing service, double-click the Routing Service icon . The Routing Service editor is displayed. b. Double-click the DefaultSystem_ISA_Meeting_ Account.esbsvc tab at the top of the visual editor. This puts the editor in full window mode (the visual editor fills the entire application window). You can double-click the tab again to return to paned mode.
124 Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

c. Expand Routing Rules. d. Click the Create a New Routing Rule icon next to the execute method. This brings up a list of possible connections for the execute method. e. Expand DefaultSystem and Write_ISA_Client to select Write:

f. Click OK. The routing rule is displayed below the method. Note that you can add filters and transformations to routing rules, and multiple routing rules to a single method. This allows routing data to different services depending on values in the data; for example, an order processing service might route orders over $500 to one shipping service, and orders under $500 to a different one. 6. You will next create a transformation map for the routing rule. a. In the routing rule you just created, click the icon next to the transformation map. b. Select Create New Mapper File and click OK. The transformation editor is displayed. You can use an existing mapping (for example, one provided by another developer or one from a different ESB process), or you can create a new one. c. If necessary, expand inp1:ListOfIsaMeetingAccount and inp1:Account on the left side of the mapping. d. Expand imp1:Client on the right side of the mapping. e. Make the following mappings by dragging from the source to the target:
Source inp1:HomePage inp1:IntegrationId inp1:MainPhoneNumber inp1:Name Target imp1:URL imp1:ClientID imp1:Phone imp1:ClientName

Integrating Siebel 8.0 Applications

125

Module 15: Building ESB Services to Access Siebel CRM

f. Expand inp1:ListOfAccount_BusinessAddress. You must map only the primary address to the client address. This requires walking through the list of records and determining which is the primary record. This requires the XSLT for-each statement to walk through the records, and an if statement to determine which record to use. Unfortunately, because the client address is not grouped in the target XSD file, you need separate for-each and if statements for each element of the address. g. Double-click the ListOfIsaMeetingAccount_To_Client.xsl to display the other panes. h. Select XSLT Constructs from the Component Pane drop-down list. i. Drag a for-each statement onto imp1:Address.

126

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

j. Drag an if statement onto imp1:Address. Your transformation should look as follows:

k. Repeat these steps to add for-each and if statements to City, State, and Zip.

Integrating Siebel 8.0 Applications

127

Module 15: Building ESB Services to Access Siebel CRM

l. Drag inp1:Account_BusinessAddress to each for-each statement:

m. You finally need to add a condition to each if statement. This will be a logical operation on the IsPrimaryMVG field. i. Select Logical Functions in the Component Palette drop-down list. ii. Drag four equals functions into the middle pane; one for each if statement. iii. Drag IsPrimaryMVG to connect to each equals function on the left. iv. Double-click an equals function to bring up the Edit Function - equals dialog box. v. Enter Y in the regexPattern field, including the quotes. vi. Click OK to close the Edit Function - matches dialog box. vii. Drag the right connector of the equals function to the first if statement.

128

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

viii.

Repeat these steps to connect the other three equals functions to the other three if statements:

n. Make the following mappings by dragging from the source to the target:
Source inp1:City inp1:PostalCode inp1:State inp1:StreetAddress Target imp1:City imp1:Zip imp1:State imp1:Address

Integrating Siebel 8.0 Applications

129

Module 15: Building ESB Services to Access Siebel CRM

o. Minimize ListOfAccount_BusinessAddress in the source, and the for-each statements in the target. p. Expand inp1:ListOfContact and inp1:Contact in the source. q. Expand imp1:Contacts and imp1:Contact in the target. r. Drag a for-each XSLT construct from the Components pane on top of the imp1:Contact element. The for-each construct is used whenever the source has a list of elements which will populate a list of elements in the target. s. Drag the inp1:Contact from the source to the for-each construct. t. Make the following mappings by dragging from the source to the target:
Source inp1:EmailAddress inp1:FirstName inp1:LastName inp1:PersonUId Target imp1:emailAddress imp1:FirstName imp1:LastName imp1:Contact ID

130

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

to save your changes. u. Click the Save All icon v. Select File > Close to close the transformation.

Integrating Siebel 8.0 Applications

131

Module 15: Building ESB Services to Access Siebel CRM

w. Select File > Close to close the routing rule. The services should now be connected, and the transformation icon should be highlighted in yellow:

7. You will now deploy and test this ESB service. a. If necessary, start SOA suite. b. In JDeveloper, right-click ISAExportAccounts and select Register with ESB > OUIntServer. If this does not appear, select Refresh to refresh the list. The project should deploy successfully. c. Click OK to dismiss the ESB Registration Summary dialog box. d. Log in to the ESB console. i. Select Start > Programs > Internet Explorer. ii. Enter http://localhost:8888 as the address. iii. Click ESB Control. iv. Enter oc4jadmin as the Username, oracle1 as the password, and click Login. e. Select ISA_Meeting_Accounts under the Default System. A diagram of your ESB service is displayed. f. Select the Definition tab. g. Click the Concrete WSDL URL link. It should be in the form http://localhost:8888/esb/wsil/DefaultSystem/ISA_Meeting_Account?WSDL. The WSDL for this entry point is displayed. h. Select File > Save As. i. Save the file as D:\Temp\ISA_Meeting_Accounts.wsdl. Be sure to change the file type from XML to All Files before saving. j. Create a new project in soapUI to test this WSDL. i. Select Start > Programs > soapUI 1.7.1 > soapUI 1.7.1. ii. In soapUI, select File > New WSDL project. iii. Enter ISAMeetingAccount as the project name.
132 Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

iv. Browse for and select D:\Temp\ISA_Meeting_Accounts.wsdl as the initial WSDL. v. Expand the folders in the ISAMeetingAccount project until Request 1 is visible. vi. Double-click Request 1. soapUI generates a request template. k. Copy in a sample request. This request contains two addresses and two contacts. It was generated by saving the soapUI template and entering the data using a standard text editor. i. Use Notepad++ to open D:\Labs\Integration\ESB\SampleRequest.xml. Note which address is the primary address. ii. Copy and paste the entire text from SampleRequest.xml into soapUI, replacing the existing text. l. Submit the request. Note that the ESB process returns an empty result. m. Open D:\Temp\ISA_Client_1.xml and confirm that it contains the transformed data, including the primary address and both contacts. 8. Leave all applications open for the next lab.

Integrating Siebel 8.0 Applications

133

Module 15: Building ESB Services to Access Siebel CRM

Lab 15-2 Initiating an ESB Service from Siebel CRM


Goals Time To build a Siebel workflow that initiates the ISAExportAccounts ESB service 15 20 minutes

Instructions:
In this lab, you will create a Siebel workflow that pushes a Siebel ISA Meeting Account to the ISAExportAccounts ESB service. This will initiate the ESB service and cause it to transform the Siebel account to the external (ISA Client) format and write it to a file. 1. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. 2. In Siebel Tools, create and lock a new project named ISA ESB Project. 3. You will next import the ESB WSDL to create the proxy business service and integration object. a. Select File > New Object. b. Click the EAI tab, select Web Service, and click OK. c. Enter the following values:
Project WSDL File Run-time Data File Log File ISA ESB Project D:\Temp\ISA_Meeting_Accounts.wsdl D:\Temp\ISA_Meeting_Accounts.xml D:\Temp\ISA_Meeting_Accounts.log

134

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

d. Click Next. The WSDL Import Wizard generates a result similar to the following:

Note the warning at the bottom about the __esb_ISA_Meeting_Accounts_execute_ppt port. This is normal; ESB exposes its services as regular SOAP ports and as specialized ESB ports. Siebel Tools does not recognize the specialized port. You can eliminate this warning by
Integrating Siebel 8.0 Applications 135

Module 15: Building ESB Services to Access Siebel CRM

editing the WSDL file and removing the declaration of the ESB port. However, the warning is harmless, so it is not necessary to do so. e. Click Finish. f. Confirm the import. i. Select ISA ESB Project in the Object Explorer drop-down list. ii. Verify that there is a single business service named execute_ppt in the project. iii. Verify that there is a single integration object named ListOfIsaMeetingAccount in the project. g. Select All Projects in the Object Explorer drop-down list to restore your view. 4. You will now modify the proxy business service to use the original integration object. This is a common task in Siebel Tools when working with middleware: When you import an external WSDL file, Siebel Tools automatically creates integration objects for the input and output. If the middleware is configured to accept and return Siebel integration objects, these additional integration objects are unnecessary and can be removed. a. Select Business Service :: execute_ppt | Business Service Method :: execute | Business Service Method Arg :: ListOfIsaMeetingAccount_request:ListOfIsaMeetingAccount. b. Select IsaMeetingAccount as the Integration Object. This is the original integration object. c. Compile the ISA ESB Project into the client SRF file, D:\OUsea\client\OBJECTS\ENU\siebel.srf. 5. You will next build a workflow to invoke the proxy business service and pass data to ESB. Because you configured your ESB service to accept the Siebel integration object, no mapping is required. Also, because ESB is a push model (you push the data and do not expect a response), no response processing is required. a. Create a new workflow process with the following properties:
Name Project Business Object ISA Send Meeting Account ISA ESB Project Account

b. Right-click ISA Send Meeting Account and select Edit Workflow Process. c. Add a Start step, an End step, and two Business Service steps. The first will obtain the Siebel data, and the second will pass it to ESB. d. Connect the steps. Your workflow should look as follows:

e. In the MVPW, create a Process Property to contain the Meeting System Account integration object.
Name Data Type Integration Object EIO Request Integration Object ISA Meeting Account

136

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

f. Select each business service step in sequence and configure the properties as follows.
Step Name Business Service Name EAI Siebel Adapter execute_ppt Value ISA Meeting Account Object Id Type Output Argument Type Value Property name EIO Request Business Service Method Query execute Property name Business Service 0 Get Siebel Account Business Service 1 Send Account to ESB Input Argument OutputIntObjectName PrimaryRowId Property name EIO Request Input Argument Type Literal Process Property Output Argument SiebelMessage Value

g. For the Get Siebel Account step, add the following input arguments:

h. Add the following output argument:

i. For the Send Account to ESB step, add the following input arguments:
ListOfIsaMeetingAccount_reques Process Property t:ListOfIsaMeetingAccount

j. Save and validate your workflow. 6. You will finally simulate the workflow to confirm it behaves as expected. a. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. b. Obtain the row ID for an account record to test. i. In the client, navigate to My Accounts. ii. Select the 3Com account. iii. Select Help > About Record and record the Row ID of the record here: c. Log out of Siebel Call Center. d. Return to the Workflow Process Designer in Siebel Tools. e. In the MVPW, update the Object ID record to include the first row ID you noted as the Default String. f. Save the workflow. g. Right-click within the Workflow Process Designer and select Simulate. h. Click the Start icon to start the workflow simulation. i. Step through the simulation and use the Watch window to confirm that it works as expected: i. Verify that the Get Siebel Account step populates the EIO Request with the 3Com record. Note: The simulation will indicate that Siebel received an unexpected response from ESB. This is a known issue; ESB returns an empty response to acknowledge that it received the data, and Siebel Tools is not configured to accept that response. The error is harmless. ii. Verify that the Send Account to ESB step writes D:\Temp\ISA_Client_n.xml and that this file contains the correct information. j. When the simulation completes, close Siebel Tools and log out of any open Siebel clients.

Integrating Siebel 8.0 Applications

137

Module 15: Building ESB Services to Access Siebel CRM

Lab 15-3 Invoking Siebel Web Services from ESB


Goals Prerequisites Time To build and test an ESB service that invokes a Siebel Web service You have exposed the ISA Account ASI as a Siebel Web service You have generated ISA_Account.wsdl in D:\Temp 15 20 minutes

Instructions:
In this lab, you will build an ESB service that accepts an ISA Client record as input, transforms it, and invokes a Siebel Web service to update the Siebel database with this record. As a debugging step, ESB will write the response from the Siebel Web service to a file. (The response is normally empty, but if an error occurs invoking the Siebel Web service this file might contain useful information). 1. You will first create an ESB project and system for your work. A system is a mechanism for grouping ESB components on the server, making them easier to recognize and locate. a. In JDeveloper, right-click Siebel_Integration_Projects and select New Project. b. Select ESB Project and click OK. c. Enter ISAImportAccounts as the name and click OK. A blank ESB design pane is shown in the visual editor. d. Click the Create System/Group icon at the top of the visual editor. e. Enter Siebel_System as the name and click OK. Note in the application pane that a file named Siebel_System.esbsys is created. This system file acts as a container for ESB components, allowing you to logically group components for easy reference. 2. Copy D:\Labs\Integration\IO\ISA_Client.xsd to D:\JDeveloper\jdev\mywork\Siebel_Integration_Projects\ISAImportAccounts. This is the same schema you used in the previous lab; this time you will be using it as your import schema instead of as your export schema. 3. You will next create an ESB routing service based on the ISA_Client schema. This will act as your input point. a. Drag a Routing Service from the Component Palette to the visual editor pane. b. Enter ISA_Client_Input as the name. c. Verify that the System/Group is Siebel_System. d. Select Generate WSDL from Schemas. e. Click Browse. f. Expand Project Schema Files and ISA_Client.xsd and select Client. g. Click OK.

138

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

h. Click OK to close the Create Routing Service dialog box. 4. You will now create a SOAP service to invoke the Siebel Web service. For Web services, it is typical to use a SOAP service to expose them in ESB, rather than a routing service, as routing services require significantly more configuration. a. Drag a SOAP Service from the Component Palette to the visual editor pane. b. Enter Update_Siebel as the name. c. Verify that the System/Group is Siebel_System. d. Click the Browse icon to browse for the WSDL file. e. Select D:\Temp\ISA_Account.wsdl and click Open. f. Click Yes to copy the WSDL file into the current project g. Click OK to close the Create SOAP Invocation Service dialog box. 5. You will next create a File Adapter service to write the response from the Web service to a file. Note that the typical response from Siebel to an Insert or Update request is empty; thus, this file adapter is mainly for error-checking purposes. a. Select Adapter Services from the Component Palette drop-down list. b. Drag a File Adapter from the Component Palette to the visual editor pane. c. Enter Write_Siebel_Response_To_File for the name. d. Verify that the System/Group is set to Siebel_System. e. Click the Configure adapter service WSDL icon. f. Click Next. g. Click Next. h. Select Write File and click Next. i. Enter D:\Temp as the directory and Siebel_Response_%SEQ%.xml as the file naming convention and click Next. j. Click Browse to select the schema.

Integrating Siebel 8.0 Applications

139

Module 15: Building ESB Services to Access Siebel CRM

k. Expand Project WSDL Files, ISA_Account.wsdl, Inline Schemas, and the bottom xsd:schema, and select ISAAccountInsertorUpdate_Output and click OK:

l. Click Next. m. Click Finish. n. Click OK. 6. You will now update the routing service to connect these three components. a. Double-click the Routing Service icon on the ISA_Client_Input routing service. b. Click the Create a New Routing Rule icon next to the execute method. c. Expand Services in project, Siebel_System, and Update_Siebel. d. Select the ISAAccountInsertOrUpdate method of the Update_Siebel SOAP service as the target and click OK. Note that since this method returns a response, the routing rule provides a second line to indicate where to send the response. e. Click the Browse for target service operations icon next to the reply:

f. Select the Write method of the Write_Siebel_Response_To_File file adapter and click OK.

140

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

g. Close Siebel_System_ISA_Client_Input.esbsvc, saving the changes if prompted, and confirm that your ESB diagram now looks like this:

Data is received in the ISA_Client_Input step, routed to the Update_Siebel service, and the response is routed to the Write_Siebel_Reponse_To_File service. 7. You will next create the transformation to transform the ISA_Client input to the proper format for the ISAAccountInsertorUpdate method. This mapping is significantly simpler than the ISA Meeting Account to ISA Client mapping you did in a previous lab. a. Double-click the Routing Service icon on the ISA_Client_Input routing service to re-open the routing editor. b. Expand Routing Rules and the routing rule for the execute method. c. Click the Select an existing mapper file or create a new one icon for the request. d. Select Create New Mapper File and enter ISAClientToISAAccount.xsl as the name. e. Click OK. The transformation editor is displayed. f. Use the Auto Map feature to create the map. In this case, because no MVGs are involved and the names are similar, the Auto Map should be able to closely approximate your final mapping. i. Drag inp1:Client from the left side of the mapping to tns:ISAAccountInsertOrUpdate_Input on the right. By dragging the top-level element from one side to the other, you invoke the Auto Map.

Integrating Siebel 8.0 Applications

141

Module 15: Building ESB Services to Access Siebel CRM

ii.

Accept the default Auto Map preferences. They should look as follows:

iii.

Click OK. The Auto Map generates a mapping that looks similar to the following:

g. Make the following corrections to the map generated by the Auto Map tool. Note that most of your corrections occur because the element names in the two schema are dissimilar, or the Auto Map did not recognize a required for-each statement: i. Select the inp1:ClientID to xsdLocal1:Id mapping and delete it. ii. Drag inp1:ClientId to xsdLocal1:IntegrationId. iii. Drag inp1:URL to xsdLocal1:HomePage. iv. Drag inp1:Zip to xsdLocal1:PostalCode.

142

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

v. vi. vii. viii.

Drag inp1:Phone to xsdLocal1:MainPhoneNumber. Drag a for-each XSLT construct onto xsdLocal1:Contact. Drag inp1:Contact to the for-each you just created. Drag inp1:ContactID to xsdLocal1:PersonUId. The bottom portion of your mapping should look as follows:

h. Add the IsPrimaryMVG flag to the address. Note that there is no notion of a primary address in the source file, so you need to create a string to populate this value in the target file. i. Select Advanced Functions in the Component Palette drop-down list. ii. Drag an xpath-expression into the transformation. iii. Double-click the expression to bring up the expression builder. iv. Enter Y as the expression, including the quotes. v. Click OK. vi. Drag the output of the expression to xsdLocal1:IsPrimaryMVG. i. Save all files and close the mapping. Note that no mapping is required for the response because the file adapter is configured to accept the Siebel response schema.

Integrating Siebel 8.0 Applications

143

Module 15: Building ESB Services to Access Siebel CRM

8. You will now deploy and test this ESB service. a. In JDeveloper, right-click ISAImportAccounts and select Register with ESB > OUIntServer. The project should deploy successfully. b. Log in to the ESB console. i. Select Start > Programs > Internet Explorer. ii. Enter http://localhost:8888 as the address. iii. Click ESB Control. iv. Enter oc4jadmin as the Username, oracle1 as the password, and click Login. Note that the Siebel System now appears and lists the components you just created. c. Select ISA_Client_Input under the Siebel System. d. Select the Definition tab. e. Click the Concrete WSDL URL link. It should be in the form http://localhost:8888/esb/wsil/Siebel_System/ISA_Client_Input?WSDL. The WSDL for this entry point is displayed. f. Select File > Save As. g. Save the file as D:\Temp\ISA_Client_Input.wsdl. Be sure to change the file type from XML to All Files before saving. h. Start the Siebel Server [Siebel_OUsrvr] service. i. Create a new project in soapUI to test this WSDL. i. Select Start > Programs > soapUI 1.7.1 > soapUI 1.7.1. ii. In soapUI, select File > New WSDL project. iii. Enter ISA_Client_Input as the project name. iv. Browse for and select D:\Temp\ISA_Client_Input.wsdl as the initial WSDL. v. Expand the folders in the ISA_Client_Input project until Request 1 is visible. vi. Double-click Request 1. soapUI generates a request template. j. Copy in a sample request. This request contains an account with two contacts. It was generated by saving the soapUI template and entering the data using a standard text editor. i. Use Notepad++ to open D:\Labs\Integration\ESB\ClientInput.xml. ii. Copy and paste the entire text from ClientInput.xml into soapUI, replacing the existing text. k. Submit the request. Note that the ESB process returns an empty result. 9. Open D:\Temp\Siebel_Response_1.xml and confirm that it contains the Siebel response. Note that this response should be empty if the update succeeded:

10. Log in to the Siebel Call Center Web client as SADMIN/SADMIN, navigate to Accounts > Accounts Administration, and confirm that the ISA Widgets account has been created in Siebel CRM, and includes two contacts.

144

Integrating Siebel 8.0 Applications

Module 15: Building ESB Services to Access Siebel CRM

11. Modify the address in soapUI to 321 Fake Street and re-submit the request. Confirm that the address is updated in Siebel CRM. 12. Log out of Siebel Call Center and stop the Siebel server.

Integrating Siebel 8.0 Applications

145

Module 15: Building ESB Services to Access Siebel CRM

146

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

Lab 16-1 Checking Product Inventory


Goals Time To create a BPEL product that checks product inventory in the supplier database 20 30 minutes

Instructions:
In this lab, you will use Oracle JDeveloper to create a BPEL process that accepts a product name as input, checks product availability in the product database, and returns the number of items left in inventory, returning a -1 if the product is not recognized. 1. If necessary, start Oracle JDeveloper. 2. You will first create a new BPEL project containing a synchronous BPEL process. In general, JDeveloper lets you create a synchronous, asynchronous, or empty BPEL process. The only difference between these three options is the BPEL steps that are pre-populated in the flow. Siebel CRM can only invoke synchronous BPEL processes. a. Right-click the Siebel_Integration_Projects application and select New Project. The New Gallery dialog box is displayed. b. Select BPEL Process Project and click OK. c. Enter CheckProductInventory as the process name. Accept the default namespace and project settings.

Integrating Siebel 8.0 Applications

147

Module 16: Integrating Siebel CRM with BPEL PM

d. Select Synchronous BPEL Process as the template.

e. Click Finish. The design pane shows CheckProductInventory.bpel, with a central activity lane and two swim lanes (one on either side) for partner links.

148

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

Activity lane

Swim lanes

3. You will next examine the input and output variables for the BPEL process. If you had chosen the empty template, you would have had to create these variables. a. In the structure pane, expand the Variables folder. Note: If the structure pane is empty, click anywhere in the design pane to populate it. b. Expand the Process folder. c. Expand the inner Variables folder. Note that two variables have been created for you, inputVariable and outputVariable. d. Expand both variables completely. What data is passed in to the BPEL process? What data is returned?

4. You will now create two new variables: One to contain the input value and the other to contain the return value received when looking up the product quantity. While not necessary (you could use the input variable in your lookup and then copy the result directly to the output variable), including intermediate variables enhances debugging by allowing you to track and manipulate the intermediate variables instead of the input and output variables, ensuring that you always

Integrating Siebel 8.0 Applications

149

Module 16: Integrating Siebel CRM with BPEL PM

have the original input, and that you do not accidentally return a partial result because the output variable is only partially populated. a. Right-click the inner Variables folder and select Create Variable. b. Enter ProductName as the name. c. Select Element as the type. to browse for available elements. d. Click the Browse icon e. Expand Project WSDL Files, CheckProductInventory.wsdl, Inline Schemas, and schema. f. Select CheckProductInventoryProcessRequest. This is the element corresponding to your input variable.

g. Click OK. h. Click OK to close the Create Variable dialog box. i. Repeat these steps to create a second variable named ProductQuantity of type CheckProductInventoryProcessResponse. 5. Next you will create an Assign step to copy the input variable to your product name variable. This protects the input variable for auditing purposes. a. If necessary, select Process Activities from the Component Palette drop-down list. b. Drag an Assign process activity to the design pane, just below the receiveInput step. Note that as you are dragging the activity, a small circle will appear between the receiveInput and

150

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

replyOutput steps. This is where to place the activity.

c. d. e. f. g. h. i. j. k.

Double-click Assign_1 to bring up the Assign Editor. Click the General tab. Enter Assign_ProductName as the name. Click the Copy Operation tab. Select Create > Copy Operation in the Assign Editor. In the From pane, expand Variables. Expand inputVariable entirely and select client:input. In the To pane, expand Variables. Expand ProductName entirely and select client:input. This copies the input value from the input variable to the product name variable you created.

l. Click OK.
Integrating Siebel 8.0 Applications 151

Module 16: Integrating Siebel CRM with BPEL PM

m. Click OK to close the Assign Editor. 6. You will next add the step to look up the product in the database. The lookup takes place in a Transform activity, as JDeveloper transformations have an available XML lookup function. a. Drag a Transform process activity to the design pane just below the Assign_ProductName activity. b. Double-click Transform_1 to bring up the Transform editor. c. Click the General tab and enter LookupProductQuantity as the name. d. Click the Transformation tab and select ProductName as the input variable. e. Select ProductQuantity as the output variable. f. Change the mapper file name to ProductLookup.xsl.

to create the mapping file. The JDeveloper mapping tool g. Click the Create Mapping icon is displayed in the design pane. h. If necessary, select Database Functions from the component drop-down list. i. Drag a lookup-table function into the center pane. j. Drag the input from the left pane to connect to the lookup function.

152

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

k. Drag the result from the right pane to connect to the lookup function.

l. Double-click the lookup function to bring up the function editor. m. Enter the following values. Note that you will need to move the input variable from the table entry to the key entry. The quotes are important for the other values, as you are entering string literals for the table, columns, and database connection:
table inputColumn key outputColumn datasource PRODUCT NAME /ns1:CheckProductInventoryProcessRequest/ns1:input INVENTORY 'jdbc:oracle:thin:soademo/soademo@localhost:1521:SIEBEL'

n. Click OK. You should not receive any warnings or error messages. If you do, re-check your work.

Integrating Siebel 8.0 Applications

153

Module 16: Integrating Siebel CRM with BPEL PM

o. Select File > Save or click the Save icon to save your work. p. Click the Close icon to close ProductLookup.xsl.

7. You will next copy the result of the product lookup to the output variable. The advantage of waiting until the process is complete to populate the output variable is that you avoid returning an incorrect result. a. Drag an Assign process activity to the design pane, just above the replyOutput step.

b. c. d. e. f. g. h. i.

Double-click Assign_1 to bring up the Assign Editor. Click the General tab. Enter Assign_Output as the name. Click the Copy Operation tab. Select Create > Copy Operation in the Assign Editor. In the From pane, expand Variables. Expand ProductQuantity entirely and select client:result. In the To pane, expand Variables.

154

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

j. Expand outputVariable entirely and select client:result.

k. Click OK. l. Click OK to close the Assign Editor. 8. You will now test your work using the BPEL console. It is a good idea to check your work frequently while developing to simplify debugging. a. Click the Save all icon to save all modified files. b. Return to JDeveloper, right-click CheckProductInventory in the Application Navigator pane and select Deploy > OUIntServer > Deploy to default domain. Note: If this option does not appear, select the Refresh option instead and it should appear. c. Examine the message logs at the bottom of the screen to confirm that the build is successful. It should take approximately 30-45 seconds to complete the build and deployment. If the build is not successful, examine the error messages and try to debug your process. d. Select Start > Programs > Internet Explorer. e. Enter an address of http://localhost:8888. This is the Oracle Application Server home page. Bookmark this page for future reference. f. Click the BPEL Control link. g. Enter the following parameters to log in:
Username Password oc4jadmin oracle1

h. Drill down on CheckProductInventory under Deployed BPEL Processes. The BPEL Process Initiator control is displayed. i. Enter ABC Fast Print Laser Printer as the input. This is one of the products entered in the product database.

Integrating Siebel 8.0 Applications

155

Module 16: Integrating Siebel CRM with BPEL PM

j. Click Post XML Message. You should get a result quite quickly. What is the result value?

k. Click Visual Flow to see the BPEL process flow that was executed. This is useful for two reasons: If your BPEL process branches, you can see which branch was executed. Also, you can examine intermediate values to help you debug your process. l. Click receiveInput to view the XML received by the BPEL process. Examine it and close the window. m. Click LookupProductQuantity to view the result of that step. Close the XML window when you have examined it. n. Click CheckProductInventory (v. 1.0) just under the Tree Finder button to submit another value. o. Enter ISA Test as the input and test the BPEL process. What is the result value? Is this likely to be an acceptable result?

9. You will enhance your process to return a code if the product does not exist in the database. You will add a Switch step to assign a value of -1 to the product quantity if the returned quantity is null. a. Return to JDeveloper. b. Drag a Switch process activity below the LookupProductQuantity transformation. c. Double-click the Switch_1 activity and change its name to AssignValueIfNoProduct. d. Close the Assignment dialog box. e. Expand AssignValueIfNoProduct; note that it has two flows; one for each case. It is possible to add additional flows for more complex switch statements. f. Configure the case statement: i. ii. iii. iv. Click the View Condition Statement icon for the case statement. Click the XPath Expression Builder icon to build the expression to be evaluated. Expand ProductQuantity, and double-click client:result. This adds the result value to the expression Add an equals sign and enter (empty quotes) as the second argument to the expression. Your final expression should look like this:
bpws:getVariableData('ProductQuantity','payload','/client:CheckProdu ctInventoryProcessResponse/client:result') = ''

v. Click OK. vi. Click anywhere in the design pane to close the Expression Builder dialog box. g. Drag an Assign process activity into the case flow. You must assign a value of -1 if the result is null. h. Configure the Assign activity: i. Double-click the Assign_1 activity.
156 Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

ii. iii. iv. v. vi. vii.

Click the General tab and enter Assign_EmptyResult as the name. Click the Copy Operation tab. Select Copy Operation from the Create drop-down list. In the left pane, select Expression from the drop-down list. Enter -1 as the expression. The quotes are important, as this is a string literal. In the right pane, expand ProductQuantity entirely and select client:result. This copies the string -1 to the output variable.

viii. ix.

Click OK. Click OK to close the Assign editor.

Integrating Siebel 8.0 Applications

157

Module 16: Integrating Siebel CRM with BPEL PM

i. Drag an Empty process activity to the otherwise part of the switch statement. Flows cannot be empty, hence the empty activity is used as a placeholder to indicate no action is required.

10. Save, deploy, and test your BPEL process, both with the valid ABC Fast Print Laser Printer product and with the invalid ISA Test product. Confirm that it works as expected. Examine the flows and confirm that the BPEL process is following two different flows, depending on whether or not the product is contained in the database. Note: When you re-deploy the BPEL process, you will be given the option of giving it a new version number. Leave the version number at 1.0 to overwrite the old BPEL process.

11. Log out of and close the BPEL console.


158 Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

Solutions 16-1 Checking Product Inventory


Answers
3.d. Expand both variables completely. What data is passed in to the BPEL process? What data is returned? An element named input will contain the received data (the product name). An element named result (the quantity) will be returned to the calling application. In a later lab you will learn to create more complex input and output arguments. Click Post XML Message. You should get a result quite quickly. What is the result value? 32. Enter Test as the input and test the BPEL process. What is the result value? Is this likely to be an acceptable result? There is no result value (or it is null). This is probably unacceptable, as the calling application will expect some form of numerical answer.

8.j. 8.o.

Integrating Siebel 8.0 Applications

159

Module 16: Integrating Siebel CRM with BPEL PM

Lab 16-2 Invoking Siebel Web Services Using BPEL PM


Goals To obtain complete product information by invoking a Siebel Web service To combine the Siebel product information with the product quantity within a BPEL process 20 30 minutes

Time

Instructions:
In this lab, you will modify your BPEL process to query the Siebel database for additional product information. The BPEL process will then combine the Siebel product information with the product quantity information from the database and write the results to an XML file (to represent passing the data on to another application). You must first determine whether or not Siebel CRM includes a built-in Web service allowing remote applications to query for products by name. You will then determine whether the underlying integration object for that Web service includes a field for product quantity; this will simplify combining the Siebel data with the product quantity. You must finally export that Web services WSDL from Siebel, import it into your BPEL process, and modify your BPEL process to invoke it. 1. You will first determine whether Siebel CRM includes a built-in Web service for updating products. a. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Server database. b. Navigate to Administration - Web Services > Inbound Web Services. c. Query for services with Product in their name. Which service looks most likely to allow simple product queries?

d. What business service does this Web service use?

2. You will next determine whether this business service includes a method for querying by product name. a. Start Siebel Tools and log in as SADMIN/SADMIN to the Server database. b. Select Business Service :: Siebel Simple Product | Business Service Method. Which method might be used to query for a product by product name?

160

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

3. You will now determine which integration objects are used to implement this Web service, to determine whether the object will allow you to include the available product quantity. a. Select Business Service :: Siebel Simple Product | Business Service Method :: QueryByExample | Business Service Method Arg :: SiebelMessage. What is the Integration Object used to query for Siebel products using this business service method?

b. Select Integration Object :: Simple Product Interface | Integration Component :: Internal Product | Integration Component Field. Is there a field corresponding to the number of products in inventory?

4. You will now modify the Internal Product business component. The Siebel Simple Product interface was deactivated because two fields of the Internal Product business component that it used were made inactive when Siebel CRM was updated to version 8. You will activate these fields and compile the business component, which will allow you to activate the Web service and have it work correctly. a. Log out of all instances of Siebel Call Center. b. If necessary, stop the Siebel Server [Siebel_OUsrvr] service. c. In Siebel Tools, select Business Component :: Internal Product. d. Right-click Internal Product and select Lock Object. e. Select Business Component :: Internal Product | Single Value Field :: XA Class Integration Id. f. Remove the check from the Inactive column to activate the record. You will need to scroll to the right to see this column. g. Repeat these steps to activate the XA Class Type field. h. Right-click Internal Product and select Compile Selected Objects. i. Compile the business component into the server SRF file, D:\OUsea\siebsrvr\OBJECTS\ENU\siebel.srf. j. Compile the business component in the client SRF file as well; D:\OUsea\client\OBJECTS\ENU\siebel.srf. You will be using the Internal Product business component in the client SRF file in a later lab. 5. You will next activate this Web service and export its WSDL for import into your BPEL process. a. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Server database. b. Select the Siebel Simple Product Web service and change its status to Active, if necessary. c. Under Service Ports, edit the Default service port: i. Set the Address to http://localhost/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd= Execute&UserName=SADMIN&Password=SADMIN. ii. Set the Binding to SOAP_DOC_LITERAL. Although you can import SOAP_RPC WSDLs into BPEL projects, exporting the WSDLs as SOAP_DOC_LITERAL ensures they are also compatible with ESB. d. Click Clear Cache to clear the Web services cache.
Integrating Siebel 8.0 Applications 161

Module 16: Integrating Siebel CRM with BPEL PM

e. f. g. h. i. j.

Click Generate WSDL to generate the WSDL for this service. Click Save in the File Download dialog box. Enter SiebelSimpleProduct.wsdl as the file name. Select All Files from the Save As Type drop-down list. Save the file in the D:\Temp directory. Close the empty Internet Explorer window.

6. You will now add this Web service to the BPEL process you built in the previous lab by importing its WSDL. a. Return to JDeveloper and verify that you are working in the CheckProductInventory.bpel visual editor. b. Select Services from the Components drop-down list.

c. Drag a PartnerLink service from the component palette to the right swim lane. The choice of left or right swim lane is unimportant; it is entirely for aesthetic purposes (to make the diagram more readable). The Create Partner Link wizard runs. d. Enter PartnerLink_SiebelProduct as the name. e. f. g. h. i. to browse for the WSDL file you just created. Click the Browse WSDL Files icon Select D:\Temp\SiebelSimpleProduct.wsdl and click Open. Click Yes to create a local copy of the WSDL file. Click Yes to create a WSDL file to store partner link types. Verify that Default_PL is selected as the Partner Link Type. Note that this is the port name as specified in the WSDL suffixed by _PL (for PartnerLink). j. Select Default_Role for the Partner Role. This indicates that the partner (Siebel CRM) will be acting as the Web service host, and BPEL PM will be invoking the Web service. Roles are only important for asynchronous PartnerLinks, in which case they are specified in the WSDL. If no roles are found in the WSDL, JDeveloper automatically creates a simple synchronous role of the form <port name>_Role. k. Leave My Role unspecified. It is only used for asynchronous PartnerLinks.
Integrating Siebel 8.0 Applications

162

Module 16: Integrating Siebel CRM with BPEL PM

l. Click OK. m. Verify that PartnerLink_SiebelProduct appears in the right swim lane. 7. You will next create and initialize a variable based on a schema from the WSDL. After importing the Siebel WSDL, you can create variables based on its schema. Since you want to update the product quantity, you will create a variable based on the Update request schema. a. Right-click the inner Variables folder in the Structure pane and select Create Variable. b. Enter QueryByExampleRequest as the variable name. c. Select Message Type as the variable type. d. Click the Browse Elements icon to locate a schema for the variable. e. Expand Message Types, Project WSDL Files, SiebelSimpleProduct.wsdl, and Message Types. f. Select SiebelSimpleProductQueryByExample_Input as the schema to use.

g. Click OK. h. Click OK. 8. You will now populate the query request. The QueryByExample is an exact string match for all populated strings. Your company requires that product names be unique, hence you need only populate the product name to perform the query. a. Drag an Assign activity just below the Empty_1 activity in the right side of the Switch statement. It does not make sense to perform the assignment if no product was found, hence the Assign should take place within the switch statement. b. Delete the Empty_1 activity by selecting it and pressing Delete. Confirm that you do indeed want to delete it. Once you have added another activity to this branch of the Switch statement, you no longer need an empty activity. c. Double-click Assign_1 to bring up the Assign editor.

Integrating Siebel 8.0 Applications

163

Module 16: Integrating Siebel CRM with BPEL PM

d. e. f. g. h.

Click the General tab and enter Assign_QueryRequest as the name. Click the Copy Operation tab. Select Copy Operation from the Create drop-down list. In the left pane, expand ProductName completely and select client:input. In the right pane, expand QueryByExampleRequest completely and select ns2:ProductName.

i. Click OK. j. Click OK to close the Assign editor. 9. You will next invoke the Siebel Web service using the variable you just initialized. You will only invoke the Web service if there was a return value; otherwise there is nothing to update. a. Drag an Invoke activity just below the Assign_QueryRequest activity within the switch statement. b. Click and drag from the right arrow of the Invoke_1 activity to the PartnerLink_SiebelProduct partner link. This brings up the Edit Invoke dialog box. c. Enter Invoke_SiebelProductQuery as the name. d. Verify that the partner link is PartnerLink_SiebelProduct. e. Select SiebelSimpleProductQueryByExample as the operation. f. Click the Browse Variables icon to select the input variables. g. Select QueryByExampleRequest and click OK. h. Click the Automatically Create Output Variable icon to create the output variable.

164

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

i. Click OK to accept the default settings for the output variable.

j. Click OK to close the Edit Invoke dialog box. 10. You will now combine the information received (the product information from the Siebel application and the product quantity from the database) into a single output variable. The integrators for the other application have provided you with their product schema. They have requested that you write this output to a file rather than sending it directly to their application. a. Right-click the Schema folder in the structure pane and select Import Schema. b. Click the Browse File System icon. c. Select D:\Labs\Integration\BPEL\VendorSchema.xsd and click Open. d. Create a file adapter service to write the final output to a file. i. Drag a File Adapter service into the right swim lane. ii. Click Next. iii. Enter VendorWrite as the service name and click Next. iv. Select the Write File radio button and click Next. v. Enter D:\Temp as the directory. vi. Enter VendorProduct_%SEQ%.xml as the File Naming Convention. Note that as soon as you type the first % sign, an auto-complete menu is displayed. This format will name the files sequentially; VendorProduct_1.xml, VendorProduct_2.xml, and so

Integrating Siebel 8.0 Applications

165

Module 16: Integrating Siebel CRM with BPEL PM

forth. You can also use timestamps.

vii. viii. ix.

Click Next. Click Browse for the schema location. Expand Project Schema Files and VendorSchema.xsd to select ListOfSimpleProductInterface and click OK.

x. xi.
166

Click Next. Click Finish.


Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

xii. Click OK. e. Create a variable based on the message being sent to the file adapter. i. Right-click the inner Variables folder and select Create Variable. ii. Enter VendorOutput as the name. iii. Select Message Type as the type and click the Browse Message Types icon. iv. Expand Message Types, Partner Links, VendorWrite, VendorWrite.wsdl, and Message Types. v. Select ListOfSimpleProductInterface_msg.

vi. Click OK. vii. Click OK. f. Create the transformation that copies the Siebel response message to the vendor output message. i. Drag a Transform activity below the Invoke_SiebelProductQuery activity. Make sure it is still within the Switch statement. ii. Double-Click Transform_1. iii. Select the General tab to change the name to Transform_Siebel_To_Vendor. iv. Select the Transformation tab to change the source variable to Invoke_SiebelProductQuery_SiebelSimpleProductQueryByExampleOutputVari able. v. Change the target variable to VendorOutput. vi. Click the Create Mapping icon. vii. Drag xsdLocal1:ListOfSimpleProductInterface on the left to xsdLocal:ListOfSimpleProductInterface on the right. This invokes the Auto Map.

Integrating Siebel 8.0 Applications

167

Module 16: Integrating Siebel CRM with BPEL PM

viii.

Set the Auto Map Preferences as shown below:

Click OK. Expand both sides of the transformation and confirm that it looks like an identity mapping, except with a for-each on the right. xi. Save and close the transformation file. xii. Click OK to close the transformation editor. g. Add an Assign activity to copy the product quantity to VendorOutput. i. Drag an Assign activity just below the Transform_Siebel_To_Vendor transformation. ii. Double-click the Assign_1 activity. iii. Change the name to Assign_Quantity.

ix. x.

168

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

iv.

Create a copy operation that copies the client:result element from the ProductQuantity variable to the ns2:UnitsInInventory element of the VendorOutput variable. You will need to expand the VendorOutput variable and scroll down to find the ns2:UnitsInInventory element.

h. Create an Invoke activity to invoke the VendorWrite partner link. i. Drag an Invoke activity just below the Assign_Quantity activity, still within the Switch statement. ii. Drag the arrow from the Invoke_1 activity to VendorWrite to display the Invoke Editor. iii. Name the activity Invoke_VendorWrite.

Integrating Siebel 8.0 Applications

169

Module 16: Integrating Siebel CRM with BPEL PM

iv.

Browse for VendorOutput as the input variable.

v. vi.

Click OK. Click OK.

11. Click the Save All icon to save your changes. 12. Validate and deploy the BPEL process. You will get a warning about a possible uninitialized variable in the Invoke statement. This is normal. Note: If you do not see the Build Successful message after approximately one minute, click the Apache Ant tab in the Message Pane to see the result of the deployment. 13. Start the Siebel Server service. Your BPEL process invokes a Siebel Web service, hence the Siebel Server must be running. 14. Test your BPEL process, both with the valid ABC Fast Print Laser Printer product and with the invalid Test product. Confirm that it works as expected; in particular, verify that the Siebel Web service is not invoked unless the product is found in the database. Examine the flows and confirm that the BPEL process is following two different flows, depending on whether or not the product is contained in the database. Finally, examine D:\Temp and confirm that the VendorProduct files are written when valid products are entered. You may double-click one of the files to examine the contents. 15. Log out of Siebel Call Center. 16. Stop the Siebel Server service. You will not need it for the next lab.

170

Integrating Siebel 8.0 Applications

Module 16: Integrating Siebel CRM with BPEL PM

Solutions 16-2 Invoking Siebel Web Services Using BPEL PM


Answers
1.c. Query for services with Product in their name. Which service looks most likely to allow simple product updates? Siebel Simple Product looks like a good first choice. If that does not allow updating of the required field, ProductConfigurator looks like the best second choice. What business service does this Web service use? Siebel Simple Product Select Business Service :: Siebel Simple Product | Business Service Method. Which method might be used to query for a product by product name? QueryByExample. In fact, QueryByExample looks for an exact match for all populated fields of the input, so it is ideal for this situation (assuming all products have unique names). Select Business Service :: Siebel Simple Product | Business Service Method :: QueryByExample | Business Service Method Arg :: SiebelMessage. What is the Integration Object used to query for Siebel products using this business service method? Simple Product Interface Select Integration Object :: Simple Product Interface | Integration Component :: Internal Product | Integration Component Field. Is there a field corresponding to the number of products in inventory? Yes. Units in Inventory.

1.d. 2.b.

3.a.

3.b.

Integrating Siebel 8.0 Applications

171

Module 16: Integrating Siebel CRM with BPEL PM

172

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

Lab 17-1 Using Siebel Schema with BPEL PM


Goals Time To create a BPEL process that uses Siebel integration objects as input and output variables 30 40 minutes

Instructions:
Your business analysts have decided that your company will now use the Siebel application for their order management, but the supplier will still maintain product inventory information in the external database. You must create a BPEL process that allows Siebel CRM to obtain product quantity and update this information in the Siebel database. For situations such as this, instead of sending a simple string (for example, the product name) to the BPEL process, it is more convenient to send and receive an entire Siebel integration object. This will allow Siebel CRM to invoke the BPEL process by simply passing its integration object to the BPEL process manager without having to do any preliminary data mapping. In this lab you will create a new BPEL process to use the schema for a Siebel integration object for its input and output variables. Creating a new BPEL process avoids confusion with previouslyimported schemas in your previous BPEL process. You must first export the schema from Siebel Tools, then import it into JDeveloper, and finally you must create a BPEL process to use that schema. 1. You will first export an integration object schema from Siebel Tools. You will use an integration object that has a base type of Siebel Business Object. This will allow you to use the EAI Siebel Adapter to get the data directly from the Siebel application and pass it to the BPEL process without having to do any mapping within the Siebel application. a. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. b. Select Integration Object :: Simple Product Interface. What is its Base Object Type?

c. Select Business Service :: Siebel Simple Product | Business Service User Props. What is the name of the one user property of this business service? What is its value?

d. Select Integration Object :: Internal Simple Product Interface. What is its Base Object Type?

e. Verify that the Internal Simple Product Interface integration object includes a Units In Inventory field.

Integrating Siebel 8.0 Applications

173

Module 17: Invoking BPEL Processes from Siebel CRM

Select Integration Object :: Internal Simple Product Interface | Integration Component :: Internal Product | Integration Component Field. ii. Query for a field named Units In Inventory and confirm that this field is active. f. Return to Integration Object :: Internal Simple Product Interface. This exposes the schema options for the integration object. g. Click Generate Schema. The Generate XML Schema dialog box is shown. h. Enter the following values. Remember to set the file type to All Types to save it as an XSD:
Business Service EAI XML XSD Generator Envelope Type File Name No Envelope D:\Temp\InternalSimpleProduct.xsd

i.

i. Click Finish. j. Minimize Siebel Tools. 2. You will next create a new BPEL project and import the schema. a. In JDeveloper, close CheckProductInventory.BPEL. b. Right-click Siebel_Integration_Projects and select New Project. c. Select BPEL Process Project and click OK. d. Name the project SiebelProductUpdate. e. Select Synchronous BPEL Process and click Finish. f. Right-click the Schemas folder in the structure pane and select Import Schema. g. Click the Browse File System icon. h. Select D:\Temp\InternalSimpleProduct.xsd and click Open. i. Click OK. The schema is now available for use in your BPEL project.
174 Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

3. You will now modify the input and output variables to use this schema instead of simple string arguments. The variables are based on message types, hence you will edit the message types instead of the variables themselves. You will also create an intermediate variable for storing the product structure as you manipulate it. a. In the structure pane, expand the Message Types folder. b. Expand Process WSDL - SiebelProductUpdate.wsdl. c. Right-click SiebelProductUpdateRequestMessage and select Edit Message Type. d. Select payload and click Edit. The Edit Message Part dialog box is displayed. e. Click the Browse Elements icon to browse for the element to use. f. Expand Project Schema Files and InternalSimpleProduct.xsd to select ListOfInternalSimpleProductInterface.

Click OK. Click OK. Click OK to close the Edit Message Type dialog box. Repeat these steps to change the SiebelProductUpdateResponseMessage to the ListOfInternalSimpleProductInterface element. k. Verify your steps by expanding the Variables folder to expose inputVariable, and then expanding it to confirm it now has the ListOfInternalSimpleProductInterface structure. l. Create a new variable based on the output message type. Because the input and output variables have the same schema, you will use this variable to store your work until you are ready to copy it to the output variable. This is best practice, so as to avoid returning a halfpopulated variable. i. Right-click the inner Variables folder and select Create Variable. ii. Enter SiebelProduct as the name. iii. Select Message Type as the type. iv. Click the Browse Message Types icon. v. Expand Message Types, Project WSDL Files, SiebelProductUpdate.wsdl, and Message Types to select SiebelProductUpdateResponseMessage as the message

g. h. i. j.

Integrating Siebel 8.0 Applications

175

Module 17: Invoking BPEL Processes from Siebel CRM

type.

vi. vii.

Click OK. Click OK.

4. You will now create the Assign activity to copy the input variable to the intermediate variable. This allows you to manipulate the intermediate variable while leaving the input variable untouched for auditing purposes. a. Drag an Assign activity just below the receiveInput activity. b. Double-click Assign_1. c. Under the General tab, change the name to Assign_Product. d. Click the Copy Operation tab, select Create > Copy Operation. e. Modify the copy operation to copy ListOfInternalSimpleProductInterface from inputVariable to ListOfInternalSimpleProductInterface in SiebelProduct. This copies the

176

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

entire ListOfInternalSimpleProductInterface to your intermediate variable.

f. Click OK. g. Click OK to close the Assign Editor. 5. You will next create a lookup transformation to add the product quantity to your variable. You will also use the Auto-Mapper to simplify your work. a. Drag a Transform activity just below the Assign_Product activity. b. Double-click Transform_1. c. Under the General tab, change the name to Lookup_ProductQuantity. d. Under the Transformation tab, select SiebelProduct as the source variable. e. Select SiebelProduct as the target variable. You are mapping the variable to itself, only changing the product quantity.

Integrating Siebel 8.0 Applications

177

Module 17: Invoking BPEL Processes from Siebel CRM

f. Change the Mapper File name to ProductLookup2.xsl.

g. Click the Create Mapping icon. h. Rather than manually mapping each item, invoke the Auto Map function. i. Drag the top-level xsdLocal:ListOfInternalSimpleProductInterface on the left to the top-level xsdLocal:ListOfInternalSimpleProductInterface on the right. This invokes the Auto Map. ii. Verify that the Enable Auto Map checkbox is selected. iii. Select the Confirm Auto Map Results checkbox is selected. This allows you to review the mappings before they are applied. iv. Verify that the Prompt for Preferences before Auto Map checkbox is selected. v. Select the Match Elements with Exact Names radio button. vi. Select the Match Elements with Exact Types and Match Elements Considering their Ancestor Names checkboxes. This prevents the Auto Map from incorrectly matching elements with the exact same name. For example, the PrimaryOrganization in RelatedSalesToolsByProduct is not the same as the PrimaryOrganization in the

178

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

InternalProduct, but without considering ancestors the Auto Map might match them.

Click OK to run the Auto Map. A list of the mappings the Auto Map will make is shown. viii. Click OK to accept the list. Scroll through the mappings and confirm that the mapping looks like an identity mapping; that is, all elements are mapped to themselves. Note that the Auto Map even created for-each statements for elements that might appear multiple times in the source. i. Modify the mapping to perform a lookup operation for product quantity. i. Locate xsdLocal:UnitsInInventory on the right side of the mapping. ii. Click the blue line leading into this element to select it. You will know it is selected because it will be highlighted and the matching element on the other side will be shown. iii. Press the Delete key to delete this mapping. iv. Drag a lookup-table database function from the component palette into the center pane. v. Drag the xsdLocal:ProductName from the left pane to connect to the lookup function. vi. Drag xsdLocal:UnitsInInventory from the right pane to connect to the lookup function.

vii.

vii.

Double-click the lookup-table function to bring up the function editor.

Integrating Siebel 8.0 Applications

179

Module 17: Invoking BPEL Processes from Siebel CRM

viii.

Enter the following values. Note that you will need to move the input variable from the table entry to the key entry. The quotes are important for the other values, as you are entering string literals for the table, columns, and database connection:
table inputColumn key outputColumn datasource PRODUCT NAME /xsdLocal:ListOfInternalSimpleProductInterface/xsdLocal:Intern alProduct/xsdLocal:ProductName INVENTORY 'jdbc:oracle:thin:soademo/soademo@localhost:1521:SIEBEL'

Click OK. You should not receive any warnings or error messages. If you do, recheck your work. j. Save your mapping and close ProductLookup2.xsl 6. You will next add a Switch activity to update the product quantity to -1 if the lookup returned NULL; that is, if no product quantity was found in the database. a. Drag a Switch activity below the Lookup_ProductQuantity transformation. b. Double-click Switch_1 and change its name to AssignValueIfNoProduct. c. Expand AssignValueIfNoProduct and configure the case statement: i. Click the View Condition Statement icon for the case statement. ii. Click the XPath Expression Builder icon to build the expression to be evaluated. iii. Expand SiebelProduct until Units In Inventory is visible, and double-click it. iv. Add an equals sign and enter (empty quotes) as the second argument to the expression. Your final expression should look like this:

ix.

180

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

bpws:getVariableData('SiebelProduct','payload','/ns1:ListofInternalS impleProductInterface/ns1:InternalProduct/ns1:UnitsInInventory') = ''

v. Click OK. vi. Click anywhere in the design pane to close the Expression Builder dialog box. d. Drag an Assign process activity into the case flow. e. Configure the Assign activity: i. Double-click the Assign_1 activity. ii. Click the General tab and enter Assign_EmptyResult as the name. iii. Click the Copy Operation tab. iv. Select Copy Operation from the Create drop-down list. v. In the left pane, select Expression from the drop-down list. vi. Enter -1 as the expression. The quotes are important, as this is a string literal. vii. In the right pane, expand SiebelProduct entirely and select Units In Inventory. viii. Click OK. ix. Click OK to close the Assign editor. f. Drag an Empty process activity to the otherwise part of the switch statement.

Integrating Siebel 8.0 Applications

181

Module 17: Invoking BPEL Processes from Siebel CRM

7. Create an Assign_Output activity to copy SiebelProduct to outputVariable.

8. Validate and deploy your process. 9. You will finally test your process and confirm that it works as expected. a. Log in to the BPEL Console and click SiebelProductUpdate. Note that instead of a simple string input, you can enter values for every element in the Internal Simple Product Interface schema, which could be an overwhelming task. For this reason, the BPEL Console allows you to use an XML file based on that schema instead. b. Select the XML Source radio button. A template XML document is shown. You will replace this with an edited, populated XML document. c. Use Notepad++ to open D:\Labs\Integration\BPEL\SimpleProductInput.xml. This is an XML file that has all of the optional fields removed. d. Copy the entire contents of the file, return to the BPEL console, and replace the template document. e. Click Post XML Message. After a few seconds, the process should complete successfully. f. Click Visual Flow. This allows you to see how the request was processed. g. Click receiveInput. Note that the input values were all successfully passed to the BPEL process.
182 Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

h. Close the activity audit trail window. i. Continue to check variable values for each step: i. Verify that the Assign_Product step successfully copies the product information from the input variable to the ProductInterface variable. ii. Verify that the Lookup_ProductQuantity transformation successfully populates the product quantity. iii. Verify that a populated Siebel product is returned in the output variable. j. Remain logged in to the BPEL console.

Integrating Siebel 8.0 Applications

183

Module 17: Invoking BPEL Processes from Siebel CRM

Solutions 17-1 Using Siebel Schema with BPEL PM


Answers
1.b. Select Integration Object :: Simple Product Interface. What is its Base Object Type? XML. This object type is not compatible with the EAI Siebel Adapters Query method, so you will need to choose a different integration object to export. Select Business Service :: Siebel Simple Product | Business Service User Props. What is the name of the one user property of this business service? What is its value? The Internal Integration Object user property has a value of Internal Simple Product Interface. Select Integration Object :: Internal Simple Product Interface. What is its Base Object Type? Siebel Business Object. Therefore, this integration object is a good choice to export.

1.c.

1.d.

184

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

Lab 17-2 Invoking a BPEL Process from Siebel CRM


Goals Time To invoke the product availability Web service from the Siebel CRM application 30 40 minutes

Instructions:
In this lab, you will create a Siebel workflow to invoke the BPEL process and check product availability for a selected product. The workflow will then update the product and write the result to a file. To accomplish this requires several steps: You must first obtain the WSDL for the BPEL process you created in the previous lab and import it into Siebel Tools. You must then edit this WSDL so that Siebel Tools can import it. After importing it, you modify the proxy business service that invokes this Web service, and finally create a workflow that invokes this Web service. 1. You will first export the WSDL for the BPEL process from the Oracle Application Server Control. a. If necessary, log on to the BPEL Console as oc4jadmin/oracle1. b. Drill down on SiebelProductUpdate. c. Click the WSDL tab. d. Drill down on the WSDL location. An Internet Explorer window shows you the WSDL document. e. Select File > Save As. f. Save the file as D:\Temp\SiebelProductUpdate.wsdl. Do not forget to make sure the file type is set to All Files. g. Close the Internet Explorer window containing the WSDL. h. Using Notepad++, examine SiebelProductUpdate.wsdl and note the two import statements near the top. Siebel Tools has a known issue with importing complex schema, hence this file cannot be imported as it is. The file must be edited to replace the import statements with the schema definitions themselves. i. Close SiebelProductUpdate.wsdl. j. Confirm that the as-exported file will not import into Siebel Tools as-is. i. Copy SiebelProductUpdate.xsd from D:\JDeveloper\jdev\mywork\Siebel_Integration_Projects\SiebelProductUpdate\bpel to D:\Temp. This is one of the two schema files imported by the WSDL; the other is already in D:\Temp. Both of these files must be in the same directory as the WSDL file for the import to have any chance of succeeding. ii. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. iii. Create and lock a new project named ISA BPEL Project. iv. Select File > New Object. v. Click the EAI tab and select Web Service.
Integrating Siebel 8.0 Applications 185

Module 17: Invoking BPEL Processes from Siebel CRM

vi. vii.

Click OK. Verify or enter the following values: (Once you set the project and WSDL file, the other files are populated automatically).
Project WSDL File Run-time Data File Log File ISA BPEL Project D:\TEMP\SiebelProductUpdate.wsdl D:\TEMP\SiebelProductUpdate.xml D:\TEMP\SiebelProductUpdate.log

viii.

Click Next. You should receive the error shown below. This is a known issue when Siebel Tools attempts to import WSDL files that import complex schema. It is worth trying to import WSDL files at least once to see whether this error is generated, and it

186

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

is worth familiarizing yourself with this error so you know its cause.

ix.

Click Cancel.

2. You will next import an edited version of this WSDL into Siebel Tools. This will create the integration objects and business service necessary to invoke the Web service from the Siebel application. Because the editing process is somewhat tedious, it has been done for you. a. Use Notepad++ to open D:\Labs\Integration\BPEL\SiebelProductUpdate.wsdl. Note that the import statements have been replaced by the schema themselves. This was simple editing done using a text editor, copying the imported XSD files directly into the WSDL file and then adjusting the <schema> headers in the WSDL file to include the namespaces declared in the XSDs. If you have time, compare your version of SiebelProductUpdate.wsdl, along with InternalProduct.xsd and SiebelProductUpdate.xsd, to the edited WSDL to see how the edits were done. b. Close SiebelProductUpdate.wsdl. c. Select File > New Object. The New Object Wizard dialog box is displayed. d. Click the EAI tab. e. Select Web Service and click OK. f. Enter the following values. You will have to edit all four this time:
Project WSDL File Run-time Data File Log File ISA BPEL Project D:\Labs\Integration\BPEL\SiebelProductUpdate.wsdl D:\TEMP\SiebelProductUpdate.xml D:\TEMP\SiebelProductUpdate.log

Integrating Siebel 8.0 Applications

187

Module 17: Invoking BPEL Processes from Siebel CRM

g. Click Next. A summary page notes that a proxy business service and one integration object will be created.

h. Click Finish. 3. You will next modify the proxy business service that was just created to use the Internal Simple Product Interface integration object and then compile your project. Recall that you exported the schema for this integration object in a previous lab and imported it into JDeveloper to provide the schema for the input and output messages. When importing WSDL files, Siebel Tools automatically creates new integration objects, so when importing a WSDL whose message types are based on an exported integration object schema, it is necessary to edit the proxy business service. a. In Siebel Tools, select Business Service :: SiebelProductUpdate | Business Service Method :: process | Business Service Method Arg. b. Change the Integration Object field for SiebelProductUpdateRequestMessage:payload to Internal Simple Product Interface. c. Change the Integration Object field for SiebelProductUpdateResponseMessage:payload to Internal Simple Product Interface. d. Compile the ISA BPEL Project into the client SRF file, D:\OUsea\client\OBJECTS\ENU\siebel.srf.

188

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

4. You will now create a new workflow to invoke this Web service. a. Create a new workflow with the following properties:
Process Name Project Business Object ISA Update Siebel Product ISA BPEL Project Internal Product

b. Right-click the ISA Update Siebel Product workflow and select Edit Workflow Process. c. Add a Start step, an End step, and four Business Service steps. The first will obtain the Siebel data, the second will invoke the BPEL process, the third will write the response to a file, and the fourth will update the product information in the Siebel database. d. Connect the steps. Your workflow should look as follows:

e. Select each business service step in sequence and configure the properties as follows.
Step Name Business Service Name EAI Siebel Adapter SiebelProductUpdate EAI XML Write to File EAI Siebel Adapter Business Service Method Query process WriteEAIMsg Update Business Service 0 Get Siebel Product Business Service 1 Invoke BPEL Process Business Service 2 Write Result to File Business Service 3 Update Product

f. In the MVPW, create two new Process Properties to reflect the external integration object request and response.
Name EIO Request EIO Response In/Out In/Out In/Out Data Type Integration Object Integration Object Integration Object Internal Simple Product Interface Internal Simple Product Interface

Note: Because you imported the Internal Simple Product Interface integration object into the BPEL process, you do not need to map between internal and external integration objects. Thus, you do not need to create an internal integration object process property, nor do you need to add mappings to your workflow. g. For the Get Siebel Product step, add the following input arguments:
Input Argument OutputIntObjectName PrimaryRowId Type Literal Process Property Value Internal Simple Product Interface Object Id Property name

Integrating Siebel 8.0 Applications

189

Module 17: Invoking BPEL Processes from Siebel CRM

h. Add the following output argument:


Property name EIO Request Input Argument Output Argument SiebelMessage Type Value Type Output Argument Value Property name EIO Request

i. For the Invoke BPEL Process step, add the following input argument:
SiebelProductUpdateRequestMes Process Property sage:payload

j. Add the following output argument:


Property name EIO Response Output Argument SiebelProductUpdateResponseMes sage:payload Type Literal Process Property Literal Type Process Property false Value Property name EIO Response Value D:\Temp\SiebelOutput.xml EIO Response Value Type Output Argument

k. For the Write Result to File step, add the following input arguments:
Input Argument FileName SiebelMessage UseSiebelMessage Envelope Input Argument SiebelMessage Property name

l. For the Update Product step, add the following input argument:

m. Save your work and validate the workflow. Be sure to step back through the workflow to confirm your business service names and methods for each step. 5. You will next simulate the workflow to ensure it works as expected. a. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. b. Obtain the row ID for a product record to test. i. In the client, navigate to Administration - Product > Products. ii. Select the 10/100 Network Interface Card. iii. Select Help > About Record and record the Row ID of the record here: iv. Log out of Siebel Call Center. c. Return to the Workflow Process Designer in Siebel Tools. d. In the MVPW, set the Default String of the Object ID record to the row ID you noted above. e. Save the workflow. f. Right-click within the Workflow Process Designer and select Simulate. g. Click the Start icon to start the workflow simulation. h. Step through the simulation and use the Watch window to confirm that it works as expected: i. Verify that the Get Siebel Product step populates the EIO Request with the 10/100 Network Interface Card record. ii. Verify that the Invoke Web Service step returns an EIO Response with the Units In Inventory field populated.

190

Integrating Siebel 8.0 Applications

Module 17: Invoking BPEL Processes from Siebel CRM

Verify that the Write Result to File writes D:\Temp\SiebelOutput.xml and that SiebelOutput.xml contains the correct information. iv. Verify that the Update Product executes. v. If desired, use SQL Anywhere to confirm the update: (1) Start D:\OUsea\client\BIN\dbisqlc.exe. (2) Under the Login tab, enter DBA/SQL as the username/password. (3) Under the Database tab, browse and select D:\OUsea\client\SAMPLE\UTF8\sse_samp.dbf. You will need to select all file types to see this file. (4) Click OK to connect to the Sample database. (5) Enter SELECT NAME, UNITS_INVENT from SIEBEL.S_PROD_INT where ROW_ID=1-3DNE2. (6) Confirm that there are 15 units in inventory. You may need to scroll to the right to see the value. (7) Close dbisqlc.exe. (8) Return to Siebel Tools. i. When the simulation completes, close Siebel Tools and any open Siebel clients. 6. Close JDeveloper. 7. Select Start > Programs > Oracle - OUAppServer > Stop SOA Suite to ttop the SOA Suite. 8. Verify that the Siebel Server [Siebel_OUsrvr] service is stopped.

iii.

Integrating Siebel 8.0 Applications

191

Module 17: Invoking BPEL Processes from Siebel CRM

192

Integrating Siebel 8.0 Applications

Module 19: Overview of Data Sharing

Lab 19-1 Exploring Virtual and External Business Components


Goals Time To explore as-delivered virtual and external business components in the Siebel CRM application 10 15 minutes

Instructions:
In this lab you will navigate through the Call Center application to examine several as-delivered applets based on virtual and external business components. You will notice that there is no obvious way to determine whether or not the underlying business component is virtual or external from within the application. You will then explore Siebel Tools and learn how to recognize virtual or external business components. 1. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. 2. You will first examine the Account Screen Home Page View. Most home page views include at least one applet based on a virtual business component. Applets where users enter data and then invoke an action are frequently based on virtual business components. a. Click the Accounts tab. b. Select Help > About View from the application-level menu. Note the list of business components which support applets in this view. Which of these business components do you think may be virtual business components?

c. d. e. f. g.

Click OK to close the About View dialog box. Leave Siebel Call Center open. You will be returning to it shortly. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. Select Business Component in the Object Explorer Perform a query with IS NULL in the Table column. Recall that virtual business components are not based on tables, hence the business components returned by this query are all virtual business components.

Integrating Siebel 8.0 Applications

193

Module 19: Overview of Data Sharing

h. Explore the query result for the business components you listed above. Which business components from the Account Screen Home Page View are virtual? What does this tell you about recognizing virtual business components only by their name or their appearance?

i. Leave Siebel Tools open. 3. You will next examine other views that may include applets referencing virtual business components. You will notice that most of the applets are form applets where the user enters some data and then performs an action, such as creating a query or a new record. While not all applets based on virtual business components look like this, many applets that look like this are based on virtual business components. a. In Siebel Call Center, navigate to Administration - Siebel Remote > Remote System Preferences. b. What business component is this applet based on?

c. Use Siebel Tools to determine whether this is a virtual business component.

d. In Siebel Call Center, select Help > About Record. What do you notice about the Row Id of a virtual record?

e. Click Mobile Clients in the view link bar. Which business components are referenced by applets in this view?

f. Which of these business components are virtual business components?

g. You have discovered that it is very difficult for an end user to determine whether or not a business component is virtual, but it is very easy to tell from Siebel Tools. Leave Siebel Call Center and Siebel Tools open so you can explore external business components. 4. You will now explore external business components. Because external business components are based on tables just like regular business components, they are even harder to recognize than virtual business components. a. In the Siebel Call Center application, navigate to Administration - Server Configuration > Enterprises. b. Select Siebel in the Enterprise Servers applet. c. Select Help > About Record. What about the Row Id might indicate that this is an external business component?

194

Integrating Siebel 8.0 Applications

Module 19: Overview of Data Sharing

d. Select PIM Server Integration Management in the Component Groups applet. e. Select Help > About Record. What about the Row Id might indicate that this is an external business component?

f. Which business components are referenced in this view?

g. Return to Siebel Tools and query for business components with a Name of *Enterprise*. This will return most of the business components you found above, along with quite a few others. Do you notice any obvious difference between the business components you found above and others in the query?

h. To confirm your hypothesis, query for your final business component and confirm that it has the same property set. In fact, this property differentiates external business components from regular business components. You will explore it more in a later lab. i. Leave Siebel Tools and Siebel Call Center open for the next lab.

Integrating Siebel 8.0 Applications

195

Module 19: Overview of Data Sharing

Solutions 19-1 Exploring Virtual and External Business Components


Answers
2.b. Select Help > About View from the application-level menu. Note the list of business components which support applets in this view. Which of these business components do you think may be virtual business components? Account Home Add Virtual is most likely a virtual business component. Explore the query result for the business components you listed above. Which business components from the Account Screen Home Page View are virtual? What does this tell you about recognizing virtual business components only by their name or their appearance? Recent Record, Screen Home Task Assistant, Account Home Add Virtual, and Salutation (eApps). It shows that you cannot easily recognize whether or not a business component is virtual by its name or its appearance. What business component is this applet based on? Remote System Preferences Use Siebel Tools to determine whether this is a virtual business component. Yes, it is. In Siebel Call Center, select Help > About Record. What do you notice about the Row Id of a virtual record? The Row Id of a virtual record is always VR-Id0. This is one way the end user can tell whether or not they are using a virtual business component. Click Mobile Clients in the view link bar. Which business components are referenced by applets in this view? Client and Client - Mobile Which of these business components are virtual business components? Neither of them is a virtual business component. Select Help > About Record. What about the Row Id might indicate that this is an external business component? The Row Id is Siebel, rather than a number of the form x-xxxxx. Since the Row Id is not in the standard format for records in the Siebel CRM application, it is likely that this record is coming from an external business component. Select Help > About Record. What about the Row Id might indicate that this is an external business component? In this case, the Row Id is a simple number such as 34. Once again, since this Row Id is not in the expected format, a reasonable conclusion is that this record is coming from an external business component.
Integrating Siebel 8.0 Applications

2.h.

3.b. 3.c. 3.d.

3.e.

3.f. 4.c.

4.e.

196

Module 19: Overview of Data Sharing

4.f.

Which business components are referenced in this view? Enterprise Server, Enterprise Component Group, Enterprise Cfg Compgrp Components, and Compgroup Assignments Return to Siebel Tools and query for business components with a Name of Enterprise*. This will return most of the business components you found above, along with quite a few others. Do you notice any obvious difference between the business components you found above and others in the query? The three business components above, Enterprise Server, Enterprise Component Group, and Enterprise Cfg Compgrp Components, all have a Data Source of GatewayDataSrc. Many of the other business components do not have this property set.

4.g.

Integrating Siebel 8.0 Applications

197

Module 19: Overview of Data Sharing

198

Integrating Siebel 8.0 Applications

Module 20: Creating External Business Components

Lab 20-1 Creating an External Table Object Definition


Goals Time To create an external table object definition that maps to a table in an external database 5 10 minutes

Instructions:
In this set of labs, you will display customer information from an external table in a new applet. To do this, you will create an external table object definition, create an external business component based on this table, and display this information in a new applet and view. In this lab, you will create the external table object definition. You will complete the task in subsequent labs. Database Note: For MSSQL and DB2 databases, you would also create an ODBC connection to the database to allow the Siebel application to access the external table. For Oracle databases (which you are using here), you only need the TNS name as provided by your database administrator, hence no ODBC configuration is necessary. 1. You will first generate the schema file to import into Siebel Tools. a. Select Start > Programs > Oracle - OraDb10g_home1 > Database Control - SIEBEL. b. Log in as SYS/oracle, connecting as SYSDBA. c. Click the Administration tab. d. Scroll down to Schema > Database Objects and click Tables. e. Enter a blank schema and a table name of CUSTOMER to perform the search:

f. Click Go.

Integrating Siebel 8.0 Applications

199

Module 20: Creating External Business Components

g. Drill down on the CUSTOMER table. Note database instance and schema names; you will use them later when configuring your data source:

h. Select Generate DDL from the Actions drop-down list.

200

Integrating Siebel 8.0 Applications

Module 20: Creating External Business Components

i. Click Go. The SQL required to generate the table is shown. You must now save it in a text file:

j. Select Start > Programs > Accessories > Notepad to start Notepad. k. In Internet Explorer, select the SQL statement and use CTRL-C to copy it. Be sure to get the entire statement. l. Use CTRL-V to paste the statement into Notepad. m. In Notepad, select File > Save and save the file as D:\Temp\CustomerSchema.txt. n. Save the file and close Notepad and Internet Explorer. 2. You will finally generate the table object definitions based on the schema file and specify the required system columns. a. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. b. In the Object Explorer, select Project. c. Create a new project named ISA EBC and lock it. d. Select File > New Object. e. Under the General tab, select External Table Schema Import. f. Click OK. The Import External Schema wizard starts. g. In the Import External Schema dialog box, enter the following values:
Project Type of Schema 3-character group code ISA EBC DDL/Analytics EBC

h. i. j. k.

In the next dialog box, select Oracle Server Enterprise Edition as the database. Click Browse for the full path to the file. Navigate to and select D:\TEMP\CustomerSchema.txt. Click Next. Note the name of the table to be imported. The name is of the form EX_***_#######, where *** is the 3-character group code you entered, and the 7-digit
Integrating Siebel 8.0 Applications 201

Module 20: Creating External Business Components

number is the table number. Also note the Runtime Data Source Name drop-down list. If you were importing a table from a data source you had already configured, you could specify the data source using this drop-down. Since this is the first table you are importing from this data source, leave it blank:

l. Click Finish. The table is shown in the OBLE. m. Select Table :: EX_EBC_0000001 | Column to display the external tables columns. Note the column names and aliases. The aliases are the column names from the external table. n. Select Table :: EX_EBC_0000001 | Column :: X_EBC_0000001_0001 (the CUST_ID) column. This is the primary key column for the external table. You need to configure this in Siebel Tools.

202

Integrating Siebel 8.0 Applications

Module 20: Creating External Business Components

o. Select Id under the System Field mapping for the CUSTID column. This is the only required system column:

p. Expose Data Source in the OE. i. Select View > Options. ii. Click the Object Explorer tab. iii. Scroll down and uncheck Table. iv. Re-check Table. This includes all the child objects of Table, including Data Source. v. Click OK. q. Select Table :: EX_EBC_0000001 | Data Source. r. Create a new record with a name of ExternalCustomers. Note: Spaces are not permitted in data source names. s. Leave Siebel Tools open for the next lab.

Integrating Siebel 8.0 Applications

203

Module 20: Creating External Business Components

Lab 20-2 Creating an External Business Component


Goals Time To create an external business component that refers to the external table object definition 5 10 minutes

Instructions:
In this lab, you will create an external business component that refers to the external table you just created. 1. You will first use the business component wizard to create the external business component. a. In Siebel Tools, select File > New Object. b. Under the General tab, select BusComp and click OK. c. Enter the following values:
Project Name Table ISA EBC ISA External Customers EX_EBC_0000001

d. Click Next. e. Select X_EBC_0000001_0001 from the column drop-down list. f. Enter CustId as the name. Be extremely careful when entering the field names in this exercise; you will be importing an applet that references some of these names, so exact matches are required. g. Click Add. h. Repeat these steps to add the following fields:
Column X_EBC_0000001_0002 X_EBC_0000001_0003 X_EBC_0000001_0004 X_EBC_0000001_0005 X_EBC_0000001_0006 X_EBC_0000001_0007 X_EBC_0000001_0008 X_EBC_0000001_0009 Name First Name Last Name Phone Number E-mail Password Credit Card Type Credit Card Number Status

i. Click Finish. The completed business component is shown.

204

Integrating Siebel 8.0 Applications

Module 20: Creating External Business Components

j. Select Business Component :: ISA External Customers | Single Value Field and confirm that you have created 9 fields. If you missed any, you can create them here:

k. Select Business Component :: ISA External Customers and enter ExternalCustomers as the data source. You may need to scroll to the right to find the Data Source field. This must match the data source you specified for the external table. l. Leave Siebel Tools open for the next lab.

Integrating Siebel 8.0 Applications

205

Module 20: Creating External Business Components

Lab 20-3 Displaying the External Business Component


Goals To modify the application .cfg file to identify the new data source To add an applet, view, and screen to display the external business component To administer the view in the application and test the results 15 20 minutes

Time

Instructions:
You have referenced an external table in the database and built an external business component based on that table. You must now display that data in the application. This requires three steps: Identifying the new data source either in the .cfg file (for the dedicated client) or in the application parameters (for the Web client), creating an applet, view, and screen to display the data, and administering the view in the application. 1. You will first modify the application .cfg file to identify the new data source. Since you are using the Developer Web client, you edit the configuration file rather than changing component parameters on the server. a. Use Notepad to open D:\OUsea\client\bin\enu\uagent.cfg. This is the configuration file for Siebel Call Center. b. Under [DataSources], add a new data source called ExternalCustomers. This must exactly match what you configured for the external table and business component. The lefthand side is the name referenced in Siebel Tools. The right-hand side is displayed in some of the drop-down lists; for example, when starting the Siebel Developer Web client:

c. Select and copy the entire [ServerDataSrc] datasource section, then paste it just below the [DataSources] section. d. Change the name of the section to [ExternalCustomers]. e. Verify or modify the following values:
ConnectString TableOwner siebel SOADEMO

Note that the ConnectString is the database instance name you found in the first lab, known as the TNS name of the Oracle database. The TableOwner is the schema you found in the first lab. The database has also been configured to allow SADMIN access to its tables. f. Save and close uagent.cfg.
206 Integrating Siebel 8.0 Applications

Module 20: Creating External Business Components

2. You would next normally create the object definitions necessary to display the business component in the application: a business object, applet, view, and screen. Instead, these objects have been created for you in a .sif file for your convenience. a. In Siebel Tools, select Tools > Import from Archive. b. Select D:\Labs\Integration\EBC\ISAEBC.sif and click Open. c. Accept the default choice for conflict resolution. There will be no conflicts since all the object definitions in the archive are new ones. d. Click Next. e. Click Next. f. Click Yes. g. Click Finish. The import should complete successfully. 3. You will also need to add the new screen to the Siebel Call Center application. This definition will be imported into the Siebel Universal Agent project, which you will first need to lock. a. Select Project :: Siebel Universal Agent. b. Lock the project. c. Import the object definitions from D:\Labs\Integration\EBC\UpdatedUniversalAgent.sif. 4. Log out of any open instances of Siebel Call Center. 5. Compile the ISA EBC and Siebel Universal Agent projects into the client SRF file located in D:\OUsea\client\objects\ENU\siebel.srf. 6. You will finally administer the new view in the Siebel CRM application and confirm that the data from the external table is visible. a. In Siebel Tools, select View :: ISA External Customers View and copy the name. b. Start the Siebel Call Center Developer Web client and log in as SADMIN/SADMIN to the Sample database. c. Navigate to Administration - Application >Views. d. Create a new view record, pasting the name of the view from Siebel Tools to the Siebel Call Center application. e. Click the Responsibilities view link. f. Create a new responsibility named ISA External Customers Responsibility. g. Add the ISA External Customers View to this responsibility. h. Add SADMIN as a user to this responsibility. (Query on user ID to find SADMIN). i. Click Clear Cache. j. Log out and log back in as SADMIN/SADMIN. You should now see an External Customers screen tab.

Integrating Siebel 8.0 Applications

207

Module 20: Creating External Business Components

k. Click External Customers and confirm that you can see data from the external table:

208

Integrating Siebel 8.0 Applications

Module 21: Creating Virtual Business Components

Lab 21-1 Creating a Virtual Business Component


Goals Time To import and examine a virtual business component 10 15 minutes

Instructions:
In this lab you will import a virtual business component (VBC) that displays account billing information in the Siebel application. Working with this VBC will give you experience in what needs to be done to configure a VBC. 1. You will first examine the data file that is to be accessed by the VBC. This data file is a commaseparated (CSV) file containing billing information. a. Use Notepad to open D:\Labs\Integration\VBC\billing.txt. b. What does the information in the first field look like?

c. What does the information in the other two fields look like?

2. You will next import the VBC into Siebel Tools. a. If necessary, start Siebel Tools and log in as SADMIN/SADMIN to the Sample database. b. Select Tools > Import from Archive. c. Select D:\Labs\Integration\VBC\ISATextVBC.sif click Open. d. Verify that this file includes the following: i. The ISA Text File VBC Business Service used to support the VBC. ii. The ISA Text File VBC virtual business component. iii. The Account/ISA Text File VBC link used to add the VBC to the Account business object. iv. Two applets and a view used to display the information. e. Click Next. f. Click Next. g. Click Yes to proceed. h. Click Finish. 3. Lock the ISA Text File VBC Project.

Integrating Siebel 8.0 Applications

209

Module 21: Creating Virtual Business Components

4. You will next examine the imported virtual business component to see how it was implemented. a. Select Business Component :: ISA Text File VBC. What is its class? What does this tell you?

b. If necessary, expose the Business Component User Prop object type in the object explorer. i. Select View > Options. ii. Click the Object Explorer tab. iii. Uncheck Business Component. iv. Re-check Business Component. v. Click OK. c. Select Business Component :: ISA Text File VBC | Business Component User Prop. What user properties does this business component have? What are they for?

d. Note that there are three parameters listed for the Service Parameters User Property: A file name parameter, the number of fields, and a comma-delimited list of field names. These parameters are delimited by semicolons. Carefully change the file name parameter to D:\Labs\Integration\VBC\billing.txt. This is the location of the input file. Be sure not to delete or alter the other two parameters.

e. Select Business Component :: ISA Text File VBC | Single Value Field. Do the field names match those you saw in the user property parameters?

210

Integrating Siebel 8.0 Applications

Module 21: Creating Virtual Business Components

5. You will now examine the imported business service to confirm that it can support a virtual business component. a. Right-click Business Service :: ISA Text File VBC Business Service and select Edit Server Scripts. b. If necessary, select the Service_PreInvokeMethod script. c. Scroll down through the script. What methods are currently supported by this script? Are these enough to implement a virtual business component?

d. If you have a scripting background, examine the Pal_ methods to see how they are implemented. Note how the Pal_Init method initializes the field names, while the Pal_Query method actually retrieves the data. e. Close the business service script editor, being careful not to save any changes. 6. You will finally import a modified Account business object and Accounts Screen to display the view containing the applets that reference the VBC. a. Select Tools > Import from Archive. b. Select D:\Labs\Integration\VBC\AccountObjects.sif click Open. c. Verify that this file includes the following: i. The Account business object, which has been modified to include the VBC. ii. The Accounts Screen screen, which has been modified to display the imported view. d. Click Next. e. Click Next. f. Click Yes to proceed. g. Click Finish. 7. Compile the ISA Text File VBC Project project, the Account business object, and the Accounts Screen screen all into the D:\OUsea\client\objects\ENU\siebel.srf file. Note that this will require three compilations; you cannot compile projects and objects at the same time. 8. You will now administer the view in the Siebel client and confirm your work. a. In Siebel Tools, navigate to View :: ISA Account Text File VBC View. b. Carefully select the view name and copy it. c. Start the Siebel Developer Web client and log in as SADMIN/SADMIN to the Sample database. d. Navigate to Administration - Application > Views. e. Create a new view and paste the view name to ensure it matches Siebel Tools. f. Click the Responsibilities link in the view bar. g. Create a new responsibility named ISA VBC View Responsibility. h. Add the ISA Account Text File VBC View to the responsibility.

Integrating Siebel 8.0 Applications

211

Module 21: Creating Virtual Business Components

i. Add CCHENG and SADMIN as users to this responsibility. Be sure to query by User Id to get the correct users. We will be using CCHENG as the test user. Billings.txt was generated with row Ids from her accounts. j. Click Clear Cache. 9. Start a second instance of the Siebel Call Center Developer Web client and log in as CCHENG/CCHENG to the Sample database. a. Navigate to My Accounts. b. Query for *Marriott*. c. Drill down on Marriott International HQ. d. In the view tabs on the lower applet, click the drop-down arrow and select External Billing. e. Confirm that external billing information is shown in both a list and a chart applet. f. Query for Andrews Manufacturing and confirm that the billing information changes. g. Query for Caterpillar and confirm that no billing information exists for this record at the moment. h. Record the Row Id of the Caterpillar record here: i. Open D:\Labs\Integration\VBC\billing.txt. j. Add a row with the following values: 1-6VY,11/12/2007,599.99. Note that the first entry is the Row Id you just recorded. k. Save and close billing.txt. l. Re-query for Caterpillar and confirm that the billing record you added now appears. 10. Log out all sessions of Siebel Call Center.

212

Integrating Siebel 8.0 Applications

Module 21: Creating Virtual Business Components

Solutions 21-1 Creating a Virtual Business Component


Answers
1.b. What does the information in the first field look like? Row Ids of records. Since this is an account billing system, they are most likely account row Ids. What does the information in the other two fields look like? A billing date and amount. Select Business Component :: ISA Text File VBC. What is its class? What does this tell you? Its class is CSSBCVExtern. This means that it is a virtual business component. Select Business Component :: ISA Text File VBC | Business Component User Prop. What user properties does this business component have? What are they for? The Service Name of ISA Text File VBC Business Service identifies the business service that supports this VBC. The Service Parameters are the parameters passed to the business service as inputs; in this case, the file name, the number of columns in the file, and the column header for each column. Select Business Component :: ISA Text File VBC | Single Value Field. Do the field names match those you saw in the user property parameters? Yes, they do. This is fairly common in scripted VBCs; the field names exactly match the parameters passed to the business service to avoid confusion.

1.c. 4.a.

4.c.

4.e.

5.c.

Scroll down through the script. What methods are currently supported by this script? Are these enough to implement a virtual business component? The methods listed as supported are Init, Query, PreInsert, and Insert. Because the Init and Query methods are supported, this business service can support a virtual business component.

Integrating Siebel 8.0 Applications

213

Module 21: Creating Virtual Business Components

214

Integrating Siebel 8.0 Applications

You might also like