Share via


アクション、ステージ、およびステップを使用したワークフローを構成する

このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 リアルタイム ワークフローのステージとステップを構成する

ワークフローの構成時に考慮する 4 つの重要な領域があります。

  • いつワークフローを開始するか。

  • リアルタイム ワークフローまたはバックグラウンド ワークフローとして動作させる必要があるか。

  • どのような操作を実行する必要があるか。

  • どのような条件の下でアクションを実行する必要があるか。

    ワークフロー プロセスの概要トピックは、ワークフロー プロセスを探す方法、それらをいつ開始するか、リアルタイムまたはバックグラウンドで実行する必要があるかどうかを説明しています。 このトピックは、ワークフローで実行できるアクションと、それらのアクションを実行するための条件について説明しています。

ワークフロー ステージと手順

ワークフローを設計するとき、ステージおよびステップで実行するロジックを選択して含めることができます。

ステージ
ステージは、ワークフロー ロジックを読みやすくし、またワークフロー ロジックを説明します。 ただし、ワークフローのロジックや動作が影響を受けることはありません。 プロセスにステージが存在する場合、プロセス内のすべてのステップをステージに含める必要があります。

ステップ
ステップは、ワークフロー内のビジネス ロジックの単位です。 ステップには、条件、アクション、他のステップ、またはこれらの要素の組み合わせを含めることができます。

ワークフロー プロセスで実行できるアクション

ワークフロー プロセスでは次の表で示すアクションを実行できます。

目的 内容
レコードの作成 エンティティの新しいレコードを作成し、選択した値を属性に割り当てます。
レコードの更新 ワークフローが関わっているレコード、N:1 の関連付けでそのレコードにリンクされているいずれかのレコード、またはこれまでの手順によって作成された任意のレコードを更新できます。
レコードの割り当て ワークフローが関わっているレコード、N:1 の関連付けでそのレコードにリンクされているいずれかのレコード、またはこれまでの手順によって作成された任意のレコードを割り当てることができます。
電子メールの送信 電子メールを送信します。 電子メール メッセージを新規に作成するか、あるいは、ワークフローが関わっているレコードのエンティティに対して、そのエンティティと N:1 の関連付けのある任意のエンティティに対して、またはこれまでの手順によって作成された任意のレコードのエンティティに対して、構成済みの電子メール テンプレートを使用するかを選択できます。
子ワークフローの開始 子ワークフローとして構成されたワークフロー プロセスを開始します。
状態の変更 プロセスが関わっているレコード、N:1 の関連付けでそのレコードにリンクされているいずれかのレコード、またはこれまでの手順によって作成された任意のレコードの状態を変更します。
ワークフローの停止 現在のワークフローを停止します。 成功またはキャンセル済の状態を設定し、ステータス メッセージを指定できます。

リアルタイム ワークフローがイベントに対して構成されている場合、キャンセル済の状態のワークフローを停止すると、イベント アクションが完了できなくなります。 詳細については、「リアルタイム ワークフローの使用」を参照してください。
カスタム ステップ 開発者は、アクションを定義する、ユーザー定義のワークフロー ステップを作成できます。 既定で使用できるユーザー定義ステップはありません。

レコードの値の設定

レコードを作成するとき、レコードの値を設定できます。 レコードを更新するとき、値を設定、追加、増加、減少、乗算、またはクリアすることができます。

プロパティの設定を選択すると、エンティティの既定のフォームを示すダイアログが開きます。

ダイアログの下部に、フォームに表示されていないそのほかのフィールドの一覧が表示されています。

どのフィールドについても、ワークフローによって設定される静的な値を設定できます。

ダイアログの右側にあるフォーム アシスタントで、現在のレコードのコンテキストから動的な値を設定または追加できます。 これには、エンティティに対する N:1 (多対一) の関連付けからアクセスできる関連レコードの値が含まれます。

フォーム アシスタントで使用できるオプションは、フォームで選択したフィールドによって決まります。 動的値を設定すると、"置換フィールド" と呼ばれる黄色いプレースホルダーが表示され、動的データが含まれる場所が示されます。 この値を削除する場合は、印刷専用を選択して削除します。 テキスト フィールドに対しては、静的データと動的データを組み合わせて使用できます。

フィールドまたは関連するエンティティに設定する値が指定されていることを知らない動的な値があること。 実際にいくつかのフィールドを設定して、緑色の矢印を使用して、値を設定したり並べ替えたりすることができます。 最初のフィールドにデータが含まれていない場合は、2番目のフィールドが試されます。 フィールドにデータがない場合は、使用する既定値を指定できます。

ワークフロー アクションの設定条件

適用するアクションは条件によって異なります。 ワークフロー プロセスは条件を設定ためにいくつかの方法を使用し、必要な結果を取得するための分岐ロジックを作成します。 ワークフロー プロセスが関わっているレコードの値、N:1 の関連付けでそのレコードにリンクされているいずれかのレコードの値、またはプロセス自体の内部の値をチェックできます。

条件タイプ Description
条件の確認 論理的な "if-<condition> then" ステートメント。

ワークフローが関わっているレコード、N:1の関連付けでそのレコードにリンクされているいずれかのレコード、またはこれまでの手順によって作成された任意のレコードの現在値をチェックできます。 これらの値に基づいて、条件が "True" の場合に追加のステップを定義できます。

