У нас есть специально созданное устаревшее приложение, которое собирает данные из базы данных SQL-сервера, создает IDOC, а затем «отправляет» этот IDOC в ECC. (Это приложение было написано на VB6 и использует для этого SDK SAPGUI 6.)
Я пытаюсь вывести это решение из эксплуатации и заменить его решением, встроенным в MII.
Насколько я могу судить, мне нужно создать IDOC в MII, используя IDOC_Asynchronous_Inbound
, но я застрял в том, как заполнить необходимые поля.
IDOC_Asynchronous_Inbound
состоит из двух сегментов: IDOC_CONTROL_REC_40
и IDOC_DATA_REC_40
.
Я догадался, какие поля заполнять в сегменте IDOC_CONTROL_REC_40/item
, посмотрев на исходный код старого VB-приложения. Я думаю, что это должно сделать:
IDOC_INBOUND_ASYNCHRONOUS/TABLES/IDOC_CONTROL_REC_40/item
- IDOCTYP: WMMBID01
- MESTYP: WMMBXY
- SNDPRN: <value>
- SNDPRT: LI
- SNDPOR: <value>
- RCVPRN: <value>
- RCVPRT: LS
- EXPRSS: X
Глядя на исходный код старого приложения VB, теперь я должен добавить сегмент типа E1MBXYH
со следующими заполненными полями:
- BLDAT: <date>
- BUDAT: <date>
- TCODE: MB31
- XBLNR: <value>
- BKTXT: <value>
Основываясь на догадках и некоторых сообщениях в блогах, я предполагаю, что мне нужно добавить этот сегмент как сегмент item
к сегменту IDOC_DATA_REC_40
.
Я предполагаю, что затем мне следует добавить item
сегментов типа E1MBXYI
для всех «записей», которые я хочу отправить в SAP, со следующими полями:
- MATNR: <value>
- WERKS: <value>
- LGORT: <value>
- CHARG: <value>
- BWART: 261
- ERFMG: <value>
- SHKZG: H
- ERFME: <value>
- AUFNR: <value>
- SGTXT: <value>
Теперь, глядя на сегмент IDOC_DATA_REC_40
в MII, доступны следующие поля:
- SEGNAM
- MANDT
- DOCNUM
- SEGNUM
- PSGNUM
- HLEVEL
- SDATA
Я предполагаю, что имя сегмента должно быть в SEGNAM
, а данные (правильно структурированные/распределенные) должны входить в SDATA
. Я не уверен, что я должен указать в других полях (если что-нибудь). (У меня есть файл описания для этого типа IDOC, поэтому я знаю, как «структурировать» данные, которые я должен поместить в сегмент SDATA
... считая пробелы, ура!)
Чтобы надеюсь пояснить, как должен быть структурирован IDOC, это (ссылка на) снимок экрана IDOC, опубликованного текущим приложением VB:
скриншот IDOC в SAP, показывающий структуру данных
Я надеюсь, что кто-то здесь может подтвердить, что я на правильном пути при заполнении сегментов и что есть кто-то, кто знает, какие поля я должен заполнить в сегментах данных.
С уважением,
Томас
P.S. Некоторые использованные ресурсы:
- Как создавать и отправлять Idoc в SAP с помощью SAP .Net Connector 3
- Документация IDOC SAP по движению товаров
- Как для отправки IDOC из SAP MII в SAP ERP
P.P.S. Полное раскрытие: я также разместил этот вопрос на доске вопросов и ответов сообщества SAP.