SAP PVSHI_PVCMP_MAINTAIN Function Module for iPPE: Maintain Variants of Product Structure
PVSHI_PVCMP_MAINTAIN is a standard pvshi pvcmp maintain SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for iPPE: Maintain Variants of Product Structure 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 pvshi pvcmp maintain FM, simply by entering the name PVSHI_PVCMP_MAINTAIN into the relevant SAP transaction such as SE37 or SE38.
Function Group: PPEHI_CMP
Program Name: SAPLPPEHI_CMP
Main Program: SAPLPPEHI_CMP
Appliation area: C
Release date: 27-Oct-2003
Mode(Normal, Remote etc): Remote-Enabled
Update:

Function PVSHI_PVCMP_MAINTAIN 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 'PVSHI_PVCMP_MAINTAIN'"iPPE: Maintain Variants of Product Structure.
EXPORTING
* I_MODE_ALL = 'X' "Ignore Errors
* I_CREATE_FLG = 'X' "Creation Allowed
* I_MSG_HANDLING = 'A' "Message Handling
* I_GENERATE_SAP_SYNTAX = ' ' "Generate SAP Syntax
* I_DELTA_FLG = ' ' "Delta Maintenance for iPPE API
TABLES
* COMPONENTVARIANTDATA = "iPPE/BAPI: Attributes of Product Structure Variant
* DEPENDENCYSOURCES = "iPPE/BAPI: Object Dependencies - Source Code Relationship
* CONFIGURATIONINSTANCE = "iPPE/BAPI: Instances of Several Configurations
* CONFIGURATIONVALUE = "iPPE/BAPI: Values of a Configuration
* CONFIGURATIONDEPENDENCYUPD = "iPPE / BAPI: Change to Object Dependencies or Configuration
* COMPONENTVARIANTCLASSDIFF = "iPPE/BAPI: Class Differentiation
* COMPONENTVARIANTCLASSDIFFX = "iPPE / BAPI: Class Differentiation (Change Parameter)
* COMPONENTVARIANTEXTENSION = "iPPE/BAPI: Customer Enhancements - CMP Variant
* COMPONENTVARIANTEXTENSIONX = "iPPE / BAPI: Customer Enhancements CMP Variant (Change Parameter)
* COMPONENTALTERNATIVEDATA = "iPPE/BAPI: Component Alternative
* COMPONENTALTERNATIVEDATAX = "iPPE/BAPI: Component Alternative (Change Parameter)
* COMPONENTVARIANTDATAX = "iPPE/BAPI: Attribues of Product Structure Variant (Change Parameter)
* COMPONENTALTERNATIVETEXT = "iPPE/BAPI: Alternative Text for Component
* COMPONENTALTERNATIVETEXTX = "iPPE/BAPI: Alternative Text for Component (Change Parameter)
* COMPONENTALTLONGTEXTHEADER = "iPPE/BAPI: Header Long Text for the Alternative
* COMPONENTALTLONGTEXTHEADERX = "iPPE/BAPI: Header Long Text for the Alternative (Change Parameter)
* COMPONENTALTLONGTEXT = "iPPE/BAPI: Long Text for the Alternative
* COMPONENTALTLONGTEXTX = "iPPE/BAPI: Long Text for the Alternative (Change Parameter)
* COMPONENTRELATION = "iPPE/BAPI: Component Relationship
* ACTIVITYRELATION = "iPPE/BAPI: Activities Relationship
* ACTIVITYRELATIONCONSTRAINT = "iPPE / BAPI: Additional Constraints
* RETURN = "Return Parameters
* COMPONENTVARIANTSHORTTEXT = "iPPE / BAPI: Short Text of the Variant
* COMPONENTVARIANTSHORTTEXTX = "iPPE / BAPI: Short Text of the Variant (Change Parameter)
* COMPONENTVARIANTTEXTHEADER = "iPPE/BAPI: Header Long Text for Variant
* COMPONENTVARIANTTEXTHEADERX = "iPPE / BAPI: Long Text Header for Variant (Change Parameter)
* COMPONENTVARIANTTEXT = "iPPE/BAPI: Long Text for Variant
* COMPONENTVARIANTTEXTX = "iPPE / BAPI: Long Text for Variant (Change Parameter)
* DEPENDENCYDATA = "iPPE/BAPI: Object Dependencies - Basic Data
IMPORTING Parameters details for PVSHI_PVCMP_MAINTAIN
I_MODE_ALL - Ignore Errors
Data type: PPE_MODE_ALLDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_CREATE_FLG - Creation Allowed
Data type: PPE_CREATE_FLGDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_MSG_HANDLING - Message Handling
Data type: PPE_MESSAGE_OPTIONDefault: 'A'
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_GENERATE_SAP_SYNTAX - Generate SAP Syntax
Data type: XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_DELTA_FLG - Delta Maintenance for iPPE API
Data type: PPE_API_DELTA_FLGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for PVSHI_PVCMP_MAINTAIN
COMPONENTVARIANTDATA - iPPE/BAPI: Attributes of Product Structure Variant
Data type: BAPI1176_CMP_VARIANTDATAOptional: Yes
Call by Reference: Yes
DEPENDENCYSOURCES - iPPE/BAPI: Object Dependencies - Source Code Relationship
Data type: BAPI1176_CMP_DEPSOURCEOptional: Yes
Call by Reference: Yes
CONFIGURATIONINSTANCE - iPPE/BAPI: Instances of Several Configurations
Data type: BAPI1176_CMP_CUINSOptional: Yes
Call by Reference: Yes
CONFIGURATIONVALUE - iPPE/BAPI: Values of a Configuration
Data type: BAPI1176_CMP_CUVALOptional: Yes
Call by Reference: Yes
CONFIGURATIONDEPENDENCYUPD - iPPE / BAPI: Change to Object Dependencies or Configuration
Data type: BAPI1176_CMP_CONF_DEP_UPDOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTCLASSDIFF - iPPE/BAPI: Class Differentiation
Data type: BAPI1176_CMP_CLASSDIFFOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTCLASSDIFFX - iPPE / BAPI: Class Differentiation (Change Parameter)
Data type: BAPI1176_CMP_CLASSDIFFXOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTEXTENSION - iPPE/BAPI: Customer Enhancements - CMP Variant
Data type: BAPI_TE_PVCMPDOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTEXTENSIONX - iPPE / BAPI: Customer Enhancements CMP Variant (Change Parameter)
Data type: BAPI_TE_PVCMPDXOptional: Yes
Call by Reference: Yes
COMPONENTALTERNATIVEDATA - iPPE/BAPI: Component Alternative
Data type: BAPI1176_CMP_ALTDATAOptional: Yes
Call by Reference: Yes
COMPONENTALTERNATIVEDATAX - iPPE/BAPI: Component Alternative (Change Parameter)
Data type: BAPI1176_CMP_ALTDATAXOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTDATAX - iPPE/BAPI: Attribues of Product Structure Variant (Change Parameter)
Data type: BAPI1176_CMP_VARIANTDATAXOptional: Yes
Call by Reference: Yes
COMPONENTALTERNATIVETEXT - iPPE/BAPI: Alternative Text for Component
Data type: BAPI1176_CMP_ALTTEXTOptional: Yes
Call by Reference: Yes
COMPONENTALTERNATIVETEXTX - iPPE/BAPI: Alternative Text for Component (Change Parameter)
Data type: BAPI1176_CMP_ALTTEXTXOptional: Yes
Call by Reference: Yes
COMPONENTALTLONGTEXTHEADER - iPPE/BAPI: Header Long Text for the Alternative
Data type: BAPI_PPE_ALT_LONGTEXT_HDOptional: Yes
Call by Reference: Yes
COMPONENTALTLONGTEXTHEADERX - iPPE/BAPI: Header Long Text for the Alternative (Change Parameter)
Data type: BAPI_PPE_ALT_LONGTEXT_HDXOptional: Yes
Call by Reference: Yes
COMPONENTALTLONGTEXT - iPPE/BAPI: Long Text for the Alternative
Data type: BAPI_PPE_ALT_LONGTEXTOptional: Yes
Call by Reference: Yes
COMPONENTALTLONGTEXTX - iPPE/BAPI: Long Text for the Alternative (Change Parameter)
Data type: BAPI_PPE_ALT_LONGTEXTXOptional: Yes
Call by Reference: Yes
COMPONENTRELATION - iPPE/BAPI: Component Relationship
Data type: BAPI1176_CMP_RELATIONOptional: Yes
Call by Reference: Yes
ACTIVITYRELATION - iPPE/BAPI: Activities Relationship
Data type: BAPI1179_ACT_RELATIONOptional: Yes
Call by Reference: Yes
ACTIVITYRELATIONCONSTRAINT - iPPE / BAPI: Additional Constraints
Data type: BAPI1179_ACT_CONSTRAINTOptional: Yes
Call by Reference: Yes
RETURN - Return Parameters
Data type: BAPIRET2Optional: Yes
Call by Reference: Yes
COMPONENTVARIANTSHORTTEXT - iPPE / BAPI: Short Text of the Variant
Data type: BAPI_PPE_VAR_SHORTTEXTOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTSHORTTEXTX - iPPE / BAPI: Short Text of the Variant (Change Parameter)
Data type: BAPI_PPE_VAR_SHORTTEXTXOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTTEXTHEADER - iPPE/BAPI: Header Long Text for Variant
Data type: BAPI_PPE_VAR_LONGTEXT_HDOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTTEXTHEADERX - iPPE / BAPI: Long Text Header for Variant (Change Parameter)
Data type: BAPI_PPE_VAR_LONGTEXT_HDXOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTTEXT - iPPE/BAPI: Long Text for Variant
Data type: BAPI_PPE_VAR_LONGTEXTOptional: Yes
Call by Reference: Yes
COMPONENTVARIANTTEXTX - iPPE / BAPI: Long Text for Variant (Change Parameter)
Data type: BAPI_PPE_VAR_LONGTEXTXOptional: Yes
Call by Reference: Yes
DEPENDENCYDATA - iPPE/BAPI: Object Dependencies - Basic Data
Data type: BAPI1176_CMP_DEPDATAOptional: Yes
Call by Reference: Yes
Copy and paste ABAP code example for PVSHI_PVCMP_MAINTAIN 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: | ||||
| lv_i_mode_all | TYPE PPE_MODE_ALL, " 'X' | |||
| lt_componentvariantdata | TYPE STANDARD TABLE OF BAPI1176_CMP_VARIANTDATA, " | |||
| lt_dependencysources | TYPE STANDARD TABLE OF BAPI1176_CMP_DEPSOURCE, " | |||
| lt_configurationinstance | TYPE STANDARD TABLE OF BAPI1176_CMP_CUINS, " | |||
| lt_configurationvalue | TYPE STANDARD TABLE OF BAPI1176_CMP_CUVAL, " | |||
| lt_configurationdependencyupd | TYPE STANDARD TABLE OF BAPI1176_CMP_CONF_DEP_UPD, " | |||
| lt_componentvariantclassdiff | TYPE STANDARD TABLE OF BAPI1176_CMP_CLASSDIFF, " | |||
| lt_componentvariantclassdiffx | TYPE STANDARD TABLE OF BAPI1176_CMP_CLASSDIFFX, " | |||
| lt_componentvariantextension | TYPE STANDARD TABLE OF BAPI_TE_PVCMPD, " | |||
| lt_componentvariantextensionx | TYPE STANDARD TABLE OF BAPI_TE_PVCMPDX, " | |||
| lt_componentalternativedata | TYPE STANDARD TABLE OF BAPI1176_CMP_ALTDATA, " | |||
| lt_componentalternativedatax | TYPE STANDARD TABLE OF BAPI1176_CMP_ALTDATAX, " | |||
| lv_i_create_flg | TYPE PPE_CREATE_FLG, " 'X' | |||
| lt_componentvariantdatax | TYPE STANDARD TABLE OF BAPI1176_CMP_VARIANTDATAX, " | |||
| lt_componentalternativetext | TYPE STANDARD TABLE OF BAPI1176_CMP_ALTTEXT, " | |||
| lt_componentalternativetextx | TYPE STANDARD TABLE OF BAPI1176_CMP_ALTTEXTX, " | |||
| lt_componentaltlongtextheader | TYPE STANDARD TABLE OF BAPI_PPE_ALT_LONGTEXT_HD, " | |||
| lt_componentaltlongtextheaderx | TYPE STANDARD TABLE OF BAPI_PPE_ALT_LONGTEXT_HDX, " | |||
| lt_componentaltlongtext | TYPE STANDARD TABLE OF BAPI_PPE_ALT_LONGTEXT, " | |||
| lt_componentaltlongtextx | TYPE STANDARD TABLE OF BAPI_PPE_ALT_LONGTEXTX, " | |||
| lt_componentrelation | TYPE STANDARD TABLE OF BAPI1176_CMP_RELATION, " | |||
| lt_activityrelation | TYPE STANDARD TABLE OF BAPI1179_ACT_RELATION, " | |||
| lt_activityrelationconstraint | TYPE STANDARD TABLE OF BAPI1179_ACT_CONSTRAINT, " | |||
| lt_return | TYPE STANDARD TABLE OF BAPIRET2, " | |||
| lv_i_msg_handling | TYPE PPE_MESSAGE_OPTION, " 'A' | |||
| lt_componentvariantshorttext | TYPE STANDARD TABLE OF BAPI_PPE_VAR_SHORTTEXT, " | |||
| lv_i_generate_sap_syntax | TYPE XFELD, " SPACE | |||
| lt_componentvariantshorttextx | TYPE STANDARD TABLE OF BAPI_PPE_VAR_SHORTTEXTX, " | |||
| lv_i_delta_flg | TYPE PPE_API_DELTA_FLG, " SPACE | |||
| lt_componentvarianttextheader | TYPE STANDARD TABLE OF BAPI_PPE_VAR_LONGTEXT_HD, " | |||
| lt_componentvarianttextheaderx | TYPE STANDARD TABLE OF BAPI_PPE_VAR_LONGTEXT_HDX, " | |||
| lt_componentvarianttext | TYPE STANDARD TABLE OF BAPI_PPE_VAR_LONGTEXT, " | |||
| lt_componentvarianttextx | TYPE STANDARD TABLE OF BAPI_PPE_VAR_LONGTEXTX, " | |||
| lt_dependencydata | TYPE STANDARD TABLE OF BAPI1176_CMP_DEPDATA. " |
|   CALL FUNCTION 'PVSHI_PVCMP_MAINTAIN' "iPPE: Maintain Variants of Product Structure |
| EXPORTING | ||
| I_MODE_ALL | = lv_i_mode_all | |
| I_CREATE_FLG | = lv_i_create_flg | |
| I_MSG_HANDLING | = lv_i_msg_handling | |
| I_GENERATE_SAP_SYNTAX | = lv_i_generate_sap_syntax | |
| I_DELTA_FLG | = lv_i_delta_flg | |
| TABLES | ||
| COMPONENTVARIANTDATA | = lt_componentvariantdata | |
| DEPENDENCYSOURCES | = lt_dependencysources | |
| CONFIGURATIONINSTANCE | = lt_configurationinstance | |
| CONFIGURATIONVALUE | = lt_configurationvalue | |
| CONFIGURATIONDEPENDENCYUPD | = lt_configurationdependencyupd | |
| COMPONENTVARIANTCLASSDIFF | = lt_componentvariantclassdiff | |
| COMPONENTVARIANTCLASSDIFFX | = lt_componentvariantclassdiffx | |
| COMPONENTVARIANTEXTENSION | = lt_componentvariantextension | |
| COMPONENTVARIANTEXTENSIONX | = lt_componentvariantextensionx | |
| COMPONENTALTERNATIVEDATA | = lt_componentalternativedata | |
| COMPONENTALTERNATIVEDATAX | = lt_componentalternativedatax | |
| COMPONENTVARIANTDATAX | = lt_componentvariantdatax | |
| COMPONENTALTERNATIVETEXT | = lt_componentalternativetext | |
| COMPONENTALTERNATIVETEXTX | = lt_componentalternativetextx | |
| COMPONENTALTLONGTEXTHEADER | = lt_componentaltlongtextheader | |
| COMPONENTALTLONGTEXTHEADERX | = lt_componentaltlongtextheaderx | |
| COMPONENTALTLONGTEXT | = lt_componentaltlongtext | |
| COMPONENTALTLONGTEXTX | = lt_componentaltlongtextx | |
| COMPONENTRELATION | = lt_componentrelation | |
| ACTIVITYRELATION | = lt_activityrelation | |
| ACTIVITYRELATIONCONSTRAINT | = lt_activityrelationconstraint | |
| RETURN | = lt_return | |
| COMPONENTVARIANTSHORTTEXT | = lt_componentvariantshorttext | |
| COMPONENTVARIANTSHORTTEXTX | = lt_componentvariantshorttextx | |
| COMPONENTVARIANTTEXTHEADER | = lt_componentvarianttextheader | |
| COMPONENTVARIANTTEXTHEADERX | = lt_componentvarianttextheaderx | |
| COMPONENTVARIANTTEXT | = lt_componentvarianttext | |
| COMPONENTVARIANTTEXTX | = lt_componentvarianttextx | |
| DEPENDENCYDATA | = lt_dependencydata | |
| . " PVSHI_PVCMP_MAINTAIN | ||
ABAP code using 7.40 inline data declarations to call FM PVSHI_PVCMP_MAINTAIN
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.| DATA(ld_i_mode_all) | = 'X'. | |||
| DATA(ld_i_create_flg) | = 'X'. | |||
| DATA(ld_i_msg_handling) | = 'A'. | |||
| DATA(ld_i_generate_sap_syntax) | = ' '. | |||
| DATA(ld_i_delta_flg) | = ' '. | |||
Search for further information about these or an SAP related objects