Dynamics 365 インスタンスの正常性 Dynamics 365 インスタンスのバックアップとリストア Dynamics 365 をアップデートしよう Dynamics 365 プロセスの作成 Dynamics 365 プロセスの基本操作 Dynamics 365 業務ルールを使う Dynamics 365 エンティティを管理する Dynamics 365 計算フィールドの活用 Dynamics 365 インスタンスの管理 Dynamics 365 エンティティやオプションセットのカスタマイズ Dynamics 365 のWebリソースやプロセスのカスタマイズ サードパーティ製のおすすめソリューション ワークフロープロセスの無限ループ対策 メジャーアップデート適用方法の変更【2019.08】 設定のサイトマップを調整する
2017.08.23 | maintaining-dynamics-365/

Dynamics 365 プロセスの基本操作

Author:Takafumi Noguchi

linkedIn

前回の記事「Dynamics 365 プロセスの作成」は、プロセスのワークフローを作成する手順について触れてきましたが、今回はすこし応用編ということで、様々な用途について触れていきます。

レコードの更新をする

前回の記事では、レコードの更新を行う簡易な方法をお伝えしたので、今回は応用になります。

関連するレコードの値を更新する

これは、レコードの更新のステップを追加後、更新するエンティティを変更して行います。以下の例だと、営業案件(下位エンティティ)から見て、取引先企業(上位エンティティ)のレコードを更新するステップになります。

手順は以下の通りです。

  • 「ステップの追加」をクリックして、「レコードの更新」を選択
  • 「更新:」にて “見込み顧客(取引先企業)” を選択
  • 「プロパティの設定」をクリックして、取引先企業のフィールドで更新したい箇所を設定する。

なお、関連エンティティの更新は、下位エンティティから、上位エンティティに対して更新を行うものになります。つまり、営業案件から、取引先企業や担当者の項目を更新できますが、企業から見て、営業案件へ更新を行うことはできない。ということです。

※ もし変更する場合は、サードパーティー製のソリューションを利用する必要があります。

動的な値をフィールドにセットする

動的な値、例えば最終更新者やレコードのURLなどをフィールドに設定することも可能です。その場合は、プロパティの設定で、右側にある「フォーム アシスタント」から選択します。

手順は以下の通りです。

  • 「プロパティの設定」ボタンをクリックして、動的な値を入れたいフィールドをクリック
  • 「フォーム アシスタント」の「検索」にて、動的な値を利用したいエンティティとフィールドを選択
  • 「追加」ボタンをクリックすると、値を下のボックスに記載されるので、「OK」をクリックしてフィールドに動的な値を追加。黄色の塗りつぶしで{<フィールド名>(エンティティ名)} となれば、動的な値の設定が完了。

もしレコードのURLを取得したい場合は、「レコードURL」を選択します。

設定した値をクリアする

これは、「フォーム アシスタント」の「演算子」で クリア を選択することで設定が可能です。設定すると{クリア}となります。

この場合、値は NULL になることは注意が必要です。もし はい/いいえ のリストで、いいえ を設定したい場合は、既定値で設定する必要があります。すると、{いいえ}という値が設定されます。

レコードの割り当て

「レコードの割り当て」というステップを追加すれば、そのレコードの所有者をワークフローで制御できます。

特定のユーザーを指定することもできますし、最終更新者 のような動的なユーザーを設定することも可能です。動的な値を設定する場合は、「プロパティの設定」を開き、「フォーム アシスタント」にて動的な値を設定します。

メールの送信

ステップの追加で、「電子メールの送信」を選択すると、顧客エンティティもしくはユーザーに対してメールを送信することができます。以下のように、差出人や宛先に、顧客エンティティやユーザーの情報を設定して、本文を設定することで、ワークフロー実行時に自動でメールが送付されるようになります。

差出人・宛先などについては、固定値も動的な値も設定が可能です。本文にメールのテンプレートを挿入することもできます。

なお、Dynamics 365 のメール送信は、メールアドレスを差出人に指定するのではなく、担当者やユーザーを差出人に設定して、そのレコードのメールアドレスにメールが送信されます。そのため、メールの送り先は、Dynamics 365 に登録されている顧客もしくはユーザー情報に限られますので、特定のメールアドレスに個別に送付、などの操作はできません。

子プロセスの実行

子プロセスの実行とは、同じエンティティで動く別のワークフローを呼び出して実行することができる機能です。このステップを利用する場合は、事前に同じエンティティで作成したワークフローが必要で、「子プロセスとして」のオプションを有効にしておく必要があります。

ステップにて、「子ワークフローの実行」をクリックします。

そして、事前に準備している子プロセスを選択します。(子プロセス、子ワークフロー、と表記が異なる理由は不明です。)

なお、子プロセスとして、操作しているプロセス自身を呼び出すことができます。これについては後述します。

Wait を利用した時間式ワークフローの実行

バッチ処理のように、毎時間もしくは毎日ワークフローを実行したい場合は、「待機時間」というステップを利用します。

これは、指定した期間、ワークフローの動作を待機させて、期間が過ぎると実行するようなステップになっており、さらのそのステップ後、同じプロセスを「子ワークフローの実行」で呼び出せば、手動で停止するまで、ワークフローが定期的に実行されるようになります。

なお、この手順の最初のトリガーは、オンデマンドで実行(手動実行)する必要があります。もし自動実行ができるような、まさにバッチ処理のような機能を求める場合は、サードパーティ製のソリューションが必要になります。

まず、「子プロセスとして」と「オンデマンド プロセスとして」のオプションを有効にします。

ステップで「待機状態」を追加します。

条件の設定において、以下のように設定します。

「プロセス」ー 「タイムアウト」ー 「が次の値と等しい」

値:「フォーム アシスタント」で、”期間” を選択して、「時間」を “1” とします。(1時間ごとに実行)

1時間後にタイムアウトするように設定されました。

そこでさらにステップとして「子ワークフローの実行」を追加します。そして、呼び出すプロセスは自身を呼び出します。もし検索できない場合は、一度プロセスを保存してみてください。

これで、1時間ごとに動作するプロセスは完成です。実際は、この「待機時間」と「子ワークフローの実行」のステップの間に、「レコードの更新」や「電子メールの送信」など様々なステップを追加していきます。あとは、保存して「アクティブ化」すれば利用できます。

実行する場合は、特定のレコードを選択して、「プロセスの実行」からこのプロセスを呼び出してしまえばOKです。

このように様々な用途に対応できるプロセスは、理解を深めるほど利用価値が高まります。

ぜひ自社の問題を解決するソリューションとして、活用してみてください。

ちなみに、サードパーティ製のソリューションをインストールするとさらに幅が広がりますが、ここについては、またどこかで触れていきます。

それでは今回はここまで。

Dynamics 365 ブログ / maintaining-dynamics-365 /use-more-of-workflow

Those who read this article have read other articles like this.

Popular articles