Dynamics 365 に Javascript のコードを埋め込んでみる XRM ToolBox でサイトマップを非表示に設定 Dynamics 365 バッチでプロセスを起動させる Dynamics 365 機能拡張 – Workflow Tools Dynamics 365 のデータを Azure SQL へエクスポート Ribbon Workbench:フィールド値でボタンを表示・非表示にする
2017.08.23 | customizing-dynamics-365/

Dynamics 365 機能拡張 – Workflow Tools

Author:Takafumi Noguchi

linkedIn

Dynamics 365 ワークフローの機能を大きく拡張する Dynamics 365 Workflow Tools をご紹介します。以前、サードパーティ製のおすすめソリューションは何か でおススメしたソリューションの利用方法になります。

重要事項: これからご紹介する Dynamics 365 Workflow Tools はサードパーティー製ソリューションです。もしご自身の環境で利用される場合は、十分な検証を行った上、自己責任でご利用ください。また、当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。

Dynamics 365 Workflow Tools について

Dynamics 365 Workflow Tools は、Demian Raschovan 氏により開発された Dynamics のソリューションで、Dynamics 365 のワークフローの機能を大きく改善します。今回インポートするのは、バージョン 1.0.54.1 ですが、72 もの機能が追加されます。

その中でも、特定のユーザーやチームへの共有設定や、2つのフィールドの四則演算、レコードIDの取得などの機能は便利で私の環境でもよく利用しています。

Workflow Tools 機能一覧 (1.0.54.1)

Dynamics 365 Workflow Tools の機能一覧になります。

1: Force Calculate Rollup Field31: Is Member Of Marketing List61: Translate Text
2: Apply Routing Rules32: Remove From All Marketing Lists62: Currency Convert
3: Query Valuesare neat63: Get Record ID
4: Share Record With Team33: Numeric Functions64: Retrieve User’s BU Default Team
5: Share Record With User34: Email To Team65 Get App Module ID
6: Unshare Record With Team35: Set Process Stage66 Get App Record Url
7: Unshare Record With User36: Entity Mobile Deep Link67 Is Member Of Team
8: Check If User is in Role37: Send Email68 Count Child Entity Record
9: Check If User is in Team38: Geocode Address69 Get Multi Select OptionSet
10: Add To Marketing List39: Add User To Team70 Map Multi Select OptionSet
11: Remove From Marketing List40: Remove User From Team71 Set Multi Select Option Set
12: Clone Children41: Associate Entity72 Delete Record Audit History
13: Clone Record42: Goal Recalculate
14: Set Process43: Get Initiating User
15: Rollup Functions44: Encrypt Text
16: Entity Attachment To Email45: Check Associate Entity
17: Pick From Queue46: Set State
18: Queue Item Count47: Update Child Records
19: Add Role To User48: Disassociate Entity
20: Add Role To Team49: Insert Option Value
21: Remove Role From User50: Delete Option Value
22: Remove Role From Team51: Sales Literature To Email
23: Set User Settings52: Send Email From Template To Users In Role
24: String Functions53: Send Email To Users In Role
25: Delete Record54: Calculate Price
26: Entity Json Serializer55: Execute Workflow By ID Thanks to Steve Mordue
27: Qualify Lead56: JSON Parser
28: Add Marketing List To Campaign57: Date Functions
29: Copy Marketing List Members58: Calculate Agregate Date
30: Copy To Static List59: OrgDBSetting Update
60: OrgDBSetting Retrieve

引用元: Dynamics 365 Workflow Tools (1.0.54.1)

英語ですが各機能の説明は、上記のページがご確認ください。ここでは触れません。

Dynamics 365 Workflow Tools のインポート

Dynamics 365 Workflow Tools をインポートします。Dynamics 365 Workflow Tools は、App Store で検索すると表示されますが、ここから「今すぐ入手する」をクリックしても、うまくインポートできません。

そのため、Dynamics 365 Workflow Tools の .zip ファイルがある GitHub へアクセスします。

URL はこちら: https://github.com/demianrasko/Dynamics-365-Workflow-Tools

まずは、バージョンですが、左側の 「Branch:master」を展開して、「Tags」より 1.0.54.1 をチェックします。

そして右側にある「Clone or download」で「Download ZIP」をクリックします。

