SAP Custom BAPI Setup Guide | MuleSoft Documentation
# SAP Custom BAPI Setup Guide
The following provides guidance on how to use the custom BAPI code (for example, `ZBAPI_CUSTOMER_V3`) for your SAP instance.
You must complete the following instructions before deploying the Customer profile sync from SAP use case.   
---  
## BAPI custom objects
You must create the following ABAP objects in order to use this custom BAPI, which are described below.
  * `Z_MASTER_ID`


  * `ZSTR_PERSON`
  * `ZSTR_ORGANIZATION`
  * `ZSTR_GROUP`
  * `ZES_CUSTOMER`
  * `ZES_CONTROLDATA`


  * `ZTY_CUSTOMER`


  * `ZTT_CUSTOMER`


  * `ZFG_CUSTOMER`
  * `ZFG_CUSTOMER2`


  * `ZBAPI_CUSTOMER`
  * `ZBAPI_CUSTOMER_CREATE`
  * `ZBAPI_CUSTOMER_CUSTOM_FIELDS`
  * `ZBAPI_CUSTOMER_UPDATE`


  * `ZBAPI_QUERY`
  * `ZBAPI_ADDR_QUERY`
  * `ZBAPI_QUERY_SAP`
  * `ZBAPI_CUST_QUERY`
  * `ZBAPI_CUSTOMER_CD`


### Creating data elements
Object | How to create  
---|---  
### Creating structures
Object | How to create  
---|---  
`ZSTR_ORGANIZATION`  
### Creating table types
Object | How to create  
---|---  
### Creating transparent tables
Object | How to create  
---|---  
### Creating function groups and function modules
#### **ZBAPI Customer modules**
  1. Create the function group "ZFG_CUSTOMER_V3".
  2. Create the function module "ZBAPI_CUSTOMER_V3", using "Remote-enable module" as processing type: 
  3. Complete the import parameters with the following: 
  4. Complete the export parameters with the following: 
  5. Copy and paste the code from "ZBAPI_CUSTOMER_V3.txt".
  6. Create the function module "ZBAPI_CUSTOMER_CREATE_V3": 
  7. Complete the import parameters with the following: 
  8. Complete the export parameters with the following: 
  9. Copy and paste the code from "ZBAPI_CUSTOMER_CREATE_V3.txt".
  10. Create the function module "ZBAPI_CUSTOMER_CUSTOM_FLDS_V3": 
  11. Complete the import parameters with the following: 
  12. Copy and paste the code from "ZBAPI_CUSTOMER_CUSTOM_FIELDS_V3.txt".
  13. Create the function module "ZBAPI_CUSTOMER_UPDATE_V3": 
  14. Complete the import parameters with the following: 
  15. Complete the export parameters with the following: 
  16. Copy and paste the code from "ZBAPI_CUSTOMER_UPDATE_V3.txt".
  17. Create the function module "ZBAPI_QUERY_V3", using "Remote-enable module" as processing type: 
  18. Complete the import parameters with the following: 
  19. Complete the export parameters with the following: 
  20. Copy and paste the code from "ZBAPI_QUERY_V3.txt".
  21. Create the function module "ZBAPI_CONTROL_DATA_V3": 
  22. Complete the import parameters with the following: 
  23. Complete the export parameters with the following: 
  24. Copy the source code from "ZBAPI_CONTROL_DATA_V3.txt".
  25. Activate the entire function group by right-clicking on it in the tree and then selecting "Activate": 
  26. Create the function group "ZFG_CUSTOMER2".
  27. Create the function module "ZBAPI_ADDR_QUERY", using "Remote-enable module" as processing type: 
  28. Complete the import parameters with the following: 
  29. Complete the export parameters with the following: 
  30. Copy and paste the code from "ZBAPI_ADDR_QUERY.txt".
  31. Create the function module "ZBAPI_CONTROL_DATA" using the import parameters as follows: 
  32. Use the export parameters as in the following: 
  33. Copy the source code from "ZBAPI_CONTROL_DATA.txt".
  34. Activate the entire function group by right-clicking on it in the tree and selecting 'Activate': 
  35. Complete the following:
  36. Create a customer group ZSME (**Logistics - General- >Business Partner->Customer->Control->Define and Assign Customer Number Ranges**)
  37. Create a partner group ZSME (**Cross-Application Components- >SAP Business Partner->Business Partner->Basic Settings->Number Ranges and Settings**) from the transaction SPRO
  38. Synchronize them from the same transaction (**Cross-Application Components- >Master Data Synchronization->Customer/Vendor Integration->Business Partner Settings->Settings for Customer Integration->Assign Keys->Define Number Assignment for Direction BP to Customer**) 


#### **More ZBAPI modules**
The following describes how to sufficiently set up your SAP instance in order to use the following custom BAPIs:
  * `ZBAPI_ADDR_QUERY`
  * `ZBAPI_QUERY_SAP`
  * `ZBAPI_CUST_QUERY`
  * `ZBAPI_CUSTOMER_CD`


To create ABAP custom objects, groups, and modules:
  1. Create the same dictionary objects created for the BAPI `ZBAPI_CUSTOMER` using the following structure/table type: 
  2. Create the function group `ZFG_CUSTOMER2`.
  3. Create the function module `ZBAPI_ADDR_QUERY` using 'Remote-enable module' as the processing type: 
  4. Complete the import parameters with the following: 
  5. Complete the export parameters with the following: 
  6. Copy and paste the code from 'ZBAPI_ADDR_QUERY.txt'.
  7. Create the function module `ZBAPI_ADDR_SAP` using 'Remote-enable module' as the processing type: 
  8. Complete the import parameters with the following: 
  9. Complete the export parameters with the following: 
  10. Copy and paste the code from 'ZBAPI_QUERY_SAP.txt'.
  11. Create the function module `ZBAPI_CUST_QUERY` using 'Remote-enable module' as the processing type: 
  12. Complete the import parameters with the following: 
  13. Complete the export parameters with the following: 
  14. Copy and paste the code from 'ZBAPI_CUST_QUERY.txt'.
  15. Create the function module `ZBAPI_CUSTOMER_CD` using 'Remote-enable module' as the processing type: 
  16. Complete the import parameters with the following: 
  17. Complete the export parameters with the following: 
  18. Copy and paste the code from 'ZBAPI_CUSTOMER_CD.txt'.
  19. Activate the entire function group by right-clicking on it in the tree and selecting 'Activate': 


## See Also
  *   * MuleSoft Accelerator for Retail