Share via


ワークフロー ステップの構成

 

公開日: 2017年2月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

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

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

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

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

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

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

このトピックの内容

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

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

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

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

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

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

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

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

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

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

目的

内容

レコードの作成

エンティティの新しいレコードを作成し、選択した値を属性に割り当てます。

レコードの更新

ワークフローが関わっているレコード、N:1 の関連付けでそのレコードにリンクされているいずれかのレコード、またはこれまでの手順によって作成された任意のレコードを更新できます。

レコードの割り当て

ワークフローが関わっているレコード、N:1 の関連付けでそのレコードにリンクされているいずれかのレコード、またはこれまでの手順によって作成された任意のレコードを割り当てることができます。

電子メールの送信

電子メールを送信します。 電子メール メッセージを新規に作成するか、あるいは、ワークフローが関わっているレコードのエンティティに対して、そのエンティティと N:1 の関連付けのある任意のエンティティに対して、またはこれまでの手順によって作成された任意のレコードのエンティティに対して、構成済みの電子メール テンプレートを使用するかを選択できます。

子ワークフローの開始

子ワークフローとして構成されたワークフロー プロセスを開始します。

[状態の変更]

プロセスが関わっているレコード、N:1 の関連付けでそのレコードにリンクされているいずれかのレコード、またはこれまでの手順によって作成された任意のレコードの状態を変更します。

ワークフローの停止

現在のワークフローを停止します。[成功] または [キャンセル済] の状態を設定し、ステータス メッセージを指定できます。

リアルタイム ワークフローがイベントに対して構成されている場合、キャンセル済の状態のワークフローを停止すると、イベント アクションが完了できなくなります。 詳細については、「リアルタイム ワークフローの使用」を参照してください。

カスタム ステップ

開発者は、アクションを定義する、ユーザー定義のワークフロー ステップを作成できます。Microsoft Dynamics 365 で使用できる既定のユーザー定義ステップはありません。

レコードの値の設定

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

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

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

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

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

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

動的な値の場合、フィールドまたは関連エンティティに設定したい値が入っているかが確実には分かりません。 実際には、値をためしに設定し、緑色の矢印を使用してそれらを適切に並べ替えるために、複数のフィールドを設定することができます。 1 つ目のフィールドにデータがない場合は、2 番目のフィールドでというように試しください。 フィールドにデータがない場合は、使用する既定値を指定できます。

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

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

条件の種類

説明

条件の確認

論理的な "if-<condition> then" 文。

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

"if-<condition> then" 文で使用できる演算子は、[が次の値と等しい], [が次の値と等しくない][が空白でない][が空白である][に属する][に属さない] です。

注意

[に属する][に属さない] は、階層演算子です。 これらは、階層型の関連付けが定義されたエンティティでのみ使用できます。 階層型の関連付けが定義されていないエンティティにこれらの演算子を使用すると、“階層関係が定義されていないエンティティで階層演算子を使用しています。 エンティティを階層にする (関係を階層としてマーク) か、別の演算子を使用してください。” というエラー メッセージが表示されます。
階層型の関連付けに関する詳細については、「階層データのクエリおよび視覚化」を参照してください。

表の後に続くスクリーンショットは、[に属する][に属さない] の階層演算子を使用するワークフロー プロセスの定義の例です。

条件分岐

論理的な "else-if-then" 文であり、エディターはテキスト“Otherwise, if <condition> then:” を使用します。

以前に定義したチェック条件を選択し、チェック条件が false を返すときに追加のステップを定義する条件分岐を追加できます。

既定の操作

論理的な "else" 文。 エディターはテキスト “Otherwise:” を使用します。

以前定義した条件、条件分岐、待機状態、または並列待機分岐を選択します。条件要素や分岐要素で定義した基準に適合しないすべてのケースに対して、既定のアクションを使用してステップを定義できます。

待機状態

条件によって定義されている基準が満たされるまで、ワークフローが自身を一時停止することを可能にします。 ワークフローは、待機条件で定義されている基準が満たされると自動的に再開します。

リアルタイム ワークフローは待機状態を使用できません。

並列待機分岐

最初の基準が満たされたときにのみ実行される対応する一連の追加ステップを使用して、バックグラウンド ワークフローの代替の待機状態を定義します。 並列待機分岐を使用して、ワークフロー ロジックに時間制限を作成できます。 待機条件で定義されている基準が満たされるまでワークフローが無期限に待機することを防ぐのに役立ちます。

カスタム ステップ

開発者は、条件を定義する、ユーザー定義のワークフロー ステップを作成できます。Microsoft Dynamics 365 で使用できる既定のユーザー定義ステップはありません。

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

Workflow process with Under/Not Under operators

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

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

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

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

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

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

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

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

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

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

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

関連項目

プロセスの作成および編集
ワークフロー プロセス
プロセスの監視と管理
ワークフロー プロセスに関するベスト プラクティス

© 2017 Microsoft. All rights reserved. 著作権