SAP MATERIAL_MAINTAIN_DARK Function Module for NOTRANSL: Material anlegen/ändern ohne Dialog









MATERIAL_MAINTAIN_DARK is a standard material maintain dark SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for NOTRANSL: Material anlegen/ändern ohne Dialog 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 material maintain dark FM, simply by entering the name MATERIAL_MAINTAIN_DARK into the relevant SAP transaction such as SE37 or SE38.

Function Group: MGMD
Program Name: SAPLMGMD
Main Program: SAPLMGMD
Appliation area: M
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:



Function MATERIAL_MAINTAIN_DARK 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 'MATERIAL_MAINTAIN_DARK'"NOTRANSL: Material anlegen/ändern ohne Dialog
EXPORTING
* FLAG_MUSS_PRUEFEN = 'X' "Check all required fields (= X)
* NO_DATABASE_UPDATE = ' ' "
* CALL_MODE = ' ' "ID of User Who Called Up Transaction
* CALL_MODE2 = ' ' "
* USER = SY-UNAME "
* SUPPRESS_ARRAY_READ = ' ' "
* FLG_MASS = ' ' "Screens, display user entry
* IV_CHANGE_DOC_TCODE = ' ' "Character Field of Length 10
* SPERRMODUS = 'E' "Lock mode (shared, exclusive, no lock)
* MAX_ERRORS = 0 "Maximum number of incorrect transactions
P_KZ_NO_WARN = "Control of check module reaction
KZ_PRF = "Message in the case of fields not ready for input
* KZ_VERW = 'X' "Write administrative data - yes/no
* KZ_AEND = 'X' "Create change documents - yes/no
* KZ_DISPO = 'X' "Write MRP records - yes/no
* KZ_TEST = ' ' "

IMPORTING
MATNR_LAST = "Last material number processed successfully
NUMBER_ERRORS_TRANSACTION = "Number of incorrect transactions

TABLES
AMARA_UEB = "Table of MARAs extended to include TCode, transaction counter
* ASTMM_UEB = "
* AMLGN_UEB = "
* AMLGT_UEB = "
* AMPGD_UEB = "
* AMPOP_UEB = "
* AMVEG_UEB = "Total consumption
* AMVEU_UEB = "Unplanned consumption
* AMVKE_UEB = "
* ALTX1_UEB = "
* AMPRW_UEB = "
* AMAKT_UEB = "Table of short texts
* AE1CUCFG_UEB = "
* AE1CUINS_UEB = "
* AE1CUVAL_UEB = "
* AE1CUCOM_UEB = "
* AMFIELDRES = "List of fields to be reset
* AMERRDAT = "Error list
* AMARC_UEB = "Table of MARCs
* AMARD_UEB = "
* AMFHM_UEB = "
* AMARM_UEB = "
* AMEA1_UEB = "
* AMBEW_UEB = "
* ASTEU_UEB = "

EXCEPTIONS
KSTATUS_EMPTY = 1 TKSTATUS_EMPTY = 2 T130M_ERROR = 3 INTERNAL_ERROR = 4 TOO_MANY_ERRORS = 5 UPDATE_ERROR = 6 ERROR_PROPAGATE_HEADER = 7
.



IMPORTING Parameters details for MATERIAL_MAINTAIN_DARK

FLAG_MUSS_PRUEFEN - Check all required fields (= X)

Data type: SY-DATAR
Default: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)

NO_DATABASE_UPDATE -

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

CALL_MODE - ID of User Who Called Up Transaction

Data type: MMDCMODE-CALL_MODE
Default: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)

CALL_MODE2 -

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

USER -

Data type: SY-UNAME
Default: SY-UNAME
Optional: Yes
Call by Reference: No ( called with pass by value option)

SUPPRESS_ARRAY_READ -

Data type: SY-DATAR
Default: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)

FLG_MASS - Screens, display user entry

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

IV_CHANGE_DOC_TCODE - Character Field of Length 10

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

SPERRMODUS - Lock mode (shared, exclusive, no lock)

Data type: TVGVI-SPERA
Default: 'E'
Optional: Yes
Call by Reference: No ( called with pass by value option)

MAX_ERRORS - Maximum number of incorrect transactions

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

P_KZ_NO_WARN - Control of check module reaction

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

KZ_PRF - Message in the case of fields not ready for input

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

KZ_VERW - Write administrative data - yes/no

Data type: MDAT1-KZ_VERW
Default: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)

KZ_AEND - Create change documents - yes/no

Data type: MDAT1-KZ_AEND
Default: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)

KZ_DISPO - Write MRP records - yes/no

Data type: MDAT1-KZ_DISPO
Default: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)

KZ_TEST -

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

EXPORTING Parameters details for MATERIAL_MAINTAIN_DARK

MATNR_LAST - Last material number processed successfully

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

NUMBER_ERRORS_TRANSACTION - Number of incorrect transactions

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

TABLES Parameters details for MATERIAL_MAINTAIN_DARK

AMARA_UEB - Table of MARAs extended to include TCode, transaction counter

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

ASTMM_UEB -

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

AMLGN_UEB -

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

AMLGT_UEB -

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

AMPGD_UEB -

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

AMPOP_UEB -

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

AMVEG_UEB - Total consumption

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

AMVEU_UEB - Unplanned consumption

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

AMVKE_UEB -

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

ALTX1_UEB -

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

AMPRW_UEB -

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

AMAKT_UEB - Table of short texts

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

AE1CUCFG_UEB -

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

AE1CUINS_UEB -

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

AE1CUVAL_UEB -

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

AE1CUCOM_UEB -

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

AMFIELDRES - List of fields to be reset

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

AMERRDAT - Error list

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

AMARC_UEB - Table of MARCs

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

AMARD_UEB -

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

AMFHM_UEB -

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

AMARM_UEB -

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

AMEA1_UEB -

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

AMBEW_UEB -

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

ASTEU_UEB -

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

EXCEPTIONS details

KSTATUS_EMPTY - Component status is empty

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

TKSTATUS_EMPTY - Transaction component status is empty

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

T130M_ERROR - Transaction control parameter not found

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

INTERNAL_ERROR - Internal error while accessing table data

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

TOO_MANY_ERRORS - Maximum number of incorrect transactions reached

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

UPDATE_ERROR - Error in DB update: rollback required

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

ERROR_PROPAGATE_HEADER -

Data type:
Optional: No
Call by Reference: Yes

