Что такое bapi в sap

В чем разница между RFC и BAPI в SAP

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Содержание:

Ключевые области покрыты

1. Что такое RFC
— определение, функциональность
2. Что такое БАПИ
— определение, функциональность
3. В чем разница между RFC и BAPI в SAP
— Сравнение основных различий

Основные условия

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Что такое RFC

RFC означает Удаленный вызов функций, Это метод, который позволяет бизнес-приложениям обмениваться информацией с различными системами. Кроме того, это протокол SAP для установления связи между системами. Функция в машине может вызывать функцию в другой машине, используя RFC. Также можно вызывать функцию в другой программе того же компьютера, используя RFC. Но этот механизм обычно используется для вызова функций, работающих на другом компьютере. Интерфейс RFC помогает установить соединение RFC между различными системами SAP или системами SAP и других производителей.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

RFC предоставляет ряд преимуществ программистам. Это предотвращает разработку модулей снова и снова на удаленных системах. Кроме того, он вызывает определенные процедуры, чтобы начать связь с удаленной системой, и обрабатывает ошибки, возникающие в связи.

Что такое БАПИ

BAPI расшифровывается как Интерфейс программирования бизнес-приложений, Это стандартизированный интерфейс программирования для моделей бизнес-объектов в продуктах SAP. Кроме того, он оборачивает внутренние слои модели бизнес-объектов SAP, чтобы подтвердить, что вся бизнес-логика, авторизация и проверка правильности выполняются при доступе или изменении бизнес-объектов.

BOR (репозиторий бизнес-объектов) определяет BAPI как методы типов бизнес-объектов SAP, которые могут выполнять бизнес-функции. Кроме того, функции BAPI, подходящие для большинства бизнес-объектов SAP, называются стандартизированными BAPI. Некоторые из них следующие.

BAPI для создания или изменения данных— Создать (), Изменить (), Удалить () и Восстановить (),

Разница между RFC и BAPI в SAP

Определение

Длинная форма

В то время как RFC обозначает Удаленный вызов функций, BAPI обозначает Интерфейс программирования бизнес-приложений.

использование

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

Заключение

Ссылка:

Источник

Чем BAPI лучше.

В этой статье поговорим о том, что такое BAPI, почему и как их следует использовать и в чем отличие от остальных функциональных модулей.

Для того, чтобы понять, в чем разница BAPI от остальных функциональных модулей (ФМ), стоит понять, что такое ФМ в целом и какие виды бывают.

По-простому, ФМ – это программа (метод для знающих про ООП), которую можно вызвать при выполнении другой программы. Все ФМ разделены на 3 типа:

Первые два типа стандартный и дистанционный, отличаются друг от друга только тем, что дистанционный можно вызвать из внешней системы, а стандартный предназначен для работы внутри одной системы.

Модуль обновления – используют в ФМ или других программах для записи данных в базу данных. Очень часто фм этого типа не обладают никакими дополнительными проверками и содержат только операции, которые приводят к обновлению данных в БД, т. е. insert, update, delete.

По сути, типом ФМ очерчивается его зона действия и возможности. При поиске подходящего ФМ очень полезно понимать эту разницу. Часто первые 2 типа называют модулями верхнего уровня и последний относят к нижнему уровню, имея в виду упрощение операций от верхнего уровня к нижнему, т. е. на верхнем уровне выполняются все проверки и логика, а на нижнем идут только обновления.

И так BAPI (Business Application Programming Interface\ Business API) – это чаще всего дистанционный функциональный модуль, предоставляемый компанией SAP в стандартной поставке системы. Служат для создания большинства стандартных объектов в системе, таких как заказ на поставку (PO), заказ клиента (SO).

Почему стоит стараться использовать BAPI:

Как найти BAPI

Используйте транзакцию BAPI. Далее по аналогичному меню в SPRO находим раздел с перечислением доступных функций к нашему объекту. Например, путь к BAPI по созданию заказа клиента приведен на Рисунок 1.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рисунок 1 BAPI создать заказ клиента

Обратите внимание, что SAP несет ответственность за ФМ в статусе «Деблокировано».

Заключение

В работе консультанта части требуется найти программу\ФМ, которая по каким-то критериям создаст какой-то стандартный объект. Для этих объектов с вероятностью 90% существует BAPI.

Если не можете найти BAPI ищи стандартные или дистанционные ФМ, желательно в статусе «Деблокировано», но скорее всего получится найти в статусе «Не деблокировано» — это не означает, что ФМ использовать нельзя. Но с такими ФМ нужно проводить больше времени в тестировании т. к. этот ФМ скорее всего используется в SAP в каком-то конкретном случае и результат может немного отличаться от того, что требуется Вам.

И помните, никогда не используйте модули обновления в качестве создания объектов. В прочем, за очень редким исключением это может потребоваться, но перед этим убедитесь что ни Вы ни программист не может найти другого подходящего ФМ с нужными Вам функциями.

Чем BAPI лучше.: 2 комментария

Спасибо за статью, все понятно написано для общего ознакомления

Источник

Транзакция LSMW инструкция по применению. Часть 7

Транзакция LSMW инструкция по применению

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Башкатов Олег Викторович

В этой книге приводятся практические решения задач с использованием транзакции

LSMW для загрузки данных на основе методов Batch Input, BAPI и

Direct Input. Примеры базируются на бизнес-сценарии миграции данных.

Загрузка остатков ОЗМ методом BAPI в транзакции LSMW

Продолжение книги.

В этой главе будет описано использование BAPI-метода на примере загрузки остатков (создание документов материала 561 видом движения). В основе подхода лежит использование типа сообщения MBGMCR, который вызывает BAPI_GOODSMVT_CREATE. BAPI-метод уже был подробно описан в главе 2, поэтому в настоящей главе не будут описываться шаги подробно, а детальное описание будет уделено новой информации. В решении бизнес-задачи мы находимся на этапе загрузки остатков по созданным ОЗМ (рис. 5.1). В примере будет показано, как создать множество документов материалов с несколькими позициями, используя один входной файл.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.1. Задача загрузки остатков в общей схеме задач миграции

Задача состоит в загрузке начальных остатков по разным субсчетам счета запасов (10-го счета в плане счетов Минфина РФ). В главе будет показан пример использования одного файла для двух входных структур (использование опции Identifying Field Content); будет показан пример использования маски в имени файла (Wildcard option); пример создания и применения параметра селекционного экрана, а также примеры дополнительного ABAP-кода посредством user-defined routines и работа с полями типа DDMY (дата) и AMT1 (сумма).

5. 1. Операционные условия

Требуется прогрузить остатки на склад с помощью 561-го вида движения на основные записи материалов; при этом нужно обеспечить загрузку нескольких позиций документов материала с помощью одного входного файла; также необходимо сделать возможным параллельную загрузку по разным субсчетам (чтобы для разных субсчетов был свой файл на сервере). Вводные данные для загрузки представлены в таблице 5.1. Для загрузки нескольких позиций в документе материала нам нужно использовать две структуры-источника. Однако для этих двух структур мы можем использовать один файл с данными. Для этого часть полей нам придется задублировать в структурах, но дублирования данных при этом не будет.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Табл. 5.1. Используемые переменные поля для загрузки остатков

Пройдемся вручную через MIGO по полям документ материала, обозначенным в таблице 5.1, и создадим документ материала. Созданный документа материала представлен на рис. 5.2.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.2. Создание документа материала для начальной загрузки остатков

5.2. Пошаговое решение задачи

Шаг 1: создание/выбор проекта, подпроекта и объекта

Для создания нового проекта транзакции LSMW будем использовать данные из таблицы 5.2.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Табл. 5.2. Данные для создания объекта LSMW

После указания данных подтверждаем ввод и запускаем проект. Система откроет перед нами основное меню транзакции LSMW.

Шаг 2: параметры метода загрузки: выбор объекта и метода

Дважды щелкаем по пункту меню Maintain Object Attributes. В качестве объекта метода Business Object выбираем BUS2017 (Goods Movement), метод — CREATEFROMDATA (Post Goods Movement) (рис. 5.3).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.3. Указываем объект и метод для использования BAPI-метода

Сохраняем и выходим к обзору списка шагов, чтобы перейти к следующему шагу.

Шаг 3: создание структуры источника [данных]

Переходим к пункту Maintain Source Structures. Создаем структуры ZDOCHEAD (Заголовок документа материала) и ZDOCITEM (Позиции документа материала). Система отобразит экран, как на рис. 5.4. Затем сохраняем и выходим, чтобы перейти к следующему шагу.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.4. Созданная структура загрузки данных

Шаг 4: ведение полей структуры источника [данных]

