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_RBKPV
Optional: No
Call by Reference: No ( called with pass by value option)

I_XFWNAV -

Data type: MRM_RBKPV-WMWST1
Optional: No
Call by Reference: No ( called with pass by value option)

I_SIMULATION - Simulation

Data type: C
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_XNEGP -

Data type: ACCIT-XNEGP
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_STGRD - Reversal Reason

Data type: UF05A-STGRD
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

T_LIMIT -

Data type: MMCR_TLIMIT
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_EDITOR -

Data type: C_TEXTEDIT_CONTROL
Optional: Yes
Call by Reference: Yes

I_RET -

Data type: MRM_T_RETENT
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_SKONTO_NETTO - Cash Discount Amount (Net)

Data type: MRM_RBKPV-RMWWR
Optional: No
Call by Reference: No ( called with pass by value option)

I_SKONTO_BRUTTO - Cash Discount Amount (Gross)

Data type: MRM_RBKPV-RMWWR
Optional: No
Call by Reference: No ( called with pass by value option)

I_SKTOBAS_NETTO - Cash Discount Base (Net)

Data type: MRM_RBKPV-RMWWR
Optional: No
Call by Reference: No ( called with pass by value option)

I_SKTOBAS_BRUTTO - Cash Discount Base (Gross)

Data type: MRM_RBKPV-RMWWR
Optional: No
Call by Reference: No ( called with pass by value option)

I_SKONTO_BNK -

Data type: MRM_RBKPV-RMWWR
Optional: No
Call by Reference: No ( called with pass by value option)

I_NAV_BNK -

Data type: MRM_RBKPV-BEZNK
Optional: No
Call by Reference: No ( called with pass by value option)

I_SKV_NAV_FW_SUM -

Data type: DRSEG-NAV_FW
Optional: No
Call by Reference: No ( called with pass by value option)

I_FWSTE -

Data type: MRM_RBKPV-WMWST1
Optional: No
Call by Reference: No ( called with pass by value option)

EXPORTING Parameters details for MRM_INVOICE_POST

E_BELNR -

Data type: MRM_RBKPV-BELNR
Optional: No
Call by Reference: No ( called with pass by value option)

E_GJAHR - Fiscal Year

Data type: MRM_RBKPV-GJAHR
Optional: 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-BOOLE
Optional: No
Call by Reference: No ( called with pass by value option)

E_MRM_ZLSPR - Logistics payment block

Data type: MRM_ZLSPR
Optional: 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_TDRSEG
Optional: No
Call by Reference: No ( called with pass by value option)

T_BSET -

Data type: BSET
Optional: No
Call by Reference: No ( called with pass by value option)

T_RSKOF -

Data type: RSKOF
Optional: Yes
Call by Reference: No ( called with pass by value option)

T_KUERZ_BSET -

Data type: BSET
Optional: Yes
Call by Reference: No ( called with pass by value option)

T_RIRK -

Data type: RIRK
Optional: Yes
Call by Reference: No ( called with pass by value option)

T_TXTEMP -

Data type: RBTX_TEMP
Optional: Yes
Call by Reference: No ( called with pass by value option)

T_RBKOMV -

Data type: RBKOMV
Optional: Yes
Call by Reference: No ( called with pass by value option)

T_WITH_ITEM -

Data type: WITH_ITEMX
Optional: 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



Comments on this SAP object

What made you want to lookup this SAP object? Please tell us what you were looking for and anything you would like to be included on this page!