目前,我有两种不同的方法来决定运行我的JS的哪个版本的CRM。地址相似但仍然不同,具体取决于它是在线还是在内部。我试图整合它们但它仍然取决于变量,如下面的代码所示。什么是更整洁的解决方案(将为组织数据选择正确的服务URL)?
var isOnLine = true;
var organizationName = Xrm.Page.context.getOrgUniqueName();
var organizationUrl
= "http" + (isOnLine ? "s" : "") + "://"
+ parent.window.location.host
+ (isOnLine ? "" : "/" + organizationName)
+ "/XRMServices/2011/OrganizationData.svc";
最重要的是,我想要一种通过调用某事获取服务URL的方法(但不确定是什么)。如果不可能,我想建议一种检测当前运行的脚本是否部署在在线或内部部署安装的方法。
同样重要的是,该方法(如果有的话)将独立于版本工作(或者至少它使用检查语句当前运行的版本)。
答案 0 :(得分:1)
我建议您查看此示例:Sample: Create, Retrieve, Update and Delete Using the REST Endpoint with JavaScript。
特别是:
sample_ / Scripts / SDK.REST.js 一个可重用的通用库,它使用REST端点简化异步数据操作 网络资源。
特别是前几个有效构建REST OrganizationData端点的函数(我已经在这里删除了几个步骤,所以请务必查看示例代码):
Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
答案 1 :(得分:1)
function getOrganizationDataService(){
return Xrm.Page.context.getServerUrl()
+ "/XRMServices/2011/OrganizationData.svc";
}