0% found this document useful (0 votes)
316 views7 pages

Real Time Delivery Report

This document describes an ABAP report that displays real-time delivery details for a range of sales orders. It defines data types to store sales order, item, and delivery data. It retrieves the relevant data from database tables based on user-selected criteria, joins the data, and displays or downloads it.

Uploaded by

imtiyaz khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
316 views7 pages

Real Time Delivery Report

This document describes an ABAP report that displays real-time delivery details for a range of sales orders. It defines data types to store sales order, item, and delivery data. It retrieves the relevant data from database tables based on user-selected criteria, joins the data, and displays or downloads it.

Uploaded by

imtiyaz khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Real-time delivery report in SAP ABAP

Real-time example of displaying delivery details for a range of sales orders in SAP ABAP.
REPORT ZPROJECT_RANGE NO STANDARD PAGE HEADING LINE-COUNT 37(3).

TABLES : VBAK,VBAP,VBFA,LIKP,LIPS.

TYPES: BEGIN OF TY_VBAK,


VBELN TYPE VBAK-VBELN,
VKORG TYPE VBAK-VKORG,
VTWEG TYPE VBAK-VTWEG,
SPART TYPE VBAK-SPART,
END OF TY_VBAK.
TYPES: BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ZMENG TYPE VBAP-ZMENG,
NETPR TYPE VBAP-NETPR,
END OF TY_VBAP.
TYPES: BEGIN OF TY_LIKP,
VBELN TYPE LIKP-VBELN,
END OF TY_LIKP.
TYPES: BEGIN OF TY_LIPS,
VBELN TYPE LIPS-VBELN,
POSNR TYPE LIPS-POSNR,
LFIMG TYPE LIPS-LFIMG,
NETPR TYPE LIPS-NETPR,
END OF TY_LIPS.
TYPES: BEGIN OF TY_VBFA,
VBELV TYPE VBFA-VBELV,
POSNV TYPE VBFA-POSNV,
VBELN TYPE VBFA-VBELN,
POSNN TYPE VBFA-POSNN,
VBTYP_N TYPE VBFA-VBTYP_N,
END OF TY_VBFA.
TYPES: BEGIN OF TY_FINAL,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ZMENG TYPE VBAP-ZMENG,
NETPR TYPE VBAP-NETPR,
VBELN1 TYPE LIPS-VBELN,
POSNR1 TYPE LIPS-POSNR,
LFIMG TYPE LIPS-LFIMG,
NETPR1 TYPE LIPS-NETPR,
END OF TY_FINAL.

DATA : I_VBAK TYPE TABLE OF TY_VBAK,WA_VBAK TYPE TY_VBAK.


DATA : I_VBAP TYPE TABLE OF TY_VBAP,WA_VBAP TYPE TY_VBAP.
DATA : I_LIKP TYPE TABLE OF TY_LIKP,WA_LIKP TYPE TY_LIKP.
DATA : I_LIPS TYPE TABLE OF TY_LIPS,WA_LIPS TYPE TY_LIPS.
DATA : I_VBFA TYPE TABLE OF TY_VBFA,WA_VBFA TYPE TY_VBFA.
DATA : I_FINAL TYPE TABLE OF TY_FINAL,WA_FINAL TYPE TY_FINAL.

DATA : V_TITLE TYPE STRING.


DATA : V_FNAME TYPE STRING.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.


SELECT-OPTIONS : S_VBELN FOR VBAK-VBELN NO-EXTENSION.
SELECT-OPTIONS : S_VKORG FOR VBAK-VKORG NO INTERVALS NO-EXTENSION.
SELECT-OPTIONS : S_VTWEG FOR VBAK-VTWEG NO INTERVALS NO-EXTENSION.
SELECT-OPTIONS : S_SPART FOR VBAK-SPART NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN SKIP.

PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.


PARAMETERS : DOWNLOAD AS CHECKBOX.

INITIALIZATION.
V_TITLE = 'SALES DOCUMENT:ITEM DATA AND DELIVERY DETAILS'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.


PERFORM GET_FILE_PATH.

AT SELECTION-SCREEN ON HELP-REQUEST FOR P_FILE.


PERFORM GET_HELP_FOR_FILE_PATH.

AT SELECTION-SCREEN.
PERFORM VALIDATE_SALESDOCUMENT.
PERFORM VALIDATE_SALESORGANIZATION.
PERFORM VALIDATE_DISTRIBUTIONCHANNEL.
PERFORM VALIDATE_DIVISION.

START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM DISPLAY_DATA.
PERFORM DOWNLOAD_DATA.

END-OF-SELECTION.

TOP-OF-PAGE.
PERFORM DISPLAY_HEADING.

END-OF-PAGE.
PERFORM DISPLAY_FOOTER.

FORM GET_FILE_PATH .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = P_FILE
CHANGING
FILE_NAME = P_FILE.
ENDFORM. " GET_FILE_PATH

FORM GET_HELP_FOR_FILE_PATH .
MESSAGE 'PLEASE SELECT FILE PATH' TYPE 'I'.
ENDFORM. " GET_HELP_FOR_FILE_PATH

FORM VALIDATE_SALESDOCUMENT .
SELECT SINGLE VBELN FROM VBAK INTO WA_VBAK WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE 'INVALID SALES DOCUMENT NO' TYPE 'I'.
ENDIF.
ENDFORM. " VALIDATE_SALESDOCUMENT

FORM VALIDATE_SALESORGANIZATION .
SELECT VKORG FROM VBAK INTO WA_VBAK UP TO 1 ROWS WHERE VKORG IN S_VKORG.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE 'INVALID SALES ORGANIZATION' TYPE 'I'.
ENDIF.
ENDFORM. " VALIDATE_SALESORGANIZATION

FORM VALIDATE_DISTRIBUTIONCHANNEL.
SELECT VTWEG FROM VBAK INTO WA_VBAK UP TO 1 ROWS WHERE VTWEG IN S_VTWEG.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE 'INVALID DISTRIBUTION CHANNEL' TYPE 'I'.
ENDIF.
ENDFORM. " VALIDATE_DISTRIBUTIONCHANNEL

FORM VALIDATE_DIVISION .
SELECT SPART FROM VBAK INTO WA_VBAK UP TO 1 ROWS WHERE SPART IN S_SPART.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE 'INVALID DIVISION' TYPE 'I'.
ENDIF.
ENDFORM. " VALIDATE_DIVISION

FORM GET_DATA .

SELECT VBELN VKORG VTWEG SPART FROM VBAK INTO TABLE I_VBAK WHERE VBELN IN
S_VBELN AND VKORG IN S_VKORG
AND VTWEG IN
S_VTWEG AND SPART IN S_SPART.
IF I_VBAK IS NOT INITIAL.

SELECT VBELN POSNR MATNR ZMENG NETPR FROM VBAP INTO TABLE I_VBAP FOR ALL
ENTRIES IN I_VBAK
WHERE
VBELN = I_VBAK-VBELN.

SELECT VBELV POSNV VBELN POSNN VBTYP_N FROM VBFA INTO TABLE I_VBFA FOR
ALL ENTRIES IN I_VBAP
WHERE VBELV = I_VBAP-
VBELN AND VBTYP_N = 'J'.

SELECT VBELN FROM LIKP INTO TABLE I_LIKP FOR ALL ENTRIES IN I_VBFA WHERE
VBELN = I_VBFA-VBELN.
SELECT VBELN POSNR LFIMG NETPR FROM LIPS INTO TABLE I_LIPS FOR ALL
ENTRIES IN I_LIKP
WHERE VBELN =
I_LIKP-VBELN.
SORT I_VBAP.
SORT I_LIPS.

LOOP AT I_VBFA INTO WA_VBFA.


READ TABLE I_LIPS INTO WA_LIPS WITH KEY VBELN = WA_VBFA-VBELN POSNR =
WA_VBFA-POSNN BINARY SEARCH.
READ TABLE I_VBAP INTO WA_VBAP WITH KEY VBELN = WA_VBFA-VBELV POSNR =
WA_VBFA-POSNV BINARY SEARCH.
WA_FINAL-VBELN = WA_VBAP-VBELN.
WA_FINAL-POSNR = WA_VBAP-POSNR.
WA_FINAL-MATNR = WA_VBAP-MATNR.
WA_FINAL-ZMENG = WA_VBAP-ZMENG.
WA_FINAL-NETPR = WA_VBAP-NETPR.
WA_FINAL-VBELN1 = WA_LIPS-VBELN.
WA_FINAL-POSNR1 = WA_LIPS-POSNR.
WA_FINAL-LFIMG = WA_LIPS-LFIMG.
WA_FINAL-NETPR1 = WA_LIPS-NETPR.
APPEND WA_FINAL TO I_FINAL.
CLEAR WA_FINAL.
ENDLOOP.
ENDIF.

ENDFORM. " GET_DATA

FORM DISPLAY_DATA .
LOOP AT I_FINAL INTO WA_FINAL.
WRITE : / WA_FINAL-VBELN,WA_FINAL-POSNR,WA_FINAL-MATNR,WA_FINAL-
ZMENG,WA_FINAL-NETPR,
WA_FINAL-VBELN1,WA_FINAL-POSNR1,WA_FINAL-LFIMG,WA_FINAL-NETPR.
ENDLOOP.
ENDFORM. " DISPLAY_DATA

FORM DOWNLOAD_DATA .
IF DOWNLOAD = 'X'.
V_FNAME = P_FILE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = V_FNAME
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = I_FINAL.
IF SY-SUBRC = 0.
MESSAGE 'DATA SUCCESSFULLY DOWNLOADED' TYPE 'I'.
ENDIF.
ENDIF.
ENDFORM. " DOWNLOAD_DATA

FORM DISPLAY_HEADING .
WRITE: SY-ULINE.
WRITE :/45 V_TITLE.
WRITE: SY-ULINE.
ENDFORM. " DISPLAY_HEADING

FORM DISPLAY_FOOTER .
WRITE: SY-ULINE.
WRITE :/45 'INTEL GROUP OF COMPANIES'.
WRITE: SY-ULINE.
ENDFORM. " DISPLAY_FOOTER

You might also like