プロセスの開始および終了の定義
開始イベントはプロセスの開始ポイントを定義するフロー要素です。 様々なタイプの開始イベントにより、プロセス・インスタンスの作成方法が決定します。 一方、終了イベントはプロセスの終了ポイントを定義します。 様々なタイプの終了イベントにより、プロセス・インスタンスの完了時の動作が決定します。
ノート:
「プロセス」では、すべてのビジネス・プロセスに少なくとも1つの開始イベントと1つの終了イベントが必要です。開始イベントではプロセスの開始を定義するため、入力シーケンス・フローがありません。 同様に、終了イベントには出力シーケンス・フローがありません。 ただし、None開始イベントおよびNone終了イベントを除いて、開始イベントおよび終了イベントは、他のビジネス・プロセスおよびサービスからの出力、およびこれらに対する入力を持つことができます。
様々なタイプのプロセスの開始イベントおよび終了イベントの指定
新しいビジネス・プロセスを作成すると、デフォルトで開始イベントと終了イベントが作成されます。 次の表に、作成するプロセスのタイプに応じたデフォルトの開始および終了イベントを示します。
| プロセス・タイプ | デフォルトの開始および終了イベント |
|---|---|
| なし | None開始および終了イベント |
| フォーム | フォーム開始およびNone終了イベント |
| ドキュメント | ドキュメント開始およびNone終了イベント |
| フォルダ | フォルダ開始およびNone終了イベント |
| メッセージ | メッセージ開始および終了イベント |
詳細は、「プロセス」でサポートされているさまざまなタイプの「ビジネス・プロセス」について読んでください。
サブプロセスには、デフォルトでNone開始および終了イベントが含まれています。 これらは、必須の開始および終了イベントであり、変更できません。 「サブプロセスの使用」を参照してください。
1つのプロセスで複数の開始イベントと終了イベントを使用
ビジネス・プロセスで、複数の開始ポイントを定義できます。 複数の開始ポイントを使用すると、使用する開始イベントによって異なる、プロセス・インスタンス作成の複数の方法を指定できます。 複数の開始イベントを使用すると、プロセスの起動方法が複数提供され、別の2つのプロセスを作成する必要がありません。
終了イベントは、プロセスのパスの終了をマークします。 プロセスに終了イベントが1つしかなく、トークンがこの終了イベントに達すると、プロセスは停止します。
ノート:
メッセージ終了イベントは、メッセージ開始イベントで起動されたプロセスを終了する場合にのみ、使用できます。 また、1つのメッセージ開始イベントに複数のメッセージ終了イベントが関連付けられている場合、これらのメッセージ終了イベントは、それぞれ、同じ数およびタイプの出力引数を持つ必要があります。複数の終了イベントを使用すると、異なるトークンがプロセス内で異なるパスを取ることができます。 通常の場合、すべてのパラレル・パスは、プロセスが完了する前に終了イベントに到達する必要があります。
ただし、次の特殊な場合では、プロセス・インスタンスはすべてのプロセス・パスが完了する前に停止できます。
-
エラー終了イベント: エラー終了イベントに到達すると、すべてのプロセス・アクティビティが停止します。 エラー・スロー・イベントと同様に、エラー終了イベントはプロセスのフローを停止します。
-
強制終了イベント: 強制終了イベントを使用すると、プロセスのすべての作業は即座に終了します。 実行中のプロセスのエラー処理または他のクリーン・アップは実行されません。
None開始イベントについて
インスタンスのトリガーが特に定義されていない場合、None開始イベントを使用します。 プロセスの必須の開始イベントが不明であるか、定義されていないか、またはプロセス開発者が後で実装する場合、None開始イベントをプレースホルダとして使用できます。
None開始イベントは、プロセス・インスタンスが他のフロー要素で作成されたプロセスの開始も指定します。 通常、None開始イベントは新しいプロセス・インスタンスをトリガーしません。
ただし、受信タスクとともに使用する場合、None開始イベントは新しいプロセス・インスタンスをトリガーできます。 受信タスクは、Trueに設定された「Create Instance」プロパティを含む必要があります。
他の開始イベントと同様に、None開始イベントは入力シーケンス・フローを含むことができません。 デフォルトの出力シーケンス・フローのみを含むことができます。
ノート:
サブプロセスの開始を定義する際は、常にNone開始イベントを使用します。None開始イベントは、プロセスの入力引数を受け入れません。
フォーム開始イベントについて
フォーム開始イベントは、ユーザーがフォームを送信すると、プロセス・インスタンスをトリガーします。 フォームはフォーム開始イベントの実装で指定されます。
フォームは、ユーザーからの入力およびワークフローに関する現在の情報を取得するように設計されます。 フォームを作成すると、ビジネス・オブジェクトはフォーム・データを格納するために作成されます。
ドキュメント開始イベントについて
ドキュメント開始イベントは、ドキュメント詳細が受信されると、プロセス・インスタンスをトリガーします。
ドキュメント開始イベントには、ドキュメントID、タイプ(dはドキュメントを表します)、ドキュメント名などのパラメータの定義済リストがあり、これはドキュメント・メタデータを読み取るためにデータ・オブジェクトに保存されます。
"id": "document-id",
"type": "d",
"docName": "document-name",
"startedBy": "user Id",
"role": "contributor"「ドキュメント開始またはフォルダ開始プロセスの作成」を参照してください。 REST APIを使用して、プロセス・インスタンスをインスタンス化して、すべての入力値を指定することもできます。
他の開始イベントと同様に、ドキュメント開始イベントは入力シーケンス・フローを含むことができません。 ドキュメント開始イベントにはデフォルトの出力シーケンス・フローが必要です。
フォルダ開始イベントについて
フォルダ開始イベントは、フォルダ詳細が受信されると、プロセス・インスタンスをトリガーします。
フォルダ開始イベントには、フォルダID、タイプ(fはフォルダを表します)、フォルダ名などのパラメータの定義済リストがあり、これはフォルダ・メタデータを読み取るためにデータ・オブジェクトに保存されます。
"id": "folder-id",
"type": "f",
"docName": "folder-name",
"startedBy": "user Id",
"role": "contributor"「ドキュメント開始またはフォルダ開始プロセスの作成」を参照してください。 次に、REST APIを使用して、プロセス・インスタンスをインスタンス化して、すべての入力値を指定します。
他の開始イベントと同様に、フォルダ開始イベントは入力シーケンス・フローを含むことができません。 フォルダ開始イベントには、デフォルトの発信シーケンス・フローが必要です。
メッセージ開始イベントについて
メッセージ開始イベントは、メッセージが受信されると、プロセス・インスタンスをトリガーします。 このメッセージは、他のビジネス・プロセスまたはサービスから送信できます。
メッセージは、プロセス間で情報を交換する際に使用するデータのタイプです。 アプリケーション内で使用するデータを定義する際にデータ・オブジェクトを使用するように、メッセージは、プロセス間またはプロセスとサービス間で使用するデータを定義する際に使用します。
他の開始イベントと同様に、メッセージ開始イベントは入力シーケンス・フローを含むことができません。 メッセージ開始イベントはデフォルトの出力シーケンス・フローが必要です。
他のプロセスおよびアプリケーションがプロセスを起動できるサービスとして、ビジネス・プロセスを公開できます。 プロセスをサービスとして公開するには、プロセスはメッセージ開始イベントで開始する必要があります。 さらに、プロセスへの入力引数を定義する必要があります。これは、メッセージ開始イベントに渡されるデータ・オブジェクトです。
メッセージ開始イベントを使用すると、プロセスへの入力および出力引数を指定できます。 これらの引数は、起動時に他のプロセスまたはサービスがプロセスに送信する必要があるメッセージを定義します。 「入力引数または出力引数の定義」を参照してください。
ビジネス・ユースケースでは、SOAPユーザー・インタフェースなどの任意のWebサービス・クライアントからプロセスを起動できます。
WSDLを使用してプロセスを起動するには:
-
ホーム・ページに移動して、プロセスをクリックし、メッセージ・イベントを開始を使用してアプリケーションを作成します。
-
アプリケーションをアクティブ化し、「管理」ページに移動します。
-
アクティブ化されたアプリケーションのリストから、デプロイしたばかりのアプリケーションを選択します。
-
「Actions」をクリックし、「WebService」を選択します。
-
「Exposed Webservice」タブに表示されているurlをコピーします。
-
サードパーティのWebサービス・クライアント(SOAP UIなど)を開きます。
-
新しいプロジェクトを作成し、「Project Name」に入力し、コピーしたurlを「Initial WSDL」フィールドに入力して、「OK」をクリックします。
-
「Start Operations」をクリックし、基本認可を作成します。
-
認可用の「Username」および「Password」を入力します。
-
上部にある「Play」ボタンをクリックします。
プロセスが起動されます。
None終了イベントについて
None終了イベントを使用すると、プロセス・パスの終了をマークできます。 None終了イベントに到達すると、トークンは消費されます。 プロセス・インスタンス内に他のトークンが存在しない場合、インスタンスは完了します。
None終了イベントは、次のような場合に使用します。
-
完了後、プロセスがアクションを実行する必要がない場合
-
サブプロセスの終わりを常にマークする手順は次のとおりです。
-
後でプロセス開発者が実装するときに変更するためのプレースホルダとして
たとえば、営業見積ビジネス・プロセスでは、営業見積サービス・タスクによって、営業見積に関する情報がデータベースに保存されます。 トークンがプロセスの終了に到達したときに、他の作業を実行できないため、None終了イベントを使用します。 すべてのプロセス・トークンがNone終了イベントに到達した後、プロセス・インスタンスが完了します。
メッセージ終了イベントについて
メッセージ終了イベントを使用すると、プロセスが完了したときにメッセージを他のプロセスまたはサービスに送信できます。
メッセージ終了イベントは、常に、メッセージ開始イベントまたはメッセージ捕捉イベントのいずれかとともに使用します。
複数の終了イベントを持つプロセスを作成する場合、メッセージ終了イベントに到達するトークンはメッセージ開始イベントによって作成されていることを確認します。 たとえば、フォーム開始イベントによって起動されたプロセス・インスタンスを終了する場合には、メッセージ終了イベントを使用できません。
メッセージ終了イベントを使用して出力引数を構成する方法についてさらに学習したいですか。 「入力引数または出力引数の定義」を参照してください。
エラー終了イベントについて
エラー終了イベントは、プロセスの終了がエラー条件の結果である場合に使用します。
通常、エラー終了イベントは、エラー境界イベントとともに使用します。 エラー境界イベントを使用して、特定のエラーに基づいたプロセス・フローを変更します。 このフローは、通常、エラー終了イベントを使用して終了します。 「エラー境界イベントについて」を参照してください。
