Создать ОбъектXDTO без типа. Возможно ли?

1. roket 07.12.17 05:47 Сейчас в теме
Всем добрый день.
У меня есть вопрос. На данный момент пишу обработку взаимодействия с сервисом DHL через WS-ссылку. В идеале хочу добиться автогенерации XML с помощью ФабрикXDTO. Сложностей пока нет, кроме одного момента. Есть в дереве типов объектов элемент ShipmentOrderType который включает в себя:
1) sequenceNumber
2) PrintOnlyIfCodeable
3) labelResponseType
4) Shipment
Есть проблема с 4-ым. У него нет типа. И я не знаю как его определить методом ФабрикаXDTO.Создать(). Кодом писать в XML не хочу, так как у Shipment дальше идет большая вложенность. Есть ли знатоки сбора XML?

WS-ссылка: https://cig.dhl.de/cig-wsdls/com/dpdhl/wsdl/geschaeftskundenversand-api/2.1/geschaeftskundenversand-api-2.1.wsdl - надо просто добавить в конфигуратор чтобы посмотреть, а так перекинет на скачивание файла.

Пакет: http://dhl.de/webservices/businesscustomershipping

Типы объектов -> ShipmentOrderType -> Shipment
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. sandybaev 197 07.12.17 06:29 Сейчас в теме
Там же очень просто.
надо через: Фабрика.ВладеющееСвойство.Тип

вернет тебе перечень его подчиненных типов

ОбъектChipmentOrder = ФабрикаXDTO.Создать(ChipmentOrderType.Тип);
Для каждого СвойствоChipment Из ОбъектChipmentOrder .Chipment.ВладеющееСвойство.Тип.Свойства Цикл

... и тут перебор всех значений, типа

Если СвойствоChipment .Имя = "Chipper" Тогда

это как магия )))
вот тебе пример наглядный:
https://habrahabr.ru/post/313910/
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sandybaev 197 07.12.17 06:29 Сейчас в теме
Там же очень просто.
надо через: Фабрика.ВладеющееСвойство.Тип

вернет тебе перечень его подчиненных типов

ОбъектChipmentOrder = ФабрикаXDTO.Создать(ChipmentOrderType.Тип);
Для каждого СвойствоChipment Из ОбъектChipmentOrder .Chipment.ВладеющееСвойство.Тип.Свойства Цикл

... и тут перебор всех значений, типа

Если СвойствоChipment .Имя = "Chipper" Тогда

это как магия )))
вот тебе пример наглядный:
https://habrahabr.ru/post/313910/
3. roket 07.12.17 07:14 Сейчас в теме
(2)
Спасибо за ответ! ShipmentOrder.Shipment возвращает неопределено, а ShipmentOrder.Shipment.ВладеющееСвойство() тоже не срабатывает. Но до меня дошло! Что можно через Тип объекта ShipmentOrder полдучить Свойства а в свойстве тип )))
Наверное, надо кому-нибудь рассказать чтобы до самого дошло. 3 дня вокруг этого свойства пляшу)
Спасибо еще раз.
4. sandybaev 197 07.12.17 07:15 Сейчас в теме
удачи бро.
я сам тоже с этим мучался пока не вкурил ту статью
5. kostik_love 309 20.12.17 05:12 Сейчас в теме
// Выход на нужный тип через свойство.
СвойствоXDTO = ОбъектXDTOВладелец.Тип().Свойства.Получить("ИмяСвойства");
// Создание объекта.
ОбъектXDTO = ФабрикаXDTO.Создать(СвойствоXDTO.Тип);

, где ОбъектXDTOВладелец- созданный ОбъектXDTO через КорневыеСвойства, и т.д. по иерархии
6. roket 22.12.17 08:55 Сейчас в теме
(5) Да, именно так и решил проблему. Причем можно в цикле обходить все свойства. Удобно!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот