IBM FileNet P8, バージョン 5.2.1            

Web Services の使用: XML メッセージの例

この例では、ワークフロー・パラメーターではなく、XML スキーマを利用する Web Services を使用するワークフローのペアを作成する手順を概説します。

ワークフロー間の Invoke および Reply

簡単な車両登録プロセスでの次の機能を図に示します。

VehicleReg Web Service を提供するワークフローを作成

  1. Process Designer で、新しいワークフローの定義を始めます。
  2. 「ワークフローのプロパティー」>>「一般」タブで、名前と件名 (RegisterVehicles) を入力します。
  3. Web Service を定義します。
    1. 「Web Services」の「パートナー・リンク」で、Web Service を作成します。

      名前: VRegistration 受信/応答: このチェック・ボックスを選択します。 実行: このチェック・ボックスをクリアします。 プロセス・ポート・タイプ: VRegPort

      ヒント: データを更新するには、「タイプ」フィールドの「受信/応答」をクリックします。「パートナー・リンク」テーブルに新しいブランク行が表示されます。

    2. 「XML スキーマ」タブで、着信データ用と応答メッセージ用の 2 つのスキーマを定義します。

      注: この 2 つの XML スキーマは非常に簡単なので、Process Designer でパラメーターとして解釈可能ですが、ここでは XML メッセージを使用する例として使用しています。

      表 1. 着信データと応答メッセージのスキーマ
      着信 発信
      名前: VehicleReceiveSchema スキーマ定義 : 定義するテキストは、ここをクリックしてください。 名前: VehicleReplySchema スキーマ定義 : 定義するテキストは、ここをクリックしてください。

      ヒント: テキストがスキーマ定義で別個の行として表示されない場合は、「確認」をクリックします。

    3. 「XML データ・フィールド」タブで、受信する車両データ・メッセージを保持する XMLVehicleData を指定します。

      名前: XMLVehicleData スキーマ: VehicleReceiveSchema エレメント: VehicleReg

    4. 「Web Services」の「一般」タブでは、「既存の Web Services オペレーションを確定」を選択しないでください。Web サービスの入力パラメーターと出力パラメーターを、適宜何回でも変更できるようにしておく必要があるためです。
  4. XML スキーマ (「Web Services」の「XML スキーマ」タブ) を調べると、着信メッセージと発信メッセージのデータを保持する下記のようなワークフロー・フィールドが必要であることがわかります。以下のデータ・フィールドを、「ワークフローのプロパティー」の「データ・フィールド」で指定します。
    表 2. 着信名と発信名のワークフロー・フィールド
    着信名 (タイプ) 発信名 (タイプ)
    OwnerName (文字列型) ReplyRegNum (文字列型)
    VehicleNumber (文字列型) Fee (浮動小数点型)
    VehicleValue (浮動小数点型)  
  5. 車両登録 Web Service を提供するステップを作成します。
    1. 「BPM Palette」から、「System Step」を配置し、Receive システム関数を指定します。

      名前: Receive

      この Web Service の要求に応答して、このワークフローを自動的に起動するには、このステップを Launch ステップ後の最初のステップとし、ステップの中で Receive を最初の関数とする必要があります。

      パートナー・リンク: VRegistration オペレーション: VRegOp メッセージ・タイプ: XML 受信 XML データ・フィールド: XMLVehicleData スキーマ: VehicleReceiveSchema エレメント: VehicleReg

  6. 同じ 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 (この値は、応答メッセージ用に計算します。)
  7. BPM Palette から、登録担当者が車両データを調べ、応答用に登録番号を入力できるステップを作成します。
    1. ワークフロー・マップに Activity ステップをドラッグします。

      名前: AssignReg

    2. 特定のユーザー (自分自身を割り当てられます) をステップの参加者として選択します。

      Web Service が呼び出されると、ワークフロー・システムがこのワークフローを自動的に起動するので、このワークフローのステップでは、F_Originator を割り当てることはできません。システムは、受信トレイを持つ正当なユーザーとみなされないからです。

    3. 登録情報をこのステップのパラメーターとして指定し、登録担当者が車両データを調べて、応答用に登録番号を入力できるようにします。実際の呼び出しメッセージを表示する場合は、XML データ・フィールド XMLVehicleData もパラメーターとして指定できます。

      パラメーター名: OwnerName パラメーター名: ReplyRegNum パラメーター名: VehicleNumber パラメーター名: VehicleValue パラメーター名: XMLVehicleData

  8. Web Services ステップ・パレットから、Reply ステップをワークフロー・マップに配置するか、Reply システム関数を含む System ステップを使用します。このステップでは、Web サービスを呼び出すプロセスへの応答メッセージを指定します。
    1. 「プロパティー」ペインで、Receive ステップで定義したものと同じパートナー・リンクとオペレーションを選択します。
    2. メッセージ」を選択します。
    3. 「スキーマ」では VehicleReplySchema を選択し、「エレメント」では VehicleReply を選択します。
    4. メッセージ・テンプレートの作成」ボタンをクリックすると、発信メッセージがテンプレート形式で表示されます。
    5. 発信メッセージを編集して、上に示したように、プレースホルダーを該当するデータ・フィールドで置き換えます。

      Fee データは、メッセージ用に浮動小数点型から文字列型に変換する必要があります。

  9. このワークフロー定義を検証、保存、および転送します。

