我目前正在为 Oracle SOA Suite 11g R1 开发一个组合。简而言之,我有以下 BPEL 流程(一些活动未提及):
- 文件适配器等待 XML 文件(在 中定义的格式
input.xsd
)启动实例。例如,输入文件包含一个简单的购物订单列表(XSD 类型为Order_Type
)。 - 变换(格式定义在 中
output.xsd
) - 文件适配器写入输出。
两个 XSD 都使用第三种common.xsd
来表示常见类型。
我想在阅读我的输入文件后立即插入一条规则。从 JDeveloper (11g R1 PS2) BPEL 编辑器中,我将一个业务规则活动拖到我的接收活动下方,并使用向导创建一个新字典:
- 我让 JDeveloper 从我的
input.xsd
. 使用选择器Order_Type
编组到班级mypackage.OrderType
//xs:complexType[@name='Order_Type']
- 我创建了一个新规则集,以及一个将订单作为输入的新规则。
- 我创建了一个决策函数来调用该规则。该函数有一个类型的输入参数
OrderType
如果我现在关闭函数对话框,我没有错误但无法在我的 BPEL 流程中选择规则。
另一方面,如果我选择Will Be Invoked As A Webservice然后关闭,我会收到以下错误消息:
在 XML 架构文件中找不到元素。在 XML Schema 文件文件中找不到事实类型 mypackage.OrderType 的元素:/C:/Jdeveloper/[...]/xsd/input.xsd [...]
又名BPM-36355错误,尽管没有明确提及该错误代码。
当然,文件中存在类型(正如我所说,我让 JDev 为我生成 JAXB 类),所以我不知道为什么会发生这个错误,或者如何纠正它。
我尝试了各种组合来生成 XML 事实和决策函数,然后我重新启动了 JDev(别笑,这实际上解决了昨天的一个奇怪问题),但无济于事。选择类型的 XPath 表达式是正确的。
任何建议将不胜感激。当然,除了放弃 Oracle 或降级到 11g 之前。谢谢