Ich bin sehr neu in Microsoft Dynamics CRM 2011. Ich führe derzeit das CRM-System, das von jemand anderem entwickelt wurde. Im CRM gibt es benutzerdefinierte Entitäten. Es gibt eine resultset PendingSet die Zeilen zurückgibt, wenn ich durch OData Query toolResultset gibt leere Zeilen zurück Microsoft Dynamics CRM 2011
auszuführen versuchen, aber wenn ich versuche, die Suchresultates durch den Browser anzuzeigen die gleiche URL es die leeren Zeilen zurückgibt.
Wegen leerer resultset zeigt es einen JavaScript OData Fehler in der Form.
Was kann hinter dieser Ausgabe der Grund sein?
Hinweis: Ich habe die Datenbankansicht angesehen. Es hat Aufzeichnungen.
Bearbeiten: Hinzufügen des Codes hier. Der Ajax-Aufruf unten wirft den Fehler:
function CheckJustification(bag_pendingId, CHANGECASESEVERITY) {
var query = "/bag_pendingSet?$filter=bag_pendingCaseId/Id eq guid'" + bag_pendingId + "' and bag_reasontype/Value eq " + CHANGECASESEVERITY + "";
var justificationexist = ExecuteQuery(query);
return justificationexist;
}
//
// ExecuteQuery executes the specified OData Query asyncronously
//
// NOTE: Requires JSON and jQuery libraries. Review this Microsoft MSDN article before
// using this script http://msdn.microsoft.com/en-us/library/gg328025.aspx
//
function ExecuteQuery(ODataQuery, obj) {
var serverUrl = Xrm.Page.context.getServerUrl();
var justification = true;
// Adjust URL for differences between on premise and online
if (serverUrl.match(/\/$/)) {
serverUrl = serverUrl.substring(0, serverUrl.length - 1);
}
var ODataURL = serverUrl + "/XRMServices/2011/OrganizationData.svc" + ODataQuery;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: ODataURL,
beforeSend: function(XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function(data, textStatus, XmlHttpRequest) {
//
// Handle result from successful execution
//
try {
justification = data.d.results[0].bag_pendingCaseId;
} catch (e) {
justification = false;
}
},
error: function(XmlHttpRequest, textStatus, errorObject) {
//
// Handle result from unsuccessful execution
//
alert("OData Execution Error Occurred");
}
});
return justification;
}
Ich kann die Daten anzeigen, nachdem ich die Einstellungen wie oben geändert habe. Das Problem scheint mit der Zugänglichkeit der in JS generierten URL zu sein. Die in JS generierte URL enthält den Namen des Servers. Wenn ich das gleiche im Browser versuche, zeigt es einen Fehler an "Seite kann nicht angezeigt werden". Wenn ich es durch die IP-Adresse ersetze, gibt die URL die Ergebnismenge zurück. Hat es etwas mit Endpoint-Definitionen für den Web-Service zu tun? –
Stellt der JS mit context.getServerUrl() oder context.getClientUrl() sicher, dass es sich um den neuesten handelt? Eine weitere Option wäre das Hinzufügen einer DNS-Regel zum Auflösen auf die IP-Adresse basierend auf dem verwendeten Namen. – Jordi
@ S.KC, wenn Sie noch ein Problem haben, schlage ich vor, Ihren Code zu veröffentlichen, damit jeder einen Blick darauf werfen kann. –