简体   繁体   English

crm 2011 IFD无法使用OData和Javascript

[英]crm 2011 IFD is not working using OData and Javascript

Firstly, our crm 2011 is on-premise. 首先,我们的crm 2011处于本地状态。 Then change to IFD( https://myservername.mycompany.com/ORGName/XRMServices/2011/Organization.svc ). 然后更改为IFD( https://myservername.mycompany.com/ORGName/XRMServices/2011/Organization.svc )。 when change to IFD, all OData and javascript are not working. 当更改为IFD时,所有OData和javascript均不起作用。

In on-premise , we use for server url... 内部部署中 ,我们使用服务器URL ...
var lvSz_CRMServerURL = Xrm.Page.Context.getServerUrl() ; var lvSz_CRMServerURL = Xrm.Page.Context.getServerUrl() ; it is working fine for OData and JS. 对于OData和JS来说运行良好。

In IFD ,we use for server url.. IFD中 ,我们使用服务器URL。

var lvSz_CRMODataSvcURLEndpoint = Xrm.Page.context.prependOrgName ("/XRMServices/2011/OrganizationData.svc"); var lvSz_CRMODataSvcURLEndpoint = Xrm.Page.context.prependOrgName (“ /XRMServices/2011/OrganizationData.svc”); Odata and JS function are not working and cannot access. Odata和JS函数不起作用,无法访问。

when use prependOrgName and lvObj_XMLDocHnd2.open("GET", lvSz_ODataQueryURL, true ), lvObj_XMLDocHnd2.readyState is 1 .(should be 4) 当使用prependOrgName和lvObj_XMLDocHnd2.open(“ GET”,lvSz_ODataQueryURL, true )时, lvObj_XMLDocHnd2.readyState1。 (应为4)

when use prependOrgName and lvObj_XMLDocHnd2.open("GET", lvSz_ODataQueryURL, false ), lvObj_XMLDocHnd2.readyState is 4 but lvObj_XMLDocHnd2.status is 404 (should be 200). 当使用prependOrgName和lvObj_XMLDocHnd2.open(“ GET”,lvSz_ODataQueryURL, false )时, lvObj_XMLDocHnd2.readyState4,lvObj_XMLDocHnd2.status404 (应为200)。 So OData and JS are stopped and not going through the checking. 因此,OData和JS被停止并且不进行检查。

Please give me any suggestion. 请给我任何建议。 what is wrong that may be configuration or JS function. 可能是配置或JS功能有问题。

Please take a look my OData and JS function 请看看我的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.");
}

} }

IFD OData endpoints should look like this: https://orgname.domain/XRMServices/2011/OrganizationData.svc IFD OData端点应如下所示: https://orgname.domain/XRMServices/2011/OrganizationData.svc

You can read the correct URL under Settings -> Customizations -> Developer Resources 您可以在设置 -> 自定义 -> 开发人员资源下阅读正确的URL。

From UR12 onwards you should use Xrm.Page.context.getClientUrl() which superseeds Xrm.Page.context.getServerUrl() to get the base url for the organization. 从UR12开始,您应该使用Xrm.Page.context.getClientUrl()代替Xrm.Page.context.getServerUrl()来获取组织的基本URL。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM