Tuesday, January 15, 2008

Oracle BPEL reports error "Cannot set non-message value to a message based variable"

Issue: BPEL Process error while executing Transformation activity. This error happens more frequently when transformation activity involves on huge schema.

Reported error is:
{{http://schemas.xmlsoap.org/ws/2003/03/business-process/}mismatchedAssignmentFailure} messageType: {} parts: {{summary=Mismatch Assign. Cannot set non-message value to a message based variable. Please check the BPEL source. }}

Solution :
After research, it appears to be caused due to some issue in Jdeveloper. What happens is, sometimes Jdeveloper ‘strips’ some content from the <BpelProcess.bpel> file. Jdeveloper version I am using is Studio Edition Version 10.1.3.3.0.4157. In my case this happened when my transformation source was an Element and the target was the message type.

When you create a transformation activity, your xxxx.bpel file would have like :

<assign name="MyTransformActivity">
<bpelx:annotation>
<bpelx:pattern>transformation</bpelx:pattern>
</bpelx:annotation>
<copy>
<from expression="ora:processXSLT('mytranslation.xsl',bpws:getVariableData('sourceVariable'))"/>
<to variable="OurputVariable" part="OutputVariblepart"/>
</copy>
</assign>


but jdeveloper for some reason strips the part=”OutputVariablepart”.

So solution is to add the above missing part manually in the xxxx.bpel file.

Saturday, January 05, 2008

Oracle SOA

A nice article about WSIF :
http://www.oracle.com/technology/pub/articles/bpel_cookbook/juric.html

An article about the Canonical Data Model (CDM) :
http://www.openapplications.org/downloads/whitepapers/whitepaperdocs/2005%20A%20Business%20Case%20for%20a%20Canonical%20Model.pdf

Oracle App server tips

Command line utility to undeploy ear files using opmn:


java -jar D:\product\10.1.3.1\OracleAS_1/j2ee/home/admin_client.jar deployer:oc4j:opmn://machine1:6003/home oc4jadmin [oc4jadmin-password] -undeploy appname

java -jar D:\product\10.1.3.1\OracleAS_1/j2ee/home/admin_client.jar deployer:oc4j:opmn://machine1:6003/home oc4jadmin [oc4jadmin-password] -deploy -file D:\product\10.1.3.1\OracleAS_1\integration\esb/lib/ftpAdapter.rar -deploymentName FtpAdapter

Article about encrypting text password in server config files :
http://www.oracle.com/technology/products/jdev/howtos/10g/jaassec/index.htm