Application developers who use BAPIs in their programs must be able to rely on the BAPI interface remaining the same. As a result of this, once a BAPI is released, it must fulfill certain requirements regarding the stability of its interface.
Whenever SAP enhances a BAPI, downward compatibility of syntax and contents must be guaranteed whenever possible. Downward compatibility means that applications that were programmed with BAPIs from a specific release will not be affected in later releases if the syntax or the content of this BAPI changes.
Examples of syntax changes are changes to parameter names, or changes to the type or length of a domain. The ABAP Dictionary can automatically test whether syntax changes are compatible.
Content changes are involved, for example, when existing coding of the BAPI function module is changed or new coding is added. Only the developer can ensure that content changes are downwardly compatible.
Accordingly, when you enhance a BAPI, you can differentiate between a compatible enhancement and an incompatible enhancement, depending on whether the downward compatibility of the BAPI can be guaranteed.
To protect the stability of the interface, compatible enhancements are always preferred to incompatible enhancements.
For SAP internal development, each enhancement to a BAPI must be created in a project in the BAPI Explorer.
Tool support covers the following aspects:
· Changes and version management in the BOR
Changes made to a BAPI only take effect when the changes are defined in the Business Object Repository (BOR), that is, they have been saved and generated.
Version management of BAPIs is also carried out in the BOR.
· Checking in the ABAP Dictionary
Changes to the syntax of BAPIs are automatically checked by the ABAP Dictionary, thereby preventing the BAPI data structure being changed by mistake.
Ў The ABAP Dictionary rejects incompatible changes to data elements, domains or structures that are being used by a BAPI that has been released.
Ў Compatible changes or changes to data elements, domains or structures of a BAPI that has not been released are accepted by the ABAP Dictionary.