иттерациявебсервиса
веб-сервис
генерация-поле
Studio_Creatio
7.17

Возможно ли генерация полей при получении n-массива из веб сервера

Доброго времени суток коллеги. У меня возникли две проблемы. Имею вызов метода 


      SetUrlAnswer: function() {

        var xhr = new XMLHttpRequest();

        var url = "http://localhost/0/rest/Service1/Testing";

        xhr.open("GET", url);

        xhr.responseType = "json";

        xhr.setRequestHeader("Content-type", "application/json");

        var self = this;

        xhr.onreadystatechange = function() {

            if (xhr.readyState === 4 && xhr.status === 200) {

                // for (var i = 0; i < xhr.length; i++ ) {

                  self.set("UsrCharCode",

                   JSON.stringify(xhr.response[0].CharCode));

                  self.set("UsrID", 

                   JSON.stringify(xhr.response[0].ID));

                  self.set("UsrNameV", 

                   JSON.stringify(xhr.response[0].Name));

                  self.set("UsrNominal", 

                   JSON.stringify(xhr.response[0].Nominal));

                  self.set("UsrNumCode",

                   JSON.stringify(xhr.response[0].NumCode));

                  self.set("UsrPrevious", 

                  JSON.stringify(xhr.response[0].Previous));

                  self.set("UsrValues", 

                   JSON.stringify(xhr.response[0].Value));

                // }

               

            } else {

               // Пока не реализовано

                self.set("UsrCharCode", "Не правильное получение данных!");

            }

        };xhr.send();

    

Как мне сделать правильную итерацию? Чтобы вот такого говно-кода избежать?



Вопрос второй(очень важный): Этот метод возвращает каждый раз разный массив данных. Вопрос в  том  Creatio предусмотрено генерация полей исходя из ответа сервера? Например мне в ответ приходит 4 видов валют USD, RUB, EUR, UZS и исходя из ответа сгенерировать таких групп полей:Изображение удалено.Надеюсь смог объяснить свою боль. Спасибо

Нравится

7 комментариев
Лучший ответ

Ислам Ибрагимжанов,

Я описал общую идею как работает DataService, можете поискать реализацию и попробовать понять, но это про сложные вещи.



Вам пока нужно начать использовать ServiceHelper и его функцию callService.

И читайте документацию, там такие кейсы описаны.

Зачем вы используете чистый XMLHttpRequest, уже есть классы для работы с сервисами.

https://academy.terrasoft.ru/docs/7-16/developer/back-end_development/c…

Итерацию можно сделать циклом по массиву с наименованиями полей. Можно сделать по переменным объекта. Список полей для итерации можно возвращать со стороны сервера. Тут у вас полная свобода действий.

Полозюков Евгений Петрович,

Я не понял один момент

Список полей для итерации можно возвращать со стороны сервера. Тут у вас полная свобода действий. 

Вы это про мой второй вопрос? Я что то не до  конца понял. 

Ислам Ибрагимжанов,

Да, это про второй вопрос. Если у вас в ответе возвращается каждый раз разный набор полей и их значений, можно описать это в виде массива или объекта и его итерировать.

Полозюков Евгений Петрович,

Мне нужно сгенерировать поля для этих данных. Через выше указанный способ релаьно реализовать такое?

Ислам Ибрагимжанов,

Я описал общую идею как работает DataService, можете поискать реализацию и попробовать понять, но это про сложные вещи.



Вам пока нужно начать использовать ServiceHelper и его функцию callService.

И читайте документацию, там такие кейсы описаны.

Полозюков Евгений Петрович, Спасибо за помощь. Я понял идеюyes

Показать все комментарии