BAPIS IN PURCHASING
BAPI Explorer (Transaction BAPI)
The BAPI transaction is the central tool for working with BAPIs.
; Listing all BAPIs by the method name (note: F5 showing all BAPIs, not only the released ones). ; Documentation for each BAPI.
; Navigation to Function Builder, Business Object Builder,…
; BAPI Consistency Checks.
1. Menu path: environment -> programming guide, user guide or documentation.
2. Creating a new project -> checklist for important BAPI issues with links to corresponding
documentation and further transactions.
Function Builder (Technical View)
A BAPI is just a function with a lot of conventions:
; Name: BAPI_application_task
; No commit work
; RETURN table containing all errors
; Test Run function
; Unique Field names, ISO-Codes (no program internal datas)
Conventions for BAPI functions:
; Parameters of the function:
1. Maximum 30 characters (English).
2. The individual name components of parameter names are marked by initial capital letters.
3. Fields that are ISO-relevant (country, language, quantity, currency) have additional fields for ISO
4. You must include quantity unit fields for all quantity fields, and currency descriptors for all
currency amount fields.
Business Object Builder (Object oriented View)
The implementation of the function in an object-oriented environment. Informations about: ; parameters
; program (method including the function)
; attributes of the method.
Conventions for BAPI methods:
; Type of method:
1. Instance methods refer to a specific instance of a business object (Method
PurchaseOrder.GetDetail displays the details of one purchase order ; Instance-dependent).
2. Class methods do not refer to a specific instance of a business object (Method
PurchaseOrder.DisplayList gets a list of many purchase orders that fulfill certain criteria,
Method PurchaseOrder.CreateData1 for creation a new instance ; Instance-independent).
; Name of the Method:
1. Maximum 30 characters (English).
2. The individual name components of BAPI names are marked by initial capital letters (underscore
; Interface of the Method:
1. Return Parameter (export parameter or table containing all errors).
2. ExtensionIn and ExtensionOut Parameter (customer enhancement).
Many purchasing BAPIs violate all existing BAPI conventions. Furthermore not all functionality is offered (consulting notes about this issue exist). Concerning the creation and change of purchase orders, the customers should be motivated using the new 46C BAPIs. Following Business Objects exists:
PurchaseReqItem: Purchase requisition item (BUS2009)
PurchaseOrder: Purchase Order (BUS2012)
; Method CreateFromData (Create Purchase Order) new to 40A. Replaced by method CreateFromData1
(Create Enjoy Purchase Orders) new to 46C.
; Method Change (Change Enjoy Purchase Orders) new to 46C.
; Method GetItems (List Purchase Order Items) new to 40A.
; Method GetDetail (Display Purchase Order Details) new to 40A.
; Method GetItemsForRelease (List Purchase Orders for Release) new to 40A ; Method GetReleaseInfo (Detailed Release Information on Purchase Order) new to 40A ; Method Release (Release Purchase Orders) new to 40A.
; Method ResetRelease (Cancel Release of Purchase Orders) new to 40A.
PurchaseRequisition: Purchase Requisition (BUS2105)
PurchasingInfo: Purchasing information (BUS3003)
ProcurementOperation: Procurement transaction (BUS6015)
SourceOfSupplyDeterm: Source determination (BUS6025)
Creating of purchase orders with the functionality of the Enjoy Transaction. Gaps of the initial version and
1. Customer fields and customer exits (note 323152).
2. No corresponding IDOC or ALE functions.
3. Renumbering of the table keys using customizing datas (only one item -> nothing to number, otherwise
4. Texts, partners, import data, subcontracting components, and customer-specific fields cannot be passed
using these BAPIs.
5. Not all data created by the purchase order will be converted to the BAPI output structure. 6. It is not possible to hold purchase orders that are incorrect or incomplete.
1. Initialization (Error handling, Purchasing Data)
2. Checking input data (FORM interface)
3. Converting input data from external into internal values (FORM move_*) 4. Special service and limit procedures
5. Creating purchase order (or checking purchase order in test case) 6. Converting created purchase order data from internal to external values.
Go to SE37, Single test F8.