IOrganizationService Update Metodu

Bu yazı 25 Mayıs 2019 tarihinde Medium/@dynamics365 altında yayınlanmıştır. 21 Mayıs 2020 tarihinde emregulcan.com altında taşınmıştır.

Merhaba,

Bu yazıda Dynamics 365 CE (CRM) SDK 2da IOrganizationService interface ‘in sağlamış olduğu Update metodunu inceleyeceğiz.

Update metodu, Dynamics 365 CE (CRM) ‘de herhangi bir Entity (Varlık) üzerinde bir kaydı tamamen ya da sadece belirli alanlarını güncellememizi sağlamaktadır.

Önemli Noktalar

  • Update metodu ile bir kaydı güncelleyebilmek için ilgili kaydın Dynamics 365 CE (CRM) ID bilgisine ihtiyacımız vardır.
  • Update metodu sadece 1 parametre almaktadır. Bu parametre Entity türünde, güncellenecek olan Entity bilgisini içeren değerdir.
  • Update metodu void bir metoddur, geriye değer dönmez.
  • Update metodu ile sadece 1 kayıt güncellenebilir, SQL ‘de olduğu gibi tablo üzerinde toplu güncelleme işlemi yapılamaz.

Eğer toplu güncelleme işlemi yapmak istiyorsak öncelikli olarak ilgili kritere göre data listesini çekip, bir döngü içinde (foreach ya da for vb) bu kayıtları tek tek güncellemeliyiz.

  • Update metodu ile bir kayıt güncellendiğinde ModifiedOn alanı otomatik olarak işlem saati olarak güncellenir. Bu alana herhangi bir değer atamanıza gerek yoktur.
  • İşlem yapan kullanıcı (IOrganizationService ‘i oluşturan kimlik sahibi ya da CallerId olarak verilmiş SystemUser) bilgisi ilgili kaydın ModifiedBy alanına yazılır.
  • İlgili varlık için Update aşamasına yazılmış Plugin ve Workflow ‘lar tetiklenir.
  • Eğer güncelleme yapılan alan için bir ya da birden fazla Plugin ve Workflow varsa bunlar da ayrı ayrı tetiklenir.
  • Update işlemi tüm kayıt yerine sadece işlem yapılan alanlar (attribute) için geçerlidir.

Late-bound olarak oluşturduğumuz Entity ‘de eklediğimiz alanlar, Early-bound yapıda ise sadece değer atadığımız Property ‘ler için güncelleme yapılır.

  • Daha önce farklı Request yapılarına sahip olan özel işlemler* (AssignRequest, SetStateRequest vb) 2016 yılında yapılan güncelleme ile birlikte Update / UpdateRequest ile yapılabilir hale geldi. İlgili işlemler için detaylı bilgiye buradan ulaşabilirsiniz. Bu sayede birden fazla OrganizationService çağrısı yapmak yerine tek bir Update işlemi ile birden fazla işlemi yapmak mümkün hale geldi.

.NET Projesi – Örnek Kodlar

.NET projelerimizde Microsoft.CrmSdk.CoreAssemblies kütüphanelerini kullanarak Dynamics 365 CE (CRM) ‘de Update işlemi yapabiliriz. Bu kütüphaneleri NuGet üzerinden projemize dahil edebiliriz.

Dynamics 365 CE (CRM) SDK kütüphanelerini projemize nasıl ekleyeceğimizi daha önce burada detaylı olarak anlatmıştım.

IOrganizationService.Update metodu kullanımı
IOrganizationService.Update metodu kullanımı

Yukarıdaki örnek kodda Contact varlığı için emailaddress1 ve mobilephone alanlarında güncelleme yapılıyor.

email ve phoneNumber parametrelerine gönderilen değerler Dynamics 365 CE (CRM) ‘de ilgili Contact kaydında güncellenecektir.

Burada önemli olan nokta, bu değerlere string.empty yani boş değer gönderilirse ilgili kaydın alanları boş olarak güncellenecektir. Bu nedenle Update metotlarınızı yazarken genel metotlar yerine işleme özel metotlar yazarak mevcut datayı kaybetmeden işlem yapmaya dikkat etmelisiniz.

Umarım faydalı bir yazı olmuştur.


IOrganizationService metotları için oluşturduğum Index yazısına buradan ulaşabilirsiniz.

Dynamics 365 CE (CRM) SDK konusunda ilgili tüm yazılara tek nokta üzerinden ulaşmak isterseniz http://www.emregulcan.com/dynamics365-sdk adresine bakabilirsiniz.

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.