Щелкаем дважды по пункту Maintain Source Fields. Ставим курсор на структуру ZDOCHEAD (Заголовок документа материала) и нажимаем на кнопку Table Maintenance (рис. 5.5). Поля для структур ZDOCHEAD и ZDOCITEM приведены в таблице 5.3. При заполнении типов данных полей обратим внимание, что для даты имеется три формата DDMY, DMDY, DYMD, при этом каждый из форматов может быть как с разделителем, так и без него. Для суммы имеется четыре формата: AMT1, AMT2, AMT3, AMT4. Из описания видно, чем отличаются форматы (рис. 5.6).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Табл. 5.3. Поля структуры источника ZDOCHEAD (заголовок документа материала)

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.5. Используем ввод через таблицу (Table Maintenance)

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.6. Пояснение к форматам даты и суммы в транзакции LSMW

После заполнения данных касательно полей структур система отобразит экран, как показано на рис. 5.7.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.7. Входные структуры с полями

На этом шаге нам нужно заполнить атрибут Identifying Filed Content в заголовочной и позиционной структурах. Это поле позволит нам использовать один файл для двух структур. Использование одного файла удобнее и надежнее, чем использование двух. Поле, которое позволит нам различить заголовок и позицию, будет HEAD_OR_ITEM. Дважды щелкаем по этому полю для структуры ZDOCHEAD, система отобразит экран, в котором мы укажем значение для поля Identifying Field Content — HEAD (рис. 5.8).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.8. Заполнение поля Identifying Field Content для структуры ZDOCHEAD значением HEAD

Затем проделаем похожие действия, но для структуры ZDOCITEM поля HEAD_OR_ITEM. Дважды щелкнем по этому полю и укажем значение для поля Identifying Field Content — ITEM (рис. 5.9).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.9. Заполнение поля Identifying Field Content для структуры ZDOCITEM значением ITEM

Нам необходимо вывести поле TESTRUN на селекционный экран. Для этого дважды щелкаем по полю TESTRUN в структуре ZDOCHEAD и отмечаем галкой атрибут Selection Parameter for Import/Convert Data (рис. 5.10).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.10. Обозначаем поле в качестве селекционного параметра экрана

В основном экране шага сохраняем данные и выходим к обзору шагов, чтобы перейти к следующему шагу.

Шаг 5: соответствие структур источника данных и записи

Дважды щелкаем по шагу Maintain Structure Relations. Создаем соответствие структур, как показано на экране (рис. 5.11). Сохраняем, выходим, переходим к следующему шагу.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.11. Присвоение структуры входного файла и внутренних структур и структур типа сообщения

Шаг 6: мэппинг (соответствие) полей источника [данных] и полей структур BAPI и User-defined routines

Дважды щелкаем по шагу Maintain Field Mapping and Conversion Rules. На данном шаге производим мэппинг полей входного файла и структуры BAPI. Предварительно с помощью кнопки Layout откроем дополнительные области, где можно указать ABAP-код (рис. 5.12).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.12. Открываем поля для дополнительного ABAP-кода

Пройдемся по блокам и полям и произведем мэппинг; данные для мэппинга приведены в таблицах 5.4.а–5.4.б.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Табл. 5.4.а. Мэппинг полей структур BAPI и входного файла

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Табл. 5.4.б. Мэппинг полей структур BAPI и входного файла

Чтобы присвоить фиксированное значение (Fixed Value) полю, нужно поставить курсор на поле и нажать на кнопку Fixed Value, в открывшемся поле ввести переменную (если она не существует, то система предложит создать ее) (рис. 5.13).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.13. Указание Fixed Value (фиксированного значения) для поля

Также заметим, что мы можем вести подпрограммы для всего проекта (так называемые user defined routines) и ABAP-routines для конкретного загрузчика, которые доступны в самом конце загрузчика (рис. 5.14).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.14. Место в загрузчике для ABAP-подпрограмм, специфичных для отдельного объекта LSMW (загрузчика)

В нашем случае мы будем создавать подпрограмму, общую для всего проекта, то есть в пункте меню Maintain Fixed Values, Translations, User-Defined Routines (рис. 5.15).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.15. Пункт меню Maintain Fixed Values, Translations, User-Defined Routines

Мы сослались на несколько фиксированных значений (Fixed Value) и одну подпрограмму (User defined routines). Чтобы задать значение для Fixed Value, нужно поставить курсор на нужное Fixed Value и нажать пиктограмму Change / Изменить (рис. 5.16), затем ввести нужное описание и значение.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.16. Задаем описание и значение для FixedValue TARGET_PLANT

Данные по остальным фиксированным значениям (Fixed Value) приведены в таблице 5.5.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Табл. 5.5. Данные по фиксированным значениям (Fixed Value)

Обратим внимание, что на экране фиксированное значение может идентифицироваться, например, как MOVE_CODE, а вот обращение к ней в программе происходит по имени переменной fv_move_code (то есть добавляется префикс fv).

