SAP BP_GIVE_MESSAGE Function Module for
BP_GIVE_MESSAGE is a standard bp give message SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used to perform a specific ABAP function and below is the pattern details, 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 bp give message FM, simply by entering the name BP_GIVE_MESSAGE into the relevant SAP transaction such as SE37 or SE38.
Function Group: BPFC
Program Name: SAPLBPFC
Main Program: SAPLBPFC
Appliation area: K
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function BP_GIVE_MESSAGE 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 'BP_GIVE_MESSAGE'".
EXPORTING
* I_CHK_LEVEL = ' ' "
* I_POSIT_PR = ' ' "Controlling element item
* I_POSIT_XX = ' ' "Account assignment element item
* I_FAREA_PR = ' ' "Functional Area
* I_FAREA_XX = ' ' "Functional Area
* I_RIB_POOL = ' ' "
I_VERFUEGT = "Total of assigned funds
I_VERTEILBAR = "Distributable budget
* I_WAERS = ' ' "Budget Currency
* I_WRTTP = '42' "Assigned value category
I_BPROF = "Budget profile
* I_GEBER = ' ' "Fund
I_APPLIK = "Application
I_FIKRS = "
* I_FLG_COVER = ' ' "
* I_FLG_CHECK_SOFT = ' ' "
* I_GJAHR = '0000' "Fiscal year
* I_GNJHR = '0000' "
* I_LINE = ' ' "Line item
* I_MSG = 'X' "
* I_OBJNR_PD = ' ' "Hierarchy object BPHI (such as project def.)
* I_OBJNR_PR = ' ' "Controlling element object number
* I_OBJNR_XX = ' ' "Account assignment element object number
IMPORTING
E_LEVEL = "
E_MAX_VERTEILBAR = "
TABLES
* T_LEVEL_CONVERSION = "
EXCEPTIONS
NO_ACTION = 1
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_SAPLBPFC_001 User Exist: Define Mail Recipients
EXIT_SAPLBPFC_002 User-Exit: Specification of the Action for the Availability Control
EXIT_SAPLBPFC_003 User Exit: Substitution of Functional Area's Commitment/Actual to Be Chkd
IMPORTING Parameters details for BP_GIVE_MESSAGE
I_CHK_LEVEL -
Data type:Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_POSIT_PR - Controlling element item
Data type: BPIJ-BP_POSITDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_POSIT_XX - Account assignment element item
Data type: BPIJ-POSITDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_FAREA_PR - Functional Area
Data type: BPIJ-BP_FAREADefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_FAREA_XX - Functional Area
Data type: BPIJ-FAREADefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_RIB_POOL -
Data type: FM_DECKRNGDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_VERFUEGT - Total of assigned funds
Data type: BPJA-WLJHROptional: No
Call by Reference: No ( called with pass by value option)
I_VERTEILBAR - Distributable budget
Data type: BPJA-WLJHROptional: No
Call by Reference: No ( called with pass by value option)
I_WAERS - Budget Currency
Data type: BPJA-TWAERDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_WRTTP - Assigned value category
Data type: BPJA-WRTTPDefault: '42'
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_BPROF - Budget profile
Data type: TBP1C-PROFILOptional: No
Call by Reference: No ( called with pass by value option)
I_GEBER - Fund
Data type: BPJA-GEBERDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_APPLIK - Application
Data type: TBP1C-APPLIKOptional: No
Call by Reference: No ( called with pass by value option)
I_FIKRS -
Data type: FM01-FIKRSOptional: No
Call by Reference: No ( called with pass by value option)
I_FLG_COVER -
Data type: FMDY-XFELDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_FLG_CHECK_SOFT -
Data type:Default: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_GJAHR - Fiscal year
Data type: BPJA-GJAHRDefault: '0000'
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_GNJHR -
Data type: BPJA-GNJHRDefault: '0000'
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_LINE - Line item
Data type: MESG-ZEILEDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_MSG -
Data type:Default: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_OBJNR_PD - Hierarchy object BPHI (such as project def.)
Data type: BPHI-OBJNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_OBJNR_PR - Controlling element object number
Data type: BPTR-OBJNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_OBJNR_XX - Account assignment element object number
Data type: ONR00-OBJNRDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for BP_GIVE_MESSAGE
E_LEVEL -
Data type: TBPFE-ACTIONOptional: No
Call by Reference: No ( called with pass by value option)
E_MAX_VERTEILBAR -
Data type: BPJA-WLJHROptional: No
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for BP_GIVE_MESSAGE
T_LEVEL_CONVERSION -
Data type: BPAVC_T_LEVEL_CONVERSIONOptional: Yes
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
NO_ACTION - No action triggered
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for BP_GIVE_MESSAGE 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_e_level | TYPE TBPFE-ACTION, " | |||
| lv_no_action | TYPE TBPFE, " | |||
| lv_i_chk_level | TYPE TBPFE, " SPACE | |||
| lt_t_level_conversion | TYPE STANDARD TABLE OF BPAVC_T_LEVEL_CONVERSION, " | |||
| lv_i_posit_pr | TYPE BPIJ-BP_POSIT, " SPACE | |||
| lv_i_posit_xx | TYPE BPIJ-POSIT, " SPACE | |||
| lv_i_farea_pr | TYPE BPIJ-BP_FAREA, " SPACE | |||
| lv_i_farea_xx | TYPE BPIJ-FAREA, " SPACE | |||
| lv_i_rib_pool | TYPE FM_DECKRNG, " SPACE | |||
| lv_i_verfuegt | TYPE BPJA-WLJHR, " | |||
| lv_i_verteilbar | TYPE BPJA-WLJHR, " | |||
| lv_i_waers | TYPE BPJA-TWAER, " SPACE | |||
| lv_i_wrttp | TYPE BPJA-WRTTP, " '42' | |||
| lv_i_bprof | TYPE TBP1C-PROFIL, " | |||
| lv_i_geber | TYPE BPJA-GEBER, " SPACE | |||
| lv_e_max_verteilbar | TYPE BPJA-WLJHR, " | |||
| lv_i_applik | TYPE TBP1C-APPLIK, " | |||
| lv_i_fikrs | TYPE FM01-FIKRS, " | |||
| lv_i_flg_cover | TYPE FMDY-XFELD, " SPACE | |||
| lv_i_flg_check_soft | TYPE FMDY, " ' ' | |||
| lv_i_gjahr | TYPE BPJA-GJAHR, " '0000' | |||
| lv_i_gnjhr | TYPE BPJA-GNJHR, " '0000' | |||
| lv_i_line | TYPE MESG-ZEILE, " SPACE | |||
| lv_i_msg | TYPE MESG, " 'X' | |||
| lv_i_objnr_pd | TYPE BPHI-OBJNR, " SPACE | |||
| lv_i_objnr_pr | TYPE BPTR-OBJNR, " SPACE | |||
| lv_i_objnr_xx | TYPE ONR00-OBJNR. " SPACE |
|   CALL FUNCTION 'BP_GIVE_MESSAGE' " |
| EXPORTING | ||
| I_CHK_LEVEL | = lv_i_chk_level | |
| I_POSIT_PR | = lv_i_posit_pr | |
| I_POSIT_XX | = lv_i_posit_xx | |
| I_FAREA_PR | = lv_i_farea_pr | |
| I_FAREA_XX | = lv_i_farea_xx | |
| I_RIB_POOL | = lv_i_rib_pool | |
| I_VERFUEGT | = lv_i_verfuegt | |
| I_VERTEILBAR | = lv_i_verteilbar | |
| I_WAERS | = lv_i_waers | |
| I_WRTTP | = lv_i_wrttp | |
| I_BPROF | = lv_i_bprof | |
| I_GEBER | = lv_i_geber | |
| I_APPLIK | = lv_i_applik | |
| I_FIKRS | = lv_i_fikrs | |
| I_FLG_COVER | = lv_i_flg_cover | |
| I_FLG_CHECK_SOFT | = lv_i_flg_check_soft | |
| I_GJAHR | = lv_i_gjahr | |
| I_GNJHR | = lv_i_gnjhr | |
| I_LINE | = lv_i_line | |
| I_MSG | = lv_i_msg | |
| I_OBJNR_PD | = lv_i_objnr_pd | |
| I_OBJNR_PR | = lv_i_objnr_pr | |
| I_OBJNR_XX | = lv_i_objnr_xx | |
| IMPORTING | ||
| E_LEVEL | = lv_e_level | |
| E_MAX_VERTEILBAR | = lv_e_max_verteilbar | |
| TABLES | ||
| T_LEVEL_CONVERSION | = lt_t_level_conversion | |
| EXCEPTIONS | ||
| NO_ACTION = 1 | ||
| . " BP_GIVE_MESSAGE | ||
ABAP code using 7.40 inline data declarations to call FM BP_GIVE_MESSAGE
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 ACTION FROM TBPFE INTO @DATA(ld_e_level). | ||||
| DATA(ld_i_chk_level) | = ' '. | |||
| "SELECT single BP_POSIT FROM BPIJ INTO @DATA(ld_i_posit_pr). | ||||
| DATA(ld_i_posit_pr) | = ' '. | |||
| "SELECT single POSIT FROM BPIJ INTO @DATA(ld_i_posit_xx). | ||||
| DATA(ld_i_posit_xx) | = ' '. | |||
| "SELECT single BP_FAREA FROM BPIJ INTO @DATA(ld_i_farea_pr). | ||||
| DATA(ld_i_farea_pr) | = ' '. | |||
| "SELECT single FAREA FROM BPIJ INTO @DATA(ld_i_farea_xx). | ||||
| DATA(ld_i_farea_xx) | = ' '. | |||
| DATA(ld_i_rib_pool) | = ' '. | |||
| "SELECT single WLJHR FROM BPJA INTO @DATA(ld_i_verfuegt). | ||||
| "SELECT single WLJHR FROM BPJA INTO @DATA(ld_i_verteilbar). | ||||
| "SELECT single TWAER FROM BPJA INTO @DATA(ld_i_waers). | ||||
| DATA(ld_i_waers) | = ' '. | |||
| "SELECT single WRTTP FROM BPJA INTO @DATA(ld_i_wrttp). | ||||
| DATA(ld_i_wrttp) | = '42'. | |||
| "SELECT single PROFIL FROM TBP1C INTO @DATA(ld_i_bprof). | ||||
| "SELECT single GEBER FROM BPJA INTO @DATA(ld_i_geber). | ||||
| DATA(ld_i_geber) | = ' '. | |||
| "SELECT single WLJHR FROM BPJA INTO @DATA(ld_e_max_verteilbar). | ||||
| "SELECT single APPLIK FROM TBP1C INTO @DATA(ld_i_applik). | ||||
| "SELECT single FIKRS FROM FM01 INTO @DATA(ld_i_fikrs). | ||||
| "SELECT single XFELD FROM FMDY INTO @DATA(ld_i_flg_cover). | ||||
| DATA(ld_i_flg_cover) | = ' '. | |||
| DATA(ld_i_flg_check_soft) | = ' '. | |||
| "SELECT single GJAHR FROM BPJA INTO @DATA(ld_i_gjahr). | ||||
| DATA(ld_i_gjahr) | = '0000'. | |||
| "SELECT single GNJHR FROM BPJA INTO @DATA(ld_i_gnjhr). | ||||
| DATA(ld_i_gnjhr) | = '0000'. | |||
| "SELECT single ZEILE FROM MESG INTO @DATA(ld_i_line). | ||||
| DATA(ld_i_line) | = ' '. | |||
| DATA(ld_i_msg) | = 'X'. | |||
| "SELECT single OBJNR FROM BPHI INTO @DATA(ld_i_objnr_pd). | ||||
| DATA(ld_i_objnr_pd) | = ' '. | |||
| "SELECT single OBJNR FROM BPTR INTO @DATA(ld_i_objnr_pr). | ||||
| DATA(ld_i_objnr_pr) | = ' '. | |||
| "SELECT single OBJNR FROM ONR00 INTO @DATA(ld_i_objnr_xx). | ||||
| DATA(ld_i_objnr_xx) | = ' '. | |||
Search for further information about these or an SAP related objects