Создание переменных комплексного типа для задачи веб-службы

В SSIS у меня уже есть задача веб-службы с использованием WSDL для отправки SMS. Я действительно могу отправить SMS, используя эту задачу.

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

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

Ответ 1

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

Ответ 2

Более "простой" способ заключается в использовании компонента script для обхода переменных в веб-службу. Проверьте http://amolpandey.com/2016/09/26/ssis-script-task-to-obtain-geo-cordinates-from-address-text-via-google-api/ и http://www.sqlmusings.com/2011/03/25/geocode-locations-using-google-maps-v3-api-and-ssis/. Протестировано и работает. С помощью этой задачи вы можете обойти переменные/параметры SSIS. Пример: получение идентификатора, addreess, zipcode, city, country из таблицы с выполнением SQL-задачи. Change Resultset: Полный набор результатов на вкладке Общие. Затем на вкладке результатов введите Result_Name: 0 и Variable_Name: User:: YourObject. Затем следующей задачей будет редактор Forlooptask (Foreach ADO Enumerator, вкладка Collection - переменная исходного объекта Ado: User:: YourObject, режим перечисления: строки в первой таблице, вкладка Mapping - переменная User:: Id, 0 | address, 1 и т.д.). Внутри редактора Forlooptask вы добавляете задачу потока данных, источником которой будет являться компонент script. Если вы более конкретны в своей логике, мы можем помочь вам больше.