BPELコンポーネントでのJavaScriptおよびJSONの使用
BPELコンポーネントは、XML変数およびJSON変数の両方とともに使用できます。JavaScriptは、XPath式を使用できるすべての箇所で使用できます。JavaScriptは述部、式およびJavaScript BPELアクティビティ内で使用できます。
JSON変数の使用
既存のRESTサービスに基づいてBPELプロセスを作成し、RESTサービスからメソッドを追加することを選択できます。これは、次の図に示されています。
入力ペイロード・データを受信するためにJSONオブジェクト変数を使用するように、BPELプロセスのReceiveアクティビティが自動的に構成されます。
必要に応じて、BPELプロセスに追加のスキーマレスJSON変数を作成できます。
BPELプロセスの式言語の設定
BPELデザイナで、BPELプロセス領域の空白の領域を右クリックします。「プロセスの編集」ダイアログが表示されます。必要に応じて、問合せ言語と式言語を設定します。JavaScriptを使用するためにjs
を使用できます。
JavaScript式の使用
JavaScriptは、XPath式を使用できるすべての箇所で使用できます。これらの式は、BPELアクティビティおよび条件付きおよび反復コンストラクトで使用できます。この項では、いくつかの例を示します。
次の例は、Assertアクティビティで使用されるJavaScript式を示しています。式では、プロセス入力のタイプがオブジェクトかどうかが確認されます。
process
変数は、実行中にJavaScriptコンテキストがアクセス可能なグローバル変数です。
次のコードは、Whileアクティビティで使用される可能性のあるJavaScript条件を示しています。
process.counter < 10
次のコードは、Waitアクティビティに表示される可能性のあるJavaScript式を示しています。
bpel.until(process.counter + 3)
次のコードは、Switchアクティビティの分岐に表示され、奇数のテストに役立つJavaScript式を示しています。
process.counter % 2 == 1
JavaScriptアクティビティの使用
BPELプロセスでJavaScriptアクティビティを使用して、JavaScriptコード・スニペットまたはコード・ブロックを追加できます。JavaScriptアクティビティを追加するには、「コンポーネント」ウィンドウからBPELプロセスの適切な場所にJavaScriptアイコンをドラッグします。追加したJavaScriptアクティビティをダブルクリックして編集できます。次の図は、xpath
およびbpel
オブジェクト関数を呼び出すJavaScriptコードを示しています。
xpath
は、すべてのXPath関数にバインドするグローバル・オブジェクトです。このため、たとえば、var o = process.output.xpath
では新しいxpathオブジェクトが作成され、o.refid = xpath.ora.getECID()
ではora
ネームスペース・プリフィクスのgetECID関数が呼び出されます。
次のJavaScriptコードはJavaScriptアクティビティに表示され、サーバー・コンソールおよびBPEL監査ログに出力を書き込みます。
console.log("input: ", process.input)
console.log("output: ", process.output)
audit.log("output: ", process.output)
BPELプロセスへのJavaScriptファイルのインポート
JavaScript関数を含む外部JavaScriptファイルを、BPELプロセスにインポートできます。これらのファイルに含まれるJavaScript関数が、BPELプロセス内で使用可能になります。次の行では、import
およびinclude
文を使用してmain.js
およびone.js
ファイルをBPELプロセスにフェッチしています。
<bpelx:js include="jslib/main.js"/>
<bpelx:js import="jslib/one.js"/>
<import location="jslib/lib.js" importType="javascript"/>
include
とimport
の違いは、import
文では、インポート回数に関係なくファイルが含められるのは1回のみである点です。
次の図は、 include/import
文を含むBPELプロセスのソース・ウィンドウを示しています。JavaScriptファイルがプロジェクト・フォルダの下に表示される場所に注意してください。