SAPPER SETTINGS - Настройки загрузки — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(BAPI)
(BAPI)
Строка 303: Строка 303:
 
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.
 
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.
  
[[Файл:BAPI PO CREATE1.png]]
+
[[Файл:BAPI_PO_CREATE1_0.png]]
 +
[[Файл:BAPI_PO_CREATE1_1.png‎]]
 +
[[Файл:BAPI_PO_CREATE1_2.png]]
  
 
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.
 
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.

Версия 11:39, 16 марта 2018

Настройка загрузки

На основании входящего электронного документа в SAP можно создать документ, используя:

  • метод создания с помощью пакетного ввода (BATCH IPNUT)
  • BAPI

Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.

На данный момент поддерживается создание документов из электронных документов:

  • счет-фактура
  • накладная

Верхний уровень настройки имеет следующее представление:

  1. UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"
  2. FILE – массив, содержащий перечень создаваемых документов

Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню.

контекстное меню загрузки в SAP

массив FILE со списком создаваемых документов


{
  "UPLOAD_DATA_XSLT": {
    "Значение": "/SBIS/DOC301_XML_TO_ABAP"
  },
  "FILE": {
    "Значение": [
      {
        "Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",
        "Значение": []
      },
      {
        "Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",
        "Значение": []
      },
      {
        "Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",
        "Значение": []
      },
      {
        "Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",
        "Значение": []
      },
      {
        "Имя": "MENU_CREATE_GOODS_RECEIPT_BAPI",
        "Значение": []
      }
    ]
  }
}

FILE

Массив FILE содержит список создаваемых документов и имеет структуру:

  • [имя] - идентификатор пункта меню загрузки
  • [значение] - набор настроек для загрузки
    • DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов
    • MENU_TEXT - отображаемое имя в списке контекстного меню
    • DOC_TYPE - тип документа из справочника типов документов DOC_TYPE
    • UPLOAD_DATA_CLASS_NAME - наименование класса создания документов
    • UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:
      • CREATE_BAPI_DOC - создание документа используя BAPI
      • CREATE_BATCH_DOC - создание документа используя пакетный ввод
    • MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры
    • FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ
    • FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика
    • TRANSACTION_NAME - наименование транзакции или BAPI
    • POSITION_NUMBER_INCREASE - инкремент позиции
    • RESULT - поле получения результата выполнения (номера документа)
      • [имя] - переменная или указание на сообщение:
        • переменная API2_PACKET, в которую кладется результат - для BAPI
        • MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):
          • PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln
          • PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln
          • GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr
          • INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr
          • INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr
          • INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr
          • INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr
          • INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr
      • [тип] - тип переменной значения результата
      • [значение] - переменная с результатом
    • [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода
      • CTU_PARAMS_DISMODE - режим запуска
      • CTU_PARAMS_UPDMODE - режим обновления
      • CTU_PARAMS_CATTMODE - режим CATT
      • CTU_PARAMS_DEFSIZE - стандартный размер экрана
      • CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы
      • CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)
      • CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)
    • [массив заполнения входных данных]
      • BAPI
      • BATCH

пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER


{
        "Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",
        "Значение": [
          {
            "Имя": "DEFAULT",
            "Значение": "X"
          },
          {
            "Имя": "MENU_TEXT",
            "Значение": "Создать Заказ (BAPI)"
          },
          {
            "Имя": "DOC_TYPE",
            "Значение": "IC"
          },
          {
            "Имя": "UPLOAD_DATA_CLASS_NAME",
            "Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"
          },
          {
            "Имя": "UPLOAD_DATA_METHOD_NAME",
            "Значение": "CREATE_BAPI_DOC"
          },
          {
            "Имя": "MISSED_FIELDS_FUNCTION_NAME",
            "Значение": "/SBIS/FM_CREATE_BAPI_PORDER",
            "Тип": "String"
          },
          {
            "Имя": "FACE_ROLE_TO_GET_BUKRS",
            "Значение": "Получатель"
          },
          {
            "Имя": "FACE_ROLE_TO_GET_LIFNR",
            "Значение": "Отправитель"
          },
          {
            "Имя": "TRANSACTION_NAME",
            "Значение": "BAPI_PO_CREATE1"
          },
          {
            "Имя": "POSITION_NUMBER_INCREASE",
            "Значение": "10"
          },
          {
            "Имя": "RESULT",
            "Значение": [
              {
                "Имя": "BELNR",
                "Тип": "BAPIMEPOHEADER-PO_NUMBER",
                "Значение": "EXPPURCHASEORDER"
              }
            ]
          },
          {
            "Имя": "BAPI",
            "Тип": "",
            "Подтип": "",
            "Значение": []
          }
        ]
      }
    ]
  }


пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом


