Therefore™ でのワークフロー プロセスの設計は、ワークフロー 設計の最後のステップです。最終的なシステムを設計する前に、顧客のビジネス プロセスが完全に理解されていること、およびワークフローに最適化されていることが非常に重要です。また、Therefore™ でワークフローをトリガーするものを理解することも重要です。
1.ワークフロー オブジェクトを右クリックして、新しいプロセスを選択します。 
2.プロセスの定義プロパティー ウィンドウが表示されます。ここで新しいプロセスを構成できます。 
3.電子メールによる通知タブを選択して、メール通知を設定します。 

|
•メール通知を編集せず、通知メールを送信するチェックボックスをチェックした場合、既定の通知と委任の電子メールが送信されます。しかし、期限切れの電子メールに関しては、受信者を定義する必要があります。 •ワークフローの各手動タスクに対して、これらの設定を個別にカスタマイズすることもできます。その場合、これらの設定が優先され、既定のメール通知設定は使用されません。これは、電子メール通知をタスク固有のものにする場合に便利です。 |
4.設定が完了したら、OK をクリックします。2 つのシステム タスク(開始と終了)が設計ウィンドウに表示されます。開始タスクと終了タスクの名前は、必要に応じて編集できます。アイコンをダブルクリックして、新しい名前を入力します。 
|
新しいプロセスを作成した後、タスクを追加できます。使用可能なタスクは、3 つのグループに分けられています。
手動タスク
基本的に、手動タスクはユーザーが実行する必要のある機能です。例えば、この「ドキュメントをクリック」や「この注文を承認」などがあります。標準の手動タスクに加えて、ユーザーがドキュメントを新しいカテゴリーに移動する必要のある手動のカテゴリーの変更タスクがあります。
ルーティング タスク
これらのタスクは、ワークフローをルーティングし、同時処理が可能な並列ストリームにワークフローを分割するために使用します。
条件を使用して、ワークフローを合理的にルーティングできます。例えば、請求書の金額と部署に応じて、ワークフローのルーティング先となるユーザーが異なることがあります。その場合、条件と共にルーティング タスクを使用します。

遷移をダブルクリックして、プロパティを開きます。マクロ ボタンをクリックして、カテゴリー内のすべインデックス フィールドのリストを取得します。関連するインデックス フィールドを選択して、条件を作成します。SQL ステートメントの詳細については、条件を参照してください。すべての条件を作成した後、ELSE 条件を作成して、その他のすべてのケースをカバーできます。


|
条件での依存フィールドの使用については、依存モードを参照してください。
|
|
並列ワークフローは強力な機能で、ワークフロー インスタンスを並列パスに分割して、後で再度結合することができます。この機能は、以下の概念をサポートします。
•並列処理が行われる複数のパスへの分割(複数のタスクを同時に完了する必要のある製造プロセスなど)。 •複数のユーザーが処理する必要のある単一のタスク(複数のマネージャーの承認が必要な契約など)。
並列ワークフローの鍵となる要素は、ワークフロー トークンです。インスタンスを分割すると、ワークフローを全体で進行するトークンが作成されます。1 つのワークフローには、プロセスを移動するワークフロー トークンを任意の数だけ設定できます。ワークフロー ユーザーにとっては、トークンと標準のインスタンスとの間に違いはありません。通常の場合と同様に、ワークフローの受信トレイには各タスクが表示され、ユーザーがタスクを要求するとタスク ダイアログが開きます。結合タスクは、設定した数のトークンを単一のインスタンスに再度結合するために、すべてのトークンが到着するのを待機します。
並列ワークフローは、4 つの特別なタスク(分割、 ユーザー-分割、 結合、および例外-分割)を使用して作成できます。設定した数ののトークンを再度 1 つのワークフローに結合するには、それぞれの分割に対応する結合が必要です。
最初のシンプルな例では、分割タスクと結合タスクを使用して、1 つのワークフロー インスタンスを複数のパスに分割する方法を示します。この例では、経理部と販売部の部長の承認が必要な契約を扱います。契約額が $100,000 を超える場合は CEO にも送られます。結合タスクは、未完了のタスクの数を動的に計算し、適切な数のトークン(結合タスク設定で設定された)が戻るまで結合を待機します。

しかし、1 つの分割タスクが必ずしも 1 つの結合タスクに結合する必要はありません。プロセスにおいて、ワークフロー インスタンスの複数のタスクが任意のタイミングで結合することもあり得ます。それぞれの結合タスクは未処理の可能性のあるトークンを動的に計算し、設定した数のトークンが戻るのを待機します。次の例も同じプロセスですが、経理部と販売部の部長が契約を承認した後、最終的なエラー チェックのためにプルーフに送る必要があります。最初の結合タスクは未完了のトークンの数を動的に計算し、経理部と販売部の部長からトークンが返されてから結合します。このタスクは、3 つ目のタスクが作成されて CEO のルートに分割されることを「知って」います。しかし、この分割によるトークンは、この時点では結合できないので無視されます。同様に、最後の結合タスクは未完了である可能性のあるトークンの数を動的にチェックします。$100,000 以下の契約の場合、この結合タスクはプルーフからのトークンを待機するだけであることを「知って」います。そして、$100,000 を超える契約の場合、プルーフと CEO の両方からのトークンを待機します。

|
次に、例外結合について説明します。基本的に、このタスクはすべてのアクティブな分割を中止します。例えば、契約交渉に関与している一方の当事者が交渉の中止を突然決定した場合、その他のすべてのタスクには意味がなくなり、ワークフローが終了します。例外結合がトリガーされた場合、未完了のすべてのトークンを 「収集」して結合します。次の例では、契約が取り消されると、プロセス内のすべてのアクティブなトークンが直ちに収集されて結合されます。ワークフロー タスクはユーザーのワークフローの受信トレイから削除され、ワークフローは次のタスクに進みます(この例ではワークフローが終了)。

|
最後に、ユーザー-分割タスクについて説明します。このタスクでは、実行時に分割を動的に割り当てることができます。例えば、各マネージャーに個々の手動タスクを作成する代わりに、ユーザー-分割を使用して、このタスクの後に手動タスクに追加されたユーザーに基づいてワークフローを分割できます。

次の例では、契約ワークフローがユーザー-分割にルーティングされ、手動タスクによる定義に従って、必要な数だけのトークンに自動的に分割されます。

承認タスクは 1 つだけですが、割り当てられた各ユーザーは独立したトークンを受け取って、標準の分割タスクと同様に作業することができます。割り当てられたすべてのユーザーがタスクを完了した後、タスクは再度結合されます。

例外結合を使用すると、部長の 1 人が契約を却下した場合にすべてのトークンを収集して分割を中止することもできます。

|
1.それぞれの分割タスクには、少なくとも 1 つの対応する結合タスクが必要です。次の例では、結合タスクが定義されていないので、プロセスの定義が無効です。

2.分割/結合の中からは、分割タスクや分割の前のタスクにループ バックすることはできません。そのようなループが発生すると、新しいトークンが不必要に作成されます。


|
もちろんループを設定することは可能ですが、分割/結合タスクの内側または完全な外側に配置する必要があります。次の例では、確認から承認依頼までのループは分割/結合の完全に外側で発生するので有効です。
|

3.2 つの結合タスクを 1 つの遷移に接続することはできません。その理由は、2 つの結合タスクはそれぞれもう一方が先に完了することを待機するからです。

|
|
自動タスク
システムによって実行されるタスクで、ユーザーの介入は必要ありません。多くの一般的なプロセス操作を実行する多くのタスクがあります。
|
遷移では、タスク間でワークフローを移動できます。それぞれの遷移は、ワークフローが取ることのできる別のルーティング オプションを提供します。
•条件を使用して、タスクを完了するためにユーザーに提供されるオプションを動的にフィルターすることもできます。例えば、1 つの手動タスクからの 2 つの遷移がある場合、タスクを実行するユーザーには、タスクを終了するための 2 つのオプションが提示されます。 •遷移は、タスクの期限が切れた場合にワークフローのルートを変更するために使用することもできます。例えば、ワークフローをマネージャーにルーティングすることができます。 |