I’m currently working on a composite for the Oracle SOA Suite 11g R1. In short, I have the following BPEL process (some activities not mentioned):
- File Adapter waiting for XML files (format defined in
input.xsd) to start an instance. For the example, the input file contains a list of simplistic shopping orders (the XSD type isOrder_Type). - Transform (format defined in
output.xsd) - File Adapter to write output.
Both XSD’s use a third common.xsd for common types.
I’d like to insert a rule right after reading my input file. From the JDeveloper (11g R1 PS2) BPEL editor, I drag a Business Rule activity below my Receive activity and use the wizard to create a new Dictionary:
- I let JDeveloper generate XML Facts from my
input.xsd.Order_Typegets marshalled to the classmypackage.OrderTypewith selector//xs:complexType[@name='Order_Type'] - I create a new Ruleset, and a new rule taking an order as input.
- I create a Decision Function to call that rule. The function has one input parameter of type
OrderType
If I close the function dialog now, I have no error but cannot select the rule in my BPEL process.
On the other hand, if I select Will Be Invoked As A Webservice then close, I have the following error message:
Element not found in XML-Schema file.
The element for fact type mypackage.OrderType could not be found in XML Schema file file:/C:/Jdeveloper/[…]/xsd/input.xsd […]
aka BPM-36355 error, although that error code is not explicitly mentioned.
Of course, the type is present in the file (as I said, I let JDev generate the JAXB classes for me), so I’m at a loss as to why this error happens, or how to correct it.
I tried various combinations for the generation of XML facts, of the decision function, and I restarted JDev (don’t laugh, that actually fixed a weird issue yesterday), but to no avail. The XPath expression selecting the type is correct.
Any suggestion would be appreciated. Except dropping Oracle or downgrading to pre-11g, of course.
Thanks
My root element,
Order, was a sequence ofOrder_Type. I solved the issue described above by usingOrderinstead ofOrder_Typefor my decision function parameter. The WSDL was generated successfully, and my rule is called.I don’t know whether this is a bug or a feature so if anyone has more information, feel free to post it.