building adobe forms that integrate with siebel

5
Building Adobe Forms that Integrate with Siebel - Part 1 - Getting Started This is the first article in a series about building Adobe forms that integrate with Siebel. Using Adobe Forms for Siebel data entry can be quite a nice option. I have seen many Siebel screens/views that are clunky and cluttered making it hard to find the field you need to update. Many clicks are required if you need to enter data for MVG or detail view information. Adobe forms are an industry leader for data entry and submission. You can design and layout your form in the structure of your choosing to make data entry as easy as possible for the user. My understanding is that Adobe Forms integrating with System systems need to have the following functionality: 1. Picklist fields in the Adobe form which are based on picklist fields in the Siebel system need to source the picklist values from the Siebel system. If a new value is added to a particular picklist in the Siebel system, the Adobe form should reflect this updated value when next opened. 2. Adobe Forms should have the facility to perform a search/query on the Siebel system and return a result set to the form for the user to pick from. 3. Adobe Forms should have the facility to submit data to the Siebel system for upsert/delete. In this series of articles I will attempt to explain my understanding on these concepts. First things first, we need to have an Adobe forms development architecture in place. You need the following tools:

Upload: fayaz-syed

Post on 13-Apr-2015

54 views

Category:

Documents


3 download

DESCRIPTION

Building Adobe Forms That Integrate With Siebel

TRANSCRIPT

Page 1: Building Adobe Forms That Integrate With Siebel

Building Adobe Forms that Integrate with Siebel - Part 1 - Getting Started

This is the first article in a series about building Adobe forms that integrate with Siebel.

Using Adobe Forms for Siebel data entry can be quite a nice option. I have seen many Siebel screens/views that are clunky and cluttered making it hard to find the field you need to update. Many clicks are required if you need to enter data for MVG or detail view information. Adobe forms are an industry leader for data entry and submission. You can design and layout your form in the structure of your choosing to make data entry as easy as possible for the user.

My understanding is that Adobe Forms integrating with System systems need to have the following functionality:

1. Picklist fields in the Adobe form which are based on picklist fields in the Siebel system need to source the picklist values from the Siebel system. If a new value is added to a particular picklist in the Siebel system, the Adobe form should reflect this updated value when next opened.

2. Adobe Forms should have the facility to perform a search/query on the Siebel system and return a result set to the form for the user to pick from.

3. Adobe Forms should have the facility to submit data to the Siebel system for upsert/delete.

In this series of articles I will attempt to explain my understanding on these concepts.

First things first, we need to have an Adobe forms development architecture in place. You need the following tools:

Page 2: Building Adobe Forms That Integrate With Siebel

Adobe LiveCycle Designer:

This is the tool to develop and design Adobe forms.

Adobe Acrobat:

This allows the viewing and testing of Adobe forms without the need to reader extend the form. (More on reader extending later).

Reader Extension Server:

In order to enable the facility of web service calls from an Adobe form in the Adobe reader client you need to "reader extend" the form. Obviously to integrate with Siebel we need to reader extend the Adobe form. In order to reader extend the form we need a reader extension server to be deployed an operational. I am not going to go into all this administrative detail. You also have to have a Reader Extension Certificate installed on the Reader Extension server.

My understanding is that Adobe Forms integrating with System systems need to have the following functionality:

Picklist fields in the Adobe form which are based on picklist fields in the Siebel system need to source the picklist values from the Siebel system. If a new value is added to a particular picklist in the Siebel system, the Adobe form should reflect this updated value when next opened.

If we want to display a picklist field in an Adobe form that will always have the same picklist as the Siebel system we need to create a generic workflow which will be used to perform lookup of any picklist. The workflow will consist of a Siebel EAI Adapter Query business service step for each picklist lookup required. The workflow will be exposed as a web service. We will then export the WSDL file for this web service, import the WSDL to the adobe form as a new data connection, then from this data connection bind the values to the field. Here are the steps:

1.

When creating a webservice for a specific lookup, one must first determine what data do they want to display in the form. For example lets say we want to display the Contact Gender picklist field based on

Page 3: Building Adobe Forms That Integrate With Siebel

S_LST_OF_VAL with TYPE = 'SEX_MF'. If we were to query Siebel to obtain the picklist records we would query the PickList Generic BC using search expression:

[Type] = 'SEX_MF' AND [Active] = 'Y'

The next step will involve creating a workflow with a business service EAI Siebel Adapter query so we need to ensure that the above BC is setup within an Integration Object. For List Of Values queries we have the vanilla Integration Object called 'List' which can be used for LOV queries. If the BC is not based on List Of Values then we would need to create an Integration Object for this with the fields required to query the BC and return the data.

2. Now that we have the BC and the search expression to return our picklist data we create a generic workflow "Adobe Form1 PickList Lookup Workflow" which will be used to return all picklists used by all fields in the form. As this is the first picklist we are creating in the form the workflow will consist of a single business service step: 'EAI Siebel Adapter' with method: Query. Create a new process property in the workflow:

Name: Gender IO

Data Type: Integration Object

Integration Object: List

For the business service step, add the following input arguments:

1)

Input Argument: SearchSpec

Type: Literal

Value: [List.Type] = 'SEX_MF' AND [List.Active] = 'Y'

2)

Input Argument: OutputIntObjectName

Type: Literal

Value: List

Page 4: Building Adobe Forms That Integrate With Siebel

and then add the following output argument:

Property Name: Gender IO

Type: Output Argument

Output Argument: SiebelMessage

That is all that is required for the workflow. If you had another LOV lookup you would just add another business service step similar to the above to the workflow and add another process property for that IO. The idea is that the output message from the EAI Siebel Adapter query is appended as a child to the generic SiebelMessage object.

3.

Deploy and Activate the workflow. Deploy the workflow as a web service (Right click the workflow in Siebel tools and select Deploy as webservice from the right click menu). Follow the prompts make a note of the name you give the web service. I wont go into detail of deploying a workflow as a web service in this article.

Restart the Siebel server(s).

4.

Navigate to Administration - Web Services > Inbound Web Services and query for Name of Webservice that you deployed in previous step.

Click the Generate WSDL button and save the WSDL file to your PC with extension ".WSDL".

Open the WSDL File, and edit it with an XML editor such as Notepad++. Find all occurences of minOccurs="1" and replace with minOccurs="0". The reason this is done, is because when invoking a Siebel web service Siebel automatically sets required fields in the IO.

This causes an issue, because we actually want to send a NULL message to the Siebel web service and expect a response.

Page 5: Building Adobe Forms That Integrate With Siebel

By setting these tags this will negate the need to do this.

Now that we have the WSDL web service file the next article in the series will discuss mapping this to the adobe form field through a data connection.