CRM 4.0 ile gelen yeniliklerden biri de varlıklar arasında N:N ilişki kurulabilmesidir. Plugin yazarken Plugin Registration Tool ile Message alanında bazı eventlerin adları auotecomplete ile gelmektedir. Ancak bazen bu mesajlar yeterli olmaz. Mesela N:N ilişki kurduğunuz entityler arasında ilişki kurulduğu anda müdahele etmek isteyebiliriz. Müdahele etmek için bu mesajların bazı özelliklerini değiştirmemiz gerekebilir. N:N ilişkiler kodla service.create ile oluşturulmaz. AssociateEntityRequest ve AssociateEntityRespponse ile kod ile N:N ilişki kurarız. Yani AssociateEntity mesajını kullanmamız gerekir. Plugin register ederken bu mesajı tetiklemek istersek veritabanında unsupported işlem yapmak durumunda kalırız. Aşağıdaki update komutu ile Crm’de N:N ilişkili varlıklar için varolan XX ekle ile kayıtları eklerken plugini tetikleyip işlem yapabiliriz. Plugin Registration Tool’a Update,Create,Delete gibi Message’lara AssociateEntities’inde geldiğini görürüz.
Önce istenilen mesajın id değeri bulunur. Ve bu id değerine sahip kayıdın IsCustomProcessingStepAllowed özelliği 1 yapılır. Benzer işlemlere teklifin revise özelliğinde bazı işlemler yapmak için de kullanılabilir. Revise mesajının idsi bulunur ve IsCustomProcessingStepAllowed özelliği 1 yapılır. Benzer işlemler ihtiyaç duyulan mesajlar için yapılabilir.
Sqlde aşağıdaki update yapılır.
| select s.SdkMessageId from SdkMessagebase as swhere Name = ‘AssociateEntities’
UPDATE SdkMessageFilter SET IsCustomProcessingStepAllowed=1 SdkMessageId=’CB166E09-DEBD-4926-AA7F-B1F889092621′ |