MS CRM 2013 - получение атрибутов из сущностей ссылок для создания веб-ресурса html - PullRequest
1 голос
/ 16 октября 2019

Мне нужно создать веб-ресурс HTML для обновления данных в CRM.

Я использую CrmRestKit для извлечения данных.

var fetchxml = [
                "<fetch top='50'>",
                "  <entity name='tisa_qualitycontrolassessment'>",
                "    <attribute name='tisa_weightrating' />",
                "    <attribute name='tisa_questionscore' />",
                "    <attribute name='tisa_qualitycontrolassessmentid' />",
                "    <attribute name='tisa_questionscorename' />",
                "    <filter type='and'>",
                "      <condition attribute='tisa_phonecallid' operator='eq' value='", recordid, "'/>",
                "    </filter>",
                "    <link-entity name='tisa_questionqualitycontrolunit' from='tisa_questionqualitycontrolunitid' to='tisa_qualitycontrolunitid' link-type='inner'>",
                "      <attribute name='tisa_qualitycontrolunitidname' />",
                "      <attribute name='tisa_questionqualitycontrolunitid' />",
                "      <attribute name='tisa_name' />",
                "      <attribute name='tisa_recordcalculation' />",
                "      <link-entity name='tisa_qualitycontrolunit' from='tisa_qualitycontrolunitid' to='tisa_qualitycontrolunitid' link-type='inner'>",
                "        <attribute name='tisa_qualitycontrolunitid' />",
                "        <attribute name='tisa_blockweight' />",
                "        <attribute name='tisa_name' />",
                "      </link-entity>",
                "    </link-entity>",
                "  </entity>",
                "</fetch>",
                ].join("");

CrmFetchKit.Fetch(fetchxml).then(function(entities){
    for(var i = 0, max = entities.length; i < max; i++){
        $("assessmentbody").html(i);
    }
});

Для столбцов, где нет данных (нулевые значения) атрибут не получен. Есть возможность получить все атрибуты по fetchXML? Можете ли вы дать мне представление о том, как получить данные (возможно, с запросом odata)?

А как лучше всего создать веб-ресурс HTML с возможностью обновления значений в форме?

1 Ответ

1 голос
/ 16 октября 2019

Для столбцов, в которых нет данных (нулевые значения), атрибут не извлекается.

Да, это ожидаемое поведение FetchXML. Это не может быть изменено. Вы можете принять его за NULL, если в вашем наборе данных отсутствует столбец.

как получить данные (возможно, с запросом odata)?

Конечно, вы можете использовать FetchXML Builder в XrmToolBox . Вставьте свой запрос выше и получите там эквивалент.

enter image description here

наилучшая практика для создания веб-ресурса HTML с возможностью обновления значений в форме

Я быобновлять напрямую в CRM из значений полей веб-ресурса HTML с помощью запросов на обслуживание. Вы можете создавать такие запросы, используя CRM REST Builder - 2011 конечной точки в вашем случае.

var entity = {};
entity.Name = "Name_updated";
entity.AccountNumber = "123456";

var req = new XMLHttpRequest();
req.open("POST", Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'00000000-0000-0000-0000-000000000000')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "MERGE");
req.onreadystatechange = function() {
    if (this.readyState === 4) {
        this.onreadystatechange = null;
        if (this.status === 204 || this.status === 1223) {
            //Success - No Return Data - Do Something
        } else {
            Xrm.Utility.alertDialog(this.statusText);
        }
    }
};
req.send(JSON.stringify(entity));

enter image description here

...