SAP MRM_INVOICE_POST Function Module for Logistics Invoice Verification: Posting of Invoice Documents
MRM_INVOICE_POST is a standard mrm invoice post SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Logistics Invoice Verification: Posting of Invoice Documents 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 mrm invoice post FM, simply by entering the name MRM_INVOICE_POST into the relevant SAP transaction such as SE37 or SE38.
Function Group: MRMP
Program Name: SAPLMRMP
Main Program: SAPLMRMP
Appliation area: M
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function MRM_INVOICE_POST 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 'MRM_INVOICE_POST'"Logistics Invoice Verification: Posting of Invoice Documents.
EXPORTING
I_RBKPV = "Invoice Document Header
I_XFWNAV = "
* I_SIMULATION = ' ' "Simulation
* I_XNEGP = ' ' "
* I_STGRD = ' ' "Reversal Reason
* T_LIMIT = "
* I_EDITOR = "
* I_RET = "
I_SKONTO_NETTO = "Cash Discount Amount (Net)
I_SKONTO_BRUTTO = "Cash Discount Amount (Gross)
I_SKTOBAS_NETTO = "Cash Discount Base (Net)
I_SKTOBAS_BRUTTO = "Cash Discount Base (Gross)
I_SKONTO_BNK = "
I_NAV_BNK = "
I_SKV_NAV_FW_SUM = "
I_FWSTE = "
IMPORTING
E_BELNR = "
E_GJAHR = "Fiscal Year
E_CORRECTIONS_WANTED = "Data Element for BOOLE Domain: TRUE (='X') and FALSE (=' ')
E_MRM_ZLSPR = "Logistics payment block
TABLES
T_DRSEG = "Table of Selected Purchase Order Items
T_BSET = "
* T_RSKOF = "
* T_KUERZ_BSET = "
* T_RIRK = "
* T_TXTEMP = "
* T_RBKOMV = "
* T_WITH_ITEM = "
EXCEPTIONS
NO_ENTRY_FOUND = 1 ERROR_AT_MESSAGE_SETUP = 10 FATAL_ERROR = 11 POST_ERROR = 12 BLART_MISSING = 13 BASELINE_DATE_INITIAL = 14 COND_CORR_ERROR = 15 NO_ONETIME_VENDOR_DATA = 16 DATE_TOLERANCE = 17 AC_DOCUMENT_CREATE_ERROR = 18 MATERIAL_NOT_ENQUEUED = 19 SALDO_ERROR = 2 ERROR_IN_BADI = 20 INTERNAL_ERROR = 3 NUMBER_ERROR = 4 CURRENCY_ERROR = 5 ERROR_IN_FUNCTION_MODULE = 6 PARAMETER_ERROR = 7 PERIOD_ERROR = 8 NO_ACCOUNT_FOUND = 9
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_SAPLMRMP_001 Customer Exit: Enter Invoice - Logistics Invoice Verification
EXIT_SAPLMRMP_004 Customer Exit: Item Text In Follow-On Documents
EXIT_SAPLMRMP_010 Customer Exit: Analyze Document Header and Item Data
IMPORTING Parameters details for MRM_INVOICE_POST
I_RBKPV - Invoice Document Header
Data type: MRM_RBKPVOptional: No
Call by Reference: No ( called with pass by value option)
I_XFWNAV -
Data type: MRM_RBKPV-WMWST1Optional: No
Call by Reference: No ( called with pass by value option)
I_SIMULATION - Simulation
Data type: CDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_XNEGP -
Data type: ACCIT-XNEGPDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
I_STGRD - Reversal Reason
Data type: UF05A-STGRDDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
T_LIMIT -
Data type: MMCR_TLIMITOptional: Yes
Call by Reference: No ( called with pass by value option)
I_EDITOR -
Data type: C_TEXTEDIT_CONTROLOptional: Yes
Call by Reference: Yes
I_RET -
Data type: MRM_T_RETENTOptional: Yes
Call by Reference: No ( called with pass by value option)
I_SKONTO_NETTO - Cash Discount Amount (Net)
Data type: MRM_RBKPV-RMWWROptional: No
Call by Reference: No ( called with pass by value option)
I_SKONTO_BRUTTO - Cash Discount Amount (Gross)
Data type: MRM_RBKPV-RMWWROptional: No
Call by Reference: No ( called with pass by value option)
I_SKTOBAS_NETTO - Cash Discount Base (Net)
Data type: MRM_RBKPV-RMWWROptional: No
Call by Reference: No ( called with pass by value option)
I_SKTOBAS_BRUTTO - Cash Discount Base (Gross)
Data type: MRM_RBKPV-RMWWROptional: No
Call by Reference: No ( called with pass by value option)
I_SKONTO_BNK -
Data type: MRM_RBKPV-RMWWROptional: No
Call by Reference: No ( called with pass by value option)
I_NAV_BNK -
Data type: MRM_RBKPV-BEZNKOptional: No
Call by Reference: No ( called with pass by value option)
I_SKV_NAV_FW_SUM -
Data type: DRSEG-NAV_FWOptional: No
Call by Reference: No ( called with pass by value option)
I_FWSTE -
Data type: MRM_RBKPV-WMWST1Optional: No
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for MRM_INVOICE_POST
E_BELNR -
Data type: MRM_RBKPV-BELNROptional: No
Call by Reference: No ( called with pass by value option)
E_GJAHR - Fiscal Year
Data type: MRM_RBKPV-GJAHROptional: No
Call by Reference: No ( called with pass by value option)
E_CORRECTIONS_WANTED - Data Element for BOOLE Domain: TRUE (='X') and FALSE (=' ')
Data type: BOOLE-BOOLEOptional: No
Call by Reference: No ( called with pass by value option)
E_MRM_ZLSPR - Logistics payment block
Data type: MRM_ZLSPROptional: No
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for MRM_INVOICE_POST
T_DRSEG - Table of Selected Purchase Order Items
Data type: MMCR_TDRSEGOptional: No
Call by Reference: No ( called with pass by value option)
T_BSET -
Data type: BSETOptional: No
Call by Reference: No ( called with pass by value option)
T_RSKOF -
Data type: RSKOFOptional: Yes
Call by Reference: No ( called with pass by value option)
T_KUERZ_BSET -
Data type: BSETOptional: Yes
Call by Reference: No ( called with pass by value option)
T_RIRK -
Data type: RIRKOptional: Yes
Call by Reference: No ( called with pass by value option)
T_TXTEMP -
Data type: RBTX_TEMPOptional: Yes
Call by Reference: No ( called with pass by value option)
T_RBKOMV -
Data type: RBKOMVOptional: Yes
Call by Reference: No ( called with pass by value option)
T_WITH_ITEM -
Data type: WITH_ITEMXOptional: Yes
Call by Reference: Yes
EXCEPTIONS details
NO_ENTRY_FOUND - No Entry Found
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ERROR_AT_MESSAGE_SETUP -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FATAL_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
POST_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
BLART_MISSING - Document Type Missing
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
BASELINE_DATE_INITIAL -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
COND_CORR_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_ONETIME_VENDOR_DATA -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
DATE_TOLERANCE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
AC_DOCUMENT_CREATE_ERROR -
Data type:Optional: No
Call by Reference: Yes
MATERIAL_NOT_ENQUEUED -
Data type:Optional: No
Call by Reference: Yes
SALDO_ERROR - Balance not equal to zero
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ERROR_IN_BADI -
Data type:Optional: No
Call by Reference: Yes
INTERNAL_ERROR - Internal Error
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NUMBER_ERROR - Error during number assignment
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
CURRENCY_ERROR - Error during currency translation
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ERROR_IN_FUNCTION_MODULE -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PARAMETER_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PERIOD_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_ACCOUNT_FOUND - Account not found
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for MRM_INVOICE_POST 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_belnr | TYPE MRM_RBKPV-BELNR, " | |||
| lv_i_rbkpv | TYPE MRM_RBKPV, " | |||
| lt_t_drseg | TYPE STANDARD TABLE OF MMCR_TDRSEG, " | |||
| lv_no_entry_found | TYPE MMCR_TDRSEG, " | |||
| lv_i_xfwnav | TYPE MRM_RBKPV-WMWST1, " | |||
| lv_error_at_message_setup | TYPE MRM_RBKPV, " | |||
| lv_fatal_error | TYPE MRM_RBKPV, " | |||
| lv_i_simulation | TYPE C, " SPACE | |||
| lv_i_xnegp | TYPE ACCIT-XNEGP, " SPACE | |||
| lv_post_error | TYPE ACCIT, " | |||
| lv_i_stgrd | TYPE UF05A-STGRD, " SPACE | |||
| lv_blart_missing | TYPE UF05A, " | |||
| lv_t_limit | TYPE MMCR_TLIMIT, " | |||
| lv_baseline_date_initial | TYPE MMCR_TLIMIT, " | |||
| lv_i_editor | TYPE C_TEXTEDIT_CONTROL, " | |||
| lv_cond_corr_error | TYPE C_TEXTEDIT_CONTROL, " | |||
| lv_i_ret | TYPE MRM_T_RETENT, " | |||
| lv_no_onetime_vendor_data | TYPE MRM_T_RETENT, " | |||
| lv_date_tolerance | TYPE MRM_T_RETENT, " | |||
| lv_ac_document_create_error | TYPE MRM_T_RETENT, " | |||
| lv_material_not_enqueued | TYPE MRM_T_RETENT, " | |||
| lt_t_bset | TYPE STANDARD TABLE OF BSET, " | |||
| lv_e_gjahr | TYPE MRM_RBKPV-GJAHR, " | |||
| lv_saldo_error | TYPE MRM_RBKPV, " | |||
| lv_i_skonto_netto | TYPE MRM_RBKPV-RMWWR, " | |||
| lv_error_in_badi | TYPE MRM_RBKPV, " | |||
| lt_t_rskof | TYPE STANDARD TABLE OF RSKOF, " | |||
| lv_internal_error | TYPE RSKOF, " | |||
| lv_i_skonto_brutto | TYPE MRM_RBKPV-RMWWR, " | |||
| lv_e_corrections_wanted | TYPE BOOLE-BOOLE, " | |||
| lv_e_mrm_zlspr | TYPE MRM_ZLSPR, " | |||
| lv_number_error | TYPE MRM_ZLSPR, " | |||
| lt_t_kuerz_bset | TYPE STANDARD TABLE OF BSET, " | |||
| lv_i_sktobas_netto | TYPE MRM_RBKPV-RMWWR, " | |||
| lt_t_rirk | TYPE STANDARD TABLE OF RIRK, " | |||
| lv_currency_error | TYPE RIRK, " | |||
| lv_i_sktobas_brutto | TYPE MRM_RBKPV-RMWWR, " | |||
| lt_t_txtemp | TYPE STANDARD TABLE OF RBTX_TEMP, " | |||
| lv_i_skonto_bnk | TYPE MRM_RBKPV-RMWWR, " | |||
| lv_error_in_function_module | TYPE MRM_RBKPV, " | |||
| lt_t_rbkomv | TYPE STANDARD TABLE OF RBKOMV, " | |||
| lv_i_nav_bnk | TYPE MRM_RBKPV-BEZNK, " | |||
| lv_parameter_error | TYPE MRM_RBKPV, " | |||
| lt_t_with_item | TYPE STANDARD TABLE OF WITH_ITEMX, " | |||
| lv_period_error | TYPE WITH_ITEMX, " | |||
| lv_i_skv_nav_fw_sum | TYPE DRSEG-NAV_FW, " | |||
| lv_i_fwste | TYPE MRM_RBKPV-WMWST1, " | |||
| lv_no_account_found | TYPE MRM_RBKPV. " |
|   CALL FUNCTION 'MRM_INVOICE_POST' "Logistics Invoice Verification: Posting of Invoice Documents |
| EXPORTING | ||
| I_RBKPV | = lv_i_rbkpv | |
| I_XFWNAV | = lv_i_xfwnav | |
| I_SIMULATION | = lv_i_simulation | |
| I_XNEGP | = lv_i_xnegp | |
| I_STGRD | = lv_i_stgrd | |
| T_LIMIT | = lv_t_limit | |
| I_EDITOR | = lv_i_editor | |
| I_RET | = lv_i_ret | |
| I_SKONTO_NETTO | = lv_i_skonto_netto | |
| I_SKONTO_BRUTTO | = lv_i_skonto_brutto | |
| I_SKTOBAS_NETTO | = lv_i_sktobas_netto | |
| I_SKTOBAS_BRUTTO | = lv_i_sktobas_brutto | |
| I_SKONTO_BNK | = lv_i_skonto_bnk | |
| I_NAV_BNK | = lv_i_nav_bnk | |
| I_SKV_NAV_FW_SUM | = lv_i_skv_nav_fw_sum | |
| I_FWSTE | = lv_i_fwste | |
| IMPORTING | ||
| E_BELNR | = lv_e_belnr | |
| E_GJAHR | = lv_e_gjahr | |
| E_CORRECTIONS_WANTED | = lv_e_corrections_wanted | |
| E_MRM_ZLSPR | = lv_e_mrm_zlspr | |
| TABLES | ||
| T_DRSEG | = lt_t_drseg | |
| T_BSET | = lt_t_bset | |
| T_RSKOF | = lt_t_rskof | |
| T_KUERZ_BSET | = lt_t_kuerz_bset | |
| T_RIRK | = lt_t_rirk | |
| T_TXTEMP | = lt_t_txtemp | |
| T_RBKOMV | = lt_t_rbkomv | |
| T_WITH_ITEM | = lt_t_with_item | |
| EXCEPTIONS | ||
| NO_ENTRY_FOUND = 1 | ||
| ERROR_AT_MESSAGE_SETUP = 10 | ||
| FATAL_ERROR = 11 | ||
| POST_ERROR = 12 | ||
| BLART_MISSING = 13 | ||
| BASELINE_DATE_INITIAL = 14 | ||
| COND_CORR_ERROR = 15 | ||
| NO_ONETIME_VENDOR_DATA = 16 | ||
| DATE_TOLERANCE = 17 | ||
| AC_DOCUMENT_CREATE_ERROR = 18 | ||
| MATERIAL_NOT_ENQUEUED = 19 | ||
| SALDO_ERROR = 2 | ||
| ERROR_IN_BADI = 20 | ||
| INTERNAL_ERROR = 3 | ||
| NUMBER_ERROR = 4 | ||
| CURRENCY_ERROR = 5 | ||
| ERROR_IN_FUNCTION_MODULE = 6 | ||
| PARAMETER_ERROR = 7 | ||
| PERIOD_ERROR = 8 | ||
| NO_ACCOUNT_FOUND = 9 | ||
| . " MRM_INVOICE_POST | ||
ABAP code using 7.40 inline data declarations to call FM MRM_INVOICE_POST
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 BELNR FROM MRM_RBKPV INTO @DATA(ld_e_belnr). | ||||
| "SELECT single WMWST1 FROM MRM_RBKPV INTO @DATA(ld_i_xfwnav). | ||||
| DATA(ld_i_simulation) | = ' '. | |||
| "SELECT single XNEGP FROM ACCIT INTO @DATA(ld_i_xnegp). | ||||
| DATA(ld_i_xnegp) | = ' '. | |||
| "SELECT single STGRD FROM UF05A INTO @DATA(ld_i_stgrd). | ||||
| DATA(ld_i_stgrd) | = ' '. | |||
| "SELECT single GJAHR FROM MRM_RBKPV INTO @DATA(ld_e_gjahr). | ||||
| "SELECT single RMWWR FROM MRM_RBKPV INTO @DATA(ld_i_skonto_netto). | ||||
| "SELECT single RMWWR FROM MRM_RBKPV INTO @DATA(ld_i_skonto_brutto). | ||||
| "SELECT single BOOLE FROM BOOLE INTO @DATA(ld_e_corrections_wanted). | ||||
| "SELECT single RMWWR FROM MRM_RBKPV INTO @DATA(ld_i_sktobas_netto). | ||||
| "SELECT single RMWWR FROM MRM_RBKPV INTO @DATA(ld_i_sktobas_brutto). | ||||
| "SELECT single RMWWR FROM MRM_RBKPV INTO @DATA(ld_i_skonto_bnk). | ||||
| "SELECT single BEZNK FROM MRM_RBKPV INTO @DATA(ld_i_nav_bnk). | ||||
| "SELECT single NAV_FW FROM DRSEG INTO @DATA(ld_i_skv_nav_fw_sum). | ||||
| "SELECT single WMWST1 FROM MRM_RBKPV INTO @DATA(ld_i_fwste). | ||||
Search for further information about these or an SAP related objects