このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 従来の Dataverse バックグラウンド ワークフロー
ワークフローは、ユーザー インターフェイスなしでビジネス プロセスを自動化します。 通常、ユーザーはワークフロー プロセスを使用して、ユーザーの操作を必要としない自動化を開始します。
各ワークフロー プロセスは、1 つのエンティティに関連付けられます。 ワークフローを構成するときは、次の 4 つの主要な領域を考慮する必要があります。
いつ開始しますか?
リアルタイム ワークフローまたはバックグラウンド ワークフローとして実行する必要がありますか?
どのようなアクションを実行する必要がありますか?
どのような条件でアクションを実行する必要がありますか?
このトピックでは、ワークフロー プロセスを検索する方法について説明し、ワークフロー プロセスを開始するタイミングと、ワークフロープロセスをリアルタイムまたはバックグラウンドで実行する必要があるかどうかを説明します。 実行する必要があるアクションと条件については、「 ワークフロー プロセスの構成」を参照してください。
ワークフロー プロセスをカスタマイズする場所
既定のソリューションの [プロセス] ノードを表示し、カテゴリ ワークフローを持つプロセスをフィルター処理することで、組織内のワークフローを確認できます。
アプリの構築方法に応じて、ユーザーはアプリでワークフローを作成または変更できます。
開発者は 、Dynamics 365 Customer Engagement (オンプレミス) 開発者ガイド の情報を使用してワークフローを作成できます。また、購入したソリューションには、変更可能なワークフローが含まれる場合があります。
ワークフローのプロパティ
ソリューション エクスプローラーで [ プロセス ] を選択し、[ 新規] をクリックします。
ワークフローを作成する場合、[ プロセスの作成 ] ダイアログでは、すべてのプロセスに含まれる 3 つのプロパティを設定する必要があります。
プロセス名
ワークフロー プロセスの名前を一意にする必要はありませんが、多数のワークフローが必要になる場合は、名前付け規則を使用してプロセスを明確に区別することができます。 ワークフローの名前に標準プレフィックスを適用することもできます。 プレフィックスは、ワークフローまたは社内の部門の機能を記述できます。 これは、ワークフローの一覧で同様の項目をグループ化するのに役立ちます。
カテゴリ
このプロパティは、これがワークフロー プロセスであることを確立します。
エンティティ
各ワークフロー プロセスは、1 つのエンティティに設定する必要があります。 ワークフロー プロセスの作成後にエンティティを変更することはできません。
バックグラウンドでこのワークフローを実行する (推奨)
このオプションは、ワークフローをカテゴリとして選択すると表示されます。 この設定は、ワークフローがリアルタイム ワークフローかバックグラウンド ワークフローかを決定します。 リアルタイム ワークフローはすぐに (同期的に) 実行され、バックグラウンド ワークフローは非同期的に実行されます。 使用できる構成オプションは、この設定の選択によって異なります。 バックグラウンド ワークフローでは、リアルタイム ワークフローでは使用できない待機条件を使用できます。 これらの待機条件を使用しない限り、後でバックグラウンド ワークフローをリアルタイム ワークフローに変換し、リアルタイム ワークフローをバックグラウンド ワークフローに変換できます。 待機条件の詳細については、「 ワークフロー アクションの条件の設定」を参照してください。
また、[ 種類] オプションを使用して、新しいワークフローを最初からビルドするか、既存のテンプレートから開始するかを指定することもできます。 既存のテンプレートから [新しいプロセス] を選択 (一覧から選択) すると、以前にプロセス テンプレートとして保存された使用可能なワークフロー プロセスから選択できます。
ワークフローを作成した後、または既存のワークフローを編集すると、次の追加プロパティが作成されます。
[次のユーザーとしてアクティブ化]
プロセス テンプレートを選択して、他のテンプレートの高度な開始点を作成できます。 このオプションを選択した場合、ワークフローをアクティブ化した後は適用されませんが、代わりに既存のテンプレートから [種類: 新しいプロセス] を選択した場合は、[プロセスの作成] ダイアログで選択できるようになります (一覧から選択)
プロセス テンプレートは、似たワークフロー プロセスが多数あり、同じロジックを複製せずに定義する場合に便利です。
注
プロセス テンプレートを編集しても、テンプレートとして使用して以前に作成された他のワークフロー プロセスの動作は変更されません。 テンプレートを使用して作成された新しいワークフローは、テンプレート内のコンテンツのコピーです。
実行可能
このセクションには、ワークフローを実行する方法を説明するオプションが含まれています。
バックグラウンドでこのワークフローを実行する (推奨)
このチェック ボックスには、ワークフローの作成時に選択したオプションが反映されます。 このオプションは無効になっていますが、[ アクション] メニューから [ リアルタイム ワークフローに変換 ] または [ バックグラウンド ワークフローに変換] を選択して変更できます。
オンデマンド プロセスとして
ユーザーがこのワークフローを手動で実行できるようにする場合は、このオプションを選択します。 オンデマンド プロセスは、フローの [ワークフローの 実行 ] セクションにあります。
子プロセスとして
ワークフローを別のワークフローから開始できるようにする場合は、このオプションを選択します。
ワークフロー ジョブのリテンション期間
このセクションには、ワークフローの実行が完了した後にワークフローを削除するオプションが含まれています。
完了したワークフロー ジョブを自動的に削除する (ディスク領域を節約するため)
完了したワークフロー ジョブを自動的に削除する場合は、このオプションを選択します。
注
ワークフロー ジョブは完了直後に削除されるのではなく、バッチ 処理によってすぐに削除されます。
Scope
ユーザー所有エンティティの場合、オプションは [組織]、[ 親]: [子部署]、[ 部署]、または [ユーザー] です。 組織所有エンティティの場合、唯一のオプションは [組織] です。
スコープが Organization の場合、ワークフロー ロジックを組織内の任意のレコードに適用できます。 それ以外の場合、ワークフローは、スコープ内のレコードのサブセットにのみ適用できます。
注
既定のスコープ値は User です。 ワークフローをアクティブ化する前に、スコープ値が適切であることを確認してください。
開始日時
このセクションのオプションを使用して、ワークフローを自動的に開始するタイミングを指定します。 特定のイベントの前に実行されるようにリアルタイム ワークフローを構成できます。 ワークフローはアクションが発生する前に停止できるため、これは非常に強力な機能です。 詳細: リアルタイム ワークフローの使用。 次のオプションがあります。
レコードが作成されます
状態の変更を記録する
レコードが割り当てられている
レコード フィールドの変更
レコードが削除される
注
ワークフローに対して定義したアクションと条件は、ワークフローの実行時には認識されないことに注意してください。 たとえば、レコードを更新するワークフローを定義した場合、レコードが作成される前に、このアクションをリアルタイム ワークフローで実行することはできません。 存在しないレコードは更新できません。 同様に、バックグラウンド ワークフローでは、ワークフローに対してこのアクションを定義できますが、削除されたレコードを更新することはできません。 実行できないアクションを実行するようにワークフローを構成すると、ワークフローは失敗し、ワークフロー全体が失敗します。
[実行者]
このオプションは、ワークフローの作成時に [ バックグラウンドでこのワークフローを実行する (推奨)] オプションをオフにした場合、または後でバックグラウンド ワークフローをリアルタイム ワークフローに変換した場合にのみ使用できます。
ワークフロー プロセスのセキュリティ コンテキスト
バックグラウンド ワークフローがオンデマンド プロセスとして構成され、[ ワークフローの実行 ] コマンドを使用してユーザーによって開始される場合、ワークフローで実行できるアクションは、ユーザー アカウントに設定されているセキュリティ ロールによって定義された特権とアクセス レベルに基づいてユーザーが実行できるアクションに制限されます。
イベントに基づいてバックグラウンド ワークフローが開始されると、ワークフローは、ワークフローを所有するユーザー (通常はワークフローを作成したユーザー) のコンテキストで動作します。
リアルタイム ワークフローの場合、[ 実行] オプションがあり、ワークフローでワークフローの所有者のセキュリティ コンテキストを適用するか、レコードに変更を加えたユーザーを適用するかを選択できます。 すべてのユーザーがセキュリティ制約に基づいて実行できないアクションがワークフローに含まれている場合は、ワークフローをワークフローの所有者として実行するように選択する必要があります。
ワークフローのアクティブ化
ワークフローは、非アクティブ化されている間にのみ編集できます。 ワークフローを手動で使用するか、イベントのために適用する前にアクティブ化する必要があります。 ワークフローをアクティブ化するには、少なくとも 1 つのステップが含まれている必要があります。 ステップの構成の詳細については、ワークフロー・プロセスの構成を参照してください。
ワークフローをアクティブ化または非アクティブ化できるのは、ワークフロー所有者、またはシステム管理者などの 別のユーザーの代理 権限を持つユーザーだけです。 その理由は、悪意のあるユーザーが変更を認識しなくても、他のユーザーのワークフローを変更する可能性があるということです。 所有者を変更することで、所有するワークフローを再割り当てできます。 このフィールドは、[ 管理 ] タブにあります。システム管理者ではなく、別のユーザーが所有するワークフローを編集する必要がある場合は、非アクティブ化して割り当てる必要があります。 ワークフローの編集が完了したら、ワークフローをアクティブ化できるように、ワークフローを割り当て直すことができます。
リアルタイム ワークフローでは、ユーザーにリアルタイム プロセスのアクティブ化 権限が必要です。 リアルタイム ワークフローはシステムのパフォーマンスに影響するリスクが高いため、潜在的なリスクを評価できるユーザーにのみこの特権を付与する必要があります。
ワークフローはアクティブ化されると保存されるため、アクティブ化する前に保存する必要はありません。