Kod ile iş mantığı uygulamaApply business logic with code

Mümkün olduğunda, bir gereksinim iş mantığı tanımlamayı gerektiriyorsa ilk olarak birkaç bildirim temelli işlem seçeneğinden birini uygulamayı denemeniz gerekir.Whenever possible, you should first look to applying one of several declarative process options when a requirement involves defining business logic. Bkz: Dynamics 365 Müşteri Katılımı Özelleştirme Kılavuzu: Süreçler aracılığıyla özel iş mantığı oluşturmaSee Dynamics 365 Customer Engagement Customization Guide: Create custom business logic through processes

Bildirim temelli bir işlem gereksinimi karşılamadığında, geliştirici olarak birkaç seçeneğiniz vardır.When a declarative process doesn’t meet a requirement, as a developer you have several options. Bu konuda, kod yazmaya ilişkin genel seçenekler tanıtılacaktır.This topic will introduce common options to write code.

İş akışı uzantısı oluşturmaCreate a workflow extension

İşlem tasarımcısında yeni seçenekler sağlamak üzere bir .NET bütünleştirilmiş kodu yazabilirsiniz.You can write a .NET assembly to provide new options within the process designer. Bu yöntem, bir koşul uygulamak veya yeni bir eylem gerçekleştirmek üzere iş akışı tasarımcısını kullanan kişiler için yeni bir seçenek sağlar.This method provides a new option for people using the workflow designer to apply a condition or perform a new action. Bir iş akışı uzantısı daha sonra kodunuzda mantığı uygulamak için geliştirici olmayan kişiler tarafından yeniden kullanılabilir.A workflow extension can then be re-used by people who are not developers to apply the logic in your code.

Daha fazla bilgi: Dynamics 365 Müşteri Katılımı Geliştirici Kılavuzu: Özel iş akışı etkinlikleri (iş akışı bütünleştirilmiş kodları)More information: Dynamics 365 Customer Engagement Developer Guide: Custom workflow activities (workflow assemblies)

Eklenti oluşturmaCreate a plug-in

Sunucu üzerinde iş mantığını uygulamak için veri işlem akışına eklenecek bir .NET bütünleştirilmiş kodu yazabilirsiniz.You can write a .NET assembly to plug-in to the data transaction flow to apply business logic on the server. Uygulamalar için Common Data Service’le sınıf içinde tanımlanmış kodu bir bütünleştirilmiş kodda yürütmek üzere belirli olayları kaydetmek için kullandığınız bir çerçeve vardır.With Common Data Service for Apps there is a framework you use to register specific events to execute code defined within a class in an assembly. Bu sınıf bir Execute yöntemini kullanıma sunan belirli bir arabirimi devralır.That class inherits a specific interface that exposes an Execute method. Kayıtlı olay gerçekleştiğinde, sınıfı üzerinde Execute yöntemi çağrılır ve olayla ilgili bağlamsal veriler yönteme geçirilir.When the registered event occurs, the Execute method on the class is invoked and passed contextual data about the event.

Bütünleştirilmiş kodlarınızı kaydetmek için Eklenti Kayıt Aracı’nı kullanın.You will use the Plug-in Registration Tool to register your assemblies.

Execute yönteminde, bağlamsal olay verilerini değerlendirmek ve aşağıdakileri yapmak için uygun eylemleri gerçekleştirmek üzere SDK bütünleştirilmiş kodları içinde tanımlanan nesne modelini kullanabilirsiniz:Within the Execute method, you can use the object model defined within the SDK Assemblies to evaluate the contextual event data and perform appropriate actions to do the following:

  • Bir hata oluşturarak işlemin iptal edilip edilmeyeceğini belirlemeDetermine whether to cancel the operation by throwing an error
  • Execute yöntemine geçirilen bağlamsal verilerde değişiklik yapmaMake changes to the contextual data passed to the Execute method
  • Kuruluş Hizmetini kullanarak işlemleri otomatik hale getirmek için ek işlemler gerçekleştirme.Perform additional operations to automate processes using the Organization Service.

Zaman uyumlu ve zaman uyumsuz eklentilerSynchronous and asynchronous plug-ins

Eklentiler, işlem içinde zaman uyumlu olarak yürütülecek veya ertelenip sunucu üzerinde daha az etkisi olan bir zamanda mantığı uygulayacak bir kuyruğa gönderilecek şekilde kaydedilebilir.Plug-ins can be registered to execute synchronously within the transaction or to be deferred and sent to a queue that will apply the logic at a time that will have less impact on the server. Bu nedenle, zaman uyumsuz eklentiler tercih edilir.For this reason, asynchronous plug-ins are preferred.

Eklentiyi bir olay için zaman uyumlu olarak çalışacak şekilde kaydettiğinizde, kodun çalışması gereken zamanla ilgili seçenekleriniz vardır.When you register the plugin to run synchronously for an event, you have options about when the code should run. Üç aşama vardır:There are three stages:

OlayEvent AçıklamaDescription
Ön doğrulamaPre-validation Veritabanı işlemi başlamadan önce gerçekleşir.Occurs before the database transaction begins. Burası, işlem başlamadan önce işlemi geri almaktan kaynaklanan performans cezasını önlemek amacıyla çalışmanın iptal edilip edilmeyeceğini belirlemek üzere iş mantığı uygulamak için iyi bir yerdir.This is a good place to apply business logic to determine whether the operation should be cancelled before the transaction begins to avoid the performance penalty of rolling back the transaction.
Ön çalışmaPre-operation Veritabanı işlemi başlatıldıktan sonra gerçekleşir.Occurs after the database transaction has started. Bu aşamada bir çalışmanın iptal edilmesi durumunda işlemin geri alınması gerekirCancelling an operation at this stage must roll back the transaction
Son çalışmaPost-operation Ana veri çalışması tamamlandıktan sonra veritabanı işlemi dahilinde gerçekleşir.Occurs within the database transaction after the main data operation is completed. Daha önceki olaylarda uygulanmış olabilecek tüm değişiklikleri içerir, diğer yandan çalışma iptal edilirken daha da büyük bir ceza uygular.Includes any changes which may have been applied in earlier events but incurs an even larger penalty when cancelling the operation.

Not

Zaman uyumlu eklentilerin kullanabileceği sistem kaynaklarının miktarı kısıtlıdır.Synchronous plug-ins have constraints on the amount of system resources they can use. Bir eklenti eşikleri aşarsa veya yanıt vermeyi durdurursa çalışmayı iptal eden bir özel durum oluşturulur.If a plug-in exceeds thresholds or becomes unresponsive an exception will be thrown cancelling the operation.

Daha fazla bilgi: Dynamics 365 Müşteri Katılımı Geliştirici Kılavuzu: İş süreçlerini genişletmek için eklentiler yazmaMore information: Dynamics 365 Customer Engagement Developer Guide: Write plug-ins to extend business processes

Ayrıca bkz.See also

Uygulamalar için Common Data Service Geliştiricisine Genel BakışCommon Data Service for Apps Developer Overview