
簡単な車両登録プロセスでの次の機能を図に示します。
- SubmitVehicleReg
- このワークフローは、Launch ステップで車両データの入力を促し、Invoke ステップで VehicleReg Web Service を呼び出して、発信メッセージに車両データを送信します。
- RegFeeInfo ステップで、ユーザーは応答メッセージを表示します。
- RegisterVehicles
- このワークフローは、車両データ (所有者名、価格など) を入力とする VehicleReg Web Service を定義します。着信メッセージでは、Receive ステップのデータ収集スキーマを使用します。Assign システム関数により、XPath 式を使用して、受信 XML メッセージからワークフローのデータ・フィールドにデータを抽出します。
- AssignReg ステップで、ユーザーは応答メッセージ用の登録番号を入力します。
- Reply ステップで、登録番号と計算した手数料を呼び出し側のプロセスに返します。
VehicleReg Web Service を提供するワークフローを作成
- Process Designer で、新しいワークフローの定義を始めます。
- 「ワークフローのプロパティー」>>「一般」タブで、名前と件名 (RegisterVehicles) を入力します。
- Web Service を定義します。
- 「Web Services」の「パートナー・リンク」で、Web Service を作成します。
名前:
VRegistration
受信/応答: このチェック・ボックスを選択します。
実行: このチェック・ボックスをクリアします。
プロセス・ポート・タイプ: VRegPort
ヒント: データを更新するには、「タイプ」フィールドの「受信/応答」をクリックします。「パートナー・リンク」テーブルに新しいブランク行が表示されます。
- 「XML スキーマ」タブで、着信データ用と応答メッセージ用の 2 つのスキーマを定義します。
注: この 2 つの XML スキーマは非常に簡単なので、Process Designer でパラメーターとして解釈可能ですが、ここでは XML メッセージを使用する例として使用しています。
表 1. 着信データと応答メッセージのスキーマ着信 |
発信 |
名前:
VehicleReceiveSchema
スキーマ定義 : 定義するテキストは、ここをクリックしてください。 |
名前:
VehicleReplySchema
スキーマ定義 : 定義するテキストは、ここをクリックしてください。 |
ヒント: テキストがスキーマ定義で別個の行として表示されない場合は、「確認」をクリックします。
- 「XML データ・フィールド」タブで、受信する車両データ・メッセージを保持する XMLVehicleData を指定します。
名前:
XMLVehicleData
スキーマ: VehicleReceiveSchema
エレメント: VehicleReg
- 「Web Services」の「一般」タブでは、「既存の Web Services オペレーションを確定」を選択しないでください。Web サービスの入力パラメーターと出力パラメーターを、適宜何回でも変更できるようにしておく必要があるためです。
- XML スキーマ (「Web Services」の「XML スキーマ」タブ) を調べると、着信メッセージと発信メッセージのデータを保持する下記のようなワークフロー・フィールドが必要であることがわかります。以下のデータ・フィールドを、「ワークフローのプロパティー」の「データ・フィールド」で指定します。
表 2. 着信名と発信名のワークフロー・フィールド着信名 (タイプ) |
発信名 (タイプ) |
OwnerName (文字列型) |
ReplyRegNum (文字列型) |
VehicleNumber (文字列型) |
Fee (浮動小数点型) |
VehicleValue (浮動小数点型) |
|
- 車両登録 Web Service を提供するステップを作成します。
- 「BPM Palette」から、「System Step」を配置し、Receive システム関数を指定します。
名前:
Receive
この Web Service の要求に応答して、このワークフローを自動的に起動するには、このステップを Launch ステップ後の最初のステップとし、ステップの中で Receive を最初の関数とする必要があります。
パートナー・リンク: VRegistration
オペレーション: VRegOp
メッセージ・タイプ: XML 受信 XML データ・フィールド: XMLVehicleData
スキーマ: VehicleReceiveSchema
エレメント: VehicleReg
- 同じ System ステップ内に、Assign システム関数を追加して、受信 XML メッセージから対応するデータ・フィールドにデータを抽出します。
表 3. データ・フィールドとそれに関連する式フィールド |
式 |
OwnerName |
xmlstringexpr(XMLVehicleData, "/",
"/*[local-name()=""VehicleReg""]/*[local-name()=""Owner""]") |
VehicleNumber |
xmlstringexpr(XMLVehicleData, "/",
"/*[local-name()=""VehicleReg""]/*[local-name()=""Vehicle""]/*[local-name()=""VIN""]") |
VehicleValue |
convert(xmlstringexpr(XMLVehicleData,
"/",
"/*[local-name()=""VehicleReg""]/*[local-name()=""Vehicle""]/*[local-name()=""Value""]"),float) |
Fee |
VehicleValue * 0.01 (この値は、応答メッセージ用に計算します。) |
- BPM Palette から、登録担当者が車両データを調べ、応答用に登録番号を入力できるステップを作成します。
- ワークフロー・マップに Activity ステップをドラッグします。
名前:
AssignReg
- 特定のユーザー (自分自身を割り当てられます) をステップの参加者として選択します。
Web Service が呼び出されると、ワークフロー・システムがこのワークフローを自動的に起動するので、このワークフローのステップでは、F_Originator を割り当てることはできません。システムは、受信トレイを持つ正当なユーザーとみなされないからです。
- 登録情報をこのステップのパラメーターとして指定し、登録担当者が車両データを調べて、応答用に登録番号を入力できるようにします。実際の呼び出しメッセージを表示する場合は、XML データ・フィールド XMLVehicleData もパラメーターとして指定できます。
パラメーター名: OwnerName
パラメーター名: ReplyRegNum
パラメーター名: VehicleNumber
パラメーター名: VehicleValue
パラメーター名: XMLVehicleData
- Web Services ステップ・パレットから、Reply ステップをワークフロー・マップに配置するか、Reply システム関数を含む System ステップを使用します。このステップでは、Web サービスを呼び出すプロセスへの応答メッセージを指定します。
- 「プロパティー」ペインで、Receive ステップで定義したものと同じパートナー・リンクとオペレーションを選択します。
- 「メッセージ」を選択します。
- 「スキーマ」では VehicleReplySchema を選択し、「エレメント」では VehicleReply を選択します。
- 「メッセージ・テンプレートの作成」ボタンをクリックすると、発信メッセージがテンプレート形式で表示されます。
- 発信メッセージを編集して、上に示したように、プレースホルダーを該当するデータ・フィールドで置き換えます。
Fee データは、メッセージ用に浮動小数点型から文字列型に変換する必要があります。
- このワークフロー定義を検証、保存、および転送します。
Web Service を呼び出すワークフローを作成
- 新しいワークフロー定義を作成します。
- 「ワークフローのプロパティー」>>「一般」タブで、ワークフロー定義の名前と件名 (SubmitVehicleReg) を入力します。
- Web Services のパートナー・リンクを定義します。
- 「Web サービス」>>「パートナー・リンク」タブで、パートナー・リンクの名前 (VehicleReg) を入力します。
- 「実行」を選択し、「WSDL URL」内の「Web Services Explorer」をクリックします。
- 「Web Services Explorer」ダイアログ・ボックスの「Web Services ワークフロー」を選択してから、「実行」をクリックすると、ワークフロー・システムへ転送済みの、Receive システム関数を使用したワークフローが表示されます。
- 「RegisterVehicles」を選択してから「OK」をクリックします。
- 「パートナー・リンク」タブで、ポート (VRegPort) を選択します。
ヒント: 「タイプ」フィールドで「実行」をクリックしてデータを更新してください。「パートナー・リンク」テーブルに新しいブランク行が表示されます。
- Web Services Palette から、Invoke ステップをワークフロー・マップにドラッグします。
- 「プロパティー」ペインで、パートナー・リンク (VehicleReg) を選択します。
- オペレーション (VRegOp) を選択します。
呼び出される Web Service で必要なパラメーターが表示されます。
この例の残りの部分では、簡単な方法としてパラメーター・モードを使用します。より高度な方法として、XML モードを選択し、該当するデータ・フィールド名をメッセージ・テンプレートに指定することもできます。
- Invoke ステップの XML メッセージ用のデータ・フィールドを作成します。
- 「発信パラメーター」では、RegisterVehicles ワークフローへの呼び出しメッセージで使用するこのワークフローでのデータ・フィールドを作成します。
表 4. 発信パラメーターとデータ・フィールド名前 |
タイプ |
式 |
Owner |
ストリング |
<Create> Owner |
VIN |
ストリング |
<Create> VIN |
値 |
浮動小数点型 |
<Create> 値 |
- 「着信パラメーター」では、RegisterVehicles ワークフローからの応答メッセージを保持するこのワークフローでのデータ・フィールドを作成します。
表 5. 着信パラメーターとデータ・フィールドパラメーター |
タイプ |
データ・フィールド |
Owner_reply |
ストリング |
<Create> Owner_reply |
VIN_reply |
ストリング |
<Create> VIN_reply |
RegNumber_reply |
ストリング |
<Create> RegNumber_reply |
RegFee_reply |
浮動小数点型 |
<Create> RegFee_reply |
- 「BPM Palette」から、「Activity Step」をワークフロー・マップにドラッグし、応答メッセージを表示できるようにします。
ステップ名: RegFeeInfo
参加者: F_Originator
パラメーター: すべてのデータ・フィールド
- Launch ステップを選択し、Owner、VIN、および Value をパラメーターとして指定します。
起動ユーザーがこれらの値を入力して、プロセスを開始します。
- このワークフローを検証、保存、および転送します。
- 続いて、SubmitVehicleReg ワークフローを実行します。
SubmitVehicleReg ワークフローを実行
- SubmitVehicleReg ワークフローを起動します。
- Launch ステップで、データ・フィールド Owner、VIN、および Value に適切な値を入力して、ワークフローを起動します。
- 「Workplace」の「タスク」で、登録番号を割り当てるユーザー (この例ではおそらく自分自身) としてログオンし、AssignReg タスクを開きます。
- データ・フィールドを調べて、RegNumber_reply フィールドに登録番号を表すテキストを入力します。
- ステップを完了します。
- 起動ユーザーとしてログオンし、受信トレイの RegFeeInfo ステップを開きます。
- データ・フィールド RegNumber と RegFee を確認します。