Sunday, September 7, 2008

process descriptor in BPEL(bpel.xml)

We are so much dependent on JDev for everything that no one notices the process descriptor of a bpel process. In this blog I will be writing about different options available in writing an process descriptor or bpel.xml.

For deploying a BPEL process Oracle BPEL Process Manager requires a process descriptor. The deployment process descriptor needs to be modified if we want to deploy and run the process on another BPEL server.

The Oracle process descriptor contains the following information about the BPEL process:

  • BPEL process name (ID)
  • BPEL source file name
  • WSDL locations of all partner link web services
  • Optional configuration properties

It is not mandatory to name process descriptor as bpel.xml. First, we have to specify the XML header and the <BPELSuitcase> root element. In the <BPELProcess> element, we specify two attributes,

ID (id) - BPEL process name as shown in the BPEL Console

Src - the BPEL source file name

<?xml version="1.0" encoding="UTF-8"?>

<BPELSuitcase>

<BPELProcess id="HelloWorld" src="HelloWorld.bpel" >

....

Next, specify the partner link binding properties for the location of the WSDL for each partner link that we use in the process.

<partnerLinkBindings>

<partnerLinkBinding name="client">

<property name="wsdlLocation">

HelloWorld.wsdl

</property>

</partnerLinkBinding>

</partnerLinkBindings>

...

The only mandatory partner link binding property is wsdlLocation.

Optionally, we can add other binding properties.):

wsdlRuntimeLocation - Specifies the run-time WSDL location of the partner link services (if different from wsdlLocation).

Correlation - Specifies the type of correlation used like wsAddressing for WS-Addressing and correlationSet for BPEL correlation sets.

httpUsername and httpPassword - Specifies the username and password for HTTP authentication.

Timeout - Specifies the timeout for partner link invocation calls.

Configuration Properties

Optionally, we can add configuration properties to the deployment descriptor

The introduction text should be included within the <property> element with the attribute name set to testIntroduction: When process is invoked BPEL Console will display the introductory message.

...

<configurations>

<property name="testIntroduction">

Welcome to Hello World

</property>

....

To add the default input data (also optional) we have to define the <property> element with the attribute name set to defaultInput and provide the input XML message as CDATA:

...

<property name="defaultInput">

<![CDATA[

]]>

</property>

Other important optional configuration properties are as below:

loadSchema - If this is set to False, BPEL processes become typeless because XML schemas are not loaded. Default is True.

relaxTypeChecking - If this is set to True, BPEL compiler does not check types for compatibility in assigns. Default is False.

relaxXPathQName - If this is set to True, BPEL compiler does not check name spaces for steps in XPath expressions. Default is False.

xpathValidation - If this is set to False, BPEL compiler does not validate XPath expressions. Default is True

No comments: