第 20 章 - ワークフロー

PIM プロセスは、ワークフローの定義に基づいて管理できます。「ワークフロー・コンソール」を使用して、定義の表示画面で表示できる複数のインスタンスを含むワークフロー・プロセスを作成します。

ワークフロー・インスタンスを作成して「ワークフロー・コンソール」内に表示し、状況に基づいて、ワークフロー中の次のステップにエスカレートする前に、承認が必要であることを通知するアラートを送信できます。

この章では、以下の手掛かりとなる質問を使って、ワークフロー・フィーチャーを要約します。

個々の質問に対する高水準の回答が記載され、『ワークフローの技術に関する詳細情報』セクションに詳細情報が記述されています。

WebSphere Product Center ワークフローとは何か ?

WebSphere Product Center のワークフローは、Product Center アプリケーションか独立した WebSphere Product Center アプリケーションにビジネス・プロセスをインプリメントします。WebSphere Product Center のワークフロー・コンポーネントは、タスク・リスト/状況画面やレポート機能をセットアップする一連の画面を提供します。

ビジネス・プロセスの例:

WebSphere Product Center のコア・アプリケーション中:

WebSphere Product Center の Item Synchronization アプリケーション中:

WebSphere Product Center の Supplier Self Service アプリケーション中:

どのようにワークフローをセットアップするのか ?

ビジネス・プロセス分析者は、UI 画面を使用して、特定のビジネス・プロセスに対応する一連のステップを構築します。ほとんどのステップはスクリプト記述しなくても構成できますが、ワークフロー・ステップのスクリプト記述を使用して追加のワークフロー定義を実行できます。

ワークフロー・ステップごとに、以下を含むさまざまな事前定義済みのステップのタイプがあります。

ステップのタイプに基づいて、ステップのパラメーターをセットアップできます。これらの使用可能なパラメーターには、以下のものがあります。

必要な場合、ステップに別のワークフローをフィードさせることによりネストされたワークフローを定義するか、ステップで別のワークフローからのデータを受け入れることができます。また HTTP、MQ、JMS、FTP、または SMTP を使用してステップを外部システムにコール・アウトすることもできます。

どのようにワークフロー・ステップ間をデータが移動するのか ?

カタログまたは階層属性値は、コラボレーション・エリア内でワークフロー・ステップ間を移動します。コラボレーション・エリアは、一種の「小型カタログ」で、正規のカタログ/階層機能をサポートし、コンテンツ・オーサリング画面、ビュー、仕様検証ルール、継承ルール、およびスクリプトが含まれています。

: WebSphere Product Center のワークフローは、現在カタログおよび階層の属性値の処理のみサポートしており、属性の仕様の処理をサポートしていません。

メインのカタログ/階層から既存の属性値を「チェックアウト」するか、コラボレーション・エリアに新しい値をインポートすることにより、コラボレーション・エリアにデータを挿入します。

例えば、ユーザーは、アイテムのある属性を、あるワークフロー (英語の簡略説明など) 中のあるコラボレーション・エリア内にチェックアウトする一方で、同じアイテムの別の属性を、別のワークフロー (フランス語の簡略説明など) 中の別のコラボレーション・エリア内にチェックアウトできます。

チェックアウトされた属性は、メイン・カタログ中で読み取り専用として使用できます。「カタログまたは階層の複数編集 (Catalog or Hierarchy Multiple Edit)」画面内のアイテム上に、そのアイテムの属性がチェックアウトされたことを示すロック記号が表示されます。その属性は、読み取り専用属性として、メインのカタログ/階層から表示したりエクスポートしたりできますが、変更することはできません。チェックアウト属性を含むコラボレーション・エリア内の変更ステップに対するアクセス権を持つ者だけが、チェックアウト属性に変更を加えることができます。

: メインのカタログ/階層を完全に読み取り専用としてセットアップする一方で、ワークフロー中のすべての属性値に強制的に変更が加えられるようにすることができます。

ステップ中の「アイテムの追加」ボックスにチェック・マークが付いている場合、そのワークフロー・ステップの際にコラボレーション・エリア内に新しいアイテムをインポートできます。コラボレーション・エリアにインポートされるすべてのアイテムは、メインのカタログ/階層中にインポートされる場合と同じインポート検証によって検証されます。メイン・カタログに無効なレコードを保管できないように、コラボレーション・エリアに無効なレコードを保管できません。

一連のアイテムがワークフローを通過し終えたら、新しいレコードや変更されたレコードをメインのカタログ/階層に「チェックイン」できます。ユーザーは、いつでもコラボレーション・エリアからアイテムと属性をドロップすることもできます (アイテムをドロップすると、メイン・カタログ中のアイテムと属性は、編集用に解放されます)。コラボレーション・エリア内のすべてのレコードがワークフローをパススルーし終えたら、空のコラボレーション・エリアを自動的に削除するように、コラボレーション・エリアのプロパティーを設定できます。管理者が手動で空のコラボレーション・エリアを削除することもできます。システムは、削除されたコラボレーション・エリアの履歴を報告用に保存します。

どのタスク・リスト/状況機能を使用できるか ?

ワークフローには、標準的なコラボレーション・コンソールが含まれており、個々のワークフロー・ステップ中の個々のコラボレーション・エリアのデータの状況が絵によって表現されます。

ビジネス・プロセス分析者は、標準的なコラボレーション・コンソールに、起動側で生成されたカスタム・スクリプト画面を補足できます。下記のセクション 10.8 には、ワークフローに使用できる新しいスクリプト操作が記述されています。

デフォルトのホーム・ページ内のどのユーザーでも、コラボレーション・コンソール/タスク・リストを使用できます。ユーザーがワークフロー中のいずれかのステップへのアクセス権を持っている場合は、そのユーザーはそのワークフローのコラボレーション・コンソールへのアクセス権を持ちます。コラボレーション・コンソールは、ワークフロー中のいずれかのステップのアイテム番号を示します。ユーザーは、ステップの緑色の番号をクリックして、その緑色のアイテムと直接対話できます。ユーザーは、ステップの赤いアイテム番号を参照できますが、そのステップのアイテムとは対話できません。

システムは、コラボレーション・エリアの状況の保守に加えて、コラボレーション・エリア内のアイテムごとにアイテムの履歴をサポートします。コラボレーション・エリア内のユーザーは、アイテムをクリックして、個々のワークフロー・ステップでのアイテムに対する変更、承認/拒否、およびユーザーのコメントを参照できます。

どのワークフロー報告機能を使用できるか ?

ワークフローには広範な監査証跡が含まれています。この監査証跡は、データベース中のコラボレーション・エリアごとのワークフロー・ステップごとにすべての属性変更を保管します。備えられているスクリプト操作を使用して、広範な属性レベルのライフ・サイクル・レポートを構築できます。レポートの例を以下に示します。


ワークフローの技術に関する詳細情報

以下に、WebSphere Product Center ワークフローに関する技術上の詳細情報を要約します。

ワークフローのセットアップのステップ

ビジネス・プロセス分析者は、ワークフロー・セットアップ・コンソールおよび「ワークフロー・ステップの編集」画面で、ワークフロー全体をセットアップします。

すべてのワークフローに、以下の 2 つの重要な特性があります。

1) 初期、成功、および失敗のステップはすべてのワークフローに自動的に組み込まれます。タイムアウト・ステップもデフォルトで使用できます。

2) ワークフローは、フロー中に中断せずに初期ステップから成功、失敗、またはタイムアウト・ステップにプロセスが移動する限り、保管します。

初期ステップから成功、失敗、およびタイムアウト・ステップのそれぞれに経路を定める必要はありません。しかし、ワークフローを有効にするには、初期ステップのすべてのパスを成功、失敗、またはタイムアウト・ステップに導かなければなりません。

標準的なビジネス・プロセスの場合のワークフローのセットアップ

ワークフローをセットアップするためのビジネス・プロセス分析者用の標準的なプロセスは、以下のとおりです。

0. ユーザーは、Visio などのプログラムでワークフロー・フローチャートを作成します。

1. 「ワークフロー・コンソール」画面を開きます。

2. 「新規」を押して、新しいワークフローを作成します。「ワークフローの詳細の編集」画面を開きます。

3. ワークフローに名前を付けます。

4. ワークフローの説明を入力します (オプション)。

5. ワークフローのアクセス制御を設定します。このアクセス制御は、このワークフローの表示、編集、または削除を行える役割を判別します。

6. ワークフローでサポートされるコンテナー・タイプを判別します。

カタログおよび階層の 2 つのコンテナー・タイプがサポートされています。カタログをサポートするワークフローは、カタログによって直接サポートされる属性 (カタログ属性およびアイテム-カテゴリー属性) を含むコラボレーション・エリアをサポートできます。階層を含むワークフローは、階層によって直接サポートされる属性 (階層属性およびカテゴリー 2 次属性) を含むコラボレーション・エリアをサポートできます。

7.「ステップの追加」を押して、初期ステップの後の最初のステップを定義します (必要な場合 - 初期ステップを成功ステップに直接マッピングしてワークフローを完成させることもできるため)。この例では、2 番目のステップは価格変更です。

8.「ステップの追加」ボタンにより、「ワークフロー・ステップの編集」画面が開きます。

9. ステップの名前を指定します。

10. ステップの説明を入力します (オプション)。

11. ステップのタイプを選択します。

この例では、価格変更ステップのステップ・タイプは、「変更」です。ステップには 2 つの大まかなタイプがあります。それはユーザー対話を含むステップと、ユーザー対話を含まないステップです。

下記の『ステップ・タイプ』表には、使用可能なステップ・タイプ、個々のステップの使用可能な終了値、ステップで実行者が使用可能かどうか、ステップでノードがアクセス可能かどうか、ステップの期限が使用可能かどうか、ステップで通知が使用可能かどうか、およびステップのスクリプトが使用可能かどうかが説明されています。

12. ステップ・タイプの終了値が事前に決められていない場合は、終了値を選択します。この変更ステップ・タイプの例では、終了値は DONE として事前定義されています。

ステップにユーザー対話が含まれる場合は、終了値はボタン上に表示されるテキストになり、このテキストを使用すると終了値にマップされたステップに移動できます。

ステップにユーザー対話が含まれない場合は、ステップ中のスクリプトの個々の結果を終了値にマップする必要があります。

13. 当該ステップ・タイプの実行者が選択されていない場合は、ステップの実行者を選択します。実行者とは、ステップでサポートされているアクション (変更、AND 承認、OR 承認、別のステップへのディスパッチなど) を実行できる役割、ユーザー、またはその両方のことです。ステップにアクセスできる役割/ユーザーは、実行者のみです。

どのステップでも、役割とユーザーを結合できます。ユーザーが役割中にあり、ユーザーと役割の両方ともステップにマップされている場合は、ユーザーが役割の代理の役目を果たします。

: このポップアップ・ウィンドウ内の選択項目を選択解除するには、CTRL キーを押してから、選択項目を左クリックします。

14. オプションで、当該ステップ・タイプのノードを判別できる場合は、ステップのノードを選択します。

ノードとは、ステップ中で編集に使用できるカタログまたは階層の属性のことです。これらの属性は、特定のカタログまたは階層の仕様中で使用可能でなければなりません。カタログ仕様の場合、この属性にはカタログ属性とアイテム-カテゴリー属性が含まれます。階層仕様の場合、この属性には階層属性とカテゴリー 2 次属性が含まれます。

コンテナーがカタログの場合、複数のカタログ仕様からノードを追加できます。同様に、コンテナーが階層の場合、複数の階層仕様からノードを追加できます。

15. オプションで、当該ステップ・タイプの期限を判別できる場合は、ステップの期限を設定します。期限に達すると、アイテムはタイムアウトにマップされたステップに移動します。

使用可能なステップの期限は以下の 2 つです。

: コラボレーション・エリア全体に使用でき、コラボレーション・エリアにアイテムをロードする際に設定できる期限もあります。このコラボレーション・エリアの期限を使用すると、コラボレーション・エリア内のアイテムの期限はすべて同じになります。

16. オプションで、ステップにアイテムを追加できるようにする必要があるかどうかを設定します。「アイテムの追加」にチェック・マークを付けると、当該ステップでコラボレーション・エリア内へのインポート・フィードを実行できます。

ワークフローをセットアップするビジネス・プロセス分析者が承認ステップ後にアイテムを追加できるようにする場合、そのアイテムは承認ステップを通過できないことに注意してください。

17. オプションで、ステップの通知を設定します。通知はすべてのステップ・タイプで使用できます。通知とは、ステップへの進入またはステップの期限に応じて起動される E メールのことです。ビジネス・プロセス分析者は、通知ボックスに E メール・アドレスを入力します。システムは、ステップへの進入またはステップの期限に達したことに応じて、事前定義された E メールをこのアドレスに送信します。

ビジネス・プロセス分析者がカスタム E メールをユーザーに送信したい場合は、ステップ中のスクリプトによりカスタム E メールを構成できます。

18. オプションで、ステップのスクリプトを設定します。ステップを保管してスクリプト機能にアクセスしてから、「スクリプトの追加」ボタンを押します。どのステップにもスクリプトを設定できます。スクリプト中で使用できるメソッドは IN()、OUT()、および TIMEOUT() の 3 つです。Timeout は Deadline と同等です。個々のメソッド中にスクリプトを組み込む必要はありません。個々の終了値をスクリプト関数にマップする必要があります。

スクリプト・ステップ中で任意の WebSphere Product Center スクリプト操作を使用できます。お客様は以下の目的でスクリプト・ステップを頻繁に使用することと思われます。

19. ワークフロー中の残りのステップについて、ステップ 7 から 18 を繰り返します。この例では、残りのステップは価格承認です。

20. 「次のステップを選択 (Select Next Steps)」画面で、終了値ステップに基づいて該当する次のステップに個々のステップをマップします。この例では、以下のマッピングをセットアップする必要があります。

21. 「GUI の編集」画面で、ワークフローの絵画的表現をセットアップします。ユーザーは、この画面を使用して、ステップやステップ間のフローをピクチャーとして描画できます。「ワークフローの詳細の編集」画面に、このピクチャーへのリンクがあります。

この画面にアクセスするには、「ワークフローの詳細の編集」画面のツールバー内の青い虫眼鏡のボタンを押します。

この画面には、前述の作成したステップがすべて表示されます。個々のステップに関するツールの説明があり、ステップ・パス、説明、タイプ、移入、および移出が表示されます。

ステップをクリックしてから画面上の該当するボックスをクリックして、画面上に個々のステップを配置します。「遷移ライブラリー」内の線を使用して、ステップを接続します。

23. ワークフローを保管します。


ステップ・タイプ

以下のページの表には、すべてのワークフロー・ステップ・タイプと、説明の後に個々のステップ・タイプの解説が記載されています。 

基本システム・ステップ

ステップ・タイプ

初期

 

説明

ワークフローは常に初期ステップから始まり、成功、失敗、またはタイムアウト・ステップで終了しなければなりません。ワークフローあたりの初期ステップのインスタンスは 1 つだけです。

終了値

SUCCESS

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

