JScript 网络资源


JScript Web 资源可能是您将与 Microsoft Dynamics CRM 一起使用的最重要的 Web 资源类型。

JavaScript在CRM中的应用

表单事件编程

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

网络资源

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

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

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

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

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

功能区定制

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

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

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

Xrm.Page 对象模型

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

XRM 页面对象模型

命名空间

先生编号 对象及描述
1

语境

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

2

数据

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

3

用户界面

除了表单的多个子组件的集合之外,还包含检索有关用户界面的信息的方法。

对象

先生编号 对象及描述
1

实体

提供方法 -

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

过程

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

3

导航

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

4

表单选择器

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

5

阶段

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

6

脚步

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

收藏

先生编号 收藏与描述
1

属性

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

2

控制

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

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

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

3

项目

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

4

选项卡

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

5

部分

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

表单编程中支持的事件

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

  • 负载
  • 保存时
  • 改变时
  • 选项卡状态更改
  • 就绪状态完成
  • 预搜索
  • 业务流程控制事件

表单编程示例

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

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

function validatePreferredMethodOfCommunication() { 

   //get the value of Preffered Method of Communication code 
   var prefferedContactMethodCode = 
      Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();  
   
   //if Preferred Method = Any, make all fields as non-mandatory 
   
   //else if Preferred Method = Phone, make Mobile Phone field mandatory 
   //and all other fields as non-mandatory 
   
   //else if Preferred Method = Fax, make Fax field mandatory 
   //and all other fields as non-mandatory 
   
   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 模型,并使用它和示例来学习表单编程。