【发布时间】:2014-04-02 09:57:59
【问题描述】:
首先,我们的 crm 2011 是内部部署的。然后更改为 IFD(https://myservername.mycompany.com/ORGName/XRMServices/2011/Organization.svc)。当更改为 IFD 时,所有 OData 和 javascript 都无法正常工作。
在本地中,我们使用服务器网址...
var lvSz_CRMServerURL = Xrm.Page.Context.getServerUrl();
它适用于 OData 和 JS。
在 IFD 中,我们使用服务器 url..
var lvSz_CRMODataSvcURLEndpoint = Xrm.Page.context.prependOrgName("/XRMServices/2011/OrganizationData.svc"); Odata和JS功能不工作,无法访问。
当使用 prependOrgName 和 lvObj_XMLDocHnd2.open("GET", lvSz_ODataQueryURL, true) 时,lvObj_XMLDocHnd2.readyState 为 1。(应该是4)
当使用 prependOrgName 和 lvObj_XMLDocHnd2.open("GET", lvSz_ODataQueryURL, false) 时,lvObj_XMLDocHnd2.readyState 为 4 但 lvObj_XMLDocHnd2.status 为 404(应为 200)。所以 OData 和 JS 都停止了,没有经过检查。
请给我任何建议。可能是配置或JS函数出了什么问题。
请看一下我的 OData 和 JS 函数
.....
function JS_GenerateQuotation() {
//debugger;
var opportunityId = Xrm.Page.data.entity.getId(); //Xrm.Page.getAttribute("new_opportunityid").getValue()[0].id;
var prepareQuotation;
//var lvSz_CRMServerURL = rootURL + "/GBGroupUAT";
//var lvSz_CRMODataSvcURLEndpoint = lvSz_CRMServerURL + "/XRMServices/2011/OrganizationData.svc";
var lvSz_CRMODataSvcURLEndpoint = Xrm.Page.context.prependOrgName("/XRMServices/2011/OrganizationData.svc");
var lvObj_XMLDocHnd2 = null;
lvObj_XMLDocHnd2 = new XMLHttpRequest();
var relatedEntity = "opportunity";
var lvSz_ODataQueryURL = lvSz_CRMODataSvcURLEndpoint + ((relatedEntity == "opportunity") ? "/OpportunitySet?$select=new_PrepareQuotation&$filter=OpportunityId eq guid'" + opportunityId + "'" : "");
lvObj_XMLDocHnd2.open("GET", lvSz_ODataQueryURL, false);
lvObj_XMLDocHnd2.setRequestHeader("Accept", "application/json");
lvObj_XMLDocHnd2.setRequestHeader("Content-Type", "application/json; charset=utf-8");
var lvArr_CRMRecordsMatchingSpecifiedGUID;
lvObj_XMLDocHnd2.onreadystatechange = function () {
if (lvObj_XMLDocHnd2.readyState == 4) {
if (lvObj_XMLDocHnd2.status == 200) {
lvArr_CRMRecordsMatchingSpecifiedGUID = eval('(' + lvObj_XMLDocHnd2.responseText + ')');
if (lvArr_CRMRecordsMatchingSpecifiedGUID == null || lvArr_CRMRecordsMatchingSpecifiedGUID == "" || lvArr_CRMRecordsMatchingSpecifiedGUID.d.results[0] == null) {
}
else {
prepareQuotation = lvArr_CRMRecordsMatchingSpecifiedGUID.d.results[0].new_PrepareQuotation;
}
}
}
}
lvObj_XMLDocHnd2.send();
if (prepareQuotation != false) {
var GUIDvalue = Xrm.Page.data.entity.getId();
var serverUrl = urlGenerateQuotation + GUIDvalue;
var features = "location=no,menubar=no,status=no,toolbar=no,resizable=1";
window.open(serverUrl, "_blank", features);
}
else {
alert("Please prepare quotation.");
}
}
【问题讨论】:
-
我可以知道哪个汇总版本吗?实际上,我们有 Infra 团队(硬件),所以我不确定他们是否已经安装。请让我知道我们需要安装哪个汇总。谢谢
-
rollup12 包含一个名为 getClientUrl msdn.microsoft.com/en-us/library/… 的方法,通常可以解决此类问题
标签: javascript dynamics-crm-2011 odata