Purpose
Using the information in these BAPI Programming guidelines customers and partners can create new methods for business object types.
Your own developments are carried out in the subtypes derived from business object types delivered in the standard and not from the business object types themselves. Use this method to provide new functionality for the subtype which is not covered by any of the existing BAPIs of the subtype nor by any of the BAPIs inherited by the subtype.
Process Flow
Follow the steps below:
The new BAPI can only be used for this subtype and not for the object type from which it was derived (supertype). All existing BAPIs derived from the supertype can continue to be used unmodified.
Application Example

An additional method YGetDetail() is to be created for the business object type Material. The function module associated with this BAPI is Y_BAPI_MATERIAL_GETDETAIL.
Customers should first create a
subtype YMaterial of the existing object type Material in the BOR. They will also note that method calls of the business object type YMaterial for the original object type Material are to be processed, provided that the associated method is implemented there. This is described as delegation. (For all methods that are not implemented for the subtype Ymaterial, the method call is executed from the superordinate business object type, Material.)Customers should then create the new method YGetDetail of the business object type YMaterial using the BOR/BAPI Wizard. This method is associated with the function module Y_BAPI_MATERIAL_GETDETAIL.
At runtime, when the BAPI Material.YGetDetail is called, the BAPI YMaterial.YGetDetail is actually implemented due to the delegation pointer in the business object type Material.