{
        "Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",
        "Значение": [
          {
            "Имя": "DEFAULT",
            "Значение": ""
          },
          {
            "Имя": "MENU_TEXT",
            "Значение": "Создать Заказ (ПакВвод)"
          },
          {
            "Имя": "DOC_TYPE",
            "Значение": "IC"
          },
          {
            "Имя": "UPLOAD_DATA_CLASS_NAME",
            "Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"
          },
          {
            "Имя": "UPLOAD_DATA_METHOD_NAME",
            "Значение": "CREATE_BATCH_DOC"
          },
          {
            "Имя": "MISSED_FIELDS_FUNCTION_NAME",
            "Значение": "/SBIS/FM_CREATE_BATCH_PORDER",
            "Тип": "String"
          },
          {
            "Имя": "FACE_ROLE_TO_GET_BUKRS",
            "Значение": "Получатель"
          },
          {
            "Имя": "FACE_ROLE_TO_GET_LIFNR",
            "Значение": "Отправитель"
          },
          {
            "Имя": "CTU_PARAMS_DISMODE",
            "Значение": "E" //остановить создание, если есть ошибка и показать экран
          },
          {
            "Имя": "CTU_PARAMS_UPDMODE",
            "Значение": "S" //синхронное выполнение (COMMIT AND WAIT)
          },
          {
            "Имя": "CTU_PARAMS_CATTMODE",
            "Значение": " " //не используя CATT
          },
          {
            "Имя": "CTU_PARAMS_DEFSIZE",
            "Значение": "" //текущий размер экрана
          },
          {
            "Имя": "CTU_PARAMS_RACOMMIT",
            "Значение": "X" //COMMIT WORK не останавливает обработки
          },
          {
            "Имя": "CTU_PARAMS_NOBINPT",
            "Значение": " " //системное поле sy-binpt не заполнено
          },
          {
            "Имя": "CTU_PARAMS_NOBIEND",
            "Значение": " " //системное поле sy-binpt не заполняется после конца обработки
          },
          {
            "Имя": "TRANSACTION_NAME",
            "Значение": "ME21N" //транзакция
          },
          {
            "Имя": "POSITION_NUMBER_INCREASE",
            "Значение": "10" //инкремент позиции
          },
          {
            "Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение
            "Значение": [
              {
                "Имя": "MSGTYP_MSGID_MSGNR",
                "Значение": "S|06|017|MSGV2"
              },
              {
                "Имя": "MSGTYP_MSGID_MSGNR",
                "Значение": "S|MEPO|013|MSGV2"
              }
            ]
          },
          {
            "Имя": "BATCH",
            "Тип": "",
            "Подтип": "",
            "Значение": []
          }
        ]
}

BAPI

Структура массива значений BAPI:

  • [имя] - имя параметра
  • [тип] - типа параметра
    • Fmstructure - структура
    • Fmfield - поле
    • Fmtable - таблица
    • Field - поле
    • String - строка
  • [подтип] - подтип параметра
    • Export - входная структура для BAPI
    • Import - выходная структура для BAPI
    • Table - таблица BAPI
  • [формат] - указание на ABAP тип
  • [массив значений]
    • [имя] - имя поля структуры
    • [значение] - значение
    • [тип] - тип значения
      • Field - поле
      • String - строка
      • Classfield - поле класса
    • [подтип]
      • Export
      • Import
    • [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)

Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.

BAPI PO CREATE1 0.png BAPI PO CREATE1 1.png BAPI PO CREATE1 2.png

В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.

пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку


{
              {
                "Имя": "POHEADER",
                "Тип": "Fmstructure",
                "Подтип": "Export",
                "Формат": "BAPIMEPOHEADER",
                "Значение": [
                  {
                    "Имя": "COMP_CODE",
                    "Значение": "IR_INPUT_DATA->BUKRS",
                    "Тип": "Field",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "DOC_TYPE",
                    "Значение": "NB",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "VENDOR",
                    "Значение": "IR_INPUT_DATA->LIFNR",
                    "Тип": "Field",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "DOC_DATE",
                    "Значение": "IR_INPUT_DATA->DATE",
                    "Тип": "Field",
                    "Подтип": "Export",
                    "Формат": "DATE"
                  },
                  {
                    "Имя": "PURCH_ORG",
                    "Значение": "IR_INPUT_DATA->EKORG",
                    "Тип": "Field",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "PUR_GROUP",
                    "Значение": "IR_INPUT_DATA->EKGRP",
                    "Тип": "Field",
                    "Подтип": "Export",
                    "Формат": ""
                  }
                ]
              },
              {
                "Имя": "POHEADERX",
                "Тип": "Fmstructure",
                "Подтип": "Export",
                "Формат": "BAPIMEPOHEADERX",
                "Значение": [
                  {
                    "Имя": "COMP_CODE",
                    "Значение": "X",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "DOC_TYPE",
                    "Значение": "X",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "VENDOR",
                    "Значение": "X",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "DOC_DATE",
                    "Значение": "X",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "PURCH_ORG",
                    "Значение": "X",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  },
                  {
                    "Имя": "PUR_GROUP",
                    "Значение": "X",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  }
                ]
              },
              {
                "Имя": "NO_PRICE_FROM_PO",
                "Тип": "Fmfield",
                "Подтип": "Export",
                "Формат": "CHAR01",
                "Значение": [
                  {
                    "Имя": "*",
                    "Значение": "X",
                    "Тип": "String",
                    "Подтип": "Export",
                    "Формат": ""
                  }
                ]
              },
              {
                "Имя": "POITEM",
                "Тип": "Fmtable",
                "Подтип": "Table",
                "Формат": "BAPIMEPOITEM",
                "Значение": [
                  {
                    "Имя": "POITEM",
                    "Тип": "IR_INPUT_DATA->ITEMS",
                    "Подтип": "",
                    "Формат": "BAPIMEPOITEM",
                    "Значение": [
                      {
                        "Имя": "PO_ITEM",
                        "Значение": "GV_ITEMS_POS",
                        "Тип": "Classfield",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "MATERIAL",
                        "Значение": "ID",
                        "Тип": "Field",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "PLANT",
                        "Значение": "WERKS",
                        "Тип": "Field",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "STGE_LOC",
                        "Значение": "LGORT",
                        "Тип": "Field",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "QUANTITY",
                        "Значение": "AMOUNT",
                        "Тип": "Field",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "NET_PRICE",
                        "Значение": "PRICE",
                        "Тип": "Field",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "NO_ROUNDING",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "TAX_CODE",
                        "Значение": "MWSKZ",
                        "Тип": "Field",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "VAL_TYPE",
                        "Значение": "",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "UNLIMITED_DLV",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "IR_IND",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "GR_IND",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      }
                    ]
                  }
                ]
              },
              {
                "Имя": "POITEMX",
                "Тип": "Fmtable",
                "Подтип": "Table",
                "Формат": "BAPIMEPOITEMX",
                "Значение": [
                  {
                    "Имя": "POITEMX",
                    "Тип": "IR_INPUT_DATA->ITEMS",
                    "Подтип": "",
                    "Формат": "BAPIMEPOITEMX",
                    "Значение": [
                      {
                        "Имя": "PO_ITEM",
                        "Значение": "GV_ITEMS_POS",
                        "Тип": "Classfield",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "MATERIAL",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "PLANT",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "STGE_LOC",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "QUANTITY",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "NET_PRICE",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "NO_ROUNDING",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "TAX_CODE",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "VAL_TYPE",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "UNLIMITED_DLV",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "IR_IND",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "GR_IND",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      }
                    ]
                  }
                ]
              },
              {
                "Имя": "POSCHEDULE",
                "Тип": "Fmtable",
                "Подтип": "Table",
                "Формат": "BAPIMEPOSCHEDULE",
                "Значение": [
                  {
                    "Имя": "POSCHEDULE",
                    "Тип": "IR_INPUT_DATA->ITEMS",
                    "Подтип": "Table",
                    "Формат": "BAPIMEPOSCHEDULE",
                    "Значение": [
                      {
                        "Имя": "PO_ITEM",
                        "Значение": "GV_ITEMS_POS",
                        "Тип": "Classfield",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "SCHED_LINE",
                        "Значение": "1",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "DEL_DATCAT_EXT",
                        "Значение": "D",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "DELIVERY_DATE",
                        "Значение": "DATE",
                        "Тип": "Field",
                        "Подтип": "",
                        "Формат": ""
                      }
                    ]
                  }
                ]
              },
              {
                "Имя": "POSCHEDULEX",
                "Тип": "Fmtable",
                "Подтип": "Table",
                "Формат": "BAPIMEPOSCHEDULX",
                "Значение": [
                  {
                    "Имя": "POSCHEDULEX",
                    "Тип": "IR_INPUT_DATA->ITEMS",
                    "Подтип": "Table",
                    "Формат": "BAPIMEPOSCHEDULX",
                    "Значение": [
                      {
                        "Имя": "PO_ITEM",
                        "Значение": "GV_ITEMS_POS",
                        "Тип": "Classfield",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "SCHED_LINE",
                        "Значение": "1",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "DEL_DATCAT_EXT",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      },
                      {
                        "Имя": "DELIVERY_DATE",
                        "Значение": "X",
                        "Тип": "String",
                        "Подтип": "",
                        "Формат": ""
                      }
                    ]
                  }
                ]
              },
              {
                "Имя": "EXPPURCHASEORDER",
                "Тип": "Fmfield",
                "Подтип": "Import",
                "Формат": "BAPIMEPOHEADER-PO_NUMBER",
                "Значение": []
              },
              {
                "Имя": "RETURN",
                "Тип": "Fmtable",
                "Подтип": "Table",
                "Формат": "BAPIRET2",
                "Значение": ""
              }
}

BATCH