Skip to Content
0
Jul 17, 2020 at 06:36 AM

Sales Order With Serial Number

923 Views Last edit Jul 17, 2020 at 08:37 AM 4 rev

I want to show Sales Order with the Material's Serial Number.

i am preparing Query in the dbacockpit as below:

SELECT VBAP.WERKS, VBAP.VBELN, KNA1.KUNNR, KNA1.NAME1, VBAP.POSNR, VBAP.MATNR,VBAP.ARKTX, OBJK.SERNR, VBAK.AUART, VBAK.ERDAT, VBAK.BSTNK, VBAK.BSTDK, VBAK.ERNAM
FROM VBAP
LEFT JOIN VBAK ON VBAK.VBELN = VBAP.VBELN
LEFT JOIN OBJK ON OBJK.OBKNR = VBAP.PAOBJNR AND OBJK.OBJVW = 'S' AND OBJK.MATNR = VBAP.MATNR
LEFT JOIN KNA1 ON KNA1.KUNNR = VBAK.KUNNR
ORDER BY VBAP.VBELN, VBAP.POSNR

above query is working ok and gives the result as per requirement.


after i am preparing it's ABAP code using SE38 as below:

REPORT ZSERIALNO.
TYPES : SLIS.
TABLES: VBAP, VBAK, KNA1, OBJK.

TYPES: BEGIN OF TY_FINAL,
         WERKS      TYPE VBAP-WERKS,
         VBELN      TYPE VBAP-VBELN,
         KUNNR      TYPE KNA1-KUNNR,
         NAME1      TYPE KNA1-NAME1,
         POSNR      TYPE VBAP-POSNR,
         MATNR       TYPE VBAP-MATNR,
         ARKTX      TYPE VBAP-ARKTX,
         SERNR      TYPE OBJK-SERNR,
         AUART      TYPE VBAK-AUART,
         ERDAT      TYPE VBAK-ERDAT,
         BSTNK      TYPE VBAK-BSTNK,
         BSTDK      TYPE VBAK-BSTDK,
         ERNAM      TYPE VBAK-ERNAM,
END OF TY_FINAL.

DATA : LV_LINES  TYPE TLINE,
       LV_LINES1 TYPE TLINE,
       T1_VBELN  TYPE THEAD-TDNAME,
       LINES     TYPE TABLE OF TLINE,
       WA_LINES  TYPE TLINE.
DATA : LS_LINES TYPE TLINE,
       LT_LINES TYPE STANDARD TABLE OF TLINE.
DATA : IT_FINAL TYPE TABLE OF TY_FINAL WITH HEADER LINE,
       WA_FINAL TYPE TY_FINAL.

DATA : LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA : IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEST.
SELECT-OPTIONS : P_WERKS FOR VBAP-WERKS NO INTERVALS NO-EXTENSION OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK B1.

INITIALIZATION.

  TEST = 'Report of Sales Order with Serial Number'.

START-OF-SELECTION.
  PERFORM GET_DATA.
  PERFORM VALIDATE_DATA.
  PERFORM FIELD_CATALOG.
  PERFORM DISPLAY_ALV_REPORT.

FORM GET_DATA .
SELECT VBAP~WERKS, VBAP~VBELN, KNA1~KUNNR, KNA1~NAME1, VBAP~POSNR, VBAP~MATNR,VBAP~ARKTX, OBJK~SERNR, VBAK~AUART, VBAK~ERDAT, VBAK~BSTNK, VBAK~BSTDK, VBAK~ERNAM
FROM VBAP
LEFT JOIN VBAK ON VBAK~VBELN = VBAP~VBELN
LEFT JOIN OBJK ON OBJK~OBKNR = SER03~OBKNR AND OBJK~OBJVW = 'S' AND OBJK~MATNR = VBAP~MATNR
LEFT JOIN KNA1 ON KNA1~KUNNR = VBAK~KUNNR
INTO TABLE @IT_FINAL
WHERE VBAP~VBELN = '0050003286'
AND VBAP~WERKS IN P_WERKS
ORDER BY VBAP~VBELN, VBAP~POSNR.
ENDFORM.

FORM VALIDATE_DATA .
  IF SY-SUBRC <> 0.
    MESSAGE 'Invalid Selection' TYPE 'E'.
  ENDIF.
ENDFORM.

GIVES ERROR AS BELOW:

Program ZSERIALNO
The type of "SER03~OBKNR" or the result type of the function
"SER03~OBKNR" and the type of "VBAP~PAOBJNR" are not compatible for the
operation in question.