RE:[sap-log-sd] How to find serial number of material for invoice?

Posted by Clinton Jones (Consultant)
on Aug 24 at 8:43 PM
Courtesy of an original on SDN
https://forums.sdn.sap.com/message.jspa?messageID= 5070357

here is the snippet:
The below is the code return in Smartforms for getting serial numbers, you have to also remember that serial numbers come from the DELIVERY documents.

DATA: MSERNP LIKE MARC-SERNP,
MDLVNO LIKE LIPS-VBELN,
MDLVITM LIKE LIPS-POSNR,
MSONO LIKE VBAP-VBELN,
MSOITM LIKE VBAP-POSNR,
MCNTR TYPE I,
MLEN TYPE I,
MCOMMA(1) TYPE C.

DATA: BEGIN OF I_SER01 OCCURS 0,
SERNR LIKE OBJK-SERNR,
END OF I_SER01.

READ TABLE IS_BIL_INVOICE-IT_REFORD INTO GS_IT_REFORD
WITH KEY BIL_NUMBER = GS_IT_GEN-BIL_NUMBER
ITM_NUMBER = GS_IT_GEN-ITM_NUMBER.
MSONO = GS_IT_REFORD-ORDER_NUMB.
MSOITM = GS_IT_REFORD-ITM_NUMBER_ORD.
MSERNP = MDLVNO = MDLVITM = ''.
MSRNO0 = MSRNO1 = MSRNO2 = MSRNO3 = ''.
SELECT SINGLE MARC~SERNP LIPS~VBELN LIPS~POSNR
INTO (MSERNP, MDLVNO, MDLVITM)
FROM MARC
JOIN LIPS ON LIPS~MATNR = MARC~MATNR
AND LIPS~WERKS = MARC~WERKS
WHERE LIPS~VGBEL = MSONO
AND LIPS~VGPOS = MSOITM.

IF NOT MSERNP IS INITIAL.
SELECT OBJK~SERNR
INTO CORRESPONDING FIELDS OF TABLE I_SER01
FROM SER01
JOIN OBJK ON OBJK~OBKNR = SER01~OBKNR
WHERE SER01~LIEF_NR = MDLVNO
AND SER01~POSNR = MDLVITM.
SORT I_SER01 BY SERNR.
MCNTR = 1.
MSRNO0 = MSRNO1 = MSRNO2 = MSRNO3 = ''.
LOOP AT I_SER01.
IF I_SER01-SERNR(1) = '0'.
IF I_SER01-SERNR CA 'ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnopqrstuvwxy z-/#,.'.
ENDIF.
IF SY-FDPOS = 0 OR SY-FDPOS = 18.
PACK I_SER01-SERNR TO I_SER01-SERNR.
ENDIF.
CONDENSE I_SER01-SERNR.
ENDIF.
IF MCNTR = 1.
IF NOT MSRNO1 IS INITIAL AND NOT MSRNO0 IS INITIAL.
MCOMMA = ', '.
ELSE.
MCOMMA = ''.
MSRNO1 = ''.
ENDIF.
CONCATENATE MSRNO1 MCOMMA I_SER01-SERNR INTO MSRNO0.
MLEN = STRLEN( MSRNO0 ).
IF MLEN < 255.
CONCATENATE MSRNO1 MCOMMA I_SER01-SERNR INTO MSRNO1.
ELSE.
MCNTR = 2.
MSRNO0 = ''.
ENDIF.
ENDIF.
IF MCNTR = 2.
IF NOT MSRNO2 IS INITIAL AND NOT MSRNO0 IS INITIAL.
MCOMMA = ', '.
ELSE.
MCOMMA = ''.
ENDIF.
CONCATENATE MSRNO2 MCOMMA I_SER01-SERNR INTO MSRNO0.
MLEN = STRLEN( MSRNO0 ).
IF MLEN < 255.
CONCATENATE MSRNO2 MCOMMA I_SER01-SERNR INTO MSRNO2.
ELSE.
MCNTR = 3.
ENDIF.
ENDIF.
IF MCNTR = 3.
IF NOT MSRNO3 IS INITIAL AND NOT MSRNO0 IS INITIAL.
MCOMMA = ','.
ELSE.
MCOMMA = ''.
ENDIF.
CONCATENATE MSRNO3 MCOMMA I_SER01-SERNR INTO MSRNO0.
MLEN = STRLEN( MSRNO0 ).
IF MLEN <= 255.
CONCATENATE MSRNO3 MCOMMA I_SER01-SERNR INTO MSRNO3.
ELSE.
MCNTR = 4.
MSRNO0 = ''.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.

---------------Original Message---------------
From: Adriano Lopez
Sent: Wednesday, August 24, 2011 8:27 PM
Subject: How to find serial number of material for invoice?

Hello experts,

We need serial number or batch number to be printed in the invoices. How can we pull the information for the smart forms about such information? Logic regarding the tables and fields will be a great help.

Thank you in advance.

__.____._
Copyright © 2011 Toolbox.com and message author.

Toolbox.com 4343 N. Scottsdale Road Suite 280, Scottsdale, AZ 85251
Mark as helpful
View this online
  
Popular White Papers

In the Spotlight
Toolbox.com Groups Discussions Support BBCode. Share Code Snippets with Peers
_.____.__