Microsoft Dynamics CRM - JScript Web 网络资源

JScript Web 资源可能是您在 Microsoft Dynamics CRM 中使用的最重要的 Web 资源类型。

JavaScript 在 CRM 中的应用

表单事件编程

表单事件编程用于处理客户端行为,例如当用户打开表单、更改某些数据、在选项卡间移动等时发生的情况。要实现此类客户端交互,您将编写 JavaScript 代码并将其作为 JScript Web 资源添加到 CRM 中。但是,您将编写的 JavaScript 代码必须使用 Dynamic CRM 的 Xrm.Page 模型,而不是标准 JavaScript DOM。使用 Xrm.Page 模型是 Microsoft 的编码方式,可确保您使用此模型编写的任何代码都与任何未来版本的 CRM 兼容。

Web 资源

除了用于表单事件编程之外,JavaScript 还用于 CRM 的其他应用程序,例如 −

  • 使用唯一 URL 打开表单、视图和对话框。

  • 使用 OData 和 SOAP 端点与 Web 服务交互。

  • 在其他 Web 资源(例如 HTML Web 资源)中引用 JavaScript 代码。

在这种情况下,您可以编写 JavaScript 代码(使用 Xrm.Page 模型)并将其作为 JScript Web 资源添加到 CRM 中,然后可以使用唯一 URI 在任何地方引用它。

功能区自定义

最后,JavaScript 的另一个常见用途是处理功能区自定义,例如 −

  • 根据某些逻辑显示/隐藏功能区按钮
  • 根据某些逻辑启用/禁用功能区按钮
  • 处理单击某个功能区按钮时发生的情况

要处理此类情况,您将编写 JavaScript 逻辑(使用 Xrm.Page 模型),然后将其添加为 JScript Web 资源。然后可以在功能区按钮的 XML 中引用此 Web 资源,我们可以指定在哪个 JScript 文件中调用哪种方法来检查功能区按钮是否应显示/隐藏或启用/禁用或处理单击事件。

Xrm.Page 对象模型

以下是 Xrm.Page 对象的层次结构,显示可用的命名空间、对象及其集合。您将在编写 JScript 代码时使用这些属性。

XRM 页面对象模型

命名空间

Sr.No 对象 &描述
1

上下文

提供方法来检索特定于上下文的信息,例如组织详细信息、登录用户详细信息或在查询字符串中传递给表单的参数。

2

数据

提供对实体数据的访问,并提供方法来管理表单以及业务流程流控制中的数据。

3

UI

包含用于检索有关用户的信息的方法接口,此外还有表单的几个子组件的集合。

对象

Sr.No 对象 &描述
1

实体

提供方法 −

  • 检索记录信息
  • 保存方法
  • 集合属性
2

流程

检索业务流程流属性的方法。

3

导航

提供访问使用项目集合导航项目。

4

FormSelector

使用项目集合访问​​用户可用的表单。还使用导航方法关闭和打开表单。

5

阶段

每个流程都有一个阶段集合,可以使用流程的 getStages 方法访问这些阶段。

6

步骤

每个阶段包含各种步骤,可以使用阶段的 getSteps 方法访问这些步骤。

集合

Sr.No 集合和说明
1

属性

提供对表单上可用的实体属性的访问。

2

控件

ui.controls − 提供对表单上每个控件的访问。

attribute.controls − 提供对属性内所有控件的访问。

section.controls −提供对部分内所有控件的访问。

3

项目

提供对表单上所有导航项目的访问。

4

选项卡

提供对表单上所有选项卡的访问。

5

部分

提供对表单上所有部分的访问表单。

表单编程中支持的事件

使用 Xrm.Page 模型进行表单编程允许您处理以下表单事件 −

  • onLoad
  • onSave
  • onChange
  • TabStateChange
  • OnReadyStateComplete
  • PreSearch
  • 业务流程控制事件

表单编程示例

在此示例中,我们将根据用户选择的 PreferredMethodofCommunication 对联系表单进行一些验证。因此,如果用户选择其首选方法为电子邮件,则电子邮件字段应成为必填字段,对于电话和传真等其他字段也应如此。

步骤 1 −创建一个名为 contacts.js 的 JavaScript 文件并复制以下代码。

function validatePreferredMethodOfCommunication() { 

    //获取首选通信方法代码的值
    var prefferedContactMethodCode =
    Xrm.Page.getAttribute('preferredcontactmethodcode').getValue();
    
    //如果首选方法 = Any,则将所有字段设为非必填项
    
    //否则,如果首选方法 = 电话,则将移动电话字段设为必填项
    //并将所有其他字段设为非必填项
    
    //否则,如果首选方法 = 传真,则将传真字段设为必填项
    //并将所有其他字段设为非必填项
   
   if(prefferedContactMethodCode == 1) { 
      clearAllMandatoryFields(); 
   }  
   if(prefferedContactMethodCode == 2) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required'); 
   } else if(prefferedContactMethodCode == 3) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required'); 
   } else if(prefferedContactMethodCode == 4) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('fax').setRequiredLevel('required'); 
   } 
} 
function clearAllMandatoryFields() { 
   
   //clear all mandatory fields 
   Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none'); 
   Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none'); 
   Xrm.Page.getAttribute('fax').setRequiredLevel('none'); 
}

步骤 2 − 通过导航至"设置"→"自定义"→"自定义系统"→"联系人实体"→"表单"→"主表单",打开"联系人实体"表单。

步骤 3 − 单击"表单属性"。

表单编程 表单属性

步骤 4 − 在"表单属性"窗口中,单击"添加"。

表单编程 添加表单库

步骤 5 −在下一个查找 Web 资源记录窗口中,单击新建,因为我们正在创建新的 Web 资源。

表单编程添加表单库新建

步骤 6 − 在新建 Web 资源窗口中,输入以下详细信息 −

名称 − new_contacts.js

显示名称 − contacts.js

类型 − JScript

上传文件 −从本地计算机上传您创建的 JavaScript 文件。

表单编程 Web 资源新建

步骤 7 − 单击"保存",然后单击"发布"。关闭窗口后,您将返回到"查找 Web 资源记录"窗口。

步骤 8 − 现在,您可以在此处看到 new_contacts.js Web 资源。选择它并单击"添加"。现在,您已成功添加新的 Web 资源并将其注册到表单上。

表单编程 Web 资源添加

步骤 9 − 现在,我们将在"首选通信方法"字段的更改上添加一个事件处理程序。此事件处理程序将调用我们刚刚编写的 JavaScript 函数。从事件处理程序部分中选择以下选项。

控制 − 首选通信方法

事件 − OnChange

然后,单击添加按钮,如以下屏幕截图所示。

表单编程添加了新表单库

步骤 10 − 在下一个处理程序属性窗口中,我们将指定发生更改事件时要调用的方法。

选择库为 new_contacts.js,函数为validatePreferredMethodOfCommunication。单击"确定"。

表单编程添加处理程序

步骤 11 − 您现在将能够看到表单库(Web 资源)及其上注册的事件。单击"确定"。

表单编程添加的库处理程序

步骤 12 − 单击"保存",然后单击"发布"。

表单编程发布自定义项

步骤 13 − 现在打开任意联系人表单并将首选通信方式设置为电话。这将使"手机"字段成为必填字段。如果您现在尝试保存此联系人而不输入任何手机号码,则会显示错误,提示"您必须提供手机号码的值"。

表单编程验证

结论

在本章中,我们首先了解了 JavaScript 在 CRM 中的三个重要应用。随后,我们探索了 Xrm.Page 模型,并结合示例使用它来学习表单编程。