Я очень новичок в Microsoft Dynamics CRM 2011. В настоящее время я поддерживаю CRM-систему, разработанную кем-то еще. В CRM есть пользовательские объекты. Существует один набор результатов PendingSet, который возвращает строки, если я пытаюсь выполнить через OData Query toolResultset возвращает пустые строки Microsoft Dynamics CRM 2011
Но когда я пытаюсь просмотреть ResultSet через браузер, используя тот же URL, что возвращает пустые строки.
Из-за пустой результирующем он показывает ошибку яваскрипта OData в форме.
Что может быть причиной этой проблемы?
Примечание: Я просмотрел вид базы данных. У него есть записи.
Редактировать: добавьте здесь код. Вызов Ajax ниже бросает ошибку:
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;
}
Я могу просмотреть данные после того, как изменил настройки, как указано выше. Проблема, похоже, связана с доступностью URL-адреса, сгенерированного в JS. URL, сгенерированный в JS, содержит имя сервера. Если я попробую сделать это в браузере, появится ошибка «Страница не может быть отображена». Если я заменил ее на IP-адрес, URL-адрес вернет результирующий набор. Имеет ли он какое-то отношение к определениям конечных точек для веб-службы? –
Является ли JS с использованием context.getServerUrl() или context.getClientUrl()? Убедитесь, что он является последним. Другой вариант - добавить правило DNS для разрешения на IP на основе имени, которое оно использует. – Jordi
@ S.KC, если у вас все еще есть проблема, я предлагаю опубликовать ваш код, чтобы каждый мог посмотреть. –