Copy and paste ABAP code example for MATERIAL_MAINTAIN_DARK 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:
lt_amara_ueb  TYPE STANDARD TABLE OF MARA_UEB, "   
lv_matnr_last  TYPE MARA-MATNR, "   
lv_kstatus_empty  TYPE MARA, "   
lv_flag_muss_pruefen  TYPE SY-DATAR, "   'X'
lt_astmm_ueb  TYPE STANDARD TABLE OF STEUMM_UEB, "   
lv_no_database_update  TYPE SY-DATAR, "   SPACE
lt_amlgn_ueb  TYPE STANDARD TABLE OF MLGN_UEB, "   
lv_call_mode  TYPE MMDCMODE-CALL_MODE, "   ' '
lt_amlgt_ueb  TYPE STANDARD TABLE OF MLGT_UEB, "   
lv_call_mode2  TYPE RMMG2-CALL_MODE2, "   SPACE
lv_user  TYPE SY-UNAME, "   SY-UNAME
lt_ampgd_ueb  TYPE STANDARD TABLE OF MPGD_UEB, "   
lt_ampop_ueb  TYPE STANDARD TABLE OF MPOP_UEB, "   
lv_suppress_array_read  TYPE SY-DATAR, "   ' '
lv_flg_mass  TYPE SY-DATAR, "   SPACE
lt_amveg_ueb  TYPE STANDARD TABLE OF MVEG_UEB, "   
lt_amveu_ueb  TYPE STANDARD TABLE OF MVEU_UEB, "   
lv_iv_change_doc_tcode  TYPE CHAR10, "   SPACE
lt_amvke_ueb  TYPE STANDARD TABLE OF MVKE_UEB, "   
lt_altx1_ueb  TYPE STANDARD TABLE OF LTX1_UEB, "   
lt_amprw_ueb  TYPE STANDARD TABLE OF MPRW_UEB, "   
lt_amakt_ueb  TYPE STANDARD TABLE OF MAKT_UEB, "   
lv_sperrmodus  TYPE TVGVI-SPERA, "   'E'
lv_tkstatus_empty  TYPE TVGVI, "   
lv_number_errors_transaction  TYPE TBIST-NUMERROR, "   
lt_ae1cucfg_ueb  TYPE STANDARD TABLE OF E1CUCFG_UEB, "   
lt_ae1cuins_ueb  TYPE STANDARD TABLE OF E1CUINS_UEB, "   
lt_ae1cuval_ueb  TYPE STANDARD TABLE OF E1CUVAL_UEB, "   
lt_ae1cucom_ueb  TYPE STANDARD TABLE OF E1CUCOM_UEB, "   
lt_amfieldres  TYPE STANDARD TABLE OF MFIELDRES, "   
lt_amerrdat  TYPE STANDARD TABLE OF MERRDAT, "   
lt_amarc_ueb  TYPE STANDARD TABLE OF MARC_UEB, "   
lv_max_errors  TYPE T130S-ANZUM, "   0
lv_t130m_error  TYPE T130S, "   
lt_amard_ueb  TYPE STANDARD TABLE OF MARD_UEB, "   
lv_p_kz_no_warn  TYPE RMMG08_012-MSGTYP, "   
lv_internal_error  TYPE RMMG08_012, "   
lv_kz_prf  TYPE RMMG08_012-MSGTYP, "   
lt_amfhm_ueb  TYPE STANDARD TABLE OF MFHM_UEB, "   
lv_too_many_errors  TYPE MFHM_UEB, "   
lv_kz_verw  TYPE MDAT1-KZ_VERW, "   'X'
lt_amarm_ueb  TYPE STANDARD TABLE OF MARM_UEB, "   
lv_update_error  TYPE MARM_UEB, "   
lv_kz_aend  TYPE MDAT1-KZ_AEND, "   'X'
lt_amea1_ueb  TYPE STANDARD TABLE OF MEA1_UEB, "   
lv_error_propagate_header  TYPE MEA1_UEB, "   
lv_kz_dispo  TYPE MDAT1-KZ_DISPO, "   'X'
lt_ambew_ueb  TYPE STANDARD TABLE OF MBEW_UEB, "   
lv_kz_test  TYPE MDAT1-KZ_TEST, "   SPACE
lt_asteu_ueb  TYPE STANDARD TABLE OF STEU_UEB. "   

  CALL FUNCTION 'MATERIAL_MAINTAIN_DARK'  "NOTRANSL: Material anlegen/ändern ohne Dialog
    EXPORTING
         FLAG_MUSS_PRUEFEN = lv_flag_muss_pruefen
         NO_DATABASE_UPDATE = lv_no_database_update
         CALL_MODE = lv_call_mode
         CALL_MODE2 = lv_call_mode2
         USER = lv_user
         SUPPRESS_ARRAY_READ = lv_suppress_array_read
         FLG_MASS = lv_flg_mass
         IV_CHANGE_DOC_TCODE = lv_iv_change_doc_tcode
         SPERRMODUS = lv_sperrmodus
         MAX_ERRORS = lv_max_errors
         P_KZ_NO_WARN = lv_p_kz_no_warn
         KZ_PRF = lv_kz_prf
         KZ_VERW = lv_kz_verw
         KZ_AEND = lv_kz_aend
         KZ_DISPO = lv_kz_dispo
         KZ_TEST = lv_kz_test
    IMPORTING
         MATNR_LAST = lv_matnr_last
         NUMBER_ERRORS_TRANSACTION = lv_number_errors_transaction
    TABLES
         AMARA_UEB = lt_amara_ueb
         ASTMM_UEB = lt_astmm_ueb
         AMLGN_UEB = lt_amlgn_ueb
         AMLGT_UEB = lt_amlgt_ueb
         AMPGD_UEB = lt_ampgd_ueb
         AMPOP_UEB = lt_ampop_ueb
         AMVEG_UEB = lt_amveg_ueb
         AMVEU_UEB = lt_amveu_ueb
         AMVKE_UEB = lt_amvke_ueb
         ALTX1_UEB = lt_altx1_ueb
         AMPRW_UEB = lt_amprw_ueb
         AMAKT_UEB = lt_amakt_ueb
         AE1CUCFG_UEB = lt_ae1cucfg_ueb
         AE1CUINS_UEB = lt_ae1cuins_ueb
         AE1CUVAL_UEB = lt_ae1cuval_ueb
         AE1CUCOM_UEB = lt_ae1cucom_ueb
         AMFIELDRES = lt_amfieldres
         AMERRDAT = lt_amerrdat
         AMARC_UEB = lt_amarc_ueb
         AMARD_UEB = lt_amard_ueb
         AMFHM_UEB = lt_amfhm_ueb
         AMARM_UEB = lt_amarm_ueb
         AMEA1_UEB = lt_amea1_ueb
         AMBEW_UEB = lt_ambew_ueb
         ASTEU_UEB = lt_asteu_ueb
    EXCEPTIONS
        KSTATUS_EMPTY = 1
        TKSTATUS_EMPTY = 2
        T130M_ERROR = 3
        INTERNAL_ERROR = 4
        TOO_MANY_ERRORS = 5
        UPDATE_ERROR = 6
        ERROR_PROPAGATE_HEADER = 7
. " MATERIAL_MAINTAIN_DARK




ABAP code using 7.40 inline data declarations to call FM MATERIAL_MAINTAIN_DARK

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 MATNR FROM MARA INTO @DATA(ld_matnr_last).
 
 
"SELECT single DATAR FROM SY INTO @DATA(ld_flag_muss_pruefen).
DATA(ld_flag_muss_pruefen) = 'X'.
 
 
"SELECT single DATAR FROM SY INTO @DATA(ld_no_database_update).
DATA(ld_no_database_update) = ' '.
 
 
"SELECT single CALL_MODE FROM MMDCMODE INTO @DATA(ld_call_mode).
DATA(ld_call_mode) = ' '.
 
 
"SELECT single CALL_MODE2 FROM RMMG2 INTO @DATA(ld_call_mode2).
DATA(ld_call_mode2) = ' '.
 
"SELECT single UNAME FROM SY INTO @DATA(ld_user).
DATA(ld_user) = SY-UNAME.
 
 
 
"SELECT single DATAR FROM SY INTO @DATA(ld_suppress_array_read).
DATA(ld_suppress_array_read) = ' '.
 
"SELECT single DATAR FROM SY INTO @DATA(ld_flg_mass).
DATA(ld_flg_mass) = ' '.
 
 
 
DATA(ld_iv_change_doc_tcode) = ' '.
 
 
 
 
 
"SELECT single SPERA FROM TVGVI INTO @DATA(ld_sperrmodus).
DATA(ld_sperrmodus) = 'E'.
 
 
"SELECT single NUMERROR FROM TBIST INTO @DATA(ld_number_errors_transaction).
 
 
 
 
 
 
 
 
"SELECT single ANZUM FROM T130S INTO @DATA(ld_max_errors).
 
 
 
"SELECT single MSGTYP FROM RMMG08_012 INTO @DATA(ld_p_kz_no_warn).
 
 
"SELECT single MSGTYP FROM RMMG08_012 INTO @DATA(ld_kz_prf).
 
 
 
"SELECT single KZ_VERW FROM MDAT1 INTO @DATA(ld_kz_verw).
DATA(ld_kz_verw) = 'X'.
 
 
 
"SELECT single KZ_AEND FROM MDAT1 INTO @DATA(ld_kz_aend).
DATA(ld_kz_aend) = 'X'.
 
 
 
"SELECT single KZ_DISPO FROM MDAT1 INTO @DATA(ld_kz_dispo).
DATA(ld_kz_dispo) = 'X'.
 
 
"SELECT single KZ_TEST FROM MDAT1 INTO @DATA(ld_kz_test).
DATA(ld_kz_test) = ' '.
 
 


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!