SAP FM_SELECT_MULTIPLE Function Module for Mass selection of master data
FM_SELECT_MULTIPLE is a standard fm select multiple SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Mass selection of master data 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 fm select multiple FM, simply by entering the name FM_SELECT_MULTIPLE into the relevant SAP transaction such as SE37 or SE38.
Function Group: FMSL
Program Name: SAPLFMSL
Main Program: SAPLFMSL
Appliation area: F
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:
![](https://www.se80.co.uk/training-education/wp-content/uploads/2019/07/normal-function-module.png)
Function FM_SELECT_MULTIPLE 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 'FM_SELECT_MULTIPLE'"Mass selection of master data.
EXPORTING
I_FIKRS = "Financial Management Area
* I_FIPEX_FICTR_FONDS = ' ' "
* I_BUDGETPD_ONLY = ' ' "
* I_BSP_ELEMENT = ' ' "
* I_BSP_ELEMENT_BCS = ' ' "
* I_SELECT_WITHOUT_FONDS = ' ' "
* I_SELECT_WITHOUT_BUDGETPD = ' ' "
* I_SELECT_WITHOUT_FUNCTION = ' ' "
* I_SELECT_WITHOUT_MEASURE = ' ' "
* I_SELECT_WITHOUT_GRANT = ' ' "
* I_STATUS = 'U' "
I_GJAHR = "Fiscal Year
* I_LIST_TITLE = "List heading
* I_FLG_NO_LIST = ' ' "Display no list
* I_FLG_NO_OVERTAKE = ' ' "
* I_FLG_MAINT_SEQUENT = ' ' "
* I_FLG_MAINT_MULTIPLE = ' ' "
* I_FLG_DEL = ' ' "
* I_FLG_CHECK_BUDGET = ' ' "
* I_MAINT_FUNCNAME = ' ' "
* I_PROG_VARNT = ' ' "
* I_FLG_BLANK_DIM_BCS = "
* I_VARNT = '000' "Variant
* I_HIVARNT = "Hierarchy Variant of Funds Center
* I_POPER = "Period
* I_FIPEX_ONLY = ' ' "
* I_FICTR_ONLY = ' ' "
* I_FONDS_BP_ONLY = ' ' "
* I_FONDS_ONLY = ' ' "
IMPORTING
E_F_FKRS = "
E_F_FVAR = "
TABLES
* T_FMSLBSP = "
* T_FMSLFFBP = "
* T_FMSLTRP = "
* T_FMSLFCTR = "
* T_FMSLFPEX = "
* T_FMSLFFND = "
* T_FMSLPARA = "
* T_FMSLHEADER = "
* T_FMSLFIELDS = "
* T_FMSLFBDP = "
EXCEPTIONS
INPUT_ERROR = 1 NO_ENTRY_FOUND = 2 PROG_VARNT_ERROR = 3
IMPORTING Parameters details for FM_SELECT_MULTIPLE
I_FIKRS - Financial Management Area
Data type: FMCI-FIKRSOptional: No
Call by Reference: Yes
I_FIPEX_FICTR_FONDS -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_BUDGETPD_ONLY -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_BSP_ELEMENT -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_BSP_ELEMENT_BCS -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_SELECT_WITHOUT_FONDS -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_SELECT_WITHOUT_BUDGETPD -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_SELECT_WITHOUT_FUNCTION -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_SELECT_WITHOUT_MEASURE -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_SELECT_WITHOUT_GRANT -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_STATUS -
Data type: FMDY-XFELDDefault: 'U'
Optional: Yes
Call by Reference: Yes
I_GJAHR - Fiscal Year
Data type: FMCI-GJAHROptional: No
Call by Reference: Yes
I_LIST_TITLE - List heading
Data type: SY-TITLEOptional: Yes
Call by Reference: Yes
I_FLG_NO_LIST - Display no list
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLG_NO_OVERTAKE -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLG_MAINT_SEQUENT -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLG_MAINT_MULTIPLE -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLG_DEL -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLG_CHECK_BUDGET -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_MAINT_FUNCNAME -
Data type: TFDIR-FUNCNAMEDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_PROG_VARNT -
Data type: RSVAR-VARIANTDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FLG_BLANK_DIM_BCS -
Data type: FMSLBLNKDIMOptional: Yes
Call by Reference: Yes
I_VARNT - Variant
Data type: FMHICI-VARNTDefault: '000'
Optional: Yes
Call by Reference: Yes
I_HIVARNT - Hierarchy Variant of Funds Center
Data type: FMHISV-HIVARNTOptional: Yes
Call by Reference: Yes
I_POPER - Period
Data type: T009B-POPEROptional: Yes
Call by Reference: Yes
I_FIPEX_ONLY -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FICTR_ONLY -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FONDS_BP_ONLY -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
I_FONDS_ONLY -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: Yes
EXPORTING Parameters details for FM_SELECT_MULTIPLE
E_F_FKRS -
Data type: FKRSOptional: No
Call by Reference: Yes
E_F_FVAR -
Data type: FVAROptional: No
Call by Reference: Yes
TABLES Parameters details for FM_SELECT_MULTIPLE
T_FMSLBSP -
Data type: FMSLBSPOptional: Yes
Call by Reference: No ( called with pass by value option)
T_FMSLFFBP -
Data type: FMSLFFBPOptional: Yes
Call by Reference: Yes
T_FMSLTRP -
Data type: FMSLTRPOptional: Yes
Call by Reference: No ( called with pass by value option)
T_FMSLFCTR -
Data type: FMSLFCTROptional: Yes
Call by Reference: No ( called with pass by value option)
T_FMSLFPEX -
Data type: FM_T_CISLOptional: Yes
Call by Reference: Yes
T_FMSLFFND -
Data type: FMSLFFNDOptional: Yes
Call by Reference: No ( called with pass by value option)
T_FMSLPARA -
Data type: FMSLPARAOptional: Yes
Call by Reference: No ( called with pass by value option)
T_FMSLHEADER -
Data type: FMSLHEADEROptional: Yes
Call by Reference: No ( called with pass by value option)
T_FMSLFIELDS -
Data type: FMSLFIELDSOptional: Yes
Call by Reference: No ( called with pass by value option)
T_FMSLFBDP -
Data type: FMSLFBDPOptional: Yes
Call by Reference: Yes
EXCEPTIONS details
INPUT_ERROR - Wrong Input Parameter
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_ENTRY_FOUND - No records were selected
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PROG_VARNT_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for FM_SELECT_MULTIPLE 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_fikrs | TYPE FMCI-FIKRS, " | |||
lv_e_f_fkrs | TYPE FKRS, " | |||
lt_t_fmslbsp | TYPE STANDARD TABLE OF FMSLBSP, " | |||
lv_input_error | TYPE FMSLBSP, " | |||
lt_t_fmslffbp | TYPE STANDARD TABLE OF FMSLFFBP, " | |||
lv_i_fipex_fictr_fonds | TYPE FMDY-XFELD, " SPACE | |||
lv_i_budgetpd_only | TYPE FMDY-XFELD, " SPACE | |||
lv_i_bsp_element | TYPE FMDY-XFELD, " SPACE | |||
lv_i_bsp_element_bcs | TYPE FMDY-XFELD, " SPACE | |||
lv_i_select_without_fonds | TYPE FMDY-XFELD, " SPACE | |||
lv_i_select_without_budgetpd | TYPE FMDY-XFELD, " SPACE | |||
lv_i_select_without_function | TYPE FMDY-XFELD, " SPACE | |||
lv_i_select_without_measure | TYPE FMDY-XFELD, " SPACE | |||
lv_i_select_without_grant | TYPE FMDY-XFELD, " SPACE | |||
lv_i_status | TYPE FMDY-XFELD, " 'U' | |||
lv_i_gjahr | TYPE FMCI-GJAHR, " | |||
lv_e_f_fvar | TYPE FVAR, " | |||
lt_t_fmsltrp | TYPE STANDARD TABLE OF FMSLTRP, " | |||
lv_no_entry_found | TYPE FMSLTRP, " | |||
lv_i_list_title | TYPE SY-TITLE, " | |||
lv_i_flg_no_list | TYPE FMDY-XFELD, " SPACE | |||
lv_i_flg_no_overtake | TYPE FMDY-XFELD, " SPACE | |||
lv_i_flg_maint_sequent | TYPE FMDY-XFELD, " SPACE | |||
lv_i_flg_maint_multiple | TYPE FMDY-XFELD, " SPACE | |||
lv_i_flg_del | TYPE FMDY-XFELD, " SPACE | |||
lv_i_flg_check_budget | TYPE FMDY-XFELD, " SPACE | |||
lv_i_maint_funcname | TYPE TFDIR-FUNCNAME, " SPACE | |||
lv_i_prog_varnt | TYPE RSVAR-VARIANT, " SPACE | |||
lv_i_flg_blank_dim_bcs | TYPE FMSLBLNKDIM, " | |||
lv_i_varnt | TYPE FMHICI-VARNT, " '000' | |||
lt_t_fmslfctr | TYPE STANDARD TABLE OF FMSLFCTR, " | |||
lv_prog_varnt_error | TYPE FMSLFCTR, " | |||
lv_i_hivarnt | TYPE FMHISV-HIVARNT, " | |||
lt_t_fmslfpex | TYPE STANDARD TABLE OF FM_T_CISL, " | |||
lv_i_poper | TYPE T009B-POPER, " | |||
lt_t_fmslffnd | TYPE STANDARD TABLE OF FMSLFFND, " | |||
lt_t_fmslpara | TYPE STANDARD TABLE OF FMSLPARA, " | |||
lv_i_fipex_only | TYPE FMDY-XFELD, " SPACE | |||
lv_i_fictr_only | TYPE FMDY-XFELD, " SPACE | |||
lt_t_fmslheader | TYPE STANDARD TABLE OF FMSLHEADER, " | |||
lt_t_fmslfields | TYPE STANDARD TABLE OF FMSLFIELDS, " | |||
lv_i_fonds_bp_only | TYPE FMDY-XFELD, " SPACE | |||
lt_t_fmslfbdp | TYPE STANDARD TABLE OF FMSLFBDP, " | |||
lv_i_fonds_only | TYPE FMDY-XFELD. " SPACE |
  CALL FUNCTION 'FM_SELECT_MULTIPLE' "Mass selection of master data |
EXPORTING | ||
I_FIKRS | = lv_i_fikrs | |
I_FIPEX_FICTR_FONDS | = lv_i_fipex_fictr_fonds | |
I_BUDGETPD_ONLY | = lv_i_budgetpd_only | |
I_BSP_ELEMENT | = lv_i_bsp_element | |
I_BSP_ELEMENT_BCS | = lv_i_bsp_element_bcs | |
I_SELECT_WITHOUT_FONDS | = lv_i_select_without_fonds | |
I_SELECT_WITHOUT_BUDGETPD | = lv_i_select_without_budgetpd | |
I_SELECT_WITHOUT_FUNCTION | = lv_i_select_without_function | |
I_SELECT_WITHOUT_MEASURE | = lv_i_select_without_measure | |
I_SELECT_WITHOUT_GRANT | = lv_i_select_without_grant | |
I_STATUS | = lv_i_status | |
I_GJAHR | = lv_i_gjahr | |
I_LIST_TITLE | = lv_i_list_title | |
I_FLG_NO_LIST | = lv_i_flg_no_list | |
I_FLG_NO_OVERTAKE | = lv_i_flg_no_overtake | |
I_FLG_MAINT_SEQUENT | = lv_i_flg_maint_sequent | |
I_FLG_MAINT_MULTIPLE | = lv_i_flg_maint_multiple | |
I_FLG_DEL | = lv_i_flg_del | |
I_FLG_CHECK_BUDGET | = lv_i_flg_check_budget | |
I_MAINT_FUNCNAME | = lv_i_maint_funcname | |
I_PROG_VARNT | = lv_i_prog_varnt | |
I_FLG_BLANK_DIM_BCS | = lv_i_flg_blank_dim_bcs | |
I_VARNT | = lv_i_varnt | |
I_HIVARNT | = lv_i_hivarnt | |
I_POPER | = lv_i_poper | |
I_FIPEX_ONLY | = lv_i_fipex_only | |
I_FICTR_ONLY | = lv_i_fictr_only | |
I_FONDS_BP_ONLY | = lv_i_fonds_bp_only | |
I_FONDS_ONLY | = lv_i_fonds_only | |
IMPORTING | ||
E_F_FKRS | = lv_e_f_fkrs | |
E_F_FVAR | = lv_e_f_fvar | |
TABLES | ||
T_FMSLBSP | = lt_t_fmslbsp | |
T_FMSLFFBP | = lt_t_fmslffbp | |
T_FMSLTRP | = lt_t_fmsltrp | |
T_FMSLFCTR | = lt_t_fmslfctr | |
T_FMSLFPEX | = lt_t_fmslfpex | |
T_FMSLFFND | = lt_t_fmslffnd | |
T_FMSLPARA | = lt_t_fmslpara | |
T_FMSLHEADER | = lt_t_fmslheader | |
T_FMSLFIELDS | = lt_t_fmslfields | |
T_FMSLFBDP | = lt_t_fmslfbdp | |
EXCEPTIONS | ||
INPUT_ERROR = 1 | ||
NO_ENTRY_FOUND = 2 | ||
PROG_VARNT_ERROR = 3 | ||
. " FM_SELECT_MULTIPLE |
ABAP code using 7.40 inline data declarations to call FM FM_SELECT_MULTIPLE
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 FIKRS FROM FMCI INTO @DATA(ld_i_fikrs). | ||||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_fipex_fictr_fonds). | ||||
DATA(ld_i_fipex_fictr_fonds) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_budgetpd_only). | ||||
DATA(ld_i_budgetpd_only) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_bsp_element). | ||||
DATA(ld_i_bsp_element) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_bsp_element_bcs). | ||||
DATA(ld_i_bsp_element_bcs) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_select_without_fonds). | ||||
DATA(ld_i_select_without_fonds) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_select_without_budgetpd). | ||||
DATA(ld_i_select_without_budgetpd) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_select_without_function). | ||||
DATA(ld_i_select_without_function) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_select_without_measure). | ||||
DATA(ld_i_select_without_measure) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_select_without_grant). | ||||
DATA(ld_i_select_without_grant) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_status). | ||||
DATA(ld_i_status) | = 'U'. | |||
"SELECT single GJAHR FROM FMCI INTO @DATA(ld_i_gjahr). | ||||
"SELECT single TITLE FROM SY INTO @DATA(ld_i_list_title). | ||||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_flg_no_list). | ||||
DATA(ld_i_flg_no_list) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_flg_no_overtake). | ||||
DATA(ld_i_flg_no_overtake) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_flg_maint_sequent). | ||||
DATA(ld_i_flg_maint_sequent) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_flg_maint_multiple). | ||||
DATA(ld_i_flg_maint_multiple) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_flg_del). | ||||
DATA(ld_i_flg_del) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_flg_check_budget). | ||||
DATA(ld_i_flg_check_budget) | = ' '. | |||
"SELECT single FUNCNAME FROM TFDIR INTO @DATA(ld_i_maint_funcname). | ||||
DATA(ld_i_maint_funcname) | = ' '. | |||
"SELECT single VARIANT FROM RSVAR INTO @DATA(ld_i_prog_varnt). | ||||
DATA(ld_i_prog_varnt) | = ' '. | |||
"SELECT single VARNT FROM FMHICI INTO @DATA(ld_i_varnt). | ||||
DATA(ld_i_varnt) | = '000'. | |||
"SELECT single HIVARNT FROM FMHISV INTO @DATA(ld_i_hivarnt). | ||||
"SELECT single POPER FROM T009B INTO @DATA(ld_i_poper). | ||||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_fipex_only). | ||||
DATA(ld_i_fipex_only) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_fictr_only). | ||||
DATA(ld_i_fictr_only) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_fonds_bp_only). | ||||
DATA(ld_i_fonds_bp_only) | = ' '. | |||
"SELECT single XFELD FROM FMDY INTO @DATA(ld_i_fonds_only). | ||||
DATA(ld_i_fonds_only) | = ' '. | |||
Search for further information about these or an SAP related objects