はい (ユーザーが初期ステップへのインポート・フィードの実行によりワークフロー中に新しいレコードを作成したい場合、そのユーザーは初期ステップ中の「エントリーの追加」ボックスにチェック・マークを付けなければなりません。)

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

成功

 

説明

レコードがワークフロー中の成功ステップに達した場合、システムはワークフローに結合したコラボレーション・エリアに接続しているコア・コンテナー (カタログまたは階層) 中のレコードの検査を試行します。

終了値

SUCCESS

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

失敗

 

説明

レコードがワークフロー中の失敗ステップに達した場合、システムはコラボレーション・エリアからレコードをドロップします。

終了値

FAILURE

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

調整

 

説明

このステップは、エントリーの修復に使用される特殊なステップです。ユーザーは、要件を満たさない、どのステップ中のエントリーでも、調整ステップに送信できます。

終了値

FAILURE

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

なし

通知

あり

スクリプト

あり

ユーザー・ステップ

ステップ・タイプ

AND 承認

 

説明

次のステップに移動する前にすべての実行者がレコードを承認しなければならない承認ステップ。承認者が 1 人でも拒否すれば、レコードは拒否されます。

終了値

APPROVED
REJECTED
[ TIMEOUT ]

終了値が編集可能かどうか

いいえ

実行者

1 人以上

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

あり

通知

あり

スクリプト

あり

 

ステップ・タイプ

OR 承認

 

説明

次のステップに移動する前に、実行者のうちの 1 人でもレコードを承認すればよい承認ステップ。承認者が 1 人でも拒否すれば、レコードは拒否されます。

終了値

APPROVED
REJECTED
[ TIMEOUT ]

終了値が編集可能かどうか

いいえ

実行者

1 人以上

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

あり

通知

あり

スクリプト

あり

 

ステップ・タイプ

ディスパッチ

 

説明

このステップは、ユーザーが次のステップをどれにするか決定できるようにしたい場合に使用されます。このステップは表示専用ステップであることに注意してください。ユーザーは属性を変更できません。

終了値

DONE
[ TIMEOUT ]

終了値が編集可能かどうか

はい

実行者

1 人以上

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

あり

通知

あり

スクリプト

あり

 

ステップ・タイプ

変更

 

説明

このステップは、ユーザーがレコードの集合に変更を加えられるようにしたい場合に使用されます。

終了値

DONE
[ TIMEOUT ]

終了値が編集可能かどうか

いいえ

実行者

1 人以上

ノード

1 つ以上

エントリーを追加できるかどうか

はい

期限

あり

通知

あり

スクリプト

あり

 

ステップ・タイプ

一般

 

説明

このステップは、ユーザーがレコードの集合に変更を加えられるようにしたい場合に使用されます。

終了値

DONE
[ TIMEOUT ]

終了値が編集可能かどうか

はい

実行者

1 人以上

ノード

あり

エントリーを追加できるかどうか

はい

期限

あり

通知

あり

スクリプト

あり

自動ステップ

ステップ・タイプ

自動

 

説明

このステップは、タスクを自動化するのに使用します。このステップの論理は、スクリプトの IN() および OUT() 関数中に収集されます。IN() および OUT() 関数の実行シーケンスについての説明は、下記の『ステップの遷移』の情報を参照してください。

終了値

DONE

終了値が編集可能かどうか

はい

実行者

なし

ノード

あり (ワークフローに自動ステップのみ含まれていて、ユーザーがワークフロー中に属性をチェックアウトしたい場合には、自動ステップにノードを組み込む必要があります。)

エントリーを追加できるかどうか

はい

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

待機

 

説明

このステップは、レコードがユーザーを待機するようにしたい場合か、スクリプトがレコードを次のステップに移動するようにしたい場合に使用します。また、特定の日付に、ソース・コンテナーにエントリーをチェックインして戻す場合にも使用できます。例えば、11 月 15 日のみにエントリーをソース・コンテナーとマージしたい場合は、期限が 11 月 15 日の待機ステップを成功ステップの前に挿入します。

