In the Value field, specify the class path. Click Apply.

13-8 Oracle Fusion Middleware Developers Guide for Oracle SOA Suite Figure 13–1 bpel:exec Code Example

13.4.2 What You May Need to Know About Using thread.sleep in a Java Embedding Activity

If you create and deploy a BPEL process that uses thread.sleep in a Java Embedding activity, the executing thread is blocked and the transaction associated with that thread is prevented from committing. This causes BPEL instances to appear only after the wait is over, which is the expected behavior. Instead, use a wait activity, which releases the resource upon entering the activity and enables the ongoing transaction to commit and the BPEL instance data to hydrate into the data store.

13.5 Embedding Service Data Objects with bpelx:exec

You can embed service data object SDO code in the .bpel file with the bpelx:exec tag. In the syntax provided in Example 13–6 , mytest.apps.SDOHelper is a Java class that modifies SDOs. Example 13–6 Embedding SDO Objects with the bpelx:exec tag bpelx:exec bpelx:exec name=ModifyInternalSDO version=1.5 language=java [CDATA[try{ Object o = getVariableDataVarSDO; Object out = getVariableDataExtSDO; Note: As an alternative to writing Java code in the Java Embedding activity, you can place your Java code in a JAR file, put it in the class path, and call your methods from within the Java Embedding activity. Incorporating Java and Java EE Code in a BPEL Process 13-9 System.out.printlnBPEL:Modify VarSDO... + o + ExtSDO: + out; mytest.apps.SDOHelper.printo; mytest.apps.SDOHelper.printout; mytest.apps.SDOHelper.modifySDOo; System.out.printlnBPEL:After Modify VarSDO... + o + ExtSDO: + out; mytest.apps.SDOHelper.printo; mytest.apps.SDOHelper.printout; }catchException e { e.printStackTrace; }]] bpelx:exec Example 13–7 provides an example of the Java classes modifySDOo and printo that are embedded in the BPEL file. Example 13–7 Java Classes public static void modifySDOObject o{ ifo instanceof commonj.sdo.DataObject { DataObjecto.getChangeSummary.beginLogging; SDOType type = SDOTypeDataObjecto.getType; HelperContext hCtx = type.getHelperContext; ListDataObject lines = ListDataObjectDataObjecto.getline; for DataObject line: lines { line.seteligibilityStatus, Y; } } else { System.out.printlnSDOHelper.modifySDO: + o + is not a DataObject; } } . . . . . . public static void printObject o { try{ ifo instanceof commonj.sdo.DataObject { DataObject sdo = commonj.sdo.DataObjecto; SDOType type = SDOType sdo.getType; HelperContext hCtx = type.getHelperContext; System.out.printlnhCtx.getXMLHelper.savesdo, type.getURI, type.getName; } else { System.out.printlnSDOHelper.print: Not a sdo + o; } }catchException e { e.printStackTrace; } }

13.6 Sharing a Custom Implementation of a Class with Oracle BPEL Process Manager

When you implement a custom Connection Manager class with the same name as a class used by Oracle BPEL Process Manager, you must ensure that the custom class does not override the class used by Oracle BPEL Process Manager.