To enable secure communication between Zilliant CPQ and SAP ERP, you must authorize the remote function call (RFC) user to access specific Business Application Programming Interfaces (BAPIs).
BAPIs are SAP’s standardized way of exposing function modules to external systems. Zilliant CPQ uses these interfaces to perform key operations such as creating materials, generating sales orders, or simulating pricing.
To maintain the security and integrity of your SAP environment, authorize for remote access only the BAPIs required by CPQ. This ensures that CPQ can perform the necessary operations without exposing unnecessary functions.
Enable BAPI
Since this procedure is performed in SAP, not in CPQ, the following steps offer only a high-level overview. For detailed instructions, read the SAP ERP documentation.
To allow the RFC user access to a BAPI:
Edit the role assigned to your RFC user using the transaction PFCG
.
On the Authorizations tab, add the authorization object S_RFC
.
For S_RFC
, configure the following fields:
RFC_TYPE
—Typically set to FUNC
to indicate function modules.
RFC_NAME
—BAPI name, such as BAPI_MATERIAL_SAVEDATA
.
ACTVT
—Typically set to 16
(execute).
Repeat this process for each needed BAPI.
Save the role.
List of BAPIs
The following table outlines SAP BAPIs for various integration purposes.
You can use custom Z-BAPIs instead of the following standard BAPIs. Most synchronization functions support reconfiguring the BAPI interface for specific use cases.
Integration purpose | BAPIs |
---|
RFC basic usage | RFC_METADATA_GET —Retrieves metadata for an RFC-enabled function module.
RFC_PING —Checks connectivity to an RFC destination.
RFC_READ_TABLE —Reads filter lists for account and material synchronization.
|
Order creation and simulation | BAPI_INQUIRY_CREATEFROMDATA2 —Creates a sales inquiry document.
BAPI_QUOTATION_CREATEFROMDATA2 —Creates a sales quotation document.
BAPI_SALESORDER_CREATEFROMDAT2 —Creates a sales order document.
BAPI_SALESORDER_SIMULATE — Simulates a sales order without saving it.
BAPI_TRANSACTION_COMMIT —Commits changes made by BAPIs to the database.
COD_SALESORDER_SIMULATE —Simulation of a sales order for specific use cases, for example, for SAP C4C.
|
Product synchronization | BAPI_CHARACT_GETDETAIL —Retrieves detailed information about a classification characteristic, including data types, values, and settings.
BAPI_CLASS_READ —Reads class header data and assigned characteristics.
BAPI_MATERIAL_GETALL —Fetches complete material master data, including basic, plant, sales, and classification views.
BAPI_MATERIAL_GET_PRODUCTHIER —Retrieves product hierarchy information for a material.
CLAF_CLASSIFICATION_OF_OBJECTS —Returns all characteristics and values assigned to a classified object, such as material or batch.
COM_CFG_READ_PRODUCT_VARIANT —Reads configuration data for a specific product variant. Used in IPC and variant configuration scenarios.
COM_CFG_READ_ALL_PROD_VARIANTS —Returns all available product variants and their configurations.
RFC_READ_TEXT —Reads long texts, such as material descriptions or sales order texts, from SAP text objects.
ZBDS_GOS_CONNECTIONS_GET —Custom function module to retrieve GOS (Generic Object Services) attachments or linked documents.
SO_DOCUMENT_READ_API1 —Reads the content of SAPoffice emails or documents, including subject, body, sender, and attachments.
|
Account synchronization | BAPI_CUSTOMER_GETDETAIL2 —Retrieves complete customer master data, including general info, company code data, and sales area details.
BAPI_CUSTOMER_GETSALESAREAS —Lists all sales areas (sales organization, distribution channel, and division) assigned to a customer.
ISA_CUSTOMER_SALES_READ —Reads customer sales data, often used in SAP Internet Sales (ISA) or CRM B2B applications.
|
Custom table synchronization | RFC_READ_TABLE —Reads custom tables or views with costs, prices, vendor information, and other data.
|
Product, bills of material, and routing creation | BAPI_TRANSACTION_COMMIT —Commits changes made by preceding BAPI calls to the database.
BAPI_MATERIAL_EXISTENCECHECK —Checks if a material exists in the material master records.
BAPI_ROUTING_EXISTENCE_CHECK —Checks if a routing exists for a material and a plant.
BAPI_MAT_BOM_EXISTENCE_CHECK —Checks whether a bill of materials (BOM) exists for a material and a plant.
BAPI_MATERIAL_SAVEDATA —Creates or updates material master data.
BAPI_MATERIAL_GETINTNUMBER —Retrieves the next available internal material number.
BAPI_MATINSPCTRL_SAVEREPLICA —Creates or updates material inspection control data.
BAPI_MATERIAL_BOM_GROUP_CREATE —Creates a group BOM across multiple materials or plants.
BAPI_ROUTING_CREATE —Creates a routing with sequences and operations.
|
Solution Sales Configuration (SSC) | EXTRACT_DATA —Extracts data from SAP tables or structures, typically for reporting or integration.
SELECT_COUNT —Returns the count of records matching specific criteria from a table, used for validation or performance optimization.
For SSC SLCE Add-on BAPIs, read SAP ERP Implicit Enhancements .
|
Equipment synchronization | ZBDS_GOS_CONNECTIONS_GET —Retrieves Generic Object Services (GOS) attachments or linked documents for a business object.
SO_DOCUMENT_READ_API1 —Reads SAPoffice documents and emails, including subject, body, attachments, and sender information.
ITOB_EQUIPMENT_ENHANCED_READ —Retrieves detailed equipment master data with enhancements, including classification, location, and partner information.
CIDEON/BAPI_EQUI_BOM_READ1 —Reads equipment BOMs in CIDEON-enhanced SAP systems, typically used in engineering integrations.
|