終了値

DONE
[ TIMEOUT ]

終了値が編集可能かどうか

はい

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

あり

通知

あり

スクリプト

あり

 

ステップ・タイプ

固有化

 

説明

これらのステップは、(普通は分割後に) ワークフローの他の分岐中のレコードの他のコピーをすべて除去したい場合に使用します。このステップを使用すると、このステップに達したレコードは、確実にこのステップ中に入り、このステップ専用になります。

終了値

DONE

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

マージ

 

説明

このステップは、分割後に幾つかのステップをマージするのに使用します。マージ・コピーを指すステップが n 個ある場合、レコードが次のステップに移動するには、その前にこのレコードの n 個のコピーがマージ・ステップを通過しなければならないことに注意してください。着信ステップの数を減らすには、コンデンサーを使用します ...

終了値

DONE
[ TIMEOUT ]

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

コンデンサー

 

説明

このステップは、マージ・ステップの前に使用し、マージ・ステップを指すエントリーの数を減らします。そのためには、幾つかのステップでコンデンサーを指し示すようにします…

終了値

DONE
[ TIMEOUT ]

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

コンデンサー

 

説明

このステップは、マージ・ステップの前に使用し、マージ・ステップを指すエントリーの数を減らします。そのためには、幾つかのステップでコンデンサーを指し示すようにします…

終了値

DONE

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

なし

通知

あり

スクリプト

あり

 

ステップ・タイプ

一部取り消し

 

説明

このステップは、このワークフロー中のノードに加えられた変更を取り消すのに使用されます。実際には、レコードがこの状態になると、これらのノードの値はメイン・カタログから再フェッチされます。

終了値

DONE
[ TIMEOUT ]

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

1 つ以上。これらのノードはメイン・カタログから再フェッチされます。

エントリーを追加できるかどうか

いいえ

期限

あり

通知

あり

スクリプト

あり

 

ステップ・タイプ

ネスト・ワークフロー

 

説明

このステップは、別の有効なワークフローをステップとして組み込むのに使用します。このステップの終了値は、組み込まれたネスト・ワークフローの終了値と同じになります。

終了値

SUCCESS
FAILURE
TIMEOUT

終了値が編集可能かどうか

いいえ

実行者

なし

ノード

なし

エントリーを追加できるかどうか

いいえ

期限

あり

通知

あり

スクリプト

あり

ステップの遷移

自動ステップのステップ遷移:

1/ IN() 関数が実行されます (空の可能性もあります)。
2/ OUT() 関数が実行されます (空の可能性もあります)。OUT() 関数は、レコードの終了値を設定する必要があります。ステップに終了値が 1 つしかない場合は、デフォルトでその値が選択されます。
3/ ワークフロー・グラフ (個々の終了値を 1 つまたは複数の次のステップにマップする) を使用して、レコードが次のステップに経路指定されます。

ユーザー・ステップのステップ遷移:

1/ IN() 関数が実行されます (空の可能性もあります)。
2/ このステップ中のレコードが、「拡張コンテンツ・オーサリング画面」に表示されます。
3/ この画面で、実行者がレコードを選択し、ステップの終了値の 1 つをこのレコードの集合に割り当てます。
4/ IN() 関数が実行されます (空の可能性もあります)。IN() 関数には、レコードが実際にこのステップから出る前に終了値を変更する機会があります。
5/ ワークフロー・グラフ (個々の終了値を 1 つまたは複数の次のステップにマップする) を使用して、レコードが次のステップに経路指定されます。

ネスト・ワークフロー

ワークフローを、別のワークフロー中にネストできます。このプロセスは、以下のとおりです。

: コンテナー・タイプが違うワークフローは、ネストできません。したがって、カタログ・ワークフロー中に階層ワークフローをネストすることはできません。