SAP BAPI_PRDSRVAPS_SAVEMULTI_30A Function Module for Create or Change Products
BAPI_PRDSRVAPS_SAVEMULTI_30A is a standard bapi prdsrvaps savemulti 30a SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Create or Change Products processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for bapi prdsrvaps savemulti 30a FM, simply by entering the name BAPI_PRDSRVAPS_SAVEMULTI_30A into the relevant SAP transaction such as SE37 or SE38.
Function Group: 10001
Program Name: SAPL10001
Main Program: SAPL10001
Appliation area:
Release date: N/A
Mode(Normal, Remote etc): Remote-Enabled
Update:

Function BAPI_PRDSRVAPS_SAVEMULTI_30A pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'BAPI_PRDSRVAPS_SAVEMULTI_30A'"Create or Change Products.
EXPORTING
LOGICAL_SYSTEM = "Logical System from which Message Originates
* BUSINESS_SYSTEM_GROUP = "Business System Group
* PLANNING_MODE_USAGE = "Parameters for Controlling the Scheduling Mode
* PLANNING_VERSION = "Planning Version
TABLES
* PRODUCT_HEAD = "Product: Header Data
* PRODUCT_LOCATION_PENALTY = "Product: Location-Dependent Penalty Costs
* PRODUCT_LOCATION_PRIORITY = "Product: Time-Dependent Priorities
* PRODUCT_CLASS = "Product: Product Characteristics Class
* PRODUCT_MODEL = "Product: Model Assignment
* RETURN = "Return Parameters
* EXTENSION_IN = "Reference Structure for BAPI Parameters ExtensionIn/ExtensionOut
* PRODUCT_HEAD_X = "Product: Header Data Change Parameter
* PRODUCT_TEXT = "Product: Short Texts
* PRODUCT_TEXT_X = "Product: Short Texts Change Parameters
* PRODUCT_ALT_UOM = "Product: Alternative Units of Measure
* PRODUCT_ALT_UOM_X = "Product: Alternative Units of Measure Change Parameter
* PRODUCT_PENALTY = "Product: Penalty Costs
* PRODUCT_LOCATION = "Product: Location-Dependent Data
* PRODUCT_LOCATION_X = "Product: Location-Dependent Data Change Parameters
Customer Function user exits
Below is a list of CUSTOMER FUNCTION exit user exits that are available within this program and maybe relevant for this FM.EXIT_SAPL10001_001 User Exit for Method 'SaveMultiple' of Business Object BUS10001
EXIT_SAPL10001_002 User Exit for Method 'GetList' of Business Object BUS10001
EXIT_SAPL10001_003 User Exit for Method 'DeleteProduct' of Business Object BUS10001
EXIT_SAPL10001_004 User Exit for Method 'DeleteLocationProduct' Business Object BUS10001
IMPORTING Parameters details for BAPI_PRDSRVAPS_SAVEMULTI_30A
LOGICAL_SYSTEM - Logical System from which Message Originates
Data type: BAPISCMBGENFIELDS-LOGICAL_SYSTEMOptional: No
Call by Reference: No ( called with pass by value option)
BUSINESS_SYSTEM_GROUP - Business System Group
Data type: BAPISCMBGENFIELDS-LOGQSOptional: Yes
Call by Reference: No ( called with pass by value option)
PLANNING_MODE_USAGE - Parameters for Controlling the Scheduling Mode
Data type: BAPI10001GENFIELDS-PLANNING_MODEOptional: Yes
Call by Reference: No ( called with pass by value option)
PLANNING_VERSION - Planning Version
Data type: BAPISCMBGENFIELDS-VRSIOEXOptional: Yes
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for BAPI_PRDSRVAPS_SAVEMULTI_30A
PRODUCT_HEAD - Product: Header Data
Data type: BAPI10001MATKEYOptional: Yes
Call by Reference: Yes
PRODUCT_LOCATION_PENALTY - Product: Location-Dependent Penalty Costs
Data type: BAPI10001PRODLOCPENOptional: Yes
Call by Reference: Yes
PRODUCT_LOCATION_PRIORITY - Product: Time-Dependent Priorities
Data type: BAPI10001PRODLOCPRIOOptional: Yes
Call by Reference: Yes
PRODUCT_CLASS - Product: Product Characteristics Class
Data type: BAPI10001MATCLASSOptional: Yes
Call by Reference: Yes
PRODUCT_MODEL - Product: Model Assignment
Data type: BAPI10001PRODMODELOptional: Yes
Call by Reference: Yes
RETURN - Return Parameters
Data type: BAPIRET2Optional: Yes
Call by Reference: Yes
EXTENSION_IN - Reference Structure for BAPI Parameters ExtensionIn/ExtensionOut
Data type: BAPIPAREXOptional: Yes
Call by Reference: Yes
PRODUCT_HEAD_X - Product: Header Data Change Parameter
Data type: BAPI10001MATKEYXOptional: Yes
Call by Reference: Yes
PRODUCT_TEXT - Product: Short Texts
Data type: BAPI10001MATTXTOptional: Yes
Call by Reference: Yes
PRODUCT_TEXT_X - Product: Short Texts Change Parameters
Data type: BAPI10001MATTXTXOptional: Yes
Call by Reference: Yes
PRODUCT_ALT_UOM - Product: Alternative Units of Measure
Data type: BAPI10001MARMOptional: Yes
Call by Reference: Yes
PRODUCT_ALT_UOM_X - Product: Alternative Units of Measure Change Parameter
Data type: BAPI10001MARMXOptional: Yes
Call by Reference: Yes
PRODUCT_PENALTY - Product: Penalty Costs
Data type: BAPI10001PRODPENOptional: Yes
Call by Reference: Yes
PRODUCT_LOCATION - Product: Location-Dependent Data
Data type: BAPI10001MATLOCOptional: Yes
Call by Reference: Yes
PRODUCT_LOCATION_X - Product: Location-Dependent Data Change Parameters
Data type: BAPI10001MATLOCXOptional: Yes
Call by Reference: Yes
Copy and paste ABAP code example for BAPI_PRDSRVAPS_SAVEMULTI_30A Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lt_product_head | TYPE STANDARD TABLE OF BAPI10001MATKEY, " | |||
| lv_logical_system | TYPE BAPISCMBGENFIELDS-LOGICAL_SYSTEM, " | |||
| lt_product_location_penalty | TYPE STANDARD TABLE OF BAPI10001PRODLOCPEN, " | |||
| lt_product_location_priority | TYPE STANDARD TABLE OF BAPI10001PRODLOCPRIO, " | |||
| lt_product_class | TYPE STANDARD TABLE OF BAPI10001MATCLASS, " | |||
| lt_product_model | TYPE STANDARD TABLE OF BAPI10001PRODMODEL, " | |||
| lt_return | TYPE STANDARD TABLE OF BAPIRET2, " | |||
| lt_extension_in | TYPE STANDARD TABLE OF BAPIPAREX, " | |||
| lt_product_head_x | TYPE STANDARD TABLE OF BAPI10001MATKEYX, " | |||
| lv_business_system_group | TYPE BAPISCMBGENFIELDS-LOGQS, " | |||
| lt_product_text | TYPE STANDARD TABLE OF BAPI10001MATTXT, " | |||
| lv_planning_mode_usage | TYPE BAPI10001GENFIELDS-PLANNING_MODE, " | |||
| lt_product_text_x | TYPE STANDARD TABLE OF BAPI10001MATTXTX, " | |||
| lv_planning_version | TYPE BAPISCMBGENFIELDS-VRSIOEX, " | |||
| lt_product_alt_uom | TYPE STANDARD TABLE OF BAPI10001MARM, " | |||
| lt_product_alt_uom_x | TYPE STANDARD TABLE OF BAPI10001MARMX, " | |||
| lt_product_penalty | TYPE STANDARD TABLE OF BAPI10001PRODPEN, " | |||
| lt_product_location | TYPE STANDARD TABLE OF BAPI10001MATLOC, " | |||
| lt_product_location_x | TYPE STANDARD TABLE OF BAPI10001MATLOCX. " |
|   CALL FUNCTION 'BAPI_PRDSRVAPS_SAVEMULTI_30A' "Create or Change Products |
| EXPORTING | ||
| LOGICAL_SYSTEM | = lv_logical_system | |
| BUSINESS_SYSTEM_GROUP | = lv_business_system_group | |
| PLANNING_MODE_USAGE | = lv_planning_mode_usage | |
| PLANNING_VERSION | = lv_planning_version | |
| TABLES | ||
| PRODUCT_HEAD | = lt_product_head | |
| PRODUCT_LOCATION_PENALTY | = lt_product_location_penalty | |
| PRODUCT_LOCATION_PRIORITY | = lt_product_location_priority | |
| PRODUCT_CLASS | = lt_product_class | |
| PRODUCT_MODEL | = lt_product_model | |
| RETURN | = lt_return | |
| EXTENSION_IN | = lt_extension_in | |
| PRODUCT_HEAD_X | = lt_product_head_x | |
| PRODUCT_TEXT | = lt_product_text | |
| PRODUCT_TEXT_X | = lt_product_text_x | |
| PRODUCT_ALT_UOM | = lt_product_alt_uom | |
| PRODUCT_ALT_UOM_X | = lt_product_alt_uom_x | |
| PRODUCT_PENALTY | = lt_product_penalty | |
| PRODUCT_LOCATION | = lt_product_location | |
| PRODUCT_LOCATION_X | = lt_product_location_x | |
| . " BAPI_PRDSRVAPS_SAVEMULTI_30A | ||
ABAP code using 7.40 inline data declarations to call FM BAPI_PRDSRVAPS_SAVEMULTI_30A
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| "SELECT single LOGICAL_SYSTEM FROM BAPISCMBGENFIELDS INTO @DATA(ld_logical_system). | ||||
| "SELECT single LOGQS FROM BAPISCMBGENFIELDS INTO @DATA(ld_business_system_group). | ||||
| "SELECT single PLANNING_MODE FROM BAPI10001GENFIELDS INTO @DATA(ld_planning_mode_usage). | ||||
| "SELECT single VRSIOEX FROM BAPISCMBGENFIELDS INTO @DATA(ld_planning_version). | ||||
Search for further information about these or an SAP related objects