SAPфорум.RU
https://sapboard.ru/forum/

Web-сервис SAP в 1С. Проблемы с предачей таблицы.
https://sapboard.ru/forum/viewtopic.php?f=70&t=90782
Страница 2 из 2

Автор:  Korvax [ Пт, июл 03 2015, 12:14 ]
Заголовок сообщения:  Re: Web-сервис SAP в 1С. Проблемы с предачей таблицы.

Андрей Петин написал:
Изменения были в SAP PI.
Спасибо, теперь понятно. Нам не подойдет к сожалению. Но, программисты 1С смогли на своей стороне повлиять на передаваемый xml и убрать префиксы где их быть не должно. Теперь живем счастливо ))

Автор:  Андрей Петин [ Пт, июл 03 2015, 12:54 ]
Заголовок сообщения:  Re: Web-сервис SAP в 1С. Проблемы с предачей таблицы.

Chaser009 написал:
Андрей Петин написал:
При тестировании веб-сервиса оказалось, что когда поступает сообщение с элементами такого вида:


Один-в-один и у нас такое же было. 1С напрочь отказывалась ставить префикс.

А я, по-моему, тогда в вашей теме как раз и нашёл решение :)
Вот здесь: http://sapboard.ru/forum/viewtopic.php?f=70&t=86516
Ну и в зарубежных обсуждениях было нечто подобное.

Автор:  Николай Рыжов [ Чт, апр 21 2016, 17:17 ]
Заголовок сообщения:  Re: Web-сервис SAP в 1С. Проблемы с предачей таблицы.

Немного займусь некромантией - возникла аналогичная проблема, и ее решения удалось достичь еще одним способом (что для SAP вообще нормально ;) ).

Итак: есть веб-сервис, сгенерированный на основании RFC-функции, 1С его табличные (и структурные) выходные параметры не признает, входные табличные передает, но в систему они не заезжают. Причина проблемы - отсутствие квалификации узлов при передаче SAP->1C и их же наличие при передаче 1C->SAP.

Решение проблемы основано на том, что для каждого типа Requst/Response веб сервиса и для составных типов SAP определяет подпрограммы преобразования - из своих внутренних типов в XML и наоборот. Найти их можно на вкладке сервиса External View, ткнув на соответствующий тип. СтФункц с очень говорящим именем типа /1BCDWB/WSSC731A91B137DF53B151 как раз и есть это преобразование. Менять эти подпрограммы преобразования нельзя, но ведь если сильно хочется то можно? Пишем пару энхасментов, чтобы перед вызовом cl_ws_md_util=>create_st (exporting source = source) (записывает код XSL в БД) слегка подрихтовать source. Рихтуем, конечно, не все, а только у сервисов предназначенных 1С.

Получится что-то типа:
Code:
<tem>
<tt:call transformation="/1BCDWB/WSS69F7C4DCC73B851DF1B">
<tt:with-root name="ZXXX"/>
</tt:call>
</item>


==>

Code:
<n0:item>
<tt:call transformation="/1BCDWB/WSS69F7C4DCC73B851DF1B">
<tt:with-root name="ZXXX"/>
</tt:call>
</n0:item>


После этого вызовы осуществляются нормально.

PS. Интересно, возможностей XSLT встроенного в SAP будет достаточно, чтобы реализовать JSON? :lol:

Автор:  Chaser009 [ Пт, апр 22 2016, 04:37 ]
Заголовок сообщения:  Re: Web-сервис SAP в 1С. Проблемы с предачей таблицы.

А если REST-адаптер, который "из коробки" JSON понимает?

P.S. Если версия PI не позволяет - не беда. Java - наше все :-).

Страница 2 из 2 Часовой пояс: UTC + 4 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/