문제

With the following SOAP query I'm trying to get all the entities in the solution but it doesn't return entity. Maybe a second eye could help. Do you see anything wrong that I can't see? Thank you !

JCL.RetrieveAllEntitiesRequest = function (fnCallBack) {
        /// Returns a sorted array of entities
        var request = "";
        request += "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
        request += "  <s:Body>";
        request += "    <Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">";
        request += "      <request i:type=\"a:RetrieveAllEntitiesRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\">";
        request += "        <a:Parameters xmlns:b=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">";
        request += "          <a:KeyValuePairOfstringanyType>";
        request += "            <b:key>EntityFilters</b:key>";
        request += "            <b:value i:type=\"c:EntityFilters\" xmlns:c=\"http://schemas.microsoft.com/xrm/2011/Metadata\">Entity</b:value>";
        request += "          </a:KeyValuePairOfstringanyType>";
        request += "          <a:KeyValuePairOfstringanyType>";
        request += "            <b:key>RetrieveAsIfPublished</b:key>";
        request += "            <b:value i:type=\"c:boolean\" xmlns:c=\"http://www.w3.org/2001/XMLSchema\">true</b:value>";
        request += "          </a:KeyValuePairOfstringanyType>";
        request += "        </a:Parameters>";
        request += "        <a:RequestId i:nil=\"true\" />";
        request += "        <a:RequestName>RetrieveAllEntities</a:RequestName>";
        request += "      </request>";
        request += "    </Execute>";
        request += "  </s:Body>";
        request += "</s:Envelope>";

        return JCL._ExecuteRequest(request, "Execute", JCL._RetrieveAllEntitiesResponse, fnCallBack);
    };

JCL._ExecuteRequest = function (sXml, sMessage, fInternalCallback, fUserCallback) {
        'use strict';

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("POST", JCL.server + "/XRMServices/2011/Organization.svc/web", (fUserCallback !== null));
    xmlhttp.setRequestHeader("Accept", "application/xml, text/xml, */*");
    xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/" + sMessage);

    if (fUserCallback !== null) {
        // asynchronous: register callback function, then send the request.
        xmlhttp.onreadystatechange = function () {
            fInternalCallback.call(this, xmlhttp, fUserCallback);
        };

        xmlhttp.send(sXml);
    } else {
        // synchronous: send request, then call the callback function directly
        xmlhttp.send(sXml);
        return fInternalCallback.call(this, xmlhttp, null);
    }
};

Update after @Paul Way replied to me: This is the error message I get when I select the entity that I need to investigate in CRM Data Detective. I can't add any field to this entity that's why I am using CRM Data Detective to find out which field I could delete, but it happens that the solution couldn't also handle an entity with a maximum number of attributes. Could you please have a look Paul? thank you So much !

enter image description here

도움이 되었습니까?

해결책

Well, I'm embarrassed :)

I've updated the CRM Data Detective and JCL libraries to support CRM 2011 pre UR 12.

https://crmdatadetective.codeplex.com/

https://github.com/paul-way/JCL

The problem has to do with how the returned XML is parsed. Let me know if this fixes your problems...

다른 팁

The CRM 2011 SDK includes some good sample code to do this...

http://msdn.microsoft.com/en-us/library/gg594428.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top