2016-06-20 5 views
1

Я очень новичок в Microsoft Dynamics CRM 2011. В настоящее время я поддерживаю CRM-систему, разработанную кем-то еще. В CRM есть пользовательские объекты. Существует один набор результатов PendingSet, который возвращает строки, если я пытаюсь выполнить через OData Query toolResultset возвращает пустые строки Microsoft Dynamics CRM 2011

enter image description here

Но когда я пытаюсь просмотреть ResultSet через браузер, используя тот же URL, что возвращает пустые строки.

enter image description here

Из-за пустой результирующем он показывает ошибку яваскрипта OData в форме.

enter image description here

Что может быть причиной этой проблемы?

Примечание: Я просмотрел вид базы данных. У него есть записи.

Редактировать: добавьте здесь код. Вызов 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; 
 

 
}

ответ

0

Похоже, что веб-браузер возвращается результаты его просто пытаются неправильно отображать их в качестве корма RSS.

Открыть; Свойства обозревателя> Содержание> Настройки> «Включить просмотр чтения фида».

При попытке просмотра результатов вы должны теперь получить фид Atom своих данных.

Возможно, что-то не так в вашем JavaScript, и в этом случае лучший способ проанализировать проблему - открыть Отладчик (F12) и выполнить код, чтобы найти проблему.

+0

Я могу просмотреть данные после того, как изменил настройки, как указано выше. Проблема, похоже, связана с доступностью URL-адреса, сгенерированного в JS. URL, сгенерированный в JS, содержит имя сервера. Если я попробую сделать это в браузере, появится ошибка «Страница не может быть отображена». Если я заменил ее на IP-адрес, URL-адрес вернет результирующий набор. Имеет ли он какое-то отношение к определениям конечных точек для веб-службы? –

+0

Является ли JS с использованием context.getServerUrl() или context.getClientUrl()? Убедитесь, что он является последним. Другой вариант - добавить правило DNS для разрешения на IP на основе имени, которое оно использует. – Jordi

+0

@ S.KC, если у вас все еще есть проблема, я предлагаю опубликовать ваш код, чтобы каждый мог посмотреть. –