Dynamics 365 のソリューションで「インポート」からダウンロードした .zip ファイルをアップロードします。

ファイルが正しければ、以下のような画面になるので「インポート」をクリックします。

正常に完了すれば、ソリューション一覧に Dynamics 365 Workflow Tools が表示されているはずです。

これでソリューションがインポートされました。

Workflow Tools の利用

それでは、ワークフローを作成して、Dynamics 365 Workflow Tools を実際に使ってみます。「設定」の「プロセス」から新規にワークフローを作成します。そして「ステップの追加」を開くと、下図のように Workflow Tools がインポートされて利用できる状態になっていることがわかります。

それでは、以下のワークフローを作成してみます。

レコードの共有設定と解除

この共有機能はどうしても必要だったので Dynamics 365 Workflow Tools で実現できることがわかった時、歓喜した記憶があります(笑)

共有設定

まずは「ステップの追加」で、所有ユーザーの部署が “営業部” なら という条件を設定して、さらに追加して、「msdyncrm Workflow Tools」の「Share Record With Team」を追加します。これでチームに対してレコードを共有するという設定ができます。

「プロパティの設定」をクリックします。

「Sharing Record URL」は対象のレコードですが、これは “レコード URL(動的)” を設定します。これでワークフローが実行されたレコードに対して共有を行うことができます。「Team」では共有したチームを選択して、Permission で必要な共有設定を行います。設定が完了したら保存して閉じます。

共有解除

共有解除を行う場合は「Unshare Record With Team」を使います。(ユーザーの場合は「Unshare Record With User」)

共有解除では、「Sharing Record URL」と「Team」のみを設定します。これで対象のレコードから共有解除ができます。

共有設定と解除は、1ステップで1チームもしくは1ユーザーなので、レコードに共有されているすべてのチームを解除してから共有設定を行う場合は、解除したいチーム数分、ステップを定義する必要があります。

この場合、共有解除のワークフローだけ別に作成して、子ワークフローとして呼ぶという手順でもいいかと思います。

レコード ID を取得

レコードの ID を取得する作業も苦労しました。Javascript や Data Export Service で Azure SQL 上にデータをエクスポートすれば ID を取得してフィールドに格納できたのですが、レコード作成時に自動的にフィールドに ID をセットすることができませんでした。

Dynamics 365 Workflow Tools も古いバージョンだとなかったようですが、1.0.54.1 では「Get Record ID」でレコードの ID を取得できるようになりました。

「プロパティの設定」をクリックして、「Record URL」に “レコード URL(動的)” を設定します。

「Get Record ID」でレコードのURLからIDを取得して、それを別のフィールドにセットする場合は、「レコードの更新」を後のステップに追加します。右パネルの「検索」を展開すると、「ローカル値」に「Get Record ID」のステップ名が表示されています。

「Record ID」として「追加」から「OK」をクリックすれば、フィールドに設定できます。

これでレコードのIDをフィールドに、レコードの ID をワークフローで取得できるようになりました。ワークフローを動作させてみると、下図のように ID をテキストでセットしています。

レコード作成時に動作するワークフローとして作成して利用するといいと思います。

数値フィールドの四則演算

10進数のフィールド A と B を計算する「Numeric Functions」をステップとして追加します。

「プロパティの設定」をクリックすると、下図のように「Number 1」と 「Number 2」 の数値フィールドをセットできるようになっています。今回は、時価総額の計算として、株価 と 発行済株式数 をそれぞれセットしました。

先ほどと同じように、「Number 1」と 「Number 2」 の掛け算をして、その結果を「時価総額」というフィールドに入力するので、「レコードの更新」をステップに追加します。右パネルの「検索」を展開すると、「ローカル値」に「株価 と 発行済株式数 をセット」のステップ名が表示されています。

四則演算を選択できるので、”Multiply” を選択します。

「時価総額」のフィールドに追加します。

これでOKです。ワークフローをアクティブ化して実行すると、以下のように「時価総額」が計算されました。

その他の機能も

Dynamics 365 Workflow Tools の一部の機能のみをご紹介しました。その他もかなりの機能が用意されているのでお時間がある際にお試しください。

今回はここまで。
 

Dynamics 365 ブログ / customizing-dynamics-365 /dynamics-solution-workflow-tools

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

Popular articles