Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » На каком python-фреймворке написать SOAP сервер и клиент? [RSS Feed]

#1 Авг. 20, 2018 10:28:48

Puzatik
Зарегистрирован: 2018-08-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

Добрый день!

Компания занимается торговлей. Нужно выгружать список товаров из ERP в кассовое ПО и выгружать чеки из кассового ПО в ERP.

ERP - SAP.
Кассовое ПО - Set Retail 10.

Сейчас используется такая схема при выгрузке товаров из ERP в ПО для касс:

SAP PI -> JDBC Receiver -> MSSQL -> SetBridge (Set Retail 5) -> Set1 retail 10

Из кассового ПО в ERP чеки едут так:

Set Retail 10 -> Set Retail 5 -> JDBC Receiver -> SAP PI

Хотелось бы избавить от прослойки “JDBC Receiver + Set Retail 5”, это отдельная виртуальная машина,
которая, по сути, просто занимается конвертацией данных из формата SAP PI в формат понятный Set Retail 10.

В идеале, было бы здорово придти к схеме SAP PI < - > Set Retail 10, но специалиста по SAP PI нет,
отдавать заказ на сторону никто не хочет, всех всё устраивает.

Хочу попробовать заменить “JDBC Receiver + Set Retail 5” демоном на python-е.
Не энтерпрайз, просто улучшить свои навыки в программировании на питоне.

То есть схема будет такой:

SAP PI -> Python -> Set Retail 10

Из SAP на JDBC Receiver POST-запросом прилетают документы вида:
—–
POST /db/SETRetail_JDBC_receiver HTTP/1.0
content-type: multipart/related;boundary=SAP_005056A6DBA01EE89FD127DCB9C88B4A_END;type=“text/xml”;start=“”
content-length: 8889


content-type:application/x-sap.idoc
content-length:4463
content-id:

<?xml version=“1.0” encoding=“utf-8”?>

тут описание товара

—–

В Set Retail 10 можно загружать товары через SOAP запросы. У них хорошая документация, все параметры описаны.

Вопрос:

Есть ли готовый фреймворк, который более-менее подходит под задачу, или лучше писать своё с нуля (слушать порт, читать данные, парсить XML итп)?

Офлайн

#2 Авг. 20, 2018 12:22:09

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

Puzatik
Хотелось бы избавить от прослойки “JDBC Receiver + Set Retail 5”
Puzatik
SAP PI -> JDBC Receiver -> MSSQL -> SetBridge (Set Retail 5)
Сейчас избавишься от базы данных (MSSQL), а потом она понадобится для чего-нибудь стороннего (анализ какой-нибудь) и что будешь делать?

Puzatik
Не энтерпрайз, просто улучшить свои навыки в программировании на питоне.
Да тренируйся на кошках. Если не разрабатывал ничего, только увязнешь впустую. Так ещё и сломаешь что-нибудь невидимое. База данных тем и хороша, что данные в ней чистые, не привязаны ни к каким программам, поэтому их могут использовать любые программы как угодно. А ты собрался привязать данные к определённым системам, форматам и так далее.



Офлайн

#3 Авг. 20, 2018 21:08:36

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

Насколько я понимаю ТС не хочет базу портить.
Из нового для SOAP
http://spyne.io/#inprot=HttpRpc&outprot=JsonDocument&s=rpc&tpt=WsgiApplication&validator=true
https://habr.com/post/334290/
Насколько это вам окажется полезно не знаю.



Офлайн

#4 Авг. 21, 2018 00:41:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

doza_and
Насколько я понимаю ТС не хочет базу портить.
Далеко не факт, ему могло показаться это отличным решением, типа сокращение звеньев в цепи и завязка на его собственную программу. Так что он может просто не догонять, что в будущем может срочно что-то потребоваться и из-за этих изменений они не смогут это реализовать быстро.



Офлайн

#5 Авг. 21, 2018 02:30:31

Puzatik
Зарегистрирован: 2018-08-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

Я вообще не собираюсь трогать БД.

Мне нужно написать конвертер одного формата в другой.
Из SAP прилетатает XML своей структуры, мне надо его перевести в структуру понятную Set Retail 10 и отправить в Set Retail 10 через SOAP.
По такому же принципу - в обратную сторону.

Set Retail 10 хранит данные в своей БД PostgreSQL.
Вся эта прослойка в виде “ JDBC Receiver -> MSSQL -> SetBridge (Set Retail 5)” сейчас нужна только для преобразования данных из SAP. Её-то и хочу заменить.

Офлайн

#6 Авг. 21, 2018 03:50:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

Ну попробуй просто отправить что-нибудь осмысленное на Set Retail 10, без взятия этих данных из SAP. Потом так же отдельно в обратную сторону - в SAP, якобы оно пришло от Set Retail 10. Если получится, то можно сделать транслятор всех возможных документов из SAP в Set Retail 10 и всех возможных документов из Set Retail 10 в SAP. А их может быть очень дофига. Сейчас тебе, может, мало их нужно, а потом поставят задачу добавить что-нибудь мелкое и надо будет очень много дописывать из-за этой шпуньки.
Если сделаешь, то и серверно-клиентскую часть можно сделать.

И ещё надо учитывать, что Set Retail 10 могут заменить и вся твоя система, которую ты там писал неизвестно сколько, станет не нужна.

Puzatik
В Set Retail 10 можно загружать товары через SOAP запросы. У них хорошая документация, все параметры описаны.
Теоретически. Попробуй на практике это сделать. Может оказаться всё не так прекрасно.

А то может получиться так, что ты сервер-клиент напишешь, а преобразовывать документы или отправлять данные в систему не сможешь. Зря только время потеряешь.



Отредактировано py.user.next (Авг. 21, 2018 03:58:19)

Офлайн

#7 Авг. 21, 2018 04:40:50

Puzatik
Зарегистрирован: 2018-08-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

Спасибо за ответ!

Я уже пробовал слать данные в Set 10 через SOAP, получается хорошо.
Именно так заливаю в Set 10 дисконтные карты.
Использую Zeep.

Офлайн

#8 Авг. 21, 2018 05:03:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

На каком python-фреймворке написать SOAP сервер и клиент?

Puzatik
Использую Zeep.
Он может и глючить, бывал у нас случай тут
https://python.su/forum/topic/34722/



Офлайн

  • Начало
  • » Network
  • » На каком python-фреймворке написать SOAP сервер и клиент?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version