Как получить текст из набора параметров в динамике Microsoft - PullRequest
0 голосов
/ 18 декабря 2018

Как получить текст для значения набора опций из запроса CRM?Вот как я написал свой запрос:

function nearByCases(addr){
    var nearByCasesFetchXML = '<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0">' +
        '<entity name="incident">' +
          '<attribute name="title"/>' +
          '<attribute name="ticketnumber"/>' +
          '<attribute name="createdon"/>' +
          '<attribute name="new_department"/>' +
          '<attribute name="new_casetype"/>' +
          '<attribute name="incidentid"/>' +
          '<attribute name="caseorigincode"/>' +
          '<order descending="false" attribute="title"/>' +
          '<filter type="and"><condition attribute="new_address" value="'+addr+'" operator="eq"/>' +
          '</filter>' +
        '</entity>' +
      '</fetch>';

    nearByCasesFetchXML = "?fetchXml=" + encodeURIComponent(nearByCasesFetchXML);
    var html = "";
    //var outputText = "Case\t\t\tCreated\n---------------------------------------------------\n";
    window.parent.Xrm.WebApi.retrieveMultipleRecords("incident", nearByCasesFetchXML).then(function success(result) {
      console.log(result.entities);
      if(result.entities.length <=0) {
        window.parent.Xrm.Utility.alertDialog("No results found.", null);
        return false;
      }
      else{
        for (var casecount = 0; casecount < result.entities.length; casecount++) {
         // outputText += result.entities[casecount].ticketnumber+ "\t\t" + result.entities[casecount].title + "\n";
          html += "<tr>";
          html += "<td>"+result.entities[casecount].title+"</td>";
          html += "<td>"+result.entities[casecount].ticketnumber+"</td>";
          html += "<td>"+result.entities[casecount].FormattedValues["new_department"].ToString()+"</td>";
          html += "<td>"+result.entities[casecount].new_casetype+"</td>";
          html += "</tr>";
          $("#nearbycases tbody").html(html);
        }
        return true;
      }
      //window.parent.Xrm.Utility.alertDialog(outputText, null);
    },function (error) {
      // Handle error conditions
      window.parent.Xrm.Utility.alertDialog(error.message, null);
    });

}

Это fetchXml для извлечения данных из incident, и я могу получить все значения инцидентов, но есть несколько пользовательских наборов опций (new_department, new_casetype), которые только возвращают значение, а не текст.

Итак, как мне получить текст этих опций?

Это ответ, который я получаю

{
  "@odata.etag": "W/"1999118"" ,
  "createdon": "2018-12-13T08:30:34Z" ,
  "createdon@OData.Community.Display.V1.FormattedValue": "12/13/2018 2:30 AM" ,
  "incidentid": "dedfb05b-b1fe-e811-a977-000d3a33eb4e" ,
  "new_casetype": 1 ,
  "new_casetype@OData.Community.Display.V1.FormattedValue": "Abandoned Vehicles" ,
  "new_department": 1 ,
  "new_department@OData.Community.Display.V1.FormattedValue": "Parking Control" ,
  "ticketnumber": "CAS-01001-H2S7L9" ,
  "title": "case for sla 1",
}

1 Ответ

0 голосов
/ 18 декабря 2018

Записи FormattedValue представляют собой текст значения набора параметров.

Получаемый вами ответ содержит текст, поэтому просто нужно сослаться на него.

Вы можете ссылаться на них следующим образом:

var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
    var departmentCode = results.value[i]["new_department"];
    var departmentCodeText = results.value[i]["new_department@OData.Community.Display.V1.FormattedValue"];
}

departmentCode будет целым числом, а departmentCodeText будет текстом.

Вместо того, что показано ввопрос:

html +="<td>"+result.entities[casecount].FormattedValues["new_department"].ToString()+"</td>";

Попробуйте:

html += "<td>"+result.entities[casecount]["new_department@OData.Community.Display.V1.FormattedValue"]+"</td>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...