Текущее время: Чт, мар 28 2024, 15:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Ср, апр 09 2014, 09:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Коллеги, здравствуйте!

Еще в начале изучения PI у нас в организации обратил внимание на то, что у нас принято для передачи данных в PI из 1С описывать типы данных в 1С, формировать тестовый веб-сервис с этими типами, получать его wsdl, загружать в PI как External Definition. Далее для соответствующей операции отправляющего интерфейса указываются эти типы, формируется wsdl этого интерфейса и загружается уже в 1С как ws-ссылка. По ссылке создается прокси, из фабрики берутся необходимые типы, потом вызывается нужная операция.
На вопрос: "Зачем так сложно?", получил ответ, что при работе напрямую с типами, определенными в ESR у 1С возникают проблемы, какие, правда, никто уже точно не помнил.

Решил попробовать и налетел на те же грабли
Есть тип сообщения, определенный в ESR:

<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_Test_Items_List xmlns:ns0="urn:test_sync_async">
<Item>
<ItemID/>
<ItemText/>
</Item>
</ns0:MT_Test_Items_List>

При отправке запроса 1С:

<MT_Test_Items_List xmlns="urn:test_sync_async"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Item>
<ItemID>111</ItemID>
<ItemText>Test 111</ItemText>
</Item>
</MT_Test_Items_List>

Операционный мэппинг PI такой вариант понимать отказывается и формирует после мэппинга пустое сообщение.
Если изменить <MT_Test_Items_List xmlns="urn:test_sync_async>" на <ns0:MT_Test_Items_List xmlns:ns0="urn:test_sync_async>", то все замечательно работает.

Никто не сталкивался с похожими ситуациями?

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR  Тема решена
СообщениеДобавлено: Ср, апр 09 2014, 09:59 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
XML Anonymizer должен помочь:
https://help.sap.com/saphelp_nw04/helpd ... ontent.htm

Тут пример использования, только когда надо наоборот префиксы убрать для сторонней системы.
http://www.saptechnical.com/Tutorials/X ... /Index.htm


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Ср, апр 09 2014, 12:12 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
по опыту, 1С любит только квалифицированные узлы. Если делать с этой оглядкой в ESR, всё работает.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Чт, апр 10 2014, 02:23 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Shvetz написал(а):
XML Anonymizer должен помочь:
https://help.sap.com/saphelp_nw04/helpd ... ontent.htm


Спасибо, посмотрю!

chumpa написал:
по опыту, 1С любит только квалифицированные узлы. Если делать с этой оглядкой в ESR, всё работает.


А поподробнее можно? :-) С оглядкой - это как?

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Чт, апр 10 2014, 17:36 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
с оглядкой -- это всё квалифицировать, и всё.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пт, апр 11 2014, 01:19 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Shvetz написал(а):
XML Anonymizer должен помочь:
https://help.sap.com/saphelp_nw04/helpd ... ontent.htm

Тут пример использования, только когда надо наоборот префиксы убрать для сторонней системы.
http://www.saptechnical.com/Tutorials/X ... /Index.htm


Попробовал - не работает. На форумах и в блогах нашел упоминания о том, что sender SOAP-адаптер не расширяется, похоже, в моем случае не сработает.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пт, апр 11 2014, 10:25 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, дек 06 2011, 10:11
Сообщения: 78
Что такое "Не понимает"? Преобразование XSLT?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пт, апр 11 2014, 14:37 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Цитата:
Попробовал - не работает. На форумах и в блогах нашел упоминания о том, что sender SOAP-адаптер не расширяется, похоже, в моем случае не сработает.


SOAP Sender не расширялся вроде в PI 7.11, сейчас включили, но надо разбираться.
Я раньше с этой проблемой боролся с помощью XSLT, как предложил Jay1977. Это точно работает.
Сейчас использую XML Validation, если сообщение приходит без префикса, то в 1С обратно летит ошибка из SOAP адаптера. В 1С прибавить префикс к неймспейсу можно, по крайне мере, по моей просьбе это делали. Каким способом не знаю, в 1С внутрь не залазил.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пн, апр 14 2014, 09:16 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Ну у меня так и не получилось добавить модуль в канал. Точнее, добавить то добавил, только на выходе то же самое.

Переделал адаптер на работу через Axis. Что-то снова мне знаний не хватает, видать :-): при работе через integrated configuration, судя по логам, модуль в адаптере вызывается и успешно отрабатывает. При настройке через integration engine никаких изменений в неймспейсах не происходит, более того, в мониторе канала даже сообщений нет, хотя в sxi-мониторе сообщения появляются. Или в soap-канале сообщения просматривать можно только при обработке в AAE?

Да уж... Это я просто wsdl делал через основное меню, и у меня url формировался на стандартный соап, а не на axis(видать потому, что есть настроенный стандартный soap-канал для той же системы).
Сделал wsdl по sender agreement - появились сообщения в нужном канале, но почему-то в параметрах получателя в адресе проставляется интерфейс и неймспейс отправителя. Почему?

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пт, апр 18 2014, 09:43 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4842
Откуда: Москва
Пол: Мужской
Добрый день!
Коллеги, подскажите, пожалуйста, если есть ФМ, который средствами SAP ERP без PI опубликован как веб-сервис, можно ли к результирующему XML этого веб-сервиса прикрутить XSLT преобразование по аналогии с подходом, который описан выше для PI?

Как это сделать?

_________________
Удача - результат нашего желания (© А. Нортон)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пт, апр 18 2014, 11:51 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
LKU

Надо использовать вызов в абапе CALL TRANSFORMATION (name) SOURCE XML sXml RESULT XML tXml.
В (name) указывается объект трансформации , который создается в тр. STRANS, далее к объекту трансформации надо привязать XSLT файл (также через тр. STRANS). Это не сложно делается. Единственное, работа XSLT средствами ERP(ABAP) может отличаться от стандартной версии XSLT.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пт, апр 18 2014, 12:33 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4842
Откуда: Москва
Пол: Мужской
Shvetz, или вы меня не поняли, или я вас.

В SAP ERP есть написанный мной функциональный модуль, дальше в SE80 я его публикую как enterprise service.
Далее этот web-service вызывается из внешней системы (1С).

Обертывание выходных параметров функционального модуля в xml делает сам SAP и мой вопрос был как раз в том, где именно вклиниться в этот процесс с вызовом CALL TRANSFORMATION.

_________________
Удача - результат нашего желания (© А. Нортон)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование в 1С типов, определенных в ESR
СообщениеДобавлено: Пт, апр 18 2014, 13:03 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Цитата:
Обертывание выходных параметров функционального модуля в xml делает сам SAP и мой вопрос был как раз в том, где именно вклиниться в этот процесс с вызовом CALL TRANSFORMATION.


Понял, тогда то, что я написал, не прокатит. Если сам SAP делает XML преобразование, то я думаю это уже выходит за PI тематику.
Тут надо отталкиваться уже от того, что конкретно надо преобразовывать. Если поменять namespace, то может быть это можно сделать через настройки Enterprise Service (на стороне в ABAP или в SOA Manager).


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB