[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プラグインの作成手順になります。




