Having created our IO, we can now move on to the Workflow Process. We’ll use this to pull in the inputs, extract the data and map it into the IO.
- Start off by creating a new Workflow Process in the Project that we created last time. Call it ‘My Web Service Workflow’ and set the Business Object property to ‘Contact’
- Let’s set up some important Process Properties:
- CustNum – In – String: this will act as our ‘input’ to the Web Service
- SiebelMessage – Out – Integration Object: this will act as the ‘output’ of the Web Service
- Setting the other Process Props to ‘None’ helps to keep things neat and tidy
- An important step here is to set the ‘Integration Object’ property of the ‘SiebelMessage’ property to ‘My Contact IO’. This will allow Siebel to work out the ‘output’ format when it generates the WSDL for our Web Service
- Edit the Workflow: drag Start, Business Service and End steps into the designer and link them up. If you have an exception handler Business Service, you can also add a Business Service step with an exception branch from the other. Link this up to the End step to complete the design:
- In the first Business Service, set the following properties:
- Business Service Name: EAI Siebel Adapter
- Business Service Method: Query
- This will invoke the Siebel Adapter ‘Query’ method, which will query the underlying BC and populate the SiebelMessage using the IO that we created earlier. You can get more information on this Business Service in the ‘Integration Platform Technologies: Siebel Enterprise Application Integration’ bookshelf guide
- Set the input arguments as follows:
- SearchSpec – Expression – “[Contact.Id] = ‘” + [&CustNum] + “‘” : This provides the search criteria for the query. In this case, we’re passing in the ‘ROW_ID’ as the CustNum. Note that Siebel evaluates the whole string as an expression, hence the quotes
- OutputIntObjectName – Literal – My Contact IO : this tells the method how to retrieve and map the Contact fields to our output format
- Now set the output arguments:
- SiebelMessage – Output Argument – SiebelMessage
- Test through the simulator by populating the ‘CustNum’ default string value with a ROW_ID from a Contact in your environment. By enabling the ‘Watch’ window you should see a fully populated ‘SiebelMessage’ with the contact details that we’re looking for
Our next step is to expose this Workflow through a Web Service, which will allow our external application to push in a Contact ROW_ID and pull back the name and address details.



