1-)Öncelikle Microsoftun Sitesinden CrmSdk4 paketini indiriyoruz.
2-)Paketi kurduktan sonra PlugIntemplate kullanabilmek için Sdk klasöründen visualstudiotemplatesàcsàplugin içindekiplugin.zip dosyasını alarak visual studiomuzun project templatelerinde c# klasörünün içine CRM diye bir klasör oluşturuyoruz.Ve Bu zip dosyamızı buraya extract ediyoruz.Böylece artık plugin için visual studiomuzda bir template olmuş oluyor.
My Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual C#\CRMPlugin
2-)Crm Sdkları projeye referans olarak veriyoruz
Microsoft.crm.sdk
Microsoft.crm.sdktypeproxy
3-)Template olarak kullanmak istemiyorsanız sdkları ekledikten sonra IPlugin den türetme yapmanızda yeterlidir.Plugin olarak türeyecek sınıf public olmalıdır
public class Post_Create:IPlugin
4-)Plugin dll mutlaka classlibrary–>properties–>signing kısmından imzalanmalıdır
5-)Moniker contexten gelen entitynin Id ve Name alabiliyoruz
Moniker moniker = (Moniker)context.InputParameters.Properties[“EntityMoniker”];
6-) contexten gelen entity ve özelliklerine aşağıdaki gibi ulaşabiliriz
if (context.InputParameters.Properties.Contains(“Target”) &&
context.InputParameters.Properties[“Target”] is DynamicEntity)
if (context.PostEntityImages[“Post_Object”] is DynamicEntity)
{
DynamicEntity entity = (DynamicEntity)context.PostEntityImages[“Post_Object”];
if (entity.Name == EntityName.contact.ToString())
{
if (entity.Properties.Contains(“contactid”))
{
kisiId = ((Key)entity.Properties[“contactid”]).Value;
}
7-)Entityözelliklerini aşağıdaki gibi değiştirebiliriz
if (entity.Properties.Contains(“new_durumu”))
entity.Properties.Remove(“new_durumu”);
entity.Properties.Add(new PicklistProperty(“new_durumu”, new Picklist(1)));
mycrmservice.Update(entity);
8-)Pluginimizi yazdıktan sonra bu plugin crm tanıtmamız gerekmektedir
Bunun için PluginRegistrationTool unu kullanıyoruz
9-)Register New Assembly diyerek pluginimizi crm tanıtıyoruz
Register New Step ile de pluginimizin hangi entitynin hangi eventindeçalışacağınız belirtiyoruz
Stage ile de eventin gerçekleşmesinden sonraki durumda mı önceden mi olacağınız belirtiyoruz