Теперь переходим к определенной пользователем подпрограмме SKIP_RECORD. Назначение этой подпрограммы — правильно указать системе, что текущую запись нужно пропустить. В нашем случае запись — это позиция документа материала, а транзакция — весь документ материала. Мы пропускаем весь документ материала в случае, если единица измерения на входе отсутствует хотя бы в одной позиции. Ставим курсор на нужную нам User-Defined Routines и переходим к изменению с помощью пиктограммы Change / Изменить (кнопка с карандашом) (рис. 5.17).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.17. Переходим к редактированию подпрограммы skip_rec

Обратим внимание, что техническое имя подпрограммы — ur_SKIP_REC. Нужный код для подпрограммы приведен в таблице 6. Обратим внимание и на то, что ни одну из переменных мы не определяем. Переменные g_skip_record, g_transfer_record, g_skip_transaction и g_transfer_transaction специально служат для целей пропуска записей и определены глобально; равно как и константы yes и no (таблица 5.6).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Табл. 5.6. Код для user-defined routines SKIP_REC

Затем сохраняем и переходим к основному меню транзакции LSMW (рис. 5.18).

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.18. Сохранение user-defined routines

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.19. Проверка синтаксиса программы

В случае наличия ошибок система откроет ABAP-редактор, в котором необходимо снова запустить проверку программы, и тогда система явно укажет, в чем ошибка. В нашем случае ошибок нет, но сообщение могло бы выглядеть, как показано на рис. 5.20.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.20. Пример сообщения об ошибке в ABAP-редакторе

Теперь можно переходить к следующему шагу для указания входного файла и его параметров.

Шаг 7: указание пути к файлу

Прежде чем указывать путь к файлу, необходимо создать файлы по нужному нам формату. Для создания входного файла будем использовать Excel. Первую строку в Excel заполним техническими именами полей входной структуры. А строки, начиная со 2-й, заполним уже конкретными значениями. В нашем случае у нас может быть несколько входных файлов, так как данные по каждому субсчету мы будем хранить в отдельном файле. Для разделения файлов мы будем использовать Wildcard. При этом для заполнения заголовка и позиций документа материала мы будем использовать один и тот же файл. На рис. 5.21 показан файл для загрузки субсчета 10–01, а на рис. 5.22 показан файл для загрузки субсчета 10–08. Как видно, формат файлов одинаков, но данные в них разные и контроль за данными также будет осуществляться по-разному.

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Рис. 5.21. Пример заполнения входного шаблона по субсчету 10–01 (сырье и материалы)

С помощью атрибута HEAD_OR_ITEM мы сделали разделение строк на данные заголовка и данные позиции. Таким образом, мы можем использовать один и тот же файл для наполнения данных заголовка и данных позиций и при этом загружать более чем одну позицию в документе материала. А за счет того что часть столбцов мы продублировали в позиционной структуре, мы можем себе позволить вести файл в табличном формате. Дважды щелкнем по Specify Files (рис. 5.22).

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

Источник

SAP BAPI Connector

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Наконец-то нашлось время написать об ещё одном варианте SAP коннектора, который также активно используется в работе!

Итак, встречаем: SAP BAPI Connector!

SAP BAPI Connector работает с функциональными модулями в SAP.

Функциональный модуль (ФМ, он же FM) — код ABAP, оформленный в виде отдельной функции, которая может быть повторно использована в других разработках.

Имеет два вида параметров:

Как раз с этими параметрами и работает коннектор, передает определенные значения на вход и получает запрашиваемый результат.

Импортируемые параметры могут быть как определенными значениями или переменными, так и таблицами. Результат обычно в виде таблицы.

Использование SAP BAPI Connector

Мы используем SAP BAPI коннектор в двух случаях:

Так как на таблицы SAP у нас есть строго только права для чтения, этот функционал оказался очень удобной возможностью для взаимодействия QlikView и SAP.

Теперь по шагам расскажу о каждом из двух случаев.

Создание коннекта и получение данных из ФМ SAP

Для начала нужно создать строку коннекта.

Выбираем среди вариантов коннекта QvSAPBAPIConnector (при наличии установленного SAP коннектора)

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Специалисты SAP с удовольствием сообщат необходимые параметры, остается нажать Test Connection:

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

При корректном заполнении получим:

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Далее переходим в режим работы с функциональными модулями и нажимаем на кнопку BAPI:

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

В появившемся окне последовательно выполняем действия:

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

В полученном скрипте вместо значений параметра можно указать переменные.

Как результат получаем таблицу ET_CALENDAR_TB и далее либо используем её при построении ассоциативной модели, либо выгружаем данные в файл формата qvd.

Передача данных в SAP с помощью BAPI Connector

Этот случай мне кажется более интересным и необычным, поэтому подробно его рассмотрим.

Примерный алгоритм работы для передачи данных в виде таблицы в качестве параметра при использовании SAP BAPI Connector таков:

Пример

Давайте разберём на примере передачи данных в SAP по приходам денежных средств от инкассаций.

У нас есть таблица Result, которую нам надо передать в SAP:

Result:

Это самый большой пункт!

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

Структура целевой таблицы SAP в данном случае такова:

MANDT, — номер манданта

BUKRS, — наименование балансовой единицы

KUNNR, — номер магазина

WRBTR, — сумма в валюте

HBKID — банк зачисления

У нас есть не все столбцы, поэтому недостающие столбцы создаём самостоятельно, остальное преобразуем. В итоге получаем такой код:

Так как логика выгрузки была такой, чтобы мы перезаписывали обновленные значения на будущие даты, возникла необходимость добавить одну проверку, на случай, если в новой выгрузке нет данных по каким-либо магазинам. Данную проверку можно реализовать и на стороне SAP, мы же сделали в QlikView таким образом:

Num(Дата_прихода_корр) & ‘|’& ApplyMap(‘BankNameMap2’, Банк_план) &’|’& ПФМ as ПФМ_БАНК_ДАТА

Concatenate (T1)
LOAD
If(isNum(KUNNR), Num(KUNNR),KUNNR) as KUNNR,
HBKID,
100 as MANDT,
‘RUB’ as WAERS,
‘BSTP’ as BUKRS,
0 as WRBTR,
Year(BUDAT)&Num(Month(BUDAT),’00’)&Num(Day(BUDAT),’00’) as BUDAT
Where not Exists(ПФМ_БАНК_ДАТА, Num(BUDAT)&’|’& HBKID &’|’& If(isNum(KUNNR), Num(KUNNR),KUNNR));
SELECT
KUNNR,
HBKID,
WRBTR,
BUDAT
From Z_TABLE_IN_SAP
WHERE BUDAT >= ‘$(vTodayYear)$(vTodayMonth)$(vTodayDay)’;

Подготовка данных завершена, но это еще не все.

Теперь нужно преобразовать их для дальнейшей передачи в функциональный модуль.

Данные передаются в функциональный метод следующим образом (часть скрипта для поля MANDT):

«table»:
[
<
«field»:»MANDT»,
«length»:3,
«type»:»CHAR»,
«values»:
[ «100» ]
>,

Внутри фигурных скобок мы должны передать все значения. Чтобы сделать это за одну команду, мы нашли такое решение — использовать переменные.

В качестве разделителя нужно использовать «,».

На примере поля BUDAT:

LET vMandt = Peek(‘MANDTx’); //Присваиваем переменным значения полей для дальнейшей загрузки в SAP
LET vBukrs = Peek(‘BUKRSx’);
LET vBudat = Peek(‘BUDATx’);
LET vKunnr = Peek(‘KUNNRx’);
LET vWaers = Peek(‘WAERSx’);
LET vWrbtr = Peek(‘WRBTRx’);
LET vHbkid = Peek(‘HBKIDx’);

Производим коннект, как в предыдущем примере.

В данном случае, в качестве входного параметра представлена таблица:

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Для примера и лучшего понимания заполним несколько записей, нажав на строку с таблицей:

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

Нажимаем Add call to script

Что такое bapi в sap. Смотреть фото Что такое bapi в sap. Смотреть картинку Что такое bapi в sap. Картинка про Что такое bapi в sap. Фото Что такое bapi в sap

В полученном скрипте остается заменить значения в квадратных скобках на созданные ранее переменные!

«field»:»KUNNR»,
«length»:10,
«type»:»CHAR»,
«values»:
[ «555», «777» ]

«field»:»KUNNR»,
«length»:10,
«type»:»CHAR»,
«values»:
[ «$(vKunnr)» ]

Важно: поставить переменную в кавычках.

Заметки:

Возможности SAP BAPI Connector оказались очень востребованы, мы смогли перенести в отчёты QlikView некоторые полезные отчёты напрямую из функциональных модулей, а возможность передачи таблицы в качестве параметра позволила отказаться от схем с выкладыванием файлов на сетевые папки. Стабильность, скорость и гибкость передачи данных увеличились.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *