چگونه از افزونه‌ها استفاده کنیم؟

اکثر استفاده‌هایی که از افزونه‌ها در Microsoft Dynamics CRM می‌شود، حالت بهینه ندارند. مشتریانی وجود داشته‌اند که به دلیل طراحی نامناسب افزونه‌ها، مشکلات عملکردی شدیدی را تجربه نموده‌اند. در ادامه راهنمایی‌های مختصری در مورد استفاده از افزونه‌ها و طراحی‌های آن‌ها را مرور خواهیم نمود (در این پست فقط وقایع مربوط به Update بررسی خواهند شد).

 

4 قانون در استفاده از افزونه‌ها

  • تعامل با SQL و زمان آن را به حداقل ممکن کاهش دهید.
  • کاربران بایستی کمترین زمان انتظار را داشته باشند.
  • رکورد جاری را به شکل Post-Operation و Synchronous به‌روزآوری ننمایید.
  • اجازه تکرار در Loopها را به افزونه‌ها ندهید.

 

چگونه این قانون‌ها را رعایت کنیم؟

بررسی Pipeline وقایع نشان می‌دهد که در چهار مرحله امکان ثبت افزونه‌ها وجود دارد. در هر بار ذخیره یک رکورد هر چهار مرحله (و در کنار آن‌ها مرحله ویرایش که توسط CRM اجرا می‌شود) شانس اجرا خواهند داشت. مراحل Pre-Operation، Write و Post-Operation Synchronous همه در حین تعامل با پایگاه داده اجرا می‌شوند.

 

در مراحل Pre-Validation و Pre-Operation چه اتفاقی می‌افتد؟

دو آرایه از فیلدها در دسترس هستند. آرایه اول شامل فیلدها و مقادیری است که تغییر یافته‌اند. آرایه دوم تمام فیلدها (یک Pre-Image) و مقادیر را قبل از اعمال تغییرات شامل می‌شود. برای به‌روزآوری رکورد کافی است که آرایه شامل فیلدهای تغییر یافته را تغییر دهیم.

 

در مرحله Post-Operation Synchronous چه اتفاقی می‌افتد؟

عملاً همان دو آرایه در دسترس هستند. جهت به‌روزآوری رکورد بایستی Updateای را انجام دهید. مثالی از یک کد در زیر آمده است:

Entity newupdate = new Entity("contact");

newupdate["firstname"] = "Payman";

newupdate["contactid"] = contactidguid;

CRMService.update(newupdate);

 

تفاوت در چیست؟

مرحله Post-Operation باعث ایجاد Update دیگری در پایگاه داده CRM خواهد شد. این امر باعث افزایش زمان و منابع مورد نیاز خواهد شد. همچنین با فراخوانی مجدد Pre-Image قابل اعتماد نخواهد بود. موضوع دوم را در پست دیگری شرح می‌دهم.

 

نتیجه‌گیری

  • Pre-Validation: سعی کنید بخش زیادی از منطق را در این مرحله اضافه نمایید.
  • Pre-Operation: فقط Stepهایی که ضروری باشند را در این بخش تنظیم نمایید.
  • Post-Operation: اموری که بایستی بر روی رکوردهای فرزند بلافاصله رخ دهند را در این بخش تنظیم نمایید. رکورد جاری به به هیچ‌وجه در این بخش به‌روزآوری ننمایید.
  • Post-Operation Asynchronous: تمامی عملیات غیرهمزمان را در این بخش اجرا نمایید.

 

نظرات
  1. ا آزادی 12:37 روز 30 شهریور

    لطفاً در مورد سایر messageها نیز پست بگذارید.ممنون از لطفتون

  2. مائده فرضی پور 14:03 روز 02 مهر

    مطالب فوق العاده آموزنده و جالب هستند

  3. محمدعلی آذری 12:41 روز 05 مهر

    برای پیام ایجاد و حذف نیز لطفن در پستهایی جداگانه توضیح داده شود.ممنون