在CRM 2011中,通用JS(JavaScript)的使用非常广泛,它允许开发者通过客户端脚本来增强和定制系统的功能,以下是关于CRM 2011中通用JS的详细解答:
一、Xrm.Page.context Methods
1、getAuthenticationHeader:获取认证表头,用于Microsoft Dynamics CRM 4.0 web服务调用的编码SOAP头,但该方法已弃用。
2、getCurrentTheme:返回当前用户的Outlook主题。
3、getOrgLcid:获取组织的基本语言LCID值。
4、getOrgUniqueName:返回唯一的组织名称。
5、getQueryStringParameters:获取查询字符串参数,返回一个表示查询字符串键值对的数组。
6、getServerUrl:返回基本服务器URL地址。
7、getUserId:获取当前用户的SystemUser ID。
8、getUserLcid:返回表示用户首选语言的LCID值。
9、getUserRoles:返回与用户安全角色关联的GUID值数组。
10、isOutlookClient:判断用户是否使用Outlook客户端,并返回布尔值。
11、prependOrgName:将组织名称预先考虑到指定的路径客户端。
二、Xrm.Page.data.entity attribute Methods
1、addOnChange:设置值被改变时调用的函数。
2、fireOnChange:引起OnChange事件发生的属性。
3、getAttributeType:返回属性的类型(字符串)。
4、getFormat:返回属性的格式选项集(字符串)。
5、getInitialValue:返回布尔或选项集属性的初始值。
6、getIsDirty:如果有未保存的更改的属性值,则返回布尔值。
7、getMax:返回属性的最大允许值(数字),适用于货币、十进制、整数和双精度型。
8、getMin:返回属性的最小允许值(数字),适用于货币、十进制、整数和双精度型。
9、getMaxLength:返回属性的最大长度(数字),适用于字符串和备忘录。
以下是一个简单的示例,展示了如何在CRM 2011中使用JavaScript来检索实体记录:
// 根据实体主键值(entityGuid)查询指定实体(entityName)的一条记录 function retrieveSingleEntity(ODataPath, entitySchemaName, entityGuid) { var retrieveReq = new XMLHttpRequest(); retrieveReq.open("GET", ODataPath + "/XRMServices/2011/OrganizationData.svc/" + entitySchemaName + "Set(guid'" + entityGuid + "')", false); retrieveReq.setRequestHeader("Accept", "application/json"); retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); retrieveReq.send(); var resultObject = new Object(); resultObject.statusText = null; resultObject.response = null; if (retrieveReq.statusText == "OK") { // OK为查询成功,否则查询异常 resultObject.statusText = "OK"; resultObject.response = JSON.parse(retrieveReq.responseText).d; } else { resultObject.response = retrieveReq.responseText; } return resultObject; }
1、问:CRM 2011中的通用JS可以在哪些地方使用?
答:CRM 2011中的通用JS主要用于客户端脚本中,可以嵌入到表单、视图或其他UI组件中,以实现自定义逻辑、验证、数据处理等功能。
2、问:如何确保CRM 2011中的通用JS代码的安全性?
答:为了确保CRM 2011中通用JS代码的安全性,应避免在脚本中直接包含敏感信息,如用户名、密码等,应对输入数据进行验证和过滤,以防止跨站脚本攻击(XSS)等安全破绽,还可以使用CRM的安全特性,如角色基权限和共享访问权限,来限制脚本的执行权限。
CRM 2011中的通用JS为开发者提供了丰富的API和方法,用于增强和定制系统功能,通过合理使用这些API和方法,并遵循最佳实践和安全性原则,可以开发出高效、安全且易于维护的CRM解决方案。