SAP SD_CUSTOMER_MAINTAIN_ALL Function Module for NOTRANSL: Insert / Update von Kundenstammdaten
SD_CUSTOMER_MAINTAIN_ALL is a standard sd customer maintain all SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for NOTRANSL: Insert / Update von Kundenstammdaten 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 sd customer maintain all FM, simply by entering the name SD_CUSTOMER_MAINTAIN_ALL into the relevant SAP transaction such as SE37 or SE38.
Function Group: V02D
Program Name: SAPLV02D
Main Program: SAPLV02D
Appliation area: V
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function SD_CUSTOMER_MAINTAIN_ALL 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 'SD_CUSTOMER_MAINTAIN_ALL'"NOTRANSL: Insert / Update von Kundenstammdaten.
EXPORTING
* I_KNA1 = "General Master Records
* I_CUSTOMER_IS_CONSUMER = ' ' "
* I_RAISE_NO_BTE = ' ' "
* PI_POSTFLAG = ' ' "
* PI_CAM_CHANGED = ' ' "
* PI_ADD_ON_DATA = "Add-On Data Changed in Customer Master
* I_FROM_CUSTOMERMASTER = ' ' "
* I_KNB1 = "Company Code Data
* I_KNVV = "
* I_BAPIADDR1 = "
* I_BAPIADDR2 = "
* I_MAINTAIN_ADDRESS_BY_KNA1 = ' ' "
* I_KNB1_REFERENCE = ' ' "
* I_FORCE_EXTERNAL_NUMBER_RANGE = ' ' "
* I_NO_BANK_MASTER_UPDATE = ' ' "
IMPORTING
E_KUNNR = "
O_KNA1 = "
E_SD_CUST_1321_DONE = "
TABLES
* T_XKNAS = "
* T_XKNVP = "
* T_XKNZA = "
* T_YKNAS = "
* T_YKNBK = "
* T_YKNB5 = "
* T_YKNEX = "
* T_YKNVA = "
* T_YKNVD = "
* T_YKNVI = "
* T_YKNVK = "
* T_XKNBK = "
* T_YKNVL = "
* T_YKNVP = "
* T_YKNZA = "
* T_UPD_TXT = "Change Structure for Text Changes
* T_XKNB5 = "
* T_XKNEX = "
* T_XKNVA = "
* T_XKNVD = "
* T_XKNVI = "
* T_XKNVK = "
* T_XKNVL = "
EXCEPTIONS
CLIENT_ERROR = 1 NUMBER_ASSIGNMENT_ERROR = 10 NUMBER_NOT_IN_RANGE = 11 NUMBER_RANGE_NOT_EXTERN = 12 NUMBER_RANGE_NOT_INTERN = 13 ACCOUNT_GROUP_NOT_VALID = 14 PARNR_INVALID = 15 BANK_ADDRESS_INVALID = 16 TAX_DATA_NOT_VALID = 17 NO_AUTHORITY = 18 COMPANY_CODE_NOT_UNIQUE = 19 KNA1_INCOMPLETE = 2 DUNNING_DATA_NOT_VALID = 20 KNB1_REFERENCE_INVALID = 21 CAM_ERROR = 22 KNB1_INCOMPLETE = 3 KNB5_INCOMPLETE = 4 KNVV_INCOMPLETE = 5 KUNNR_NOT_UNIQUE = 6 SALES_AREA_NOT_UNIQUE = 7 SALES_AREA_NOT_VALID = 8 INSERT_UPDATE_CONFLICT = 9
IMPORTING Parameters details for SD_CUSTOMER_MAINTAIN_ALL
I_KNA1 - General Master Records
Data type: KNA1Optional: Yes
Call by Reference: No ( called with pass by value option)
I_CUSTOMER_IS_CONSUMER -
Data type: WDL_FLAG-XFLAGDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_RAISE_NO_BTE -
Data type: WDL_FLAG-XFLAGDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
PI_POSTFLAG -
Data type: WDL_FLAG-XFLAGDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
PI_CAM_CHANGED -
Data type: WDL_FLAG-XFLAGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
PI_ADD_ON_DATA - Add-On Data Changed in Customer Master
Data type: CUST_ADD_ON_DATAOptional: Yes
Call by Reference: No ( called with pass by value option)
I_FROM_CUSTOMERMASTER -
Data type: WDL_FLAG-XFLAGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_KNB1 - Company Code Data
Data type: KNB1Optional: Yes
Call by Reference: No ( called with pass by value option)
I_KNVV -
Data type: KNVVOptional: Yes
Call by Reference: No ( called with pass by value option)
I_BAPIADDR1 -
Data type: BAPIADDR1Optional: Yes
Call by Reference: No ( called with pass by value option)
I_BAPIADDR2 -
Data type: BAPIADDR2Optional: Yes
Call by Reference: No ( called with pass by value option)
I_MAINTAIN_ADDRESS_BY_KNA1 -
Data type: WDL_FLAG-XFLAGDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_KNB1_REFERENCE -
Data type: WDL_FLAG-XFLAGDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_FORCE_EXTERNAL_NUMBER_RANGE -
Data type: WDL_FLAG-XFLAGDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_NO_BANK_MASTER_UPDATE -
Data type: WDL_FLAG-XFLAGDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for SD_CUSTOMER_MAINTAIN_ALL
E_KUNNR -
Data type: KNA1-KUNNROptional: No
Call by Reference: No ( called with pass by value option)
O_KNA1 -
Data type: KNA1Optional: No
Call by Reference: Yes
E_SD_CUST_1321_DONE -
Data type: COptional: No
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for SD_CUSTOMER_MAINTAIN_ALL
T_XKNAS -
Data type: FKNASOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNVP -
Data type: FKNVPOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNZA -
Data type: FKNZAOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNAS -
Data type: FKNASOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNBK -
Data type: FKNBKOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNB5 -
Data type: FKNB5Optional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNEX -
Data type: FKNEXOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNVA -
Data type: FKNVAOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNVD -
Data type: FKNVDOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNVI -
Data type: FKNVIOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNVK -
Data type: FKNVKOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNBK -
Data type: FKNBKOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNVL -
Data type: FKNVLOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNVP -
Data type: FKNVPOptional: Yes
Call by Reference: No ( called with pass by value option)
T_YKNZA -
Data type: FKNZAOptional: Yes
Call by Reference: No ( called with pass by value option)
T_UPD_TXT - Change Structure for Text Changes
Data type: FKUNTXTOptional: Yes
Call by Reference: Yes
T_XKNB5 -
Data type: FKNB5Optional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNEX -
Data type: FKNEXOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNVA -
Data type: FKNVAOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNVD -
Data type: FKNVDOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNVI -
Data type: FKNVIOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNVK -
Data type: FKNVKOptional: Yes
Call by Reference: No ( called with pass by value option)
T_XKNVL -
Data type: FKNVLOptional: Yes
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
CLIENT_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NUMBER_ASSIGNMENT_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NUMBER_NOT_IN_RANGE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NUMBER_RANGE_NOT_EXTERN -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NUMBER_RANGE_NOT_INTERN -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ACCOUNT_GROUP_NOT_VALID -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PARNR_INVALID -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
BANK_ADDRESS_INVALID -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
TAX_DATA_NOT_VALID -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_AUTHORITY -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
COMPANY_CODE_NOT_UNIQUE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
KNA1_INCOMPLETE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
DUNNING_DATA_NOT_VALID -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
KNB1_REFERENCE_INVALID -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
CAM_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
KNB1_INCOMPLETE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
KNB5_INCOMPLETE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
KNVV_INCOMPLETE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
KUNNR_NOT_UNIQUE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SALES_AREA_NOT_UNIQUE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SALES_AREA_NOT_VALID - Sales areas
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INSERT_UPDATE_CONFLICT -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for SD_CUSTOMER_MAINTAIN_ALL 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_kna1 | TYPE KNA1, " | |||
| lv_e_kunnr | TYPE KNA1-KUNNR, " | |||
| lt_t_xknas | TYPE STANDARD TABLE OF FKNAS, " | |||
| lv_client_error | TYPE FKNAS, " | |||
| lt_t_xknvp | TYPE STANDARD TABLE OF FKNVP, " | |||
| lv_i_customer_is_consumer | TYPE WDL_FLAG-XFLAG, " ' ' | |||
| lv_number_assignment_error | TYPE WDL_FLAG, " | |||
| lt_t_xknza | TYPE STANDARD TABLE OF FKNZA, " | |||
| lv_i_raise_no_bte | TYPE WDL_FLAG-XFLAG, " ' ' | |||
| lv_number_not_in_range | TYPE WDL_FLAG, " | |||
| lt_t_yknas | TYPE STANDARD TABLE OF FKNAS, " | |||
| lv_pi_postflag | TYPE WDL_FLAG-XFLAG, " ' ' | |||
| lv_number_range_not_extern | TYPE WDL_FLAG, " | |||
| lt_t_yknbk | TYPE STANDARD TABLE OF FKNBK, " | |||
| lv_pi_cam_changed | TYPE WDL_FLAG-XFLAG, " SPACE | |||
| lv_number_range_not_intern | TYPE WDL_FLAG, " | |||
| lt_t_yknb5 | TYPE STANDARD TABLE OF FKNB5, " | |||
| lv_pi_add_on_data | TYPE CUST_ADD_ON_DATA, " | |||
| lv_account_group_not_valid | TYPE CUST_ADD_ON_DATA, " | |||
| lt_t_yknex | TYPE STANDARD TABLE OF FKNEX, " | |||
| lv_parnr_invalid | TYPE FKNEX, " | |||
| lv_i_from_customermaster | TYPE WDL_FLAG-XFLAG, " SPACE | |||
| lt_t_yknva | TYPE STANDARD TABLE OF FKNVA, " | |||
| lv_bank_address_invalid | TYPE FKNVA, " | |||
| lt_t_yknvd | TYPE STANDARD TABLE OF FKNVD, " | |||
| lv_tax_data_not_valid | TYPE FKNVD, " | |||
| lt_t_yknvi | TYPE STANDARD TABLE OF FKNVI, " | |||
| lv_no_authority | TYPE FKNVI, " | |||
| lt_t_yknvk | TYPE STANDARD TABLE OF FKNVK, " | |||
| lv_company_code_not_unique | TYPE FKNVK, " | |||
| lv_i_knb1 | TYPE KNB1, " | |||
| lv_o_kna1 | TYPE KNA1, " | |||
| lt_t_xknbk | TYPE STANDARD TABLE OF FKNBK, " | |||
| lv_kna1_incomplete | TYPE FKNBK, " | |||
| lt_t_yknvl | TYPE STANDARD TABLE OF FKNVL, " | |||
| lv_dunning_data_not_valid | TYPE FKNVL, " | |||
| lt_t_yknvp | TYPE STANDARD TABLE OF FKNVP, " | |||
| lv_knb1_reference_invalid | TYPE FKNVP, " | |||
| lt_t_yknza | TYPE STANDARD TABLE OF FKNZA, " | |||
| lv_cam_error | TYPE FKNZA, " | |||
| lt_t_upd_txt | TYPE STANDARD TABLE OF FKUNTXT, " | |||
| lv_i_knvv | TYPE KNVV, " | |||
| lt_t_xknb5 | TYPE STANDARD TABLE OF FKNB5, " | |||
| lv_knb1_incomplete | TYPE FKNB5, " | |||
| lv_e_sd_cust_1321_done | TYPE C, " | |||
| lt_t_xknex | TYPE STANDARD TABLE OF FKNEX, " | |||
| lv_i_bapiaddr1 | TYPE BAPIADDR1, " | |||
| lv_knb5_incomplete | TYPE BAPIADDR1, " | |||
| lt_t_xknva | TYPE STANDARD TABLE OF FKNVA, " | |||
| lv_i_bapiaddr2 | TYPE BAPIADDR2, " | |||
| lv_knvv_incomplete | TYPE BAPIADDR2, " | |||
| lt_t_xknvd | TYPE STANDARD TABLE OF FKNVD, " | |||
| lv_kunnr_not_unique | TYPE FKNVD, " | |||
| lv_i_maintain_address_by_kna1 | TYPE WDL_FLAG-XFLAG, " ' ' | |||
| lt_t_xknvi | TYPE STANDARD TABLE OF FKNVI, " | |||
| lv_i_knb1_reference | TYPE WDL_FLAG-XFLAG, " ' ' | |||
| lv_sales_area_not_unique | TYPE WDL_FLAG, " | |||
| lt_t_xknvk | TYPE STANDARD TABLE OF FKNVK, " | |||
| lv_sales_area_not_valid | TYPE FKNVK, " | |||
| lv_i_force_external_number_range | TYPE WDL_FLAG-XFLAG, " ' ' | |||
| lt_t_xknvl | TYPE STANDARD TABLE OF FKNVL, " | |||
| lv_insert_update_conflict | TYPE FKNVL, " | |||
| lv_i_no_bank_master_update | TYPE WDL_FLAG-XFLAG. " ' ' |
|   CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL' "NOTRANSL: Insert / Update von Kundenstammdaten |
| EXPORTING | ||
| I_KNA1 | = lv_i_kna1 | |
| I_CUSTOMER_IS_CONSUMER | = lv_i_customer_is_consumer | |
| I_RAISE_NO_BTE | = lv_i_raise_no_bte | |
| PI_POSTFLAG | = lv_pi_postflag | |
| PI_CAM_CHANGED | = lv_pi_cam_changed | |
| PI_ADD_ON_DATA | = lv_pi_add_on_data | |
| I_FROM_CUSTOMERMASTER | = lv_i_from_customermaster | |
| I_KNB1 | = lv_i_knb1 | |
| I_KNVV | = lv_i_knvv | |
| I_BAPIADDR1 | = lv_i_bapiaddr1 | |
| I_BAPIADDR2 | = lv_i_bapiaddr2 | |
| I_MAINTAIN_ADDRESS_BY_KNA1 | = lv_i_maintain_address_by_kna1 | |
| I_KNB1_REFERENCE | = lv_i_knb1_reference | |
| I_FORCE_EXTERNAL_NUMBER_RANGE | = lv_i_force_external_number_range | |
| I_NO_BANK_MASTER_UPDATE | = lv_i_no_bank_master_update | |
| IMPORTING | ||
| E_KUNNR | = lv_e_kunnr | |
| O_KNA1 | = lv_o_kna1 | |
| E_SD_CUST_1321_DONE | = lv_e_sd_cust_1321_done | |
| TABLES | ||
| T_XKNAS | = lt_t_xknas | |
| T_XKNVP | = lt_t_xknvp | |
| T_XKNZA | = lt_t_xknza | |
| T_YKNAS | = lt_t_yknas | |
| T_YKNBK | = lt_t_yknbk | |
| T_YKNB5 | = lt_t_yknb5 | |
| T_YKNEX | = lt_t_yknex | |
| T_YKNVA | = lt_t_yknva | |
| T_YKNVD | = lt_t_yknvd | |
| T_YKNVI | = lt_t_yknvi | |
| T_YKNVK | = lt_t_yknvk | |
| T_XKNBK | = lt_t_xknbk | |
| T_YKNVL | = lt_t_yknvl | |
| T_YKNVP | = lt_t_yknvp | |
| T_YKNZA | = lt_t_yknza | |
| T_UPD_TXT | = lt_t_upd_txt | |
| T_XKNB5 | = lt_t_xknb5 | |
| T_XKNEX | = lt_t_xknex | |
| T_XKNVA | = lt_t_xknva | |
| T_XKNVD | = lt_t_xknvd | |
| T_XKNVI | = lt_t_xknvi | |
| T_XKNVK | = lt_t_xknvk | |
| T_XKNVL | = lt_t_xknvl | |
| EXCEPTIONS | ||
| CLIENT_ERROR = 1 | ||
| NUMBER_ASSIGNMENT_ERROR = 10 | ||
| NUMBER_NOT_IN_RANGE = 11 | ||
| NUMBER_RANGE_NOT_EXTERN = 12 | ||
| NUMBER_RANGE_NOT_INTERN = 13 | ||
| ACCOUNT_GROUP_NOT_VALID = 14 | ||
| PARNR_INVALID = 15 | ||
| BANK_ADDRESS_INVALID = 16 | ||
| TAX_DATA_NOT_VALID = 17 | ||
| NO_AUTHORITY = 18 | ||
| COMPANY_CODE_NOT_UNIQUE = 19 | ||
| KNA1_INCOMPLETE = 2 | ||
| DUNNING_DATA_NOT_VALID = 20 | ||
| KNB1_REFERENCE_INVALID = 21 | ||
| CAM_ERROR = 22 | ||
| KNB1_INCOMPLETE = 3 | ||
| KNB5_INCOMPLETE = 4 | ||
| KNVV_INCOMPLETE = 5 | ||
| KUNNR_NOT_UNIQUE = 6 | ||
| SALES_AREA_NOT_UNIQUE = 7 | ||
| SALES_AREA_NOT_VALID = 8 | ||
| INSERT_UPDATE_CONFLICT = 9 | ||
| . " SD_CUSTOMER_MAINTAIN_ALL | ||
ABAP code using 7.40 inline data declarations to call FM SD_CUSTOMER_MAINTAIN_ALL
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 KUNNR FROM KNA1 INTO @DATA(ld_e_kunnr). | ||||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_i_customer_is_consumer). | ||||
| DATA(ld_i_customer_is_consumer) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_i_raise_no_bte). | ||||
| DATA(ld_i_raise_no_bte) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_pi_postflag). | ||||
| DATA(ld_pi_postflag) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_pi_cam_changed). | ||||
| DATA(ld_pi_cam_changed) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_i_from_customermaster). | ||||
| DATA(ld_i_from_customermaster) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_i_maintain_address_by_kna1). | ||||
| DATA(ld_i_maintain_address_by_kna1) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_i_knb1_reference). | ||||
| DATA(ld_i_knb1_reference) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_i_force_external_number_range). | ||||
| DATA(ld_i_force_external_number_range) | = ' '. | |||
| "SELECT single XFLAG FROM WDL_FLAG INTO @DATA(ld_i_no_bank_master_update). | ||||
| DATA(ld_i_no_bank_master_update) | = ' '. | |||
Search for further information about these or an SAP related objects