Použitie obchodnej logiky pomocou kóduApply business logic with code

Vždy, keď je to možné, mali by ste najprv skúsiť využitie jednej z niekoľkých možností deklaratívneho procesu v prípade, že požiadavka zahŕňa definovanie obchodnej logiky.Whenever possible, you should first look to applying one of several declarative process options when a requirement involves defining business logic. Pozrite si článok Príručka prispôsobenia systému Dynamics 365 Customer Engagement: vytváranie vlastnej obchodnej logiky pomocou procesovSee Dynamics 365 Customer Engagement Customization Guide: Create custom business logic through processes

Ak deklaratívny proces nespĺňa požiadavky, máte ako vývojár niekoľko možností.When a declarative process doesn’t meet a requirement, as a developer you have several options. Táto téma vám predstaví bežné možnosti, ako písať kód.This topic will introduce common options to write code.

Vytvorenie rozšírenia pracovného postupuCreate a workflow extension

Môžete napísať zostavu .NET, pomocou ktorej poskytnete nové možnosti v rámci návrhára procesov.You can write a .NET assembly to provide new options within the process designer. Táto metóda poskytuje nové možnosti pre ľudí, ktorí používajú návrhára pracovných postupov na uplatnenie podmienky či vykonanie novej akcie.This method provides a new option for people using the workflow designer to apply a condition or perform a new action. Rozšírenie pracovného postupu môžu potom znovu používať aj nevývojári na použitie tejto logiky vo vašom kóde.A workflow extension can then be re-used by people who are not developers to apply the logic in your code.

Ďalšie informácie: Príručka pre vývojárov v službe Dynamics 365 Customer Engagement: Vlastné aktivity pracovného postupu (zostavy pracovného postupu)More information: Dynamics 365 Customer Engagement Developer Guide: Custom workflow activities (workflow assemblies)

Vytvorenie doplnkuCreate a plug-in

Môžete napísať zostavu .NET určenú ako doplnok k postupu údajovej transakcie, ktorý na serveri použije obchodnú logiku.You can write a .NET assembly to plug-in to the data transaction flow to apply business logic on the server. So službou Common Data Service for Apps je k dispozícii architektúra, ktorá sa používa na zápis konkrétnej udalosti, ktorá spúšťa kód definovaný v rámci triedy v zostave.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. Táto trieda dedí špecifické rozhranie, ktoré sprístupňuje metódu Execute (Spustiť).That class inherits a specific interface that exposes an Execute method. Keď nastane registrovaná udalosť, na triede sa vyvolá metóda Execute a odovzdá kontextové údaje o danej udalosti.When the registered event occurs, the Execute method on the class is invoked and passed contextual data about the event.

Na registráciu zostáv budete používať nástroj registrácie doplnku.You will use the Plug-in Registration Tool to register your assemblies.

V rámci metódy Execute môžete použiť objektový model definovaný v rámci zostáv súpravy SDK na vyhodnotenie kontextových údajov udalosti a vykonávať príslušné akcie s cieľom vykonať nasledujúce činnosti: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:

  • Určiť, či treba zrušiť operáciu vyvolaním chybyDetermine whether to cancel the operation by throwing an error
  • Meniť kontextové údaje odovzdané metóde ExecuteMake changes to the contextual data passed to the Execute method
  • Vykonať ďalšie operácie, ktoré pomocou organizačnej služby automatizujú procesy.Perform additional operations to automate processes using the Organization Service.

Synchrónne a asynchrónne doplnkySynchronous and asynchronous plug-ins

Kódové doplnky je možné zaregistrovať na synchrónne spustenie v rámci transakcie alebo odloženie a odoslanie do frontu, ktorý použije logiku v čase, keď bude mať menší vplyv na server.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. Z tohto dôvodu sa uprednostňujú asynchrónne doplnky.For this reason, asynchronous plug-ins are preferred.

Pri registrácii doplnku na synchrónne spustenie pre udalosť máte možnosť rozhodnúť, kedy sa má kód spúšťať.When you register the plugin to run synchronously for an event, you have options about when the code should run. Sú tu tri fázy:There are three stages:

UdalosťEvent PopisDescription
Pre-validation (pred overením)Pre-validation Vyskytne sa pred začatím databázovej transakcie.Occurs before the database transaction begins. Toto je vhodné miesto použiť obchodnú logiku na určenie, či treba operáciu zrušiť ešte pred začatím transakcie, aby sa predišlo zhoršeniu výkonu v prípade návratu do stavu pred transakciou.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.
Pre-operation (pred operáciou)Pre-operation Vyskytuje sa po spustení databázovej transakcie.Occurs after the database transaction has started. Zrušenie operácie v tejto fáze vyžaduje vrátenie transakcie naspäťCancelling an operation at this stage must roll back the transaction
Post-operation (po operácii)Post-operation Vyskytuje sa v rámci databázovej transakcie po dokončení hlavnej údajovej operácie.Occurs within the database transaction after the main data operation is completed. Obsahuje všetky zmeny, ktoré mohli byť použité v predchádzajúcich udalostí, ale dochádza k ešte väčšiemu zhoršeniu výkonu v prípade zrušenia operácie.Includes any changes which may have been applied in earlier events but incurs an even larger penalty when cancelling the operation.

Poznámka

Pre synchrónne doplnky existujú obmedzenia týkajúce sa množstva systémových zdrojov, ktoré môžu použiť.Synchronous plug-ins have constraints on the amount of system resources they can use. Ak doplnok prekračuje prahové hodnoty alebo prestane reagovať, operácia sa zruší vyvolaním výnimky.If a plug-in exceeds thresholds or becomes unresponsive an exception will be thrown cancelling the operation.

Ďalšie informácie: Príručka pre vývojárov systému Dynamics 365 Customer Engagement: Tvorba doplnkov na rozšírenie obchodných procesovMore information: Dynamics 365 Customer Engagement Developer Guide: Write plug-ins to extend business processes

Ďalšie informácieSee also

Prehľad služby Common Data Service for Apps pre vývojárovCommon Data Service for Apps Developer Overview