Отправляется JSON такого формата. Запускаю из дизайнера процессов
{ "from": { "email": "info@mail.com", "name": "Flight confirmation" }, "subject": "test subject", "content": [ { "type": "html", "value": "Hello Lionel, Your flight for Barcelona is confirmed." } ], "personalizations": [ { "to": [ { "email": "someemail@gmail.com", "name": "111" } ] } ] }
Данные в процессе заполнены
Но в отправленном запросе - в полях "to" - null
ПОЧЕМУ ТАК?
Нравится
Олег,
в приложении действительно есть ошибка по работе с коллекциями, вложенными в другую коллекцию. Эта ошибка будет исправляться планово в последующих релизах.
На текущий же момент можем предложить несколько обходных вариантов:
1. Если предполагается, что email-адреса будут лежать в БД, то можно использовать элемент "Чтение данных", который возвращает коллекцию. Эту коллекию можно замапить на входящую коллекцию элемента "Вызов web-сервиса".
2. Если значение параметра статично, можно задать значение по-умолчанию для параметра web-сервиса.
3. Можно добавить в процесс параметр-коллекцию и в скрипт-таске заполнить эту коллекцию данными. Этот параметр-коллекцию можно замапить на входящую коллекцию элемента "Вызов web-сервиса".
Ниже код скрипт-таска для варианта 3, также прикрепил скриншоты с параметрами БП.
var personalizationsList = new CompositeObjectList<CompositeObject>();
var email = new CompositeObject();
email["value"] = "test@test.com";
personalizationsList.Add(email);
Set<CompositeObjectList<CompositeObject>>("Personalizations", personalizationsList);
return true;
OLeg1020,
Для более старых версий рекомендую воспользоваться вариантом 1:
1. Если предполагается, что email-адреса будут лежать в БД, то можно использовать элемент "Чтение данных", который возвращает коллекцию. Эту коллекию можно замапить на входящую коллекцию элемента "Вызов web-сервиса".
Для этого достаточно реализовать один элемент чтения данных, и коллекцию из этого элемента передавать в элемент вызова веб-сервиса.