Вопрос

Обработка коллекции, полученной из ответа web-сервиса

Кто может подсказать варианты работы?

Допустим имеем ответ от вэб сервиса:

 

"data": [
{"id":1,
"name":"John"
},
{"id":2,
"name":"Johny"
},
{"id":3,
"name":"John2"
},
{"id":4,
"name":"John5"
},
]

Какие есть варианты последовательной обработки каждого элемента коллекции в бизнесс процессе?



Т.е. как взять первый элемент, сделать все необходимые действия. Взять второй элемент... и т.д. ?



Желательно на примерах, а не теорию.

Заранее спасибо.



P.S.

Сейчас использую метод из этой темы https://community.terrasoft.ua/articles/perebor-kollekcii-elementa-bp-c…

но есть некоторые особенности работы.



 

Нравится

4 комментария

Добрый день! 



Варианты обработки коллекции описаны в статье:

https://academy.terrasoft.ua/docs/user/biznes_processy/nastrojka_proces…



В вашем же случае лучшим выбором будет передача данных коллекции в под-процесс, который будет обрабатывать по одной переданной записи за свою итерацию. 



Спасибо! 

Roman Brown,

Роман, у нас версия 7.14 (возможности обновить нет)

Если бы оно работало таким образом, было бы замечательно, но к сожалению нет.

 

Опять вопрос остался без ответа :(

 

Oleg,

Все зависит от доступных вам инструментов и подходов в разработке.

Например, можно сделать это в ScriptTask, не объявляя тип для десериализации, а используя анонимный:

var def = new { data = new[] { new { id = 0, name = "" } } };
string json = "{\"data\": [{\"id\":1,\"name\":\"John\"},{\"id\":2,\"name\":\"Johny\"},{\"id\":3,\"name\":\"John2\"},{\"id\":4,\"name\":\"John5\"}]}";
var result = JsonConvert.DeserializeAnonymousType(json, def);
 
foreach (var item in result.data) {
    Console.WriteLine($"{item.id}_{item.name}");
}

 

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