SAP RFC & BAPI
BAPI Naming Convention in SAP: Understanding BOR Objects and Methods
Learn how SAP BAPI names connect Business Object Repository objects, methods, and RFC-enabled function modules, with practical steps for identifying and validating the correct interface.
On this page
- What BOR contributes to BAPI naming
- The common BAPI name pattern
- BOR object types and methods
- BAPI naming versus generic RFC naming
- How to identify the correct BAPI in SAP GUI
- Reading create change and read patterns
- Commit and transaction handling
- A practical naming checklist
- Troubleshooting a name that does not resolve
- Summary
A reliable BAPI naming convention makes an integration easier to discover, test, and maintain. The name usually connects a Business Object Repository (BOR) object type with a business method and its RFC-enabled function module. Understanding that relationship is more useful than memorizing isolated function module names.
This guide focuses on how the pattern works in SAP ERP and SAP S/4HANA environments, how to verify a candidate BAPI in SAP GUI, and how to separate a released BAPI from a generic RFC interface. For the broader interface concept, see What Is a BAPI in SAP?.
What BOR contributes to BAPI naming
The Business Object Repository stores business object types, their methods, attributes, keys, and events. A business object represents a business entity such as a customer, material, sales order, or purchase order. A method represents an operation on that object, such as creating, changing, reading, releasing, or cancelling it.
A BAPI is the integration-facing implementation of a BOR object method. The method is exposed through an RFC-enabled function module with a stable interface intended for external callers. The BOR definition supplies the business meaning, while the function module supplies the executable interface.
The relationship is easiest to read as:
BOR object type → BOR method → BAPI function module → application result
For example, a method associated with a sales order object can have a corresponding function module whose name follows a BAPI_<object>_<method> pattern. The exact object and method names depend on the business object definition.
The common BAPI name pattern
Most standard BAPI function modules use a name built from the BAPI_ prefix, a business object or business concept, and an operation. Common patterns include:
| Name part | Typical meaning | Example shape |
|---|---|---|
BAPI_ | Identifies the function module as a BAPI-style interface | BAPI_... |
| Object segment | Identifies the business object or business area | ...SALESORDER... |
| Method segment | Describes the operation | ...CREATE, ...CHANGE, ...GETDETAIL |
| Optional suffix | Distinguishes a variant or related operation | ...FROMDAT2, ...MULTIPLE |
Examples include names such as BAPI_SALESORDER_CREATEFROMDAT2, BAPI_MATERIAL_GET_DETAIL, and BAPI_COMPANYCODE_GETLIST. These names provide a useful search starting point, but the BOR method and the function module documentation remain the authoritative way to understand the interface.
The method name may describe a business action while the function module name reflects technical naming conventions. A method can also have a more specialized function module name when the interface supports a particular data structure, creation scenario, or batch operation.
BOR object types and methods
BOR object types commonly use identifiers such as BUS2032 for a standard business object. The object type identifies the modeled business entity; it does not by itself identify a complete integration call. The method supplies the operation that the caller wants to perform.
A useful identification record contains these fields:
- BOR object type, such as
BUS2032 - BOR method, such as a creation or display operation
- BAPI function module name
- Function module release status
- Required import, export, table, or changing parameters
- Return structure and message handling
- Commit behavior
The object key is also important. BOR objects often use one or more key fields to identify a specific business instance. A read method normally requires that key, while a create method normally returns a newly assigned key. The key format belongs to the business object definition and should be verified before an integration is implemented.
The BOR method can expose business semantics that are not obvious from the function module name. For example, a method may require a separate commit step, use an explicit logical system field, or return messages in a standard return structure. Treat the method documentation and interface metadata as part of the naming analysis.
BAPI naming versus generic RFC naming
RFC describes the communication technology. BAPI describes a business-oriented interface delivered through an RFC-enabled function module. A custom RFC-enabled function module can use a clear name and still be a custom RFC interface rather than a BAPI associated with a released BOR method.
| Check | BAPI-oriented indication | Generic RFC indication |
|---|---|---|
| Business object | A BOR object type is associated with the interface | No BOR object relationship is required |
| Method | A documented BOR method defines the operation | The function module defines the operation directly |
| Naming | Often follows BAPI_<object>_<method> | Uses a project or application naming standard |
| Lifecycle | Release status and interface documentation are available | Lifecycle depends on the owning development team |
| Transaction handling | Commit and rollback behavior is documented | Behavior is defined by the custom implementation |
Use Remote Function Call in SAP when the main concern is RFC communication architecture. Use the BAPI and BOR relationship when the concern is selecting a business interface that external systems can call consistently.
How to identify the correct BAPI in SAP GUI
Start with the business operation rather than a guessed function module name. Define the object, the action, the identifying key, and the expected result. Then use the BAPI browser in SAP GUI to search for the relevant business object and method.
A practical identification sequence is:
- Search the business object or business term in the BAPI browser.
- Open the candidate BOR object type.
- Review its available methods and descriptions.
- Open the method documentation and associated function module.
- Check the interface parameters, structures, and return messages.
- Confirm the release status and application prerequisites.
- Test the call with representative business data in a controlled system.
Transaction BAPI provides a business-oriented view of available objects and methods. Function Builder can then be used to inspect the associated function module, its RFC-enabled status, parameter definitions, documentation, and test facilities.
The function module name is only one part of the selection. Two similarly named interfaces may differ in required structures, supported scenarios, commit requirements, or release status. Record the BOR object type and method together with the function module name in the integration specification.
Reading create change and read patterns
BAPI names often reveal the broad operation category:
CREATEorCREATEFROMDAT...usually indicates creation from supplied data.CHANGEusually indicates modification of an existing business object.GETDETAILusually indicates retrieval of detailed data for a known object key.GETLISTusually indicates retrieval of a list based on selection criteria.DELETEorCANCELindicates a destructive or reversal-related business operation.RELEASE,POST, orCHECKindicates a business process action rather than simple master-data maintenance.
These segments are discovery hints. The parameter documentation determines what the call actually supports. A create BAPI may require header, item, partner, schedule-line, or extension structures. A change BAPI may require an accompanying update indicator structure. A read BAPI may return data in several related structures.
Use the return parameter as part of the operational contract. Inspect its message type, message identifier, message number, and message text. A technically successful RFC response can still contain an application error or warning that requires caller-side handling.
Commit and transaction handling
Many transactional BAPIs separate business validation from database commit. The application calls the business BAPI, evaluates the return messages, and then calls the appropriate commit or rollback function according to the documented interface behavior.
A safe integration sequence is:
- Build the input structures from validated source data.
- Call the business BAPI.
- Read every returned message.
- Stop and roll back when an error is reported.
- Commit only after the business result is acceptable.
- Persist the returned business object key and application messages.
The exact commit function, wait behavior, and rollback handling must come from the BAPI documentation and the owning application process. Test duplicate requests and interrupted calls so that retries do not create unintended business objects.
For communication-level symptoms, SAP RFC and BAPI Communication Types provides the surrounding context. For a structured investigation of failed calls, see Common SAP RFC and BAPI Error Patterns.
A practical naming checklist
Before approving a BAPI for an integration, capture the following information:
- Business requirement and business object
- BOR object type
- BOR method
- BAPI function module
- Required authorization and calling user
- Import, export, table, and changing parameters
- Key fields and external-number handling
- Return-message processing
- Commit and rollback behavior
- Extension or custom-field mechanism
- Release status and applicable application documentation
- Test cases for success, validation failure, duplicate request, and retry
This record prevents a technical name from becoming the only interface documentation. It also makes later troubleshooting faster because the support team can distinguish object selection, input validation, authorization, communication, and transaction-processing failures.
Troubleshooting a name that does not resolve
When a guessed BAPI name cannot be found, search by the business object and operation in the BAPI browser. Confirm the spelling of the function module in Function Builder, then verify that the associated BOR method is available in the target system.
If the object is available but the method is absent, check the application component, installed business functionality, and system documentation. If the method is present but the call fails, inspect the parameter definitions, required keys, return messages, authorization trace, and application logs.
A custom interface should have its own documented namespace and lifecycle. Keep custom implementations separate from standard BAPI records so that upgrades, support ownership, and release status remain clear.
Summary
The BAPI naming convention is a practical navigation aid across three related layers: the BOR object type, its method, and the RFC-enabled function module. The most dependable selection process starts with the business object and operation, verifies the BOR method, checks the function module interface, and documents commit and return-message behavior.
A name such as BAPI_<object>_<method> helps locate a candidate. The BOR definition, method documentation, release status, parameters, and business tests establish whether it is suitable for the integration.