‎2007 Feb 27 10:42 AM
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
‎2007 Jul 17 2:53 PM
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>
‎2011 Jan 21 7:56 AM