"if-<condition> then" ステートメントでは、次の演算子を使用できます: が次の値と等しいが次の値と等しくないが空白でないが空白であるに属するに属さない注:に属するに属さないは、階層演算子です。 これらは、階層型の関連付けが定義されたエンティティでのみ使用できます。 階層関係が定義されていないエンティティに対して、これらの演算子を使用する場合は、「階層関係が定義されていないエンティティに対して階層演算子を使用していることを示すエラー メッセージが表示されます。 エンティティを階層にする (関係を階層としてマーク) か、別の演算子を使用してください。” というエラー メッセージが表示されます。階層型の関連付けに関する詳細については、「階層データのクエリおよび視覚化」を参照してください。 表の後に続くスクリーンショットは、に属するに属さないの階層演算子を使用するワークフロー プロセスの定義の例です。
条件分岐 論理的な "else-if-then" 文であり、エディターはテキスト “Otherwise, if <condition> then:” を使用します。

以前に定義したチェック条件を選択し、チェック条件が false を返すときに追加のステップを定義する条件分岐を追加できます。
既定の操作 論理的な "else" ステートメント。 エディターはテキスト “Otherwise:” を使用します。

以前定義した条件、条件分岐、待機状態、または並列待機分岐を選択します。条件要素や分岐要素で定義した基準に適合しないすべてのケースに対して、既定のアクションを使用してステップを定義できます。
待機状態 条件によって定義された基準が満たされるまでバックグラウンド ワークフローが一時停止するようにします。 ワークフローは、待機条件の基準が満たされると自動的に再開されます。

リアルタイム ワークフローでは、待機条件を使用できません。
並列待機分岐 初期基準が満たされた場合にのみ実行される、対応する一連の追加ステップを使用して、バックグラウンド ワークフローの代替待機条件を定義します。 並列待機分岐を使用して、ワークフロー ロジックに時間制限を作成できます。 待機条件で定義されている基準が満たされるまでワークフローが無期限に待機することを防ぐのに役立ちます。
カスタム ステップ 開発者は、条件を定義する、ユーザー定義のワークフロー ステップを作成できます。 既定で使用できるユーザー定義ステップはありません。

次のスクリーンショットには、に属するに属さないの演算子を使用するワークフロー プロセスの定義の例が含まれています。 この例では、2 つの異なる値引きを 2 つのグループの取引先企業に適用します。 ステップの追加では、条件の確認を選択して、に属するまたはに属さないの演算子を含む if-then 条件を指定しました。 最初の if-then 条件がアルペン スキー ハウスの取引先企業に属するすべての取引先企業に適用されます。 これらの取引先企業は、購入した商品やサービスで 10% の値引きを受けます。 2 番目の if-then の条件がアルペン スキー ハウスの取引先企業に属さないすべての取引先企業に適用され、これらの取引先企業は 5% の値引きを受けます。 その後、レコードの更新を選択して、条件に基づいて実行されるアクションを定義しました。

未満/以上の演算子を使ったワークフロー プロセス。

リアルタイム ワークフローの使用

リアルタイム ワークフローを構成できますが、そのワークフローの使用には注意する必要があります。 通常、バックグラウンド ワークフローは、サーバー上のリソースを使用するときにシステムによって適用できるようにすることをお勧めします。 これによって、サーバーが実行するところの、システムを使用するすべてのユーザーに対する最良のパフォーマンスの維持を支援する作業が円滑化されます。 欠点は、ワークフローで定義されたアクションが即時ではないことです。 いつ適用されるかは予測できませんが、通常は数分間かかります。 ビジネス プロセスの大部分の自動化については、システムを使用する人はプロセスが動作しているかを意識的に知る必要がないので、これで構いません。

ビジネス プロセスでユーザーがプロセスの結果の迅速な表示を必要とする場合、または操作をキャンセルする機能が必要な場合は、リアルタイム ワークフローを使用します。 たとえば、レコードを初めて保存するときにそのレコードの特定の既定値を設定した方がよい場合や、一部のレコードが削除されないようにしたい場合があります。

リアルタイム ワークフローとバックグラウンド ワークフロー間の変換

ツール バーのバックグラウンドのワークフローに変換を選択することで、リアルタイム ワークフローをバックグラウンドのワークフローに変更できます。

ツール バーのリアルタイムのワークフローに変換を選択することで、バックグラウンドのワークフローをリアルタイム ワークフローに変更できます。 バックグラウンド ワークフローで待機状態が使用されている場合、待機状態を削除するまで、バックグラウンド ワークフローは無効となり、アクティブ化できません。

状態の変更前または変更後のリアルタイム ワークフローの起動

リアルタイム ワークフローの自動プロセスのオプションを構成するとき、状態変更のイベントの開始時期オプションによって、状態の変更時期の または を選択できます。 既定のオプションは です。

を選択すると、状態を変更するデータを保存した後に、ワークフローのロジックを適用するように指示することになります。 これにより、操作後に他のロジックが適用される前に値をチェックして、以降のロジックが実行されないようにすることができます。 たとえば、別のシステム上のアクションを起動できるプラグインまたはカスタム ワークフローとして追加のロジックが存在する場合があります。 以降の処理を停止することで、外部システムが影響を受ける状況を回避することができます。 このイベントの前にリアルタイム ワークフローを適用することによって、データを保存した可能性のあるその他のワークフローまたはプラグイン アクションを、操作をキャンセルしたときに "ロールバック" する必要がなくなります。

リアルタイム ワークフローでワークフロー アクションを停止を使用

ワークフローでワークフローの停止アクションを適用するとき、成功または取り消し済みのいずれかのステータス条件を指定できます。 ステータスを [取り消し済み] に設定すると、その操作は行われません。 アクション停止のステータス メッセージのテキストを含むエラー メッセージが、ビジネス プロセス エラーの見出しでユーザーに表示されます。

関連項目

プロセスを通じてカスタム ビジネス ロジックを作成する
ワークフロー プロセスの概要
ワークフロー プロセスの監視と管理
ワークフロー プロセスに関するベスト プラクティス