[Dynamics365]簡単なプラグインサンプル PreOperation
2017/5/16 TTN
今回は「簡単なプラグインサンプル PreOperation」という事で
営業案件で、項目に値を登録した場合に他項目の設定を行う
プラグインの作成手順を記載します。
[Dynamics 365] プラグインの概要にも記載がありましたが、
PreOperation段階でデプロイされたプラグインは
エンティティにデータが登録される前のPreValidation処理後にイベント発生します。
1 プラグインの作成
1.1 クラスの追加
[Dynamics 365]簡単なプラグインサンプル PreValidationで作成した「Myplugin」プロジェクトを
VisualStudioで開きます。
ソリューションエクスプローラーのOpportunityフォルダを右クリック、
「新しい項目の追加」または「クラス」を選択して新規クラスファイルを作成します。
クラスファイル名はOpportunityPreOperationという名前で作成します。
新規プロジェクトから作成する場合は
[Dynamics 365]簡単なプラグインサンプル PreValidationの「1.1 ソリューションの作成」をご参照ください。
1.2 プラグインの実装
追加したクラスファイルを開き、下記のコードを書き込みます。
今回は、「購入時期が即時なら確率を90%に自動設定する」機能を実装します。
[code]using System; using Microsoft.Xrm.Sdk; namespace Myplugin { /// <summary> /// 営業案件PreOperation /// </summary> public class OpportunityPreOperation : IPlugin { /// <summary> /// プラグイン実行時ハンドラー(IPluginの抽象メソッド) /// </summary> /// <param name="serviceProvider">サービスプロバイダ</param> public void Execute(IServiceProvider serviceProvider) { // IPluginExecutionContext を取得 // プラグインの実行コンテキスト情報を取得します。 IPluginExecutionContext context = serviceProvider.GetService(typeof(IPluginExecutionContext)) as IPluginExecutionContext; // 営業案件登録時に購入時期が即時、かつ確率が未入力なら // 確率を90%に自動設定する。 AutoFillAccuracy(context); } /// <summary> /// 確率の自動設定 /// </summary> /// <param name="context">入力パラメタ</param> private void AutoFillAccuracy(IPluginExecutionContext context) { // Entityの入力値があれば if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { // Entityを取得 Entity entity = context.InputParameters["Target"] as Entity; // 営業案件登録時に購入時期が即時、かつ確率が未入力なら if (entity.Attributes.Contains("purchasetimeframe") && ((OptionSetValue)entity.Attributes["purchasetimeframe"]).Value == 0 && !entity.Attributes.Contains("closeprobability")) { // 確率を90%に設定する。 entity.Attributes.Add("closeprobability", 90); } } } } } [/code]
1.3.署名の設定
署名は1プロジェクトに1つで問題ありませんので、
PreValidationで作成した署名ファイルが既にあれば再設定は必要はありません。
プロジェクトにMypluginKey.pfxが無い方は、
[Dynamics 365]簡単なプラグインサンプル PreValidationの「1.3.署名の設定」をご参照ください。
ビルド時にキーファイルのエラーとなる場合は、
ソリューションエクスプローラーのプロジェクト右クリック、「プロパティ」を選択します。
左の署名タブをクリックし、「パスワードの変更」から
前回設定したパスワードを設定し直してください。
2.プラグインのデプロイ
営業案件新規登録時に、プラグインが実行されるように、
PluginRegistrationToolを使用して、プラグインを登録します。
[Dynamics 365]プラグインの登録を
参考に登録を進めてください。
3.動作確認
営業案件の新規ボタンを押下します。
下図のように購入時期フィールドに「即時」と入力し、上書き保存を押下します。
(↑クリックすると拡大表示されます)
空白だった確率フィールドが90%に自動設定されることを確認します。
(↑クリックすると拡大表示されます)
以上がDynamics365向けの簡単なPreOperationプラグインの作成手順になります。