
同じ会社の 2 つの部署 (セールスとトラベル) で、プロジェクト名を更新するワークフローがあります。この簡単な例では、2 つのワークフローから、データ TheName を収集する同一の Web サービスが提供されるとします。ここで別々の FileNet® ワークフローを開発し、それぞれのパートナー・リンクからそれぞれの Web サービスを実行できますが、会社にとってより効率的なのは、プロジェクト名を更新する単一のワークフローから、実行時に利用者が適切な部署 (ターゲット WSDL) を選択する方法です。
この例では、SubmitName ワークフローは、2 つの場所のうちどちらかの Web サービス UpdateName を実行します。ここでは 2 つの部署を表すために、2 つの別個の FileNet ワークフロー環境を使用します。
注: これらのワークフローの名前は、スキーマのターゲット名前空間のみならず、WSDL のターゲット名前空間の一部であるため、同一にする必要があります。さらに、オペレーション名、入出力パラメーター、相関設定、および障害定義も同一にする必要があります。
1 つのシステム (セールス、またはトラベル) で Web サービスを提供する UpdateName ワークフロー定義を作成し、次に両方のシステムに転送します。
SubmitName ワークフロー定義を作成します。この場合、単一のパートナー・リンクを使用して、2 つのうち、一方のシステムにある UpdateName を実行します。
- SubmitName で、それぞれの代替 WSDL URL を割り当てるデータ・フィールドを指定します。
- ユーザーは Launch ステップでターゲットの部署 (セールスかトラベル) を選択します。これによって、次に実行するステップ (AssignSales か AssignTravel) が決定されます。
- AssignSales または AssignTravel ステップでは、適切な WSDL URL が UseThisEndpoint データ・フィールドに割り当てられます。
- AssignInvoke System ステップでは、Assign システム関数によって発信メッセージのヘッダーに UseThisEndpoint データが挿入されます。このデータは、Invoke システム関数で使用されます。これによって、実行される UpdateName ワークフローが決まります。
UpdateName ワークフロー定義の作成
- Process Designer で、「ワークフローのプロパティー」>>「一般」タブを開きます。
ワークフロー名および件名: UpdateName
- 「Web
サービス」>>「パートナー・リンク」タブで Web サービスを定義します。
- パートナー・リンク名: ChgName
- 「受信/応答」を選択し、「開始」の選択を解除します。
- プロセス・ポート・タイプ: ChgNamePort
ヒント: データを更新するには、「タイプ」フィールドの「受信/応答」をクリックします。「パートナー・リンク」テーブルに新しいブランク行が表示されます。
- Web Services Palette からワークフロー・マップ上に、Receive ステップをドラッグします。
注: このワークフローを自動的に起動するために、Receive ステップを Launch ステップの直後のステップとして定義する必要があります。
- ステップ名: RecUpdate「プロパティー」ペインで、この Web サービスに対するパートナー・リンク (ChgName) を選択します。
- オペレーション: ChgNameOp
- 「パラメーター」をメッセージ・タイプとして選択します。
- 「オペレーション・パラメーター」では、次のような必須入力フィールドに値を指定します。
表 1. オペレーション・パラメーター名前 |
タイプ |
フィールド名 |
TheName |
ストリング |
(Create) TheName |
UseThisEndpoint |
ストリング |
(Create) UseThisEndpoint
(このフィールドで、Web サービスの実行に使用された WSDL URL を確認できます。) |
- BPM Palette からワークフロー・マップ上に、Activity ステップをドラッグします。このステップでデータ・フィールドを調べ、適切な Receive ステップが実行されたことを確認できます。
- ステップ名: LastSales
- 参加者: 特定のユーザーを選択します (自分自身に割り当てることも可能)。
注: このワークフローの場合、システムによって起動されるため、どのステップにも F_Originator を割り当てないでください。
- パラメーター:TheName およびUseThisEndpoint.
- Launch ステップから RecUpdate へのルート、および、RecUpdate から LastSales へのルートを追加します。
- このワークフロー定義の検証、保存、およびワークフロー・システム・データベースへの転送を行います。
ヒント: UpdateName ワークフロー定義は、ローカル・ファイル・システムに保存しておくと、構成上同じオブジェクト・ストアを使用できない別の FileNet システムからもアクセスできるようになります。
- トラベルのシステム (別の FileNet P8 システムまたは別のアイソレート・リージョン) で、Process Designer を開始して、オブジェクト・ストアまたはユーザーのローカル・ファイル・システムから UpdateName ワークフロー定義を開きます。
- Activity ステップ (LastSales) を選択します。
- このステップに割り当てられている参加者が、現行システムで有効かどうかを確認します。有効でない場合は、その参加者を有効なユーザーに変更します。
- ステップの名前を LastTravel に変更します。
注: ワークフロー定義 (ワークフローのプロパティー)、パートナー・リンク、Receive ステップのすべてのパラメーター、またはデータ・フィールドの名前は変更しないでください。
- このワークフロー定義を検証、保存、および転送します。
これで、セールスのワークフロー環境とトラベルのワークフロー環境で同じワークフロー定義または Web サービスが使用できるようになりました。
SubmitName ワークフロー定義の作成
- トラベルのシステムに新しいワークフロー定義を作成します。
- 「ワークフローのプロパティー」>>「一般」タブを開きます。
ワークフロー名および件名: SubmitName
- 「Web
Services」>>「パートナー・リンク」タブで Web サービスを定義します。
- パートナー・リンク名: InvokeUpdate
- 「開始」を選択し、「WSDL URL」の「Web Services Explorer」をクリックします。
- 「Web Services Explorer」ダイアログ・ボックスの「Web Services ワークフロー」を選択してから、「実行」をクリックすると、ワークフロー・システムへ転送済みの、Receive システム関数を使用したワークフローが表示されます。
- 「UpdateName」を選択してから「OK」をクリックします。
- 「パートナー・リンク」タブで「ポート・タイプ」(ChgNamePort) を選択します。
ヒント: 「タイプ」フィールドで「実行」をクリックしてデータを更新してください。「パートナー・リンク」テーブルに新しいブランク行が表示されます。
- 「ワークフローのプロパティー」>>「データ・フィールド」タブで、2 つのフィールドを作成します。これらのフィールドには、実行時にユーザーが選択できる部署に該当する WSDL URL が割り当てられます。
WSDL_Sales
(ストリング)
WSDL_Travel
(ストリング)
- 「Web サービス」>>「パートナー・リンク」タブで、WSDL URL をコピーして、「データ・フィールド」タブにある、データ・フィールド WSDL_Travel の「式」フィールドの二重引用符の間に貼り付けます。
WSDL_Sales の値はまだ入力していません。この値は、このワークフローの定義を終えた時点で取得できます。
- BPM Palette からワークフロー・マップ上に Activity ステップをドラッグし、AssignSales という名前をつけます。
- 別の Activity ステップをワークフロー・マップ上にドラッグして、AssignTravel という名前を指定します。これらの Activity ステップのいずれに対しても参加者を指定していないことに注意してください。このステップはシステムが実行します。
- General Palette から、System ステップをワークフロー・マップ上にドラッグして、AssignInvoke という名前を指定します。
- システム関数のリストから「割り当て」と「開始」を選択して右の列に移動します。(「割り当て」は「開始」の前に置く必要があります。)
- 「選択された関数」の「開始」をダブルクリックします。「プロパティー」ペインで、パートナー・リンク InvokeUpdate とオペレーション ChgNameOp を選択します。
- 「パラメーター」を選択し、必須フィールドを指定します。
表 2. 必須パラメーター名前 |
タイプ |
フィールド名 |
TheName |
ストリング |
(Create) TheName |
UseThisEndpoint |
ストリング |
(Create) UseThisEndpoint |
- 「選択された関数」の「Assign」をダブルクリックします。
- 「割り当て」ダイアログ・ボックスで、名前 (temp) (後の方のステップで置換) を入力してから、「式ビルダー」の「式」フィールド内をクリックします。
- 「式ビルダー」のリストから「パートナー・リンク」、「InvokeUpdate」の順に選択します。メッセージ・ヘッダーが「ヘッダー情報」に表示されます。
「挿入」をクリックして、式領域の中に挿入します。
- 次の手順でこのヘッダーを編集します。
- 「OK」をクリックして式ビルダーを閉じます。
- 「割り当て」ダイアログ・ボックスの F_EndPointRefInvokeUpdate を「割り当てパラメーター」の名前フィールドに貼り付けます (temp が置き換えられます)。(末尾の = は削除します。)
- Launch ステップを選択します。
- パラメーター:TheName
- 「ルーティング」タブで、次の 2 つの応答オプション、Sales および Travel を入力します。
- Launch ステップから AssignSales ステップへ、また Launch から AssignTravel ステップへ至るルートを作成します。
- AssignSales へのルートを選択して、応答に基づくルーティング条件として、セールス全体を指定します。
- AssignTravel へのルートを選択して、応答に基づくルーティング条件として、トラベル全体を指定します。
- 「AssignSales」ステップを選択します。
「割り当て」タブの「実行前」か「完了後」のいずれかを選択します (システムによって実行されるため、どちらを選択しても結果に影響はありません)。その後、次のようなフィールド割り当てを指定します。
名前:UseThisEndpoint 式:WSDL_Sales
- 「AssignTravel」ステップを選択します。
「割り当て」タブで、上記のステップ 13 と同じ手順に従って、次のフィールド割り当てを指定します。
名前:UseThisEndpoint 式:WSDL_Travel
- データが表示されるように、BPM Palette から、Activity ステップをワークフロー・マップ上にドラッグします。
- ステップ名: UpdateLast
- 参加者: F_Originator
- パラメーター:TheName、WSDL_Sales、WSDL_Travel、および UseThisEndpoint
- ステップ間にルートを追加します。
AssignSales ステップから AssignInvoke ステップへ
AssignTravel ステップから AssignInvoke ステップへ
AssignInvoke ステップから UpdateLast ステップへ
- このワークフロー定義を検証および保存してから、Process Designer を終了します。
この時点では、(トラベルのシステム上で稼働している) UpdateName の WSDL URL は WSDL_Travel データ・フィールドに格納されています。ここで、セールスのシステム上で稼働している UpdateName の WSDL URL を取得するためにセールスのシステムに戻ります。
- セールスのシステムで、「Process Designer」を開始し、SubmitName ワークフロー定義を開きます。
- 「ワークフローのプロパティー」>>「Web サービス」>>「パートナー・リンク」タブをクリックして、「InvokeUpdate」を選択してから、「Web Services explorer」をクリックします。
- 「Web Services ワークフロー」を選択してから、「実行」をクリックし、Receive ステップで転送したワークフロー定義を表示します。
- 「UpdateName」を選択してから、WSDL URL フィールドの内容をクリップボードにコピーします。(ウィンドウを拡張してフィールド全体を表示しておくと便利です。)
- 「キャンセル」をクリックし、パートナー・リンクに対して定義された WSDL URL を変更せずにダイアログ・ボックスを閉じます。
- クリップボードにコピーした WSDL URL を「データ・フィールド」タブの WSDL_Sales の「式」フィールドに貼り付けます。
これで、WSDL_Sales と WSDL_Travel の WSDL URL が両方とも割り当てられました。
- このワークフロー定義を検証して保存します。
代替 WSDL の実行例
- SubmitName ワークフローを起動します。
- Launch ステップで、「TheName」にストリングを入力します。なるべく、選択した WSDL と関係がある名前を選択してください。
応答 (Sales または Travel) を選択して、どちらの Web サービスを実行するかを指定します。
ワークフローを起動します。
- Workplace のタスクで、「SubmitLast」が受信トレイに表示されるまで待ちます。Launch ステップでセールスの応答を選択している場合は、タスクのリストに「LastSales」も表示されます。セールスではなくてトラベルの応答を選択している場合は、トラベルのシステムにログオンしなければ、タスクのリストに「LastTravel」は表示されません。
代替 WSDL を実行時に指定できるだけでなく、上記とほとんど同じ手順を実行して、代替処理のエンドポイント (つまり、最終的な SOAP アドレス) を割り当てることができます。
パートナー・リンクのヘッダー・メッセージの OPTIONAL_FINAL_SOAP_ADDRESS を、アドレスが割り当てられているフィールドで置き換えてから、上記ステップ 9 で説明しているように二重引用符 (") を挿入して、このメッセージを有効なストリング式にします。