Dynamics 365のブログ
2019.03.08

Dynamics 365 バッチでプロセスを起動させる

Dynamics 365 カスタマイズ

57766831
Author: Takafumi Noguchi
 LinkedIn

今回は Microsoft Labs のソリューションを使って、
Dynamics 365 のワークフローをバッチ処理で指定した時間に実行する手順をご紹介します。

 

重要事項:これからご紹介する Change Tracking Solution をご自身の環境で利用される場合は、十分な検証を行った上、自己責任でご利用ください。また、当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。

 

目次

  • ソリューションのインポート
    • Change Tracking Solution のインポート
  • ワークフローにバッチ処理を設定する
    • 高度検索結果より Fetch XML を取得する
    • ワークフローを作成する
    • バッチプロセスを設定する
    • バッチ処理実行確認
  • オンデマンドでの実行はなくてもいい

ソリューションのインポート

Dynamics 365 のワークフローは既定でバッチ処理を行うことができないのですが、Microsoft Labs が提供している 「Change Tracking Solution」をインポートすることで、バッチ処理が実現できます。

Change Tracking Solution のインポート

「設定」から「App Store」を開きます。

アプリ検索で、Change Tracking Solution と検索して「今すぐ入手する」をクリックします。

必要な情報を入力して「続行」をクリックします。

マーケットプレイスのページが開くので、インポートするインスタンスを選択して、
チェックをいれたら「同意」をクリックします。

 

Change Tracking のインストールが始まるのでしばらくお待ちください。インストール完了となればOKです。

 

ワークフローにバッチ処理を設定する

それでは検証用のワークフローを作成します。ここでは、「イニシャルコミュニケーション」が “連絡済み” となった場合、「説明」に “詳細を記載” というメモを残すようなワークフローを1時間ごとに実行する方法を記載します。

高度検索結果より Fetch XML を取得する

バッチ処理はターゲットとなるレコードに対してのみ実行されるように設定されています。そのターゲットを指定する手段として Fetch XML が利用されるため、高度検索結果を使って Fetch XML を事前に準備しておきます。

今回は「イニシャルコミュニケーション」に値が設定されたレコードだけにワークフローを実行するので、下図のようなフィルター条件としています。

「Fetch XML のダウンロード」をクリックして Fetch XML をダウンロードしましょう。

ワークフローを作成する

「設定」から「プロセス」でワークフローを作成します。

Change Tracking Solution がインポートされると、ワークフローの左パネルに「Batch Processes」が表示されているのが確認できます。これがワークフローのバッチ処理を可能にします。

まずはプロセスを設定します。下図のようにオンデマンドプロセスとして作成しました。
※バッチ処理の実行時間を設定すれば自動的にプロセスが待機状態になるので、この設定は必須ではありません。

上書き保存をします。次はバッチ処理の設定です。

バッチプロセスを設定する

「Batch Processes」をクリックして「新しい Batch Processes」をクリックします。

「Name」に任意の名前、「Process」に上述のワークフロー名を入力します。

「Activation Frequency」(頻度) は下図のように設定できます。最小単位は 1時間ごと(Hourly)です。ここでは Hourly を選択します。

「Status Reason」を “Scheduled” として、「Hours Interval」(時間間隔) は “1”としました。
「Next Activation」では次の実行時間を入力しておきます。

「Target Records」は 高度検索結果から得られた XML ファイルの内容を張り付けることで、レコードをフィルターして、対象を絞ったワークフロー処理が可能になります。上述で取得した Fetch XML の値をコピペします。

Batch Processes を保存して閉じます。そして プロセスを「アクティブ化」します。

これで準備はOKです。

作成したワークフローをまずオンデマンドで実行してみます。リードを開くと以下のような 3レコードを事前に用意していました。「イニシャルコミュニケーション」が未設定のレコードが2つあります。

これらをすべて選択して、上記で作成したワークフローをオンデマンドで実行します。

オンデマンドワークフローにより「説明」の箇所が更新されました。

バッチ処理実行確認

「設定」の「システムジョブ」をクリックします。

確認すると、Batch Processes Scheduling が “タイマーの待機中” となっていますが、これは Batch Processes を設定したタイミングでシステムジョブが作成されています。上記で作成したワークフローは 1 時間ごとに処理されます。

 

プロセスが実行される前に、1つのレコードの「イニシャルコミュニケーション」の値を変更しました。

これで時間が来れば、値の入っているレコード2つのみにワークフローが実行されるはずです。

システムジョブの「ステータス」が “成功しました” となったことを確認して、「プロセスセッション」を確認します。対象の2レコードのみにワークフローが実行されていることを確認しました。

レコードを確認すると、先ほど「イニシャルコミュニケーション」を変更したレコードの「説明」が更新されていました。

 

オンデマンドでの実行はなくてもいい

上記ではわかりやすくするため、レコードに対してオンデマンドでワークフローを実行していますが、オンデマンドで実行しなくても、Batch Processes を作成したタイミングで、「システム ジョブ」が起動して “待機中” となります。

 

もしバッチ処理を止める場合は、「Status Reason」を “Suspended” に変更して保存すればOKです。

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

この記事を読んだ方は他にこんな記事を読んでいます。

  • Dynamics 365 計算フィールドの活用Dynamics 365 計算フィールドの活用
  • ワークフロープロセスの無限ループ対策ワークフロープロセスの無限ループ対策
  • サードパーティ製のおすすめソリューションサードパーティ製のおすすめソリューション
  • Dynamics 365 のWebリソースやプロセスのカスタマイズDynamics 365 のWebリソースやプロセスのカスタマイズ
  • Wordテンプレートで見積書を作成Wordテンプレートで見積書を作成
  • Dynamics 365 プロセスの作成Dynamics 365 プロセスの作成

人気の記事

    Ribbon Workbench:フィールド値でボタンを表示・非表示にする

    Ribbon Workbench:フィールド値でボタンを表示・非表示にする

    • 2020.05.5
    • Dynamics 365 カスタマイズ [More]
    Dynamics 365 アプリの設定

    Dynamics 365 アプリの設定

    • 2017.10.26
    • Dynamics 365 の初期設定 [More]
    オンプレミスの SQL Server からデータを取得する

    オンプレミスの SQL Server からデータを取得する

    • 2019.06.11
    • 他システム連携
    Dynamics 365 ポータルアドオンの利用

    Dynamics 365 ポータルアドオンの利用

    • 2019.05.13
    • Dynamics 365 の初期設定
    Dynamics 365 の製品カタログで営業力を高める

    Dynamics 365 の製品カタログで営業力を高める

    • 2018.02.6
    • Dynamics 365 for Sales [More]
    Dynamics 365 ダッシュボードで情報の可視化を行う

    Dynamics 365 ダッシュボードで情報の可視化を行う

    • 2018.07.10
    • Dynamics 365 for Sales [More]
Dynamics 365のブログ / Dynamics 365 カスタマイズ / Dynamics 365 バッチでプロセスを起動させる
Dynamics 365のブログ

© Copyright ANDAZE. All rights reserved.