Web Service を呼び出すワークフローを作成

  1. 新しいワークフロー定義を作成します。
  2. 「ワークフローのプロパティー」>>「一般」タブで、ワークフロー定義の名前と件名 (SubmitVehicleReg) を入力します。
  3. Web Services のパートナー・リンクを定義します。
    1. 「Web サービス」>>「パートナー・リンク」タブで、パートナー・リンクの名前 (VehicleReg) を入力します。
    2. 「実行」を選択し、「WSDL URL」内の「Web Services Explorer」をクリックします。
    3. 「Web Services Explorer」ダイアログ・ボックスの「Web Services ワークフロー」を選択してから、「実行」をクリックすると、ワークフロー・システムへ転送済みの、Receive システム関数を使用したワークフローが表示されます。
    4. RegisterVehicles」を選択してから「OK」をクリックします。
    5. 「パートナー・リンク」タブで、ポート (VRegPort) を選択します。

      ヒント: タイプ」フィールドで「実行」をクリックしてデータを更新してください。「パートナー・リンク」テーブルに新しいブランク行が表示されます。

  4. Web Services Palette から、Invoke ステップをワークフロー・マップにドラッグします。
    1. 「プロパティー」ペインで、パートナー・リンク (VehicleReg) を選択します。
    2. オペレーション (VRegOp) を選択します。

      呼び出される Web Service で必要なパラメーターが表示されます。

      この例の残りの部分では、簡単な方法としてパラメーター・モードを使用します。より高度な方法として、XML モードを選択し、該当するデータ・フィールド名をメッセージ・テンプレートに指定することもできます。

  5. Invoke ステップの XML メッセージ用のデータ・フィールドを作成します。
    1. 「発信パラメーター」では、RegisterVehicles ワークフローへの呼び出しメッセージで使用するこのワークフローでのデータ・フィールドを作成します。
      表 4. 発信パラメーターとデータ・フィールド
      名前 タイプ
      Owner ストリング <Create> Owner
      VIN ストリング <Create> VIN
      浮動小数点型 <Create> 
    2. 「着信パラメーター」では、RegisterVehicles ワークフローからの応答メッセージを保持するこのワークフローでのデータ・フィールドを作成します。
      表 5. 着信パラメーターとデータ・フィールド
      パラメーター タイプ データ・フィールド
      Owner_reply ストリング <Create> Owner_reply
      VIN_reply ストリング <Create> VIN_reply
      RegNumber_reply ストリング <Create> RegNumber_reply
      RegFee_reply 浮動小数点型 <Create> RegFee_reply
  6. 「BPM Palette」から、「Activity Step」をワークフロー・マップにドラッグし、応答メッセージを表示できるようにします。

    ステップ名: RegFeeInfo 参加者: F_Originator パラメーター: すべてのデータ・フィールド

  7. Launch ステップを選択し、OwnerVIN、および Value をパラメーターとして指定します。

    起動ユーザーがこれらの値を入力して、プロセスを開始します。

  8. このワークフローを検証、保存、および転送します。
  9. 続いて、SubmitVehicleReg ワークフローを実行します。

SubmitVehicleReg ワークフローを実行

  1. SubmitVehicleReg ワークフローを起動します。
  2. Launch ステップで、データ・フィールド OwnerVIN、および Value に適切な値を入力して、ワークフローを起動します。
  3. 「Workplace」の「タスク」で、登録番号を割り当てるユーザー (この例ではおそらく自分自身) としてログオンし、AssignReg タスクを開きます。
  4. データ・フィールドを調べて、RegNumber_reply フィールドに登録番号を表すテキストを入力します。
  5. ステップを完了します。
  6. 起動ユーザーとしてログオンし、受信トレイの RegFeeInfo ステップを開きます。
  7. データ・フィールド RegNumberRegFee を確認します。

 



最終更新日: 2015 年 10 月
bpfdh185.htm

© Copyright IBM Corp. 2015.