SelectionFailure bug in BPM 11g

Found an issue with BPM where you try and assign values from one data object to another using only some attributes and not all attributes of the complex type. This resulted in the BPM process going in suspended state but it would still display the status as Running on the Process instances tab. Only if you click on the process details and see the activities you will see that the activity has been suspended.

<dataObject  name="FaultMessage"  isBusinessIndicator="false">
<value> oracle.bpm.bpmn.engine.model.runtime.microinstructions.TrappableException: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} cause: {faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=<summary>empty expression result. The expression bpmn:getDataObject('ackLtrDO')/ns:doc_author is empty. An attempt to read or copy data referenced or computed by the XPath expression either had invalid data, according to the XML schema, or did not contain certain optional data. Ensure that the variable or expression result named in the error message is not empty. Enable XML schema validation of related data elements to ensure the run-time data is valid. </summary>} } </value>
</dataObject>

I resolved the problem by changing the data associations from using simple assignment to using XSLT instead. However I had to be careful to make sure old values were not lost – since XSLT replaces the entire XML in the target xsd.

 

Vikram