Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

user exit for generating external serial

former_member632991
Active Contributor
0 Likes
711

Hi,

i want to generate external serial no at the time of goods receipt or MIGO transaction.

is there any user exit or BADI for that??

i hv searched but could not find.

Regards,

Sonika

2 REPLIES 2
Read only

Former Member
0 Likes
585

Hi sonika,

You can use BADI MB_DOCUMENT_BADI for this .

In method MB_DOCUMENT_PREPARE you can populate a table with serial number and then link it with the document.

Please find below my code where i set serial number in migo

Rewards if it solved your issue.

Best regards.

<i>METHOD if_ex_mb_document_badi~mb_document_before_update.

  • ...

  • In this code serial number is linked with batch number

DATA : w_sernp TYPE serail.

DATA : it_ser TYPE STANDARD TABLE OF iseri.

DATA : w_ser TYPE iseri.

DATA : wv_serial(13) ,

wv_pos TYPE i ,

wv_count(3) TYPE n .

DATA : wv_equi TYPE equi.

DATA : w_anzsn TYPE anzsn ,

it_mes TYPE tsmesg .

DATA : wv_dotime TYPE i .

DATA : w_bstch TYPE bsinf ,

w_bstup TYPE bsinf .

FIELD-SYMBOLS : <mseg> TYPE LINE OF ty_t_mseg ,

<mkpf> TYPE LINE OF ty_t_mkpf .

LOOP AT xmkpf ASSIGNING <mkpf>.

LOOP AT xmseg ASSIGNING <mseg>

WHERE mblnr = <mkpf>-mblnr

AND mjahr = <mkpf>-mjahr.

  • Search for material serial profile in MARC

SELECT SINGLE sernp INTO w_sernp

FROM marc

WHERE matnr = <mseg>-matnr

AND werks = <mseg>-werks.

  • searching last serial number define for the batch number used

WRITE <mseg>-charg TO wv_serial NO-ZERO.

CONDENSE wv_serial.

CONCATENATE wv_serial '-%' INTO wv_serial.

SELECT * FROM equi INTO wv_equi

WHERE sernr LIKE wv_serial

ORDER BY sernr DESCENDING.

EXIT.

ENDSELECT .

IF NOT wv_equi-sernr IS INITIAL.

wv_serial = wv_equi-sernr.

ELSE.

REPLACE '%' WITH '000' INTO wv_serial.

ENDIF.

  • Determination of serial number.

SEARCH wv_serial FOR '-' .

wv_pos = sy-fdpos + 1 .

wv_count = wv_serial+wv_pos.

wv_dotime = <mseg>-menge.

DO wv_dotime TIMES.

ADD 1 TO wv_count.

wv_serial+wv_pos = wv_count.

w_ser-serialnr = wv_serial.

w_ser-mblpo = <mseg>-zeile.

APPEND w_ser TO it_ser.

ENDDO.

  • Transfer serial number table for be visible by function module SERNR_ADD_BAPI_MM

CALL FUNCTION 'DOCUMENT_SERIALNOS_IMPORT'

TABLES

ser_tab = it_ser.

  • update Material document with serial number

CALL FUNCTION 'SERNR_ADD_BAPI_MM'

EXPORTING

profile = w_sernp

material = <mseg>-matnr

m_charge = <mseg>-charg

m_werk = <mseg>-werks

m_lager = <mseg>-lgort

quantity = wv_dotime

mblnr = <mseg>-mblnr

mjahr = <mseg>-mjahr

zeile = <mseg>-zeile

blart = <mkpf>-blart

bwart = <mseg>-bwart

shkzg = <mseg>-shkzg

bstch = w_bstch

bstup = w_bstup

IMPORTING

anzsn = w_anzsn

CHANGING

t_smesg = it_mes

EXCEPTIONS

konfigurations_error = 1

serialnumber_errors = 2

OTHERS = 3.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDLOOP.

ENDLOOP.

ENDMETHOD.</i>

Read only

former_member632991
Active Contributor
0 Likes
585

.