Просмотр нерешенных тем
Сообщения без ответов | Активные темы
Правила форума
ВНИМАНИЕ!
Вопросы по SAP Query и Quick View – сюда
Автор | Сообщение |
---|---|
Заголовок сообщения: Как найти нужный BAPI модуль??? Добавлено: Ср, май 18 2005, 11:46 |
|
Гость |
Подскажите пожалуйста, как узнать BAPI модуль, который создает паспорт договора???
|
Вернуться к началу | |
slash |
Заголовок сообщения: Re: Как найти нужный BAPI модуль??? Добавлено: Ср, май 18 2005, 11:57 |
||
|
Vova_fighter написал(а): Подскажите пожалуйста, как узнать BAPI модуль, который создает паспорт договора??? транзакция bapi – там ищи
|
||
Вернуться к началу |
|
||
Гость |
Заголовок сообщения: Добавлено: Ср, май 18 2005, 12:18 |
|
Ничего себе, там списочек ) Огромное спасибо )
|
Вернуться к началу | |
Stager |
Заголовок сообщения: Добавлено: Чт, апр 06 2006, 14:45 |
||
|
Здравствуйте. Подскажите существует ли BAPI для создания контракта на поставку (транзакция ME31K).
|
||
Вернуться к началу |
|
||
bpz |
Заголовок сообщения: Добавлено: Чт, апр 06 2006, 15:48 |
|
Stager написал(а): Здравствуйте. Подскажите существует ли BAPI для создания контракта на поставку (транзакция ME31K). посмотри бизнес объекты
|
Вернуться к началу | |
Любаша |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 10:32 |
|
Подскажите, плз, а как пользоваться транзакцией BAPI? То есть как в своей проге использовать всё, что там наворочено?
|
Вернуться к началу | |
Loyso |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 10:33 |
|
Любаша написал(а): Подскажите, плз, а как пользоваться транзакцией BAPI? То есть как в своей проге использовать всё, что там наворочено? А что именно вы хотите использовать?
|
Вернуться к началу |
|
Любаша |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 10:37 |
|
А какая разница?
|
Вернуться к началу | |
Loyso |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 10:57 |
|
FM BAPI_DOCUMENT_GETDETAIL
|
Вернуться к началу |
|
Любаша |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 11:03 |
|
Хотелось бы понять, КАК вы нашли имя ФМ в транзакции BAPI. Простым поиском у меня не получается. Мне нужен алгоритм поиска нужных ФМ BAPI. А то дали имя транзакции, а там полно данных, а само имя ФМ как искать?
|
Вернуться к началу | |
Loyso |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 11:08 |
|
какая версия???
|
Вернуться к началу |
|
Любаша |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 11:13 |
|
Release-Informationen zum Stand 46B
|
Вернуться к началу | |
Любаша |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 11:48 |
|
Всё, нашла.
|
Вернуться к началу | |
Loyso |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 11:54 |
|
А по другому пробивался:) Потому и спросил про версию, чтобы в случае совпадения интерфейса рассказать по шагам.
|
Вернуться к началу |
|
Любаша |
Заголовок сообщения: Добавлено: Пт, апр 07 2006, 13:15 |
|
Спасибо за помощь
|
Вернуться к началу | |
Кто сейчас на конференции |
Сейчас этот форум просматривают: andry_moz, Mail.RU Bot, Yandex [Bot] |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
Introduction:
In this blog post, you will learn how to Find BAPI & Simulate BAPI. Like many of the time, we need to create or upload data in mass. And for that, we use LSMW or BDC to upload entries to system. But in some case, we need BAPI to upload data.
Simulated BAPI help`s technical person (ABAP) to code it in less time. And as Functional we must have an idea of how to find BAPI & simulate BAPI. For that, I have shared the easiest way how to work out along with the screenshot.
Overview:
First of all, you need to know which BAPI will full fill your requirement. In this blog post, I have simulated BAPI for Production Order Creation (CO01).
To find a BAPI use Tcode: BAPI (BAPI Explorer)
For Prod. Order Creation we have BAPI_PRODORD_CREATE
Now, to simulate BAPI you can double click on BAPI_PRODORD_CREATE and then press F8.
Or open Tcode: SE37 (Functional Builder: Initial Screen)
Copy the BAPI under Functional Module & Press function F8 or
After executing you`ll get the screen Test Functional Module: Initial Screen.
You can take the help of Documentation provided for BAPI by SAP. In some of cases, you won`t get documentation for BAPI due to non-availability of the document in language EN.
Note: Documentation helps you in simulating BAPI with correct and required data to input.
Under Import Parameter; Double Click on ORDERDATA.
Click on Single Entry (Shift+F7).
Fill the below entries;
- MATERIAL: (Material Code)
- PLANT: (Plant)
- ORDER_TYPE: (Order type)
- BASIC_START_DATE: (Order Start Date)
- BASIC_END_DATE: (Order End Date)
- QUANTITY: (Order Quantity)
- PROD_VERSION: (Production Version)
Note: Basic Start Date & Basic End Date is to be filled according to the scheduling type you are using.
i.e. if scheduling type is;
- Backwards then fill only Basic_End_Date.
- Forwards then fill only Basic_Start_Date.
- Only Capacity requirement then fill both Start & End Date.
- Current Date then leave date as blank
You can also use the other parameter like SCRAP_QUANTITY, ORDER_PRIORITY, etc.
After filling these entries come back to the main screen or press Function-F3(Back).
Now execute the BAPI you will get an Order Number under Export parameters.
In my test run, I got an ORDER_NUMBER: 1***401
If any of the ORDERDATA entries is wrong then the system will return error under RETURN Parameters.
As for the error message, I have made wrong entries in field PROD_VERSION. Below is the screenshot for the same.
RETURN: E61 567Version PV11 does not exist for material SFGPRFGRM101T in plant 1010.
After filling correct entries to BAPI execute it and save the test case for your technical person (ABAPER).
Also, you can cross-check the generated production order number in COOIS or CO03.
Click on Save & give a name to it !!
NOTE: “This BAPI performs Implicit Update task i.e. On the generation of ORDER_NUMBER under Export Parameter this BAPI update the entries into the database. Also, In some cases, we need to perform the update task explicitly. Will be sharing the same with some other BAPI”.
————————————————————————————————————————————-
Thanks for going through the detailed document. Do revert back if you have more queries or feedbacks/ inputs so that I can update the document.
For any help on BAPI`s & FM related to PP, QM & MM leave a comment.
Best Regards,
Raj Sinha.
SAP BAPI : Business Application programming interfaces are standard methods to access business objects which form the core of all SAP R/3 business frameworks.
There is two main methods to find a BAPI:
Find SAP BAPI – Method 1
Go to BAPI transaction
Select the busines object you want a SAP BAPI for ( for example SalesOrder )
Method 2 to Find BAPI in SAP SD
You can also find a BAPI used in a particular transaction.
Launch your transaction (VA02 for example), go to “Menu bar” -> Environment -> Status and go to Program.
Then, go to the package of this program, you will find Business Object Typs under the folder Business Engineering
Open the business object, and go to Methods
In you know the BUS of a business object, you can navigate directly to the the last screen,
Go to SE38, search for *BUSXXX, you will launch the “Display Object Type”
Если мы находим BAPI пройти стандартный код SAP: BAPI запрашивает уже выпустили BAPI.
Если вы знаете только вещи код, вы можете запросить соответствующий BAPI по следующим образом.
Например, мы находим BAPI для создания заказа клиента. Мы знаем, что вещи VA01.
1, мы вошли в интерфейс VA01, найти Система -> Статус
2, двойной щелчок по коде коды, найти пакет в
3, откройте пакет в с SE80
4, открытые бизнес-инжиниринг – «тип бизнес-объект. В соответствии с нашими потребностями бизнеса. Мы ищем для создания заказов на продажу, и все заказы на продажу BUS2032 имеют максимально возможный.
5. Дважды щелкните BUS2032, чтобы открыть метод, найти и создать такой же, как и имя заказа клиента. Мы ищем SalesOrder.createFromDat2. Поместите курсор на эту строку, чтобы нажать на кнопку программы выше. Вы можете увидеть исходный код программы, чтобы найти «bapi_salesorder_createfromdat2. Точно так же мы можем увидеть BAPI, который изменяет порядок. Deleted BAPI, мы также можем найти то же самое.
6. Точно так же мы можем дважды щелкнуть по SalesOrder.createFromDat2 линиям, найдите экран ABAP подменит в всплывающем окне. Если кнопка радио функции API, столбец имени, чтобы найти BAPI. Если это функциональный модуль, это FM.
Как показано ниже:
7. Вы также можете найти все программы и функциональные группы в рамках этого пакета через пакет.
Введение
Довольно редко IT-ландшафт предприятия, использующего систему SAP ERP, ограничивается только одной этой системой. Чаще всего, в обеспечении бизнес-процесса участвуют сторонние, по отношению к SAP ERP, программы/системы. Как следствие, возникает необходимость обеспечить их взаимодействие с SAP-системой.
Специально для этого в SAP ERP предусмотрен механизм BAPI (Business Application Programming Interface). Смысл этого механизма сводится к возможности реализации вызова функциональных модулей BAPI из внешних программ. Следует заметить, что вызывать извне можно не только функциональные модули (ФМ), имя которых начинается с «BAPI_» или «Z_BAPI_». Для вызова из внешних программ доступна любой ФМ у которого стоит признак «Remote-Enabled Module» (Рис. 1).
Рис. 1. Атрибуты функционального модуля
Именно наличие этого признака и позволяет вызывать ФМ по RFC из внешних систем (как SAP, та и не SAP).
Для реализации внешних вызовов предназначена библиотека SAP RFC SDK. Найти и скачать библиотеку можно на сайте SAP Service Marketplace в разделе Support Packages and Patches (Рис. 2).
Рис. 2. Библиотека SAP RFC SDK на SAP Service Marketplace
Обратите внимание на то, что версия библиотеки должна соответствовать операционной системе, под которой будет работать внешнее приложение, версии системы SAP ERP и быть с поддержкой UNICODE, если система SAP – Unicode (Рис. 3). Необходимая информация находится в меню по пути System->Status…
Рис. 3. Признак Unicode системы
Целью этой статьи является демонстрация полного цикла создания внешнего приложения, вызывающего по RFC функциональный модуль из системы SAP ERP.
Цикл создания внешнего приложения
Итак, предположим, что в каком-то бизнес-процессе нашего предприятия есть шаг, на котором необходимо удаленно создать в системе SAP некий материал с заранее известными характеристиками. Создадим небольшое приложение (.exe), которое будет автоматически запускаться внешним приложением на рабочей станции под управлением Windows с определенными параметрами и будет вызывать по RFC ФМ в SAP системе.
Для демонстрации в SAP ERP был создан функциональный модуль Z_BAPI_CREATE_MATERIAL с признаком вызова по RFC (см. Рис. 1). Исходный код этого ФМ:
function Z_BAPI_CREATE_MATERIAL .
*”———————————————————————-
*”*”Local Interface:
*” IMPORTING
*” VALUE(I_MATNR) TYPE MATNR
*” VALUE(I_MAKTX) TYPE MAKTX
*” TABLES
*” ET_RETURN STRUCTURE BAPIRET2 OPTIONAL
*”———————————————————————-
data:
LV_RETURN type BAPIRET2.
perform CREATE_MATERIAL using I_MATNR
I_MAKTX
changing LV_RETURN.
append LV_RETURN to ET_RETURN.
endfunction.
Исходный код подпрограммы CREATE_MATERIAL:
form CREATE_MATERIAL using VALUE(PV_MATNR) type MATNR
VALUE(PV_MAKTX) type MAKTX
changing PS_RETURN type BAPIRET2.
data:
LS_HEADDATA like BAPIMATHEAD,
LS_CLIENTDATA like BAPI_MARA,
LS_CLIENTDATAX like BAPI_MARAX.
data:
LT_MATERIALDESCRIPTION type table of BAPI_MAKT,
LS_MATERIALDESCRIPTION like line of LT_MATERIALDESCRIPTION.
* — Header
LS_HEADDATA-MATERIAL = PV_MATNR.
LS_HEADDATA-IND_SECTOR = ‘M’.
LS_HEADDATA-MATL_TYPE = ‘FERT’.
LS_HEADDATA-BASIC_VIEW = ‘X’.
* — MARA
LS_CLIENTDATA-BASE_UOM = ‘EA’.
LS_CLIENTDATA-BASE_UOM_ISO = ‘EA’.
LS_CLIENTDATAX-BASE_UOM = ABAP_TRUE.
LS_CLIENTDATAX-BASE_UOM_ISO = ABAP_TRUE.
* — Text
LS_MATERIALDESCRIPTION-LANGU = ‘EN’.
LS_MATERIALDESCRIPTION-LANGU_ISO = ‘EN’.
LS_MATERIALDESCRIPTION-MATL_DESC = PV_MAKTX.
append LS_MATERIALDESCRIPTION to LT_MATERIALDESCRIPTION.
call function ‘BAPI_MATERIAL_SAVEDATA’
exporting
HEADDATA = LS_HEADDATA
CLIENTDATA = LS_CLIENTDATA
CLIENTDATAX = LS_CLIENTDATAX
importing
RETURN = PS_RETURN
tables
MATERIALDESCRIPTION = LT_MATERIALDESCRIPTION.
if PS_RETURN-TYPE eq ‘S’.
call function ‘BAPI_TRANSACTION_COMMIT’.
endif.
endform. ” CREATE_MATERIAL
Как видно из исходного кода, ФМ принимает на вход 2 параметра: Номер материала и Краткий текст материала. ФМ запускает создание материала и возвращает результат в таблице, имеющей структуру BAPIRET2.
Теперь перейдем к процессу создания .exe приложения. Для этого будем использовать бесплатный продукт Microsoft – Visual Studio Express 2015 for Windows Desktop.
Запускаем Visual Studio и создаем новый проект (Рис. 4)
Рис. 4. Создание нового проекта в Visual Studio
В качестве Application type выбираем Console application (Рис. 5)
Рис. 5. Выбор типа приложения.
Далее, в свойства проекта, в параметр C/C++->General->Additional Include Directories добавляем путь к инклудам библиотеки SAP RFC SDK. В нашем случае, библиотека (представляющая из себя каталог nwrfcsdk) находится по пути C:Share, и путь к инклудам будет соответственно: C:Sharenwrfcsdkinclude (Рис. 6)
Рис. 6. Добавление пути к инклудам библиотеки RFC SDK в свойства проекта
Если система SAP является Unicode, то в параметр проекта C/C++->Command Line надо добавить опцию /DSAPwithUNICODE (Рис.7)
Рис. 7. Дополнительная опция для Unicode
Для линковщика в параметрах проекта надо добавить:
1. В параметр Linker->General->Additional Library Directories добавить путь к каталогу lib библиотеки RFC SDK. В нашем случае: C:Sharenwrfcsdklib (Рис. 8)
Рис. 8. Добавление пути к библиотекам.
2. В параметр Linker->Input->Additional Dependenciesдобавить библиотеки: sapnwrfc.libи libsapucum.lib (Рис. 9)
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
Зарегистрироваться
У вас уже есть учетная запись?
Войти