- はじめに
- 基本情報
- プロセス モデリング
- プロセスの実装
- プロセスの操作
- プロセスの監視
- プロセスの最適化
- 参考情報

Maestro ユーザー ガイド
サブプロセスとモジュール性
サブプロセスは、関連するアクティビティを再利用可能な 1 つの構造にグループ化することで、モデルをわかりやすくするのに役立ちます。ダイアグラムの複雑さを軽減し、ビジネス ロジックを分離して、再利用を促進します。
BPMN では、サブプロセスはインラインで、または再利用可能なコール アクティビティを使用してモデル化できます。Maestro では、サブプロセスについて以下の点に留意してください。
- コール アクティビティのみがサポートされています。
- サブプロセスは、個別のダイアグラムとしてモデル化する必要があります。
- 呼び出し元のプロセスは、定義されたパラメーターを介して入力を渡し、出力を受け取ります。
コール アクティビティを使用する理由
コール アクティビティは、プロジェクトまたは環境内の別の場所で定義されたサブプロセスを参照します。このアクティビティは再利用可能な関数のように動作し、以下の方法でプロセス モデリングを改善します。
- ダイアグラム間の重複の削減
- 再利用可能なロジックの分離 (承認、検証、送信など)
- 主要なダイアグラムの簡潔さの維持
- プロセス バリアント間で一貫した動作をサポート
サブプロセスのモデル化方法
Maestro でサブプロセスを作成するには、以下の手順を実行します。
- サブプロセスを独自のスタンドアロン ダイアグラムとしてモデル化します。
- 親ダイアグラムで、コール アクティビティを挿入します。
- コール アクティビティをサブプロセスにリンクします。
- データを交換するための入力変数と出力変数を設定します。
モデリングの例
ユース ケース: オンボーディング ワークフローでは、従業員とベンダーの両方のオンボーディング プロセスで同じ Collect Documents サブプロセスを使用します。ステップを複製する代わりに、同じサブプロセスを参照する各親プロセスに [呼び出し] アクティビティが追加されます。

ユース ケース: このサブプロセスの例は、Maestro での条件付きファイルのダウンロードとアップロードのワークフローを示しています。プロセスはメッセージ開始イベントで始まり、排他的ゲートウェイを使用して分岐します。条件に応じて、メールの添付ファイルまたはファイルをレコード フィールドからダウンロードします。両方のパスが [ファイルをアップロード ] タスクに収束し、その後に [Sub-Process1] という名前の [サブプロセス ] 要素が続きます。このサブプロセスには、終了イベントでワークフローを完了する前のアップロード後のアクションに関連する追加手順がカプセル化されています。

モデリングのガイドライン
- サブプロセスに意味のある商号を付けます (例:
Verify Contract Terms)。 - 入力/出力パラメーターとそれらの想定される使用方法を文書化します。
- サブプロセスは、単一の責任範囲または結果のみに焦点を当てたものにしてください。
- 親コンテキストを前提とした仮定に基づいてサブプロセスを設計しないようにしてください。
命名規則
サブプロセスとコール アクティビティの名前を付ける際は、以下の点に留意してください。
- 専門用語ではなく、ビジネス用語を使用する
- 結果を説明する (例:
Form Step 2ではなくCollect Customer Data) - サブプロセスがタスクを実行する方法ではなく、実行する対象を反映する。
サポート対象外
- 展開されたサブプロセス (インラインのサブプロセス) はサポートされていません。すべてのサブプロセスは別個のダイアグラムとしてモデル化し、コール アクティビティを使用して呼び出す必要があります。
- アドホックなサブプロセスはサポートされていません。
- 暗黙的な変数の共有はサポートされていません。データは、入力/出力バインディングを使用して明示的にマッピングする必要があります。
マルチインスタンス マーカー
サブプロセスは、各要素が複数回実行されるマルチインスタンス マーカーをサポートします。マルチインスタンスとしてマークできる要素は、サブプロセスを除くすべての種類のタスクです。
ネストしたマーカー
ネストする反復子として、次の文字列変数がサポートされています。
| カテゴリ (Category) | 属性 | 利用方法/アクセス方法 |
|---|---|---|
| OuterSP - 各ユーザーの連絡先情報を取得 | InputCollection | var.GetUsers |
| OuterSP - 各ユーザーの連絡先情報を取得 | Iterator Item | iterator.item.gid |
| InnerSP - 各連絡先のすべてのメールを取得 | InputCollection | iterator[0].item.contactArray |
| InnerSP - 各連絡先のすべてのメールを取得 | Iterator Item | iterator[1].item.ContactId |
| メールを送信 | InputCollection | iterator[1].item.EmailArray |
| メールを送信 | Iterator Item | iterator[2]item.emailAddress |
Maestro でサポートされる BPMN 要素について詳しくは、「 BPMN のサポート」をご覧ください。