Showing posts with label Bpel. Show all posts
Showing posts with label Bpel. Show all posts

Thursday, December 1, 2011

Validate the variable in Oracle BPEL

You can validate one variable against the schema in Oracle BPEL.   

It is done through validate activity from Oracle Extensions.   The BPEL codes will look like the below:




        <validate name="ValidateRequest"
                  variables="RetrieveResourceDetailsRequest"/>


When validation fails the standard fault bpel:invalidVaraible is thrown.   So you need to catch this fault using the following codes:


        <catch faultName="bpel:invalidVariables"> 
                   .... Some activities here
        </catch>

Wednesday, August 3, 2011

One issue I found with JDeveloper 11.1.1.4 BPEL

I found one issue with JDeveloper 11.1.1.4 with SOA extension when I was designing one BPEL process. What I was trying to do is to dynamically set the queue name with JMS adapter in BPEL. The queue name is stored in the variable: RuleInputOutput which is of the type: ProviderRouting. The structure of ProviderRouting is shown in the following diagram.


The key of implementing dynamically JMS routing is to set the JMSDestinationName property in the invoke activity. So I tried to set this property value from the variable: RuleInputOutput in the invoke setting window as shown below.


After selecting the right element then clicked on several OK buttons in the different popup window. Everything looked fine so far.

Next I was trying to build the BPEL process and found I got some compiler error messages as shown as the below:


I went to BPEL design panel and clicked on Source tab to see the source code of BPEL. What I found is that after setting JMSDestinationName using invoke setting winodw JDeveloper generated some following codes:


After scratching my head for a while I realized that the query in setting JMSDestinationName is not so right. It is missing one slash in the beginning of the query. After correcting this as the below diagram the BPEL can be built without any compiler error.


Thursday, January 27, 2011

BPEL Correlation


BPEL correlation provides the ability to implement stateful, long-running interactions between BPEL and partner services. Correlation associates the message with the particular BPEL instance thus the stateful interactions are implemented in BPEL. It is especially useful for asynchronous interaction. BPEL adds some identifying variables when interacted with the clients or partners. These identifying variables are called properties which are defined in WSDL while in BPEL a set of properties which is called correlationSet is defined. In correlationSet the properties are specified. And in BPEL when the interaction with correlation is needed for some activities such as , and etc. , one defined correlationSet is used for BPEL correlation. What needs to be noted is that a property is just nominal representation of identifying variables. Its actual value comes form the one field of the message. How the property gets the value is handled by propertyAlias which is also defined in WSDL. A propertyAlias specifies how a field of the message is mapped to a property. Why BPEL introduces propertyAlias is to decrease the dependency between WSD and BPEL by using property as intermediate variable. For example when one field name of the message is changed no part of BPEL will be impacted.