|
Передача ассоциированного массива (структуры) параметром в Magento SOAP API | ☑ | ||
---|---|---|---|---|
0
Alantal
07.08.12
✎
17:22
|
Добрый день. Нужна помошь.
Пытаюсь вызвать функцию Magento из 1С Мадженто = Новый WSОпределения("http://demo.magentocommerce.com/api/soap?wsdl","parol", "login"); Прокси = Новый WSПрокси(Мадженто,"urn:Magento","MagentoService","Mage_Api_Model_Server_HandlerPort"); Сессия = Прокси.login("parol", "login"); Подключаюсь нормально. далее хочу вызвать функцию Call Попытка результат = Прокси.call(Сессия,"customer.list", Фильтр); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Вот тут фильтр должен быть ассоциированным массивом вот тут есть описание и даже пример на PHP http://www.magentocommerce.com/wiki/doc/webservices-api/api/customer_address#customer_address.list но в 1С у меня не получается так сделать Фишка в том, что данный параметр не имеет фиксированной структурой, он для каждого вызова может быть разный. Подскажите, кто сталкивался, как создать произвольный массив и передать его на WEB. |
|||
1
izekia
07.08.12
✎
17:25
|
хдто тебе не поможет?
|
|||
2
Alantal
07.08.12
✎
17:30
|
Может и поможет, но как?
Я, конечно, не профи в XDTO, если можешь, подскажи, как добавить элементы? Пробовал: ТипМассивXDTO = Прокси.ФабрикаXDTO.Пакеты[1].Получить("FixedArray"); МассивXDTO = Прокси.ФабрикаXDTO.Создать(ТипМассивXDTO); МассивXDTO получается тип ОбъектXDTO МассивXDTO.Добавить(ФормаXML.Атрибут, "urn:Magento", "Array", СтрокаXDTO); //МассивXDTO.Array.Добавить("filter","*"); Везде ошибки... |
|||
3
Alantal
07.08.12
✎
17:47
|
МассивXDTO.Добавить(ФормаXML.Атрибут, "urn:Magento", "Array", СтрокаXDTO);
Таким образом можно добавить произвольное свойство, но как именно - не понял. Не получается... ОбъектXDTO (XDTODataObject) Добавить (Add) Вариант синтаксиса: Установка значения нового произвольного свойства Синтаксис: Добавить(<Форма>, <URIПространстваИмен>, <ЛокальноеИмя>, <ЭлементДанных>) Параметры: <Форма> (обязательный) Тип: ФормаXML. Форма XML представления произвольного свойства. Может принимать значения Элемент или Атрибут. <URIПространстваИмен> (обязательный) Тип: Строка. URI пространства имен XML представления произвольного свойства. <ЛокальноеИмя> (обязательный) Тип: Строка. Локальное имя произвольного свойства. <ЭлементДанных> (обязательный) Тип: ЗначениеXDTO; ОбъектXDTO. Элемент данных XDTO (значение или объект), являющийся значением произвольного свойства. Описание варианта метода: Имя свойства будет создано автоматически, на основе локального имени XML представления свойства. |
|||
4
Alantal
07.08.12
✎
18:05
|
Не понимаю...
<complexType name="FixedArray"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/></restriction></complexContent></complexType> FixedArray - это объект? При вызове: ТипМассивXDTO = Прокси.ФабрикаXDTO.Пакеты[1].Получить("FixedArray"); МассивXDTO = Прокси.ФабрикаXDTO.Создать(ТипМассивXDTO); МассивXDTO.Добавить(ФормаXML.Атрибут, "http://www.w3.org/2001/XMLSchema", "Array", СтрокаXDTO); пишет: Несоответствие типов XDTO: Тип '{urn:Magento}FixedArray' не найден Тип объекта не является открытым |
|||
5
Asmody
07.08.12
✎
18:32
|
какой на демке логин/пароль?
|
|||
6
Alantal
07.08.12
✎
22:55
|
Не знаю ((
Ее я привел для примера, т.к. структура SOAP идентична моей |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |