JScript Web资源可能是您将与Microsoft Dynamics CRM一起使用的最重要的Web资源类型.
JavaScript在CRM中的应用
表单事件编程
表单事件编程用于处理客户端行为,例如当用户打开表单,更改某些数据,移动选项卡等时会发生什么.这样的客户端交互,您将编写JavaScript代码并将其添加为CRM中的JScript Web资源.但是,您要编写的JavaScript代码必须使用Dynamic CRM的Xrm.Page模型而不是标准的JavaScript DOM.使用Xrm.Page模型是Microsoft的编码方式,可确保您使用此模型编写的任何代码都与任何未来版本的CRM兼容.
Web资源
除了用于表单事件编程之外,JavaScript还用于CRM的其他应用程序,例如 :
使用唯一的URL打开表单,视图和对话框.
使用OData和SOAP端点与Web服务进行交互.
在其他网络资源(例如HTML网络资源)中引用JavaScript代码.
在此类例如,您可以编写JavaScript代码(使用Xrm.Page模型)并将其添加为CRM中的JScript Web资源,然后可以使用唯一URI在任何位置引用它.
功能区自定义
最后,JavaScript的另一个常见用途是处理功能区自定义,例如 :
显示/隐藏肋骨基于某些逻辑的bon按钮
根据某些逻辑启用/禁用功能区按钮
处理单击某个功能区按钮时会发生什么
要处理此类场景,您将编写JavaScript逻辑(使用Xrm.Page模型),然后将其添加为JScript Web资源.然后可以在功能区按钮的XML中引用此Web资源,我们可以指定调用JScript文件的方法,以检查是否应显示/隐藏功能区按钮,启用/禁用或处理单击事件.
Xrm.Page对象模型
以下是Xrm.Page对象的层次结构,显示可用的命名空间,对象及其集合.编写JScript代码时将使用这些属性.
命名空间
Sr.No | 对象&描述 |
---|---|
1 | 上下文 提供检索特定于上下文的信息的方法,例如组织详细信息,登录用户详细信息或参数传递给查询字符串中的表单. |
2 | 数据 提供对实体数据的访问权限管理表单中以及业务流程流控制中的数据的方法. |
3 | UI 包含检索用户界面信息的方法,以及表单的多个子组件的集合. |
Objects
取值r.No | 对象&描述 |
---|---|
1 | 实体 提供&减去方法;
|
2 | 流程 检索业务流程属性的方法. |
3 | 导航 使用项目集合提供对导航项目的访问. |
4 | FormSelector 使用Items集合访问用户的可用表单.还使用导航方法关闭和打开表单. |
5 | 阶段 每个流程都有一个集合可以使用getStages方法处理的阶段. |
6 | 步骤 每个阶段包括可以使用阶段的getSteps方法访问的各种步骤. |
集合
Sr.No | 收藏品&描述 |
---|---|
1 | 属性 提供对表单上可用实体属性的访问. |
2 | 控件 ui.controls : 提供对表单上存在的每个控件的访问权限. attribute.controls : 提供对属性中所有控件的访问. section.controls : 提供对部分中所有控件的访问. |
3 | 项目 提供对所有导航的访问权限表格上的项目. |
4 | 标签 提供对表单上所有标签的访问权限. |
5 | 章节 提供对表单上所有部分的访问权限. |
表格编程支持的事件
使用Xrm进行表格编程.页面模型允许您处理以下表单事件 :
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步 : 通过导航到Settings&rarr打开Contact实体表单;定制 → 自定义系统 → 联系实体 → 形式 → 主要表格.
第3步 : 单击表单属性.
步骤4 : 在"表单属性"窗口中,单击"添加".
第5步 : 在下一个"查找Web资源记录"窗口中,单击"新建",因为我们正在创建新的Web资源.
步骤6 : 在"新建Web资源"窗口中,输入以下详细信息 :
名称 : new_contacts.js
显示名称 : contacts.js
输入 : JScript
上传文件 : 上传您从本地计算机创建的JavaScript文件.
第7步 : 单击保存,然后单击发布.关闭窗口后,您将返回查找Web资源记录窗口.
步骤8 : 在这里,您现在可以看到new_contacts.js Web资源.选择它并单击"添加".您现在已成功添加新的Web资源并在表单上注册.
第9步 : 现在我们将在首选通信方法字段的更改上添加一个事件处理程序.这个事件处理程序将调用我们刚写的JavaScript函数.从"事件处理程序"部分中选择以下选项.
控制 : 首选沟通方式
事件 : OnChange
然后,点击添加按钮,如下面的屏幕截图所示.
步骤10 : 在Handler Properties的下一个窗口中,我们将指定更改事件发生时要调用的方法.
选择Library作为new_contacts.js和Function as validatePreferredMethodOfCommunication.单击确定.
步骤11 : 您现在可以看到表单库(Web资源)和在其上注册的事件.单击确定.
步骤12 : 单击"保存",然后单击"发布".
第13步 : 现在打开任何联系表单并将首选通信方法设置为电话.这将使移动电话字段成为必填字段.如果您现在尝试保存此联系人而不输入任何手机号码,则会显示错误消息"您必须为移动电话提供价值".
结论
在本章中,我们首先了解JavaScript的三个重要应用程序CRM.后来,我们探索了Xrm.Page模型并用它来学习表格编程以及一个例子.