Форум сайта python.su
Добрый день!
Компания занимается торговлей. Нужно выгружать список товаров из 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 итп)?
Офлайн
Puzatik
Хотелось бы избавить от прослойки “JDBC Receiver + Set Retail 5”
PuzatikСейчас избавишься от базы данных (MSSQL), а потом она понадобится для чего-нибудь стороннего (анализ какой-нибудь) и что будешь делать?
SAP PI -> JDBC Receiver -> MSSQL -> SetBridge (Set Retail 5)
PuzatikДа тренируйся на кошках. Если не разрабатывал ничего, только увязнешь впустую. Так ещё и сломаешь что-нибудь невидимое. База данных тем и хороша, что данные в ней чистые, не привязаны ни к каким программам, поэтому их могут использовать любые программы как угодно. А ты собрался привязать данные к определённым системам, форматам и так далее.
Не энтерпрайз, просто улучшить свои навыки в программировании на питоне.
Офлайн
Насколько я понимаю ТС не хочет базу портить.
Из нового для SOAP
http://spyne.io/#inprot=HttpRpc&outprot=JsonDocument&s=rpc&tpt=WsgiApplication&validator=true
https://habr.com/post/334290/
Насколько это вам окажется полезно не знаю.
Офлайн
doza_andДалеко не факт, ему могло показаться это отличным решением, типа сокращение звеньев в цепи и завязка на его собственную программу. Так что он может просто не догонять, что в будущем может срочно что-то потребоваться и из-за этих изменений они не смогут это реализовать быстро.
Насколько я понимаю ТС не хочет базу портить.
Офлайн
Я вообще не собираюсь трогать БД.
Мне нужно написать конвертер одного формата в другой.
Из SAP прилетатает XML своей структуры, мне надо его перевести в структуру понятную Set Retail 10 и отправить в Set Retail 10 через SOAP.
По такому же принципу - в обратную сторону.
Set Retail 10 хранит данные в своей БД PostgreSQL.
Вся эта прослойка в виде “ JDBC Receiver -> MSSQL -> SetBridge (Set Retail 5)” сейчас нужна только для преобразования данных из SAP. Её-то и хочу заменить.
Офлайн
Ну попробуй просто отправить что-нибудь осмысленное на 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)
Офлайн
Спасибо за ответ!
Я уже пробовал слать данные в Set 10 через SOAP, получается хорошо.
Именно так заливаю в Set 10 дисконтные карты.
Использую Zeep.
Офлайн
PuzatikОн может и глючить, бывал у нас случай тут
Использую Zeep.
Офлайн