現在、Oracle SOA Suite 11g R1 のコンポジットに取り組んでいます。要するに、次の BPEL プロセスがあります (いくつかのアクティビティは言及されていません)。
- XML ファイル (で定義されている形式
input.xsd
) がインスタンスを開始するのを待っているファイル アダプタ。この例では、入力ファイルには単純なショッピング注文のリストが含まれています (XSD タイプは ですOrder_Type
)。 - Transform ( で定義された形式
output.xsd
) - 出力を書き込むためのファイル アダプタ。
両方の XSD はcommon.xsd
、共通の型に 3 番目を使用します。
入力ファイルを読み取った直後にルールを挿入したいと思います。JDeveloper (11g R1 PS2)のBPELエディタから、Business RuleアクティビティをReceiveアクティビティの下にドラッグし、ウィザードを使用して新しいディクショナリを作成します:
- JDeveloper に、my.xml から XML ファクトを生成させます
input.xsd
。セレクターOrder_Type
でクラスにマーシャリングされますmypackage.OrderType
//xs:complexType[@name='Order_Type']
- 新しいルールセットを作成し、注文を入力として受け取る新しいルールを作成します。
- そのルールを呼び出す決定関数を作成します。関数には、次の型の入力パラメーターが 1 つあります。
OrderType
ここで関数ダイアログを閉じると、エラーは発生しませんが、BPEL プロセスでルールを選択できません。
一方、[ Will Be Invoked As A Webservice]を選択して閉じると、次のエラー メッセージが表示されます。
XML スキーマ ファイルに要素が見つかりません。ファクト タイプ mypackage.OrderType の要素が XML スキーマ ファイル file:/C:/Jdeveloper/[...]/xsd/input.xsd [...] に見つかりませんでした
別名BPM-36355エラーですが、そのエラー コードは明示的に言及されていません。
もちろん、型はファイル内に存在するため (先ほど言ったように、JDev に JAXB クラスを生成させました)、なぜこのエラーが発生するのか、またはどのように修正すればよいのかわかりません。
XML ファクトの生成とデシジョン関数のさまざまな組み合わせを試し、JDev を再起動しました (笑わないでください。昨日の奇妙な問題は実際に修正されました)。タイプを選択する XPath 式は正しいです。
任意の提案をいただければ幸いです。もちろん、Oracle のドロップまたは 11g より前のバージョンへのダウングレードを除きます。ありがとう