SAP SERNR_ADD_TO_DOCUMENT Function Module for NOTRANSL: Hinzufuegen von Serialnummern zu einem Beleg (dunkel)









SERNR_ADD_TO_DOCUMENT is a standard sernr add to document 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: Hinzufuegen von Serialnummern zu einem Beleg (dunkel) 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 sernr add to document FM, simply by entering the name SERNR_ADD_TO_DOCUMENT into the relevant SAP transaction such as SE37 or SE38.

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



Function SERNR_ADD_TO_DOCUMENT 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 'SERNR_ADD_TO_DOCUMENT'"NOTRANSL: Hinzufuegen von Serialnummern zu einem Beleg (dunkel)
EXPORTING
OPERATION = "Serialization procedure
* KMATNR = "
* CUOBJ = "
* R_MATERIAL = "Receiving Material
* BSTCH = "
* BSTUP = "
* SNBWG = "Transaction Type Group
* EMATN = "Material Number Corresponding to Manufacturer Part Number
* KDAUF = "
* KDPOS = "
* AUTOMATIC = ' ' "Automatic serial number assignment
OBJKOPF = "Type of Object List
* NO_ENQUEUE = ' ' "
* MORE_ALLOWED = ' ' "
* BUDAT = "Posting Date in the Document
* BAPI = ' ' "Call from BAPI
* EXT = "Interface Extensions for SERNR_ADD_TO_DOCUMENT
SERXX = "
MATERIAL = "Material Number
* PROFILE = "
QUANTITY = "
* M_WERK = "Plant
* M_CHARGE = "
* J_VORGANG = "

IMPORTING
ANZSN = "
NEW_OBKNR = "
SERIAL_COMMIT = "Change Indicator
STATUS_NOT_ALLOWED = "
ZEILEN_ID = "
EXT_E = "Export Interface Enhancements for SERNR_ADD_TO_DOCUMENT

CHANGING
* T_SMESG = "Message table message collector

TABLES
SERNR = "
R_SERNR = "
* XVBPA = "

EXCEPTIONS
KONFIGURATIONS_ERROR = 1 GENERAL_SERIAL_ERROR = 2 NO_PROFILE_OPERATION = 3 DIFFERENCE_IN_HEADER_DATA = 4
.




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_SAPLIPW1_001 Automatic Serial Number Assignment
EXIT_SAPLIPW1_002 Check on Copying Object List
EXIT_SAPLIPW1_003 Serial Numbers, User Exit for Additional Fields
EXIT_SAPLIPW1_004 Serial Numbers, User Exit After Exiting the Serial Screen
EXIT_SAPLIPW1_008 Check of Serial Number - Character String

IMPORTING Parameters details for SERNR_ADD_TO_DOCUMENT

OPERATION - Serialization procedure

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

KMATNR -

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

CUOBJ -

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

R_MATERIAL - Receiving Material

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

BSTCH -

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

BSTUP -

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

SNBWG - Transaction Type Group

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

EMATN - Material Number Corresponding to Manufacturer Part Number

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

KDAUF -

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

KDPOS -

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

AUTOMATIC - Automatic serial number assignment

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

OBJKOPF - Type of Object List

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

NO_ENQUEUE -

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

MORE_ALLOWED -

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

BUDAT - Posting Date in the Document

Data type: MKPF-BUDAT
Optional: Yes
Call by Reference: Yes

BAPI - Call from BAPI

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

EXT - Interface Extensions for SERNR_ADD_TO_DOCUMENT

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

SERXX -

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

MATERIAL - Material Number

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

PROFILE -

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

QUANTITY -

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

M_WERK - Plant

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

M_CHARGE -

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

J_VORGANG -

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

EXPORTING Parameters details for SERNR_ADD_TO_DOCUMENT

ANZSN -

Data type: LIPS-ANZSN
Optional: No
Call by Reference: Yes

NEW_OBKNR -

Data type: OBJK-OBKNR
Optional: No
Call by Reference: Yes

SERIAL_COMMIT - Change Indicator

Data type: C
Optional: No
Call by Reference: Yes

STATUS_NOT_ALLOWED -

Data type: C
Optional: No
Call by Reference: Yes

ZEILEN_ID -

Data type: MESG-ZEILE
Optional: No
Call by Reference: Yes

EXT_E - Export Interface Enhancements for SERNR_ADD_TO_DOCUMENT

Data type: EXT_E_SERNR_ADD_TO_DOCUMENT
Optional: No
Call by Reference: Yes

CHANGING Parameters details for SERNR_ADD_TO_DOCUMENT

T_SMESG - Message table message collector

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

TABLES Parameters details for SERNR_ADD_TO_DOCUMENT

SERNR -

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

R_SERNR -

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

XVBPA -

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

EXCEPTIONS details

KONFIGURATIONS_ERROR - Error During Configuration

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

GENERAL_SERIAL_ERROR -

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

NO_PROFILE_OPERATION -

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

DIFFERENCE_IN_HEADER_DATA -

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

Copy and paste ABAP code example for SERNR_ADD_TO_DOCUMENT 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_anzsn  TYPE LIPS-ANZSN, "   
lt_sernr  TYPE STANDARD TABLE OF E1RMSNO, "   
lv_t_smesg  TYPE TSMESG, "   
lv_operation  TYPE T377X-BELEG, "   
lv_konfigurations_error  TYPE T377X, "   
lv_kmatnr  TYPE RISA0-MATNR, "   
lv_cuobj  TYPE EQUI-CUOBJ, "   
lv_r_material  TYPE MSEGK-UMMAT, "   
lv_bstch  TYPE BSINF, "   
lv_bstup  TYPE BSINF, "   
lv_snbwg  TYPE T156Q-SNBWG, "   
lv_ematn  TYPE MSEG-EMATN, "   
lv_kdauf  TYPE MSEG-KDAUF, "   
lv_kdpos  TYPE MSEG-KDPOS, "   
lv_automatic  TYPE T399J-SEL_STRU, "   SPACE
lv_objkopf  TYPE T377X-OBJKOPF, "   
lt_r_sernr  TYPE STANDARD TABLE OF ERSERNR, "   
lv_new_obknr  TYPE OBJK-OBKNR, "   
lv_general_serial_error  TYPE OBJK, "   
lv_no_enqueue  TYPE T399J-SEL_STRU, "   SPACE
lv_more_allowed  TYPE T399J-SEL_STRU, "   SPACE
lv_budat  TYPE MKPF-BUDAT, "   
lv_bapi  TYPE C, "   SPACE
lv_ext  TYPE EXT_SERNR_ADD_TO_DOCUMENT, "   
lv_serxx  TYPE RSERXX, "   
lt_xvbpa  TYPE STANDARD TABLE OF VBPAVB, "   
lv_serial_commit  TYPE C, "   
lv_no_profile_operation  TYPE C, "   
lv_material  TYPE RISA0-MATNR, "   
lv_status_not_allowed  TYPE C, "   
lv_difference_in_header_data  TYPE C, "   
lv_profile  TYPE T377P-SERAIL, "   
lv_zeilen_id  TYPE MESG-ZEILE, "   
lv_ext_e  TYPE EXT_E_SERNR_ADD_TO_DOCUMENT, "   
lv_quantity  TYPE RISA0-ANZAHL, "   
lv_m_werk  TYPE SER03-WERK, "   
lv_m_charge  TYPE SER03-CHARGE, "   
lv_j_vorgang  TYPE TJ01-VRGNG. "   

  CALL FUNCTION 'SERNR_ADD_TO_DOCUMENT'  "NOTRANSL: Hinzufuegen von Serialnummern zu einem Beleg (dunkel)
    EXPORTING
         OPERATION = lv_operation
         KMATNR = lv_kmatnr
         CUOBJ = lv_cuobj
         R_MATERIAL = lv_r_material
         BSTCH = lv_bstch
         BSTUP = lv_bstup
         SNBWG = lv_snbwg
         EMATN = lv_ematn
         KDAUF = lv_kdauf
         KDPOS = lv_kdpos
         AUTOMATIC = lv_automatic
         OBJKOPF = lv_objkopf
         NO_ENQUEUE = lv_no_enqueue
         MORE_ALLOWED = lv_more_allowed
         BUDAT = lv_budat
         BAPI = lv_bapi
         EXT = lv_ext
         SERXX = lv_serxx
         MATERIAL = lv_material
         PROFILE = lv_profile
         QUANTITY = lv_quantity
         M_WERK = lv_m_werk
         M_CHARGE = lv_m_charge
         J_VORGANG = lv_j_vorgang
    IMPORTING
         ANZSN = lv_anzsn
         NEW_OBKNR = lv_new_obknr
         SERIAL_COMMIT = lv_serial_commit
         STATUS_NOT_ALLOWED = lv_status_not_allowed
         ZEILEN_ID = lv_zeilen_id
         EXT_E = lv_ext_e
    CHANGING
         T_SMESG = lv_t_smesg
    TABLES
         SERNR = lt_sernr
         R_SERNR = lt_r_sernr
         XVBPA = lt_xvbpa
    EXCEPTIONS
        KONFIGURATIONS_ERROR = 1
        GENERAL_SERIAL_ERROR = 2
        NO_PROFILE_OPERATION = 3
        DIFFERENCE_IN_HEADER_DATA = 4
. " SERNR_ADD_TO_DOCUMENT




ABAP code using 7.40 inline data declarations to call FM SERNR_ADD_TO_DOCUMENT

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 ANZSN FROM LIPS INTO @DATA(ld_anzsn).
 
 
 
"SELECT single BELEG FROM T377X INTO @DATA(ld_operation).
 
 
"SELECT single MATNR FROM RISA0 INTO @DATA(ld_kmatnr).
 
"SELECT single CUOBJ FROM EQUI INTO @DATA(ld_cuobj).
 
"SELECT single UMMAT FROM MSEGK INTO @DATA(ld_r_material).
 
 
 
"SELECT single SNBWG FROM T156Q INTO @DATA(ld_snbwg).
 
"SELECT single EMATN FROM MSEG INTO @DATA(ld_ematn).
 
"SELECT single KDAUF FROM MSEG INTO @DATA(ld_kdauf).
 
"SELECT single KDPOS FROM MSEG INTO @DATA(ld_kdpos).
 
"SELECT single SEL_STRU FROM T399J INTO @DATA(ld_automatic).
DATA(ld_automatic) = ' '.
 
"SELECT single OBJKOPF FROM T377X INTO @DATA(ld_objkopf).
 
 
"SELECT single OBKNR FROM OBJK INTO @DATA(ld_new_obknr).
 
 
"SELECT single SEL_STRU FROM T399J INTO @DATA(ld_no_enqueue).
DATA(ld_no_enqueue) = ' '.
 
"SELECT single SEL_STRU FROM T399J INTO @DATA(ld_more_allowed).
DATA(ld_more_allowed) = ' '.
 
"SELECT single BUDAT FROM MKPF INTO @DATA(ld_budat).
 
DATA(ld_bapi) = ' '.
 
 
 
 
 
 
"SELECT single MATNR FROM RISA0 INTO @DATA(ld_material).
 
 
 
"SELECT single SERAIL FROM T377P INTO @DATA(ld_profile).
 
"SELECT single ZEILE FROM MESG INTO @DATA(ld_zeilen_id).
 
 
"SELECT single ANZAHL FROM RISA0 INTO @DATA(ld_quantity).
 
"SELECT single WERK FROM SER03 INTO @DATA(ld_m_werk).
 
"SELECT single CHARGE FROM SER03 INTO @DATA(ld_m_charge).
 
"SELECT single VRGNG FROM TJ01 INTO @DATA(ld_j_vorgang).
 


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!