SAP RM_BACKFLUSH_CHECK Function Module for Input Check: Backflushing and Confirmations in Repetitive Manufacturing
RM_BACKFLUSH_CHECK is a standard rm backflush check SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Input Check: Backflushing and Confirmations in Repetitive Manufacturing 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 rm backflush check FM, simply by entering the name RM_BACKFLUSH_CHECK into the relevant SAP transaction such as SE37 or SE38.
Function Group: BARM
Program Name: SAPLBARM
Main Program: SAPLBARM
Appliation area: C
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function RM_BACKFLUSH_CHECK 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 'RM_BACKFLUSH_CHECK'"Input Check: Backflushing and Confirmations in Repetitive Manufacturing.
EXPORTING
* EXT_COMMIT = ' ' "If 'X', Commit to be triggered outside function module
* CHECK = ' ' "Runs Through Module At All Events
* HUBACKFL = ' ' "Indicator for HU Backflush
* BAPI_CALL = ' ' "Indicator for Invocation per BAPI
IM61B = "Dynpro 100 Fields: Input Information
* MODE = 'B' "Docu See F2
* NO_DIALOG = ' ' "If 'X', function module does not run in dialog mode
* LOCK_FLAG = 'X' "If 'X', run schedule header locked
* REPTP = '01' "REM activity cat.: 01 REM planning 02 assembly order, 03 kanban
* TCODE = ' ' "Transaction Code for Goods Movement Check
* MDAKT = ' ' "Activity Category Authorization Check
* COMMIT_WAIT = ' ' "COMMIT WORK AND WAIT Active?
IMPORTING
EM61B = "Dynpro 100 Fields: Additionally-Read Data
TABLES
* SERNRX = "Serial numbers (IM61B-ERFMG = number of entries)
* T_VENUMLIST = "
* T_COWB_COMP = "Interface Structure of Goods Movement
* T_CLBATCH = "Batch Characteristics
EXCEPTIONS
ALORT_NOT_FOUND = 1 NO_BACKFLUSH_AUTHORITY = 10 OVERFLOW_ERROR = 11 PLAF_NOT_FOUND = 12 QUANTITY_REQUIRED = 13 REASON_WITHOUT_SCRAP = 14 REP_MANU_NOT_ALLOWED = 15 REVISION_NOT_FOUND = 16 RUN_SCHEDULE_LOCKED = 17 SAUF_BLOCKED = 18 SAUF_NOT_FOUND = 19 INVALID_AUART = 2 SAUF_WITHOUT_PKOSA = 20 SAUF_WITHOUT_RSNUM = 21 TABLE_ACCESS_ERROR = 22 UNIT_CONVERSION_ERROR = 23 VERSION_NOT_FOUND = 24 VERSION_NOT_UNIQUE = 25 REPORTING_POINT_ERROR = 26 QUANTITY_ERROR = 27 DETERM_COST_COLL_ERROR = 28 WRONG_UNIT_OF_MEASURE = 29 INVALID_MAT_SAUF_COMBINATION = 3 SPECIAL_STOCK_NOT_FOUND = 30 AUFPL_FIND_ERROR = 31 WRONG_PLAF = 32 PLAF_ERROR = 33 OT_ERROR = 34 FIND_ROUTING_ERROR = 35 SERIALNUMBER_ERROR = 36 FCO_ERROR = 37 ME_DISTRIBUTE_ERROR = 38 INVALID_POSTING_DATE = 4 INVALID_TABLE_ENTRY = 5 INVALID_VERID_SAUF_COMBINATION = 6 LOCK_ERROR = 7 MATERIAL_IN_PLANT_NOT_FOUND = 8 MATERIAL_OR_SAUF_REQUIRED = 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_SAPLBARM_001 Customer Exit: RM_BACKFLUSH_CHECK
EXIT_SAPLBARM_002 Customer Exit: RM_BACKFLUSH_GO
EXIT_SAPLBARM_003 Customer Exit: RM_CANCEL_BACKFLUSH_CHECK
EXIT_SAPLBARM_004 Customer Exit: RM_CANCEL_BACKFLUSH_GO
IMPORTING Parameters details for RM_BACKFLUSH_CHECK
EXT_COMMIT - If 'X', Commit to be triggered outside function module
Data type: CM61Q-CAMODDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
CHECK - Runs Through Module At All Events
Data type: RM61F-SELEKTDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
HUBACKFL - Indicator for HU Backflush
Data type: VHURM_HUBACKFLDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
BAPI_CALL - Indicator for Invocation per BAPI
Data type: CDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
IM61B - Dynpro 100 Fields: Input Information
Data type: RM61BOptional: No
Call by Reference: No ( called with pass by value option)
MODE - Docu See F2
Data type: CM61Q-CAMODDefault: 'B'
Optional: Yes
Call by Reference: No ( called with pass by value option)
NO_DIALOG - If 'X', function module does not run in dialog mode
Data type: RM61F-SELEKTDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
LOCK_FLAG - If 'X', run schedule header locked
Data type: RM61F-SELEKTDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
REPTP - REM activity cat.: 01 REM planning 02 assembly order, 03 kanban
Data type: T437X-REPTPDefault: '01'
Optional: Yes
Call by Reference: No ( called with pass by value option)
TCODE - Transaction Code for Goods Movement Check
Data type: SY-TCODEDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
MDAKT - Activity Category Authorization Check
Data type: T450-MDAKTDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
COMMIT_WAIT - COMMIT WORK AND WAIT Active?
Data type: CM61Q-CAMODDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for RM_BACKFLUSH_CHECK
EM61B - Dynpro 100 Fields: Additionally-Read Data
Data type: RM61BOptional: No
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for RM_BACKFLUSH_CHECK
SERNRX - Serial numbers (IM61B-ERFMG = number of entries)
Data type: E1RMSNOOptional: Yes
Call by Reference: No ( called with pass by value option)
T_VENUMLIST -
Data type: VHURM_T_COMPL_VENUMOptional: Yes
Call by Reference: Yes
T_COWB_COMP - Interface Structure of Goods Movement
Data type: COWB_COMPOptional: Yes
Call by Reference: Yes
T_CLBATCH - Batch Characteristics
Data type: CLBATCH_TOptional: Yes
Call by Reference: Yes
EXCEPTIONS details
ALORT_NOT_FOUND - Storage location not entered or does not exist in MT61D
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_BACKFLUSH_AUTHORITY - No authorization for backflush
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OVERFLOW_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PLAF_NOT_FOUND - Planned order does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
QUANTITY_REQUIRED - Entry quantity and scrap quantity not entered
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
REASON_WITHOUT_SCRAP - Scrap reason without scrap quantity
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
REP_MANU_NOT_ALLOWED - Indicator: repetitive mfg not set in material master record
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
REVISION_NOT_FOUND - Revision level does not exist
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
RUN_SCHEDULE_LOCKED - Run schedule header blocked by another user
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SAUF_BLOCKED - Run schedule header is blocked
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SAUF_NOT_FOUND - Run schedule header does not exist in plant
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INVALID_AUART - Invalid order type in repetitive manufacturing profile
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SAUF_WITHOUT_PKOSA - No cost collector exists for RS header
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SAUF_WITHOUT_RSNUM - RS header without backlogs from backflushing
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
TABLE_ACCESS_ERROR - Error accessing a table
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
UNIT_CONVERSION_ERROR - Error converting creation unit of entry
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
VERSION_NOT_FOUND - Version not found
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
VERSION_NOT_UNIQUE - Version cannot be uniquely determined
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
REPORTING_POINT_ERROR - Error reading reporting point info
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
QUANTITY_ERROR - Error entering quantities
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
DETERM_COST_COLL_ERROR - Error determining the cost collector
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
WRONG_UNIT_OF_MEASURE - Wrong unit of measure
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INVALID_MAT_SAUF_COMBINATION - Invalid combination of material and run schedule header
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SPECIAL_STOCK_NOT_FOUND - Error reading special stock
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
AUFPL_FIND_ERROR - Error determining plan number for operations/orders
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
WRONG_PLAF - Wrong planned order (e.g. long-term planned order)
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
PLAF_ERROR - Error processing a planned order
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OT_ERROR - Other check error
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FIND_ROUTING_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SERIALNUMBER_ERROR - Error within framework of serial number processing
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FCO_ERROR - Error Within Framework of Failure Cost Processing
Data type:Optional: No
Call by Reference: Yes
ME_DISTRIBUTE_ERROR -
Data type:Optional: No
Call by Reference: Yes
INVALID_POSTING_DATE - Invalid posting date
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INVALID_TABLE_ENTRY - Invalid table entry
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INVALID_VERID_SAUF_COMBINATION - Invalid combination of version and run schedule header
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
LOCK_ERROR - Locking Error
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
MATERIAL_IN_PLANT_NOT_FOUND - Material does not exist in plant
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
MATERIAL_OR_SAUF_REQUIRED - Material or run schedule header has not been entered
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for RM_BACKFLUSH_CHECK 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_em61b | TYPE RM61B, " | |||
| lt_sernrx | TYPE STANDARD TABLE OF E1RMSNO, " | |||
| lv_ext_commit | TYPE CM61Q-CAMOD, " SPACE | |||
| lv_alort_not_found | TYPE CM61Q, " | |||
| lv_check | TYPE RM61F-SELEKT, " SPACE | |||
| lv_no_backflush_authority | TYPE RM61F, " | |||
| lv_hubackfl | TYPE VHURM_HUBACKFL, " SPACE | |||
| lv_overflow_error | TYPE VHURM_HUBACKFL, " | |||
| lv_bapi_call | TYPE C, " SPACE | |||
| lv_plaf_not_found | TYPE C, " | |||
| lv_quantity_required | TYPE C, " | |||
| lv_reason_without_scrap | TYPE C, " | |||
| lv_rep_manu_not_allowed | TYPE C, " | |||
| lv_revision_not_found | TYPE C, " | |||
| lv_run_schedule_locked | TYPE C, " | |||
| lv_sauf_blocked | TYPE C, " | |||
| lv_sauf_not_found | TYPE C, " | |||
| lv_im61b | TYPE RM61B, " | |||
| lt_t_venumlist | TYPE STANDARD TABLE OF VHURM_T_COMPL_VENUM, " | |||
| lv_invalid_auart | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_sauf_without_pkosa | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_sauf_without_rsnum | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_table_access_error | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_unit_conversion_error | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_version_not_found | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_version_not_unique | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_reporting_point_error | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_quantity_error | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_determ_cost_coll_error | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_wrong_unit_of_measure | TYPE VHURM_T_COMPL_VENUM, " | |||
| lv_mode | TYPE CM61Q-CAMOD, " 'B' | |||
| lt_t_cowb_comp | TYPE STANDARD TABLE OF COWB_COMP, " | |||
| lv_invalid_mat_sauf_combination | TYPE COWB_COMP, " | |||
| lv_special_stock_not_found | TYPE COWB_COMP, " | |||
| lv_aufpl_find_error | TYPE COWB_COMP, " | |||
| lv_wrong_plaf | TYPE COWB_COMP, " | |||
| lv_plaf_error | TYPE COWB_COMP, " | |||
| lv_ot_error | TYPE COWB_COMP, " | |||
| lv_find_routing_error | TYPE COWB_COMP, " | |||
| lv_serialnumber_error | TYPE COWB_COMP, " | |||
| lv_fco_error | TYPE COWB_COMP, " | |||
| lv_me_distribute_error | TYPE COWB_COMP, " | |||
| lv_no_dialog | TYPE RM61F-SELEKT, " SPACE | |||
| lt_t_clbatch | TYPE STANDARD TABLE OF CLBATCH_T, " | |||
| lv_invalid_posting_date | TYPE CLBATCH_T, " | |||
| lv_lock_flag | TYPE RM61F-SELEKT, " 'X' | |||
| lv_invalid_table_entry | TYPE RM61F, " | |||
| lv_reptp | TYPE T437X-REPTP, " '01' | |||
| lv_invalid_verid_sauf_combination | TYPE T437X, " | |||
| lv_tcode | TYPE SY-TCODE, " ' ' | |||
| lv_lock_error | TYPE SY, " | |||
| lv_mdakt | TYPE T450-MDAKT, " SPACE | |||
| lv_material_in_plant_not_found | TYPE T450, " | |||
| lv_commit_wait | TYPE CM61Q-CAMOD, " SPACE | |||
| lv_material_or_sauf_required | TYPE CM61Q. " |
|   CALL FUNCTION 'RM_BACKFLUSH_CHECK' "Input Check: Backflushing and Confirmations in Repetitive Manufacturing |
| EXPORTING | ||
| EXT_COMMIT | = lv_ext_commit | |
| CHECK | = lv_check | |
| HUBACKFL | = lv_hubackfl | |
| BAPI_CALL | = lv_bapi_call | |
| IM61B | = lv_im61b | |
| MODE | = lv_mode | |
| NO_DIALOG | = lv_no_dialog | |
| LOCK_FLAG | = lv_lock_flag | |
| REPTP | = lv_reptp | |
| TCODE | = lv_tcode | |
| MDAKT | = lv_mdakt | |
| COMMIT_WAIT | = lv_commit_wait | |
| IMPORTING | ||
| EM61B | = lv_em61b | |
| TABLES | ||
| SERNRX | = lt_sernrx | |
| T_VENUMLIST | = lt_t_venumlist | |
| T_COWB_COMP | = lt_t_cowb_comp | |
| T_CLBATCH | = lt_t_clbatch | |
| EXCEPTIONS | ||
| ALORT_NOT_FOUND = 1 | ||
| NO_BACKFLUSH_AUTHORITY = 10 | ||
| OVERFLOW_ERROR = 11 | ||
| PLAF_NOT_FOUND = 12 | ||
| QUANTITY_REQUIRED = 13 | ||
| REASON_WITHOUT_SCRAP = 14 | ||
| REP_MANU_NOT_ALLOWED = 15 | ||
| REVISION_NOT_FOUND = 16 | ||
| RUN_SCHEDULE_LOCKED = 17 | ||
| SAUF_BLOCKED = 18 | ||
| SAUF_NOT_FOUND = 19 | ||
| INVALID_AUART = 2 | ||
| SAUF_WITHOUT_PKOSA = 20 | ||
| SAUF_WITHOUT_RSNUM = 21 | ||
| TABLE_ACCESS_ERROR = 22 | ||
| UNIT_CONVERSION_ERROR = 23 | ||
| VERSION_NOT_FOUND = 24 | ||
| VERSION_NOT_UNIQUE = 25 | ||
| REPORTING_POINT_ERROR = 26 | ||
| QUANTITY_ERROR = 27 | ||
| DETERM_COST_COLL_ERROR = 28 | ||
| WRONG_UNIT_OF_MEASURE = 29 | ||
| INVALID_MAT_SAUF_COMBINATION = 3 | ||
| SPECIAL_STOCK_NOT_FOUND = 30 | ||
| AUFPL_FIND_ERROR = 31 | ||
| WRONG_PLAF = 32 | ||
| PLAF_ERROR = 33 | ||
| OT_ERROR = 34 | ||
| FIND_ROUTING_ERROR = 35 | ||
| SERIALNUMBER_ERROR = 36 | ||
| FCO_ERROR = 37 | ||
| ME_DISTRIBUTE_ERROR = 38 | ||
| INVALID_POSTING_DATE = 4 | ||
| INVALID_TABLE_ENTRY = 5 | ||
| INVALID_VERID_SAUF_COMBINATION = 6 | ||
| LOCK_ERROR = 7 | ||
| MATERIAL_IN_PLANT_NOT_FOUND = 8 | ||
| MATERIAL_OR_SAUF_REQUIRED = 9 | ||
| . " RM_BACKFLUSH_CHECK | ||
ABAP code using 7.40 inline data declarations to call FM RM_BACKFLUSH_CHECK
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 CAMOD FROM CM61Q INTO @DATA(ld_ext_commit). | ||||
| DATA(ld_ext_commit) | = ' '. | |||
| "SELECT single SELEKT FROM RM61F INTO @DATA(ld_check). | ||||
| DATA(ld_check) | = ' '. | |||
| DATA(ld_hubackfl) | = ' '. | |||
| DATA(ld_bapi_call) | = ' '. | |||
| "SELECT single CAMOD FROM CM61Q INTO @DATA(ld_mode). | ||||
| DATA(ld_mode) | = 'B'. | |||
| "SELECT single SELEKT FROM RM61F INTO @DATA(ld_no_dialog). | ||||
| DATA(ld_no_dialog) | = ' '. | |||
| "SELECT single SELEKT FROM RM61F INTO @DATA(ld_lock_flag). | ||||
| DATA(ld_lock_flag) | = 'X'. | |||
| "SELECT single REPTP FROM T437X INTO @DATA(ld_reptp). | ||||
| DATA(ld_reptp) | = '01'. | |||
| "SELECT single TCODE FROM SY INTO @DATA(ld_tcode). | ||||
| DATA(ld_tcode) | = ' '. | |||
| "SELECT single MDAKT FROM T450 INTO @DATA(ld_mdakt). | ||||
| DATA(ld_mdakt) | = ' '. | |||
| "SELECT single CAMOD FROM CM61Q INTO @DATA(ld_commit_wait). | ||||
| DATA(ld_commit_wait) | = ' '. | |||
Search for further information about these or an SAP related objects