جاوا اسکریپت در dynamics 365

آموزش javascript دز dynamics crm

🧠 JavaScript در Dynamics CRM دقیقاً کجا استفاده میشه؟

در فرم‌های Entity مثل:

  • Account
  • Contact
  • Opportunity

از طریق:

Form Libraries + Event Handlers


⚙️ 1. مهم‌ترین Event ها

📌 OnLoad

وقتی فرم باز میشه

 
function onLoad(executionContext) {
var formContext = executionContext.getFormContext();
console.log("Form Loaded");
}
 

📌 OnChange

وقتی مقدار یک فیلد تغییر می‌کنه

 
function onRevenueChange(executionContext) {
var formContext = executionContext.getFormContext();
var revenue = formContext.getAttribute("revenue").getValue();

if (revenue > 100000) {
formContext.getAttribute(“description”).setValue(“High Value Customer”);
}
}

 

📌 OnSave

قبل از ذخیره رکورد

 
function onSave(executionContext) {
var eventArgs = executionContext.getEventArgs();

if (true) {
eventArgs.preventDefault(); // جلوگیری از ذخیره
alert(“Save blocked!”);
}
}

 

🧩 2. کار با فیلدها (Attributes)

گرفتن مقدار:

 
var name = formContext.getAttribute("name").getValue();
 

تنظیم مقدار:

 
formContext.getAttribute("name").setValue("Test");
 

قفل کردن:

 
formContext.getControl("name").setDisabled(true);
 

مخفی کردن:

 
formContext.getControl("name").setVisible(false);
 

🌐 3. ارتباط با سرور (Web API)

یکی از مهم‌ترین بخش‌ها در CRM

 
Xrm.WebApi.retrieveRecord("account", "GUID-HERE", "?$select=name,revenue")
.then(function(result) {
console.log(result.name);
});
 

یا ایجاد رکورد:

 
var data = {
name: "New Account"
};

Xrm.WebApi.createRecord(“account”, data).then(function(result) {
console.log(result.id);
});

 

🧠 4. معماری اجرای JavaScript در CRM

وقتی صفحه باز میشه:

  1. Form Load Event اجرا میشه
  2. Field Events (OnChange)
  3. User Interaction
  4. Save Event

CRM از یک API داخلی به اسم:

Xrm.Page (قدیمی) → formContext (جدید)

استفاده می‌کنه.


⚠️ 5. اشتباهات رایج مصاحبه‌ای

❌ استفاده از Xrm.Page (قدیمی شده)
❌ نداشتن executionContext
❌ استفاده مستقیم از DOM (ممنوع)
❌ فرض کردن synchronous بودن Web API


🚀 6. مثال واقعی (سناریوی کاربردی)

سناریو:

اگر مبلغ Opportunity بیشتر از 50000 بود، فیلد “Priority” High شود.

 
function onAmountChange(executionContext) {
var formContext = executionContext.getFormContext();
var amount = formContext.getAttribute("estimatedvalue").getValue();

if (amount > 50000) {
formContext.getAttribute(“prioritycode”).setValue(1); // High
} else {
formContext.getAttribute(“prioritycode”).setValue(2); // Normal
}
}

اشتراک گذاری :

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *