2014-02-13 2 views
0

Следующий вызов функции seconary для OData работает для других полей, но я снова вызываю его для другого поля, и он не работает. На этот раз выводится предупреждение. paramField действителен и работает в SQL, когда я выбираю odata вручную. Что может привести к тому, что readyState или статус не будут хорошими (следовательно, активируйте предупреждение)?Запрос OData JSON не работает

function getFieldData_any(retrieveReq,paramField) { 
    if (retrieveReq.readyState == 4 && retrieveReq.status == 200) { 
     var retrieved = this.parent.JSON.parse(retrieveReq.responseText).d; 
     EntityField = retrieved.results[0][paramField]; 
    } 
    else 
    { 
     alert('readyState not 4 or status not 200'); 
    } 
} 
+0

Проверьте консоль, в частности вкладку Сеть и посмотрите если сервер вернул ошибку. – tymeJV

+0

Получил работу. По-видимому, OData Select хотел идентификатор guid, хотя поле guid guid не содержало фигурных скобок. Пример: «OpportunityId eq guid» + id + «». Я думал, что нужно только руководство, если оно содержит брекеты? Спасибо за предложение tymeJV, но я не знаю, где это посмотреть. Я запускаю javascript внутри CRM 2011. –

ответ

0

О формате OData Примитивный буквального, пожалуйста, обратитесь к спецификации OData

http://www.odata.org/documentation/odata-v3-documentation/

В OData-ABNF, Вы найдете формат Guid должен быть следующим

guid = "guid" SQUOTE 8 * HEXDIG "-" 4 * HEXDIG "-" 4 * HEXDIG "-" 12 * HEXDIG SQUOTE

Смежные вопросы