ワークフローモデルの作成と実装
Related information
ワークフローモデルの作成
ワークフローモデル領域に新しいワークフローモデルを作成できます。作成時に必要な情報は、リポジトリ内で一意の名前のみです。
ワークフローモデルのステップは、単一の遷移で初期化されます。ワークフローモデルを完全に実装するには、この最初の移行以降の一連のステップを定義する必要があります。
ステップの実装
ワークフローモデルは、データに対して実行する必要のあるさまざまな操作と関連する条件に対応するステップを定義します。次のタイプのステップがあります。
-
ユーザータスク
-
スクリプトタスク
-
条件
-
サブワークフローの呼び出し
-
待機タスク
データコンテキストは、各データワークフローにリンクされています。このデータコンテキストを使用して、ワークフローのステップで入力変数および出力変数として使用できる変数を定義できます。
次のステップの進捗戦略
各ステップタイプ(複数の作業項目を持つユーザータスクを除く)について、プロパティを使用して、次のステップに適用する必要のある進捗戦略を定義できます。ステップが完了すると、ワークフローの実行時のナビゲーションを定義するために、この戦略が評価されます。デフォルトでは、進捗戦略は「作業項目テーブルの表示」に設定されています。その場合、ステップ実行後、次の作業項目を選択するために、作業項目テーブル(作業項目の受信トレイまたは監視>作業項目)が自動的に表示されます。
別の戦略として、「次のステップを自動的に開く」を選択することができます。この戦略により、ユーザーはこのワークフローで作業を続け、次のステップを直接実行できます。この実行に続いて、作業項目に到達し、接続されたユーザーがそれを開始できる場合、作業項目は自動的に開かれます(複数の作業項目に到達した場合、最初に作成されたものが開かれます)。それ以外の場合は、次のステップの進捗戦略が評価されます。作業項目に到達していない場合は、作業項目テーブルが表示されます。
この戦略は、作業項目の受信ボックスに戻らずに、連続していくつかのステップを実行するために使用されます。
この戦略を無視することにつながるいくつかの制限があります。その場合、作業項目テーブルが自動的に表示されます。このプロパティは、現在のステップが複数の作業項目を持つユーザータスクの場合に無視されます。
条件の場合、「trueの場合、次のステップを自動的に開く」および「falseの場合、次のステップを自動的に開く」という他の2つの戦略を使用できます。これらの戦略により、条件の結果に応じて適用する戦略を選択できます。
サブワークフローの呼び出しの場合、進行戦略を正確にするために専用のプロパティ«フォアグラウンドサブワークフロー»を使用できます。前の進捗戦略«次のステップを直接開く»の場合、フォアグラウンドサブワークフローを選択する必要があります。このフォアグラウンドサブワークフローに含まれるステップと関連する進捗戦略のみが評価されます。フォアグラウンドサブワークフロープロパティに関する次の特定のルールに注意してください。
-
サブワークフローが1つだけ起動された場合、それは自動的にフォアグラウンドで考慮されます。
-
前のステップで進捗戦略 «次のステップを自動的に開く» が選択されていない場合、フォアグラウンドサブワークフロープロパティは無視されます。
-
すべてのサブワークフローが完了し、最後に完了したサブワークフローがフォアグラウンドの場合、サブワークフロー呼び出しステップで定義された進捗戦略が評価されます。進捗戦略が«次のステップを自動的に開く»の場合、受信トレイを表示せずに次のステップを開くことができます。すべての場合において、サブワークフローの最後のステップの進捗戦略は常に無視されます。
非表示の進行中のビュー
ステップタイプごとに、ワークフローの進行状況ビューでデフォルトで非表示にする必要があるステップを定義するためのプロパティを使用できます。
このプロパティを有効にすると、管理者以外のユーザー(ビルトインの管理者でもワークフロー管理者でもない)のワークフローの進行状況ビューでステップが自動的に非表示になります。非表示のステップは、オンデマンドで表示できます。
ユーザータスク
ユーザータスクは、人間のユーザーが実行するアクションを含むステップです。それらのラベルと説明はローカライズできます。
モード
下位互換性の理由から、デフォルトモードとレガシーモードの2つのユーザータスクモードを使用できます。
デフォルトでは、ユーザータスクは単一の作業項目を生成します。このモードでは、プロファイルのリストに作業項目を提供したり、ワークフローの進行状況ビューにアバターを直接表示したりするなど、より多くの機能が提供されます。
レガシーモードでは、ユーザータスクはいくつかの作業項目を生成できます。
デフォルトでは、ユーザータスク作成サービスはレガシーモードで非表示になっています。これを表示するには、
ebx.propertiesファイルでプロパティを有効にする必要があります。詳細については、ユーザータスクのレガシーモードの無効化を参照してください。
プロファイルのリスト
ユーザータスクのプロファイルの定義は、ユーザータスクモードによって異なる場合があります。
次のプロファイルに提供
定義されたプロファイルは、ユーザータスクが提供されているロールまたはユーザーです。ユーザータスクを実行すると、単一の作業項目が生成されます。単一のユーザーが定義されている場合、作業項目はこのユーザーに自動的に割り当てられます。ロールが定義されている場合、作業項目はロールのメンバーに提供されます。複数のユーザーとロールが定義されている場合、作業項目はこれらのユーザーとこれらのロールのメンバーに同時に提供されます。
参加者
参加者は、ユーザータスクの対象となるロールまたはユーザーです。デフォルトでは、ユーザータスクを実行すると、プロファイルによって作業項目が生成されます。プロファイルがロールではなくユーザーを参照している場合、作業項目はそのユーザーに直接割り当てられます。プロファイルがロールの場合、作業項目はロールのメンバーに提供されます。
詳細情報について
以下も参照してください。:
サービス
TIBCO EBX®には、次のビルトインサービスが含まれています。
-
データスペースへのアクセス
-
データへのアクセス(デフォルトのサービス)
-
データスペースマージビューへのアクセス
-
内容の比較
-
新しいレコードの作成
-
レコードの複製
-
データのCSVファイルへのエクスポート
-
データのXMLファイルへのエクスポート
-
CSVファイルからのデータインポート
-
XMLファイルからのデータインポート
-
データスペースのマージ
-
データスペース、スナップショット、またはデータセットの検証
以下も参照してください。:
構成
主なオプション > 拒否の有効化
デフォルトでは、決定を保存するときに、*承認 (accept)*アクションのみがユーザーに提供されます。
このフィールドを「はい」に設定することにより、ユーザーが作業項目を拒否できるようにすることもできます。
主なオプション > 確認リクエストの有効化
デフォルトでは、ユーザーが「承認」または「拒否」ボタンをクリックして決定を保存すると、ユーザータスクの実行後に確認要求が表示されます。
この確認プロンプトを無効にするには、このフィールドを「はい」に設定します。
主なオプション > コメントの有効化
主なオプション > コメントが必要
デフォルトでは、作業項目に関連付けられたコメントを送信することはオプションです。
このフィールドを目的の検証基準に設定することにより、決定を保存する前にユーザーにコメントの入力を要求することができます。コメントは、常に必須、作業項目が承認された場合にのみ必須、または作業項目が拒否された場合にのみ必須に設定できます。
主なオプション > カスタマイズされたラベル
ユーザータスクが実行されると、ユーザーは対応するボタンをクリックして作業項目を承認または拒否できます。ワークフローモデルでは、ユーザータスクがこれら2つのボタンのカスタマイズされたラベルと確認メッセージを定義することができます。これを使用して、ボタンをより具体的なコンテキストに適合させることができます。
終了 > タスク終了基準
単一のユーザータスクを複数の参加者に割り当てることができるため、ワークフローの実行中に複数の作業項目が生成されます。ワークフローモデルでユーザータスクを定義する場合、コンポーネントの作業項目のステータスに基づいて、ユーザータスクが終了したかどうかを判断するための事前定義された方法の1つを選択できます。ユーザータスクの終了要件が満たされると、データワークフローはそのモデルで定義された次のステップに進みます。
たとえば、製品レコードを承認する必要があるユーザータスクの場合、3人の潜在的な参加者を指定できます。タスク終了基準では、製品レコードを3人のユーザー全員が承認する必要があるのか、最初に応答したユーザーのみが承認する必要があるのかを指定できます。
デフォルトのユーザータスク終了基準は、「すべての作業項目が受け入れられたとき」です。
注意:
メソッド
UserTask.handleWorkItemCompletionをオーバーライドするサービス拡張機能を指定してユーザータスクの完了の決定を処理する場合、拡張機能の開発者は、コード内からタスク終了基準が定義されていることを確認する必要があります。ユーザーインターフェイスを介して満たされています。詳細については、JavaDocのUserTask.handleWorkItemCompletionを参照してください。
終了 > 拒否許容度
デフォルトでは、ユーザーがワークフローの実行中に作業項目を拒否すると、ユーザータスクはエラー状態になり、ワークフローの進行は停止します。ユーザータスクがエラー状態の場合、ワークフロー管理者は、ワークフローの実行を続行するために、エラーが発生したステップを再生することによって介入する必要があります。
このデフォルトの動作を変更するために、許容する特定の数の作業項目の拒否を定義することができます。許容される拒否の制限内では、エラーは発生せず、ユーザータスクをいつ終了するかを決定するのはタスク終了基準です。
次のタスク終了基準は、すべての拒否を自動的に許容します。
-
「すべての作業項目が承認または拒否されたとき」
-
「すべての作業項目が受け入れられたとき、または1つの作業項目が拒否された直後」
拡張
特定のデータワークフローのコンテキストでタスクが動的に動作するように、カスタムクラスを指定できます。たとえば、これを使用して、デフォルトの動作とは異なる方法で作業項目を作成したり、ユーザータスクを完了したりできます。
指定されたルールは、
UserTaskクラスを拡張する必要があるJavaBeanです。
注意:
ルールが指定され、
handleWorkItemCompletionメソッドがオーバーライドされた場合、完了戦略は自動的にチェックされなくなりました。開発者は、このメソッド内で完了を確認する必要があります。
通知
特定のイベントが発生したときに、通知メールをユーザーに送信できます。イベントごとに、コンテンツテンプレートを指定できます。
ユーザータスクに関連して送信されるすべての電子メールを受信するモニタープロファイルを定義することができます。
以下も参照してください。:
リマインダー
未処理の提供または割り当てられた作業項目のリマインダーメールは、関係するユーザーに定期的に送信できます。リマインダーの受信者は、作業項目が提供または割り当てられるユーザーと、コピーの受信者です。
リマインダーメールの内容は、作業項目の現在の状態によって決まります。つまり、作業項目が提供されている場合、通知には「提供された作業項目」テンプレートが使用されます。作業項目が割り当てられている場合、通知は「割り当てられた作業項目」テンプレートを使用します。
期限
各ユーザータスクには、完了期限を設定できます。この日付が過ぎ、関連する作業項目が完了していない場合、関係するユーザーに通知メールが送信されます。この同じ通知メールは、タスクが完了するまで毎日送信されます。
期限には2つのタイプがあります。
-
絶対期限:カレンダーの日付。
-
相対期限:時間、日、または月単位の期間。期間は、ユーザータスクの開始またはワークフローの開始である参照日に基づいて評価されます。
スクリプトタスク
スクリプトタスクは、人間のユーザーが関与することなく実行される自動タスクです。
2種類のスクリプトタスクが存在し、一度定義すると、ワークフローモデルのステップで使用できます。
|
ライブラリスクリプトタスク
|
EBX®には、そのまま使用できる多数のビルトインライブラリスクリプトタスクが含まれています。
追加のライブラリスクリプトタスクは、 module.xmlファイルで宣言する必要があります。ライブラリスクリプトタスクは、そのラベル、説明、およびパラメーターを定義する必要があります。ユーザーがワークフローモデルのステップに対してライブラリスクリプトタスクを選択すると、関連するパラメーターが動的に表示されます。
|
|
特定のスクリプトタスク
|
カスタムアクションを実行するJavaクラスを指定します。関連するクラスは、ワークフローモデルと同じモジュールに属している必要があります。そのラベルと説明は、ワークフローモデルのユーザーに動的に表示されません。
|
ライブラリスクリプトタスク
EBX®には、次のビルトインライブラリスクリプトタスクが含まれています。
-
データスペースの作成
-
スナップショットの作成
-
データスペースのマージ
-
アーカイブのインポート
-
データスペースを閉じる
-
データコンテキスト変数の設定
-
メールの送信
-
レコードの削除(注:このスクリプトは複数のレコードを削除できます)
ライブラリスクリプトタスクは、クラス
ScriptTaskBeanを拡張するクラスです。ビルトインのライブラリスクリプトタスクに加えて、ワークフローモデルで使用するために追加のライブラリスクリプトタスクを定義できます。それらのラベルと説明はローカライズできます。
メソッド
ScriptTaskBean.executeScriptは、データワークフローが対応するステップに到達したときに呼び出されます。
注意:
メソッド
ScriptTaskBean.executeScriptは、メソッドが実行されるとすぐにデータワークフローが進行するため、スレッドを作成してはなりません。したがって、このメソッドの各操作は同期している必要があります。
例を参照してください。
実装がJavaBean仕様に従っている場合、ライブラリスクリプトタスクの変数を動的に設定することができます。変数は、
module.xmlでライブラリスクリプトタスクのBeanのパラメーターとして宣言する必要があります。ワークフローデータコンテキストには、JavaBeanからアクセスできません。
注意:
一部のビルトインライブラリスクリプトタスクは、国際化と互換性がないため、「非推奨」としてマークされています。国際化と互換性のある新しいスクリプトタスクを使用することをお勧めします。
特定のスクリプトタスク
特定のスクリプトタスクは、クラスScriptTaskのサンプルを拡張するクラスです。
メソッド
ScriptTask.executeScriptは、データワークフローが対応するステップに到達したときに呼び出されます。
注意:
メソッド
ScriptTask.executeScriptは、メソッドが実行されるとすぐにデータワークフローが進行するため、スレッドを作成してはなりません。したがって、このメソッドの各操作は同期している必要があります。
例を参照してください。
特定のスクリプトタスクに対してBeanの変数を動的に設定することはできません。ただし、ワークフローデータコンテキストにはJavaBeanからアクセスできます。
条件
条件は、ワークフローの決定ステップです。
2種類の条件が存在し、一度定義すると、ワークフローモデルのステップで使用できます。
|
ライブラリの状態
|
EBX®には、そのまま使用できる多数のビルトインライブラリ条件が含まれています。
追加のライブラリスクリプトタスクは、 module.xmlファイルで宣言する必要があります。ライブラリ条件は、そのラベル、説明、およびパラメーターを定義する必要があります。ユーザーがワークフローモデルのステップのライブラリ条件を選択すると、関連するパラメーターが動的に表示されます。
|
|
特定の条件
|
カスタム条件を実装するJavaクラスを指定します。関連するクラスは、ワークフローモデルと同じモジュールに属している必要があります。そのラベルと説明は、ワークフローモデルのユーザーに動的に表示されません。
|
ライブラリの状態
EBX®には、次のビルトインライブラリ条件が含まれています。
-
データスペースを変更しましたか ?
-
データは有効か?
-
最後のユーザータスクは受け入れられましたか ?
-
値は null または空ですか ?
-
値は等しいか?
ライブラリ条件は、クラス
ConditionBeanを拡張するクラスです。ビルトインのライブラリ条件に加えて、ワークフローモデルで使用するために追加のライブラリ条件を定義できます。それらのラベルと説明はローカライズできます。
例を参照してください。
実装がJavaBean仕様に従っている場合、ライブラリ条件の変数を動的に設定することができます。変数は、
module.xmlでライブラリ条件のBeanのパラメーターとして宣言する必要があります。ワークフローデータコンテキストには、JavaBeanからアクセスできません。
特定の条件
サブワークフローの呼び出し
ワークフローモデルのサブワークフロー呼び出しステップは、現在のワークフローを待機状態にし、1つ以上のワークフローを呼び出します。
サブワークフロー呼び出しステップで単独で呼び出すことにより、現在のワークフローに別のワークフローモデル定義を含めることができます。
複数のサブワークフローが単一のステップで呼び出される場合、それらは同時に並行して実行されます。元のワークフローが次のステップに進む前に、すべてのサブワークフローを終了する必要があります。各サブワークフローのラベルと説明はローカライズできます。
プロパティ«フォアグラウンドサブワークフロー»は、複数のサブワークフローが起動されたときに進行戦略を正確にするのに役立ちます。前のステップの進行戦略が「次のステップを直接開く」である場合、このプロパティは、フォアグラウンドで考慮する必要があるサブワークフローを定義します(この動作を保持できるサブワークフローは1つだけです)。このフォアグラウンドサブワークフローで生成された作業項目のみが、受信ボックスを通過せずに自動的に開くことができます。サブワークフローが1つだけ定義されている場合、このプロパティは無視されます(単一のサブワークフローが自動的にフォアグラウンドで考慮されます)。詳細については、進捗戦略を参照してください:次のステップの進捗戦略
2種類のサブワークフロー呼び出しが存在します。
|
静的
|
データワークフローでステップに到達するたびに呼び出される1つ以上のサブワークフローを定義します。サブワークフローごとに、ローカライズされたラベルと説明、およびデータコンテキストでの入力変数と出力変数のマッピングを設定できます。
このモードは、起動するサブワークフローと出力マッピングが事前に決定されている場合に役立ちます。
|
|
動的
|
カスタムサブワークフロー呼び出しを実装するJavaクラスを指定します。コードによってサブワークフローとして呼び出される可能性のあるすべてのワークフローは、依存関係として宣言する必要があります。
ワークフローデータコンテキストには、JavaBeanから直接アクセスできます。
動的なサブワークフローの呼び出しは、
module.xmlファイルで宣言する必要があります。
このモードは、サブワークフローの起動が条件付きである場合(たとえば、データコンテキスト変数に依存している場合)、または出力マッピングがサブワークフローの実行に依存している場合に役立ちます。
|
待機タスク
ワークフローモデルの待機タスクステップは、特定のイベントが受信されるまで、現在のワークフローを待機状態にします。
待機タスクに到達すると、ワークフローエンジンは、待機タスクに関連付けられた一意の履歴書識別子を生成します。この識別子は、待機タスクを再開するために必要であり、その結果、関連するワークフローが必要になります。
待機タスクは、待機タスクの再開を許可されているプロファイルを指定します。待機タスクBeanを実装するJavaクラス:
WaitTaskBean。
ワークフローデータコンテキストには、JavaBeanから直接アクセスできます。
待機タスクBeanは、
module.xmlファイルで宣言する必要があります。
まず、ワークフローが待機を開始すると、待機タスクBeanが呼び出されます。このとき、生成された履歴書識別子は、たとえばWebサービスを呼び出すために使用できます。次に、待機タスクが再開されると、待機タスクBeanが呼び出されます。このようにして、受信したパラメーターに従ってデータコンテキストを更新することができます。
注意:
ビルトインの管理者には、ワークフローを再開する権利が常にあります。
ワークフローダイアグラムの編集
概要
ワークフローモデルは、BPMNのような編集可能なダイアグラムで表示されます。
このビューは完全な編集機能を提供し、モデラーが設計しているワークフローモデルを明確に把握するのに役立ちます。
また、ダイアグラムはBPMN標準から派生していますが、EBX®ワークフローの概念がわずかに異なるため、BPMNを厳密に表したものではないことにも注意してください。
レイアウトの保存
変更したレイアウトを保存することができます。これはユーザーベースの保存ではないことに注意してください。すべてのユーザーによって共有されます。
アクション
|
PNGとしてエクスポート
|
PNG画像を作成します。
|
|
SVGとしてエクスポート
|
SVG画像を作成します。
|
|
PDFとしてエクスポート
|
ワークフローモデルからPDFドキュメントを作成します。エクスポートをカスタマイズするために、いくつかのプロパティを利用できます。PDFページの向き(横向き、縦向き)、サイズ(A3、レターサイズなど)を設定することができます。また、モデルに対してより詳細な情報を提供するための2つのプロパティがあります。
|
表示
|
レイアウト>デフォルトのレイアウト
|
ダイアグラムにデフォルトのレイアウトを適用します。
|
|
表示 > グリッドの表示/非表示
|
グリッドが表示されていない場合はグリッドを表示し、表示されていない場合は非表示にします。
|
|
表示 > ズームイン
|
ダイアグラム上でズームインが実行されます。より速く進むには、マウスがダイアグラムの境界を指している状態で「Ctrl、上マウスホイール」を使用できます。
|
|
表示 > ズームアウト
|
ダイアグラム上でズームアウトが実行されます。より速く進むには、マウスが図の境界を指している状態で「Ctrl、下マウスホイール」を使用できます。
|
|
表示 > ステップ識別子の表示/非表示
|
ワークフローステップの識別子を表示するバッジを表示/非表示にします。
|
|
平面図 > 階層
|
有効になっている場合、特定のワークフローモデルの階層ビューを表示します。
|
ボタン
|
レイアウトを保存
|
現在のレイアウトを保存します。
|
|
レイアウトを保存して閉じる
|
現在のレイアウトを保存し、サービスを閉じます。
|
|
元に戻す
|
変更を元に戻し、以前に保存したレイアウトを再読み取りします。
|
|
閉じる
|
サービスを閉じます。
|
編集
|
作成
|
リンクにカーソルを合わせるか選択すると、「+」が表示されます。これは、新しいステップを作成するために使用されます。
|
|
削除
|
DEL
「DEL」キーを押すと、選択したノードが削除されます。
このアクションは元に戻せないことに注意してください。
|
|
ノードツールバー
|
ノードにカーソルを合わせるか、ノードを直接選択すると、ツールバーが表示されます。次のいずれかに使用されます。
|
|
ノードの編集
|
ステップをすばやく編集するには、ノードをダブルクリックします。
|
機能
ダイアグラムビューは、便利な追加機能を提供します。
|
最後のアクションを元に戻す
|
CTRL + Z
以下の操作を行った後は実行できないことに注意してください。
|
|
ズームイン/ズームアウト
|
マウスの中央ボタン、次にマウスホイール/ CTRL、次にマウスホイール。 表示以下も参照してください
|
|
複数選択
|
Ctrlボタンを押しながら選択したノードまたはリンクをクリックします/選択長方形を描画します(領域を描画する前に、左クリックを1秒間押し続ける必要があります)。
|
|
リンク描画のカスタマイズ
|
リンクをクリックすると、角に表示される四角をドラッグしてセグメントを移動するか、中央の円を移動して特定のセグメントを分離することができます。
|
|
ステップの編集
|
ステップをダブルクリックすると、エディションフォームが表示されます。
|
|
概要
|
パネル内を移動するために使用できるミニチュアワークフローダイアグラムビューを備えたパネルが利用可能になりました。このパネルは、ワークフローダイアグラムビューに割り当てられた領域内で折りたたんだり、展開したり、ドラッグしたりできます。
|