faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=
In this document i will try to capture a sample that will raise this error and then will try to fix it.
First of all we will create a sample schema file and we will try to parse the xml document of that type.
Based on the above schema i create a sample XML document to parse
<TestData>
<Sample>
<name>Arpit</name>
<id>123</id>
</Sample>
</TestData>
Now lets create a soa process to use this xml data for parsing.
Create a simple BPEL process. An drag and drop an assign activity in the bpel.
Create a String variable first to store the data.
Using an assign activity pass the xml data in to the string variable you created
Create another variable of element type and this time make it based on the schema you have.
Now use another assign activity and parse the Variable1 to map to the new variable created.
Create one more variable to store the parsed data.
Use one more assign activity to map one of the field to this newly created variable.
Deploy your process and test it.
Now if you will check the BPEL instance you will that it has converted the data successfully in to XML format but when it comes to parse the data from the element it has failed with an error.
This error occurs because our xml data is not namespace qualified and the BPEL engine gets confused how to parse this data.
In order to resolve this issue we just need to add namespace to the XML data that we are passing.
So now our XML input will appear something like this.
<xxcust:TestData xmlns:xxcust="http://www.oracle.com/EBS/Event/Data/V1">
<xxcust:Sample>
<xxcust:name>Arpit</xxcust:name>
<xxcust:id>123</xxcust:id>
</xxcust:Sample>
</xxcust:TestData>
Go back to your development and assign this new payload instead of the previous one
Redeploy your process and test if from console again.
You should be able to see the correct result
Important - Make sure you are using a unique namespace identifier.
This concept can be used when you are trying to subscribe data from Apps event and you create your event data based on a schema.
No comments:
Post a Comment