- Microsoft Dynamics CRM 教程
- Microsoft CRM - 首页
- Microsoft CRM - 概述
- Microsoft CRM - 环境
- Microsoft CRM - 功能模块
- Microsoft CRM - 实体和记录
- Microsoft CRM - 字段
- Microsoft CRM - 表单
- Microsoft CRM - 搜索
- Microsoft CRM - 网页资源
- JScript 网页资源
- HTML 网页资源
- Microsoft CRM - 工作流流程
- Microsoft CRM - 插件
- Microsoft CRM - 插件注册
- Microsoft CRM - Web 服务
- Microsoft CRM - 解决方案
- Microsoft CRM 有用资源
- Microsoft CRM - 快速指南
- Microsoft CRM - 有用资源
- Microsoft CRM - 讨论
JScript 网页资源
JScript 网页资源可能是您在使用 Microsoft Dynamics CRM 时最常使用的一类网页资源。
JavaScript 在 CRM 中的应用
表单事件编程
表单事件编程用于处理客户端行为,例如用户打开表单、更改某些数据、在选项卡之间移动等时发生的情况。为了实现这种客户端交互,您需要编写 JavaScript 代码并将其作为 JScript 网页资源添加到 CRM 中。但是,您编写的 JavaScript 代码必须使用 Dynamic CRM 的 Xrm.Page 模型,而不是标准的 JavaScript DOM。使用 Xrm.Page 模型是 Microsoft 的编码方式,它确保使用此模型编写的任何代码都与 CRM 的任何未来版本兼容。
网页资源
除了用于表单事件编程之外,JavaScript 还用于 CRM 的其他应用程序,例如:
使用唯一的 URL 打开表单、视图和对话框。
使用 OData 和 SOAP 端点与 Web 服务交互。
在其他网页资源(如 HTML 网页资源)中引用 JavaScript 代码。
在这种情况下,您将编写 JavaScript 代码(使用 Xrm.Page 模型)并将其作为 JScript 网页资源添加到 CRM 中,然后可以通过唯一的 URI 在任何地方引用它。
功能区自定义
最后,JavaScript 的另一个常见用途是处理功能区自定义,例如:
- 根据某些逻辑显示/隐藏功能区按钮
- 根据某些逻辑启用/禁用功能区按钮
- 处理单击特定功能区按钮时发生的情况
为了处理此类场景,您将编写 JavaScript 逻辑(使用 Xrm.Page 模型),然后将其作为 JScript 网页资源添加。然后可以在功能区按钮的 XML 中引用此网页资源,并指定要调用的 JScript 文件中的哪个方法来检查是否应显示/隐藏或启用/禁用功能区按钮或处理单击事件。
Xrm.Page 对象模型
以下是 Xrm.Page 对象的层次结构,显示了可用的命名空间、对象及其集合。在编写 JScript 代码时,您将使用这些属性。
命名空间
| 序号 | 对象和描述 |
|---|---|
| 1 | 上下文 提供方法来检索特定于上下文的信息,例如组织详细信息、已登录用户详细信息或作为查询字符串传递给表单的参数。 |
| 2 | 数据 提供对实体数据以及管理表单中和业务流程流控制中数据的访问。 |
| 3 | UI 除了表单的几个子组件的集合外,还包含用于检索有关用户界面信息的方法。 |
对象
| 序号 | 对象和描述 |
|---|---|
| 1 | 实体 提供方法:
|
| 2 | 流程 用于检索业务流程属性的方法。 |
| 3 | 导航 使用 items 集合访问导航项。 |
| 4 | FormSelector 使用 Items 集合访问用户可用的表单。还使用导航方法关闭和打开表单。 |
| 5 | 阶段 每个流程都有一组阶段,可以使用流程的 getStages 方法访问。 |
| 6 | 步骤 每个阶段包含各种步骤,可以使用阶段的 getSteps 方法访问。 |
集合
| 序号 | 集合和描述 |
|---|---|
| 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() {
//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 - 在下一个查找网页资源记录窗口中,单击新建,因为我们正在创建新的网页资源。
步骤 6 - 在新建网页资源窗口中,输入以下详细信息:
名称 - new_contacts.js
显示名称 - contacts.js
类型 - JScript
上传文件 - 从本地计算机上传您创建的 JavaScript 文件。
步骤 7 - 单击保存,然后单击发布。之后关闭窗口,您将返回到查找网页资源记录窗口。
步骤 8 - 在这里,您现在可以看到 new_contacts.js 网页资源。选择它并单击添加。您现在已成功添加新的网页资源并在表单上注册了它。
步骤 9 - 现在,我们将添加一个事件处理程序来处理首选通信方式字段的更改。此事件处理程序将调用我们刚刚编写的 JavaScript 函数。从事件处理程序部分选择以下选项。
控件 - 首选通信方式
事件 - OnChange
然后,单击添加按钮,如下面的屏幕截图所示。
步骤 10 - 在处理程序属性的下一个窗口中,我们将指定更改事件发生时要调用的方法。
选择库为 new_contacts.js,函数为 validatePreferredMethodOfCommunication。单击确定。
步骤 11 - 您现在将能够看到表单库(网页资源)和在其上注册的事件。单击确定。
步骤 12 - 单击保存,然后单击发布。
步骤 13 - 现在打开任何联系人表单并将首选通信方式设置为电话。这将使手机字段变为必填字段。如果您现在尝试在不输入任何手机号码的情况下保存此联系人,它将显示一条错误消息,提示“您必须为手机提供值”。
结论
在本章中,我们首先了解了 JavaScript 在 CRM 中的三个重要应用。之后,我们探讨了 Xrm.Page 模型并使用它来学习表单编程以及一个示例。