Freitag, August 19, 2005
Print BPEL Variable to Stdout
To trace BPEL Variables you can use the java task:
<bpelx:exec>
CubeDOMElement element = (CubeDOMElement)getVariableData ("MyVariable", "payload","/ns2:myData");
System.out.println(doc.asXML());
</bpelx:exec>
I use following command to make the output visible:
tail -f C:\%ORACLE_HOME%\opmn\logs\OraBPEL~OC4J_BPEL~default_island~1
<bpelx:exec>
CubeDOMElement element = (CubeDOMElement)getVariableData ("MyVariable", "payload","/ns2:myData");
System.out.println(doc.asXML());
</bpelx:exec>
I use following command to make the output visible:
tail -f C:\%ORACLE_HOME%\opmn\logs\OraBPEL~OC4J_BPEL~default_island~1
Mittwoch, August 17, 2005
Deploy additional BPEL Process Archives
It's a normal way to structure and separate java code from BPEL project. To deploy this dependend JAR-Archives automatically with your BPEL-Project, you must create the following Directory structure within your BPEL Project:
However, while developing with JDev, you get an compile error as long as you don't create a deployment-dependency to a the jar deployment profile of the other project. Hint: this dependency will not be evaluated from the BPEL deployment process!
and copy the required jar archives or classes to that directories.
- BPEL-INF - classes
- lib
However, while developing with JDev, you get an compile error as long as you don't create a deployment-dependency to a the jar deployment profile of the other project. Hint: this dependency will not be evaluated from the BPEL deployment process!
Output BPEL-Variable to OutputStream
Here is an example to write any BPEL-Variable to System.out or any other stream:
<bpelx:exec import="org.w3c.dom.*"/>
<bpelx:exec import="javax.xml.parsers.*"/>
<bpelx:exec import="javax.xml.transform.*"/>
<bpelx:exec import="javax.xml.transform.dom.*"/>
<bpelx:exec import="javax.xml.transform.stream.*"/>
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer= transformerFactory.newTransformer();
PrintStream outStream = System.out;
Result output = new StreamResult(outStream);
DOMSource source = new DOMSource((org.w3c.dom.Node) getVariableData("ReceiveFromRMRFileEvent_Read_InputVariable","RMR"));
transformer.transform(source,output);
<bpelx:exec import="org.w3c.dom.*"/>
<bpelx:exec import="javax.xml.parsers.*"/>
<bpelx:exec import="javax.xml.transform.*"/>
<bpelx:exec import="javax.xml.transform.dom.*"/>
<bpelx:exec import="javax.xml.transform.stream.*"/>
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer= transformerFactory.newTransformer();
PrintStream outStream = System.out;
Result output = new StreamResult(outStream);
DOMSource source = new DOMSource((org.w3c.dom.Node) getVariableData("ReceiveFromRMRFileEvent_Read_InputVariable","RMR"));
transformer.transform(source,output);
BPEL: User Defined Preferences
Oracle' BPEL deployment descriptor bpel.xml includes the undocumented section "preferences" to configure user defined properties. The generic BPEL Administration console BPELConsole allow the admistration of all variables at runtime without redeployment.
Sample:
<BPELSuitcase>
<BPELProcess id="MyProzess" src="myProzess.bpel">
<preferences>
<property name="myTempDir">c:\temp</property > </preferences>
</BPELProcess>
</BPELSuitcase>
Attention: the position of the preference section is very important. It must be the first element after the BPELProcess tag to work correctly.
There are two build-in functions to read this properties:
ora:getPreference(String name); in each xml expression andgetPreference in the java inline section
Sample:
<BPELSuitcase>
<BPELProcess id="MyProzess" src="myProzess.bpel">
<preferences>
<property name="myTempDir">c:\temp</property > </preferences>
</BPELProcess>
</BPELSuitcase>
Attention: the position of the preference section is very important. It must be the first element after the BPELProcess tag to work correctly.
There are two build-in functions to read this properties:
ora:getPreference(String name); in each xml expression andgetPreference in the java inline section