SAP Certification
SAP Download
SAP Companies India
SAP Books
SAP JOBS
SAP jobs in India
SAP ABAP jobs in India
SAP BASIS jobs in India
SAP BI jobs in India
SAP CRM jobs in India
SAP FICO jobs in India
SAP Fresher jobs in India
SAP HR jobs in India
SAP MM jobs in India
SAP PM jobs in India
SAP PP jobs in India
SAP SD jobs in India
SAP XI jobs in India
|
Sample ABAP program for showing how to program Module Pool containing screen loop processing
Show Full Details
PROGRAM YLSDM004. TABLES: LTAP, "Transfer order item LIPS, "SD doc delivery: item data MAKT, "material description VEPO, "SD Document: Shipping Unit Item VEKP, "SD Document: Shipping Unit Header USR01, "USER defaults ZPACKMAT, "Packing material table T646M, "hazard class descriptions ZCASHAZLAB. "SCasehazardous label table DATA: OK_CODE(4).
DATA: C LIKE SY-INDEX, " cursor for case labels * C1 LIKE SY-INDEX, " cursor for storage class(haz) C2 LIKE SY-INDEX. " cursor for text * screen fields for selection screen 0100 DATA: S_ZZTRACKING LIKE LTAP-ZZTRACKING, * S_VENUM LIKE VEKP-VENUM, S_EXIDV LIKE VEKP-EXIDV. * DATA W_MAKTX LIKE MAKT-MAKTX. * packaging materials DATA: S_PACKMAT1 LIKE VEKP-ZZPACKMAT1, S_BEZEI1 LIKE ZPACKMAT-BEZEI, S_PACKMAT2 LIKE VEKP-ZZPACKMAT1, S_BEZEI2 LIKE ZPACKMAT-BEZEI. * Case label codes and descriptions DATA: BEGIN OF LABELS OCCURS 5 , CODE LIKE VEKP-ZZCASELAB1, TEXT LIKE ZCASHAZLAB-ZZCLB_TEXT, END OF LABELS. * hazard class and descriptions DATA: BEGIN OF HAZ OCCURS 3, CODE LIKE VEKP-ZZLAGKL, TEXT LIKE T646M-LAGKT, END OF HAZ. DATA: W_HAZ_TEXT1 LIKE T646M-LAGKT, W_HAZ_TEXT2 LIKE T646M-LAGKT, W_HAZ_TEXT3 LIKE T646M-LAGKT.
DATA T_LINES LIKE TLINE OCCURS 1 WITH HEADER LINE. DATA T_HEADER LIKE THEAD. *DATA W_INDEX LIKE SY-INDEX. * start line of the last screen of text lines DATA W_MAX LIKE SY-INDEX. DATA W_TIN_MAKTX LIKE MAKT-MAKTX. *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * selection screen * *----------------------------------------------------------------------* MODULE STATUS_0100 OUTPUT. CASE OK_CODE. WHEN 'EXIT'. LEAVE TO SCREEN 0. WHEN 'CANC'.
SELECT SINGLE * FROM USR01 WHERE BNAME = SY-UNAME .
LEAVE TO TRANSACTION USR01-STCOD. ENDCASE. SET PF-STATUS 'SELECT'. CLEAR: VEKP, LTAP. SET TITLEBAR 'SEL'.
ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* * text * *----------------------------------------------------------------------* MODULE USER_COMMAND_0100 INPUT. C2 = 0. * Mandatory Fields CHECK OK_CODE = 'EXEC'. * CALL SCREEN '0110'. ENDMODULE. " USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* *& Module VAL_ZZTRACKING INPUT *&---------------------------------------------------------------------* * text * *----------------------------------------------------------------------* MODULE VAL_ZZTRACKING INPUT. * MUST enter at least one value * IF S_ZZTRACKING = ' ' AND S_VENUM = ' ' AND S_EXIDV = ' '. IF S_ZZTRACKING = ' ' AND S_EXIDV = ' '. MESSAGE E001(YL). ENDIF.
* if tracking label entered other fields must be initial IF S_ZZTRACKING NE ' ' * AND ( S_VENUM NE ' ' OR S_EXIDV NE ' ' ). AND S_EXIDV NE ' ' . MESSAGE E083(YL). ENDIF. * if tracking label number entered get record from LTAP
IF S_ZZTRACKING NE ' '.
SELECT SINGLE * FROM LTAP WHERE ZZTRACKING = S_ZZTRACKING. IF SY-SUBRC NE 0. MESSAGE E022(YL) WITH S_ZZTRACKING. ELSE. *-------------------------------------------------------------------- * * IF LTAP-VENUM NE ' '. * * SELECT SINGLE * FROM VEKP * WHERE VENUM = LTAP-VENUM . * IF LTAP-EXIDV NE ' '.
SELECT SINGLE * FROM VEKP WHERE EXIDV = LTAP-EXIDV . *--------------------------------------------------------------------- IF SY-SUBRC NE 0. MESSAGE E022(YL) WITH LTAP-EXIDV. ENDIF. ENDIF. ENDIF. ENDIF. ENDMODULE. " VAL_ZZTRACKING INPUT *&---------------------------------------------------------------------* *& Module VAL_VENUM INPUT *&---------------------------------------------------------------------* * text * *----------------------------------------------------------------------* *MODULE VAL_VENUM INPUT. * SET CURSOR FIELD S_VENUM. * IF S_VENUM NE ' ' * AND S_EXIDV NE ' '. * MESSAGE E083(YL). * ENDIF. * IF S_VENUM NE ' '. * * SELECT SINGLE * FROM VEKP * WHERE VENUM = S_VENUM. * IF SY-SUBRC NE 0. * MESSAGE E022(YL) WITH S_VENUM. * ENDIF. * ENDIF. *ENDMODULE. " VAL_VENUM INPUT *&---------------------------------------------------------------------* *& Module EXIT_COMMAND INPUT *&---------------------------------------------------------------------* * text * *----------------------------------------------------------------------* MODULE EXIT_COMMAND INPUT. CASE OK_CODE. WHEN 'EXIT'. LEAVE TO SCREEN 0. WHEN 'CANC'. SELECT SINGLE * FROM USR01 WHERE BNAME = SY-UNAME .
LEAVE TO TRANSACTION USR01-STCOD. WHEN 'BACK'. LEAVE TO SCREEN 0. ENDCASE.
ENDMODULE. " EXIT_COMMAND INPUT *&---------------------------------------------------------------------* *& Module VAL_EXIDV INPUT *&---------------------------------------------------------------------* * validate external shipping unit number exits on VEKP * *----------------------------------------------------------------------* MODULE VAL_EXIDV INPUT. IF S_EXIDV NE ' '. CONCATENATE '00' S_EXIDV INTO VEKP-EXIDV. SELECT SINGLE * FROM VEKP WHERE EXIDV = VEKP-EXIDV. IF SY-SUBRC NE 0. MESSAGE E022(YL) WITH S_EXIDV. ENDIF. ENDIF. ENDMODULE. " VAL_EXIDV INPUT *&---------------------------------------------------------------------* *& Module STATUS_0110 OUTPUT *&---------------------------------------------------------------------* * Display screen * *----------------------------------------------------------------------* MODULE STATUS_0110 OUTPUT. IF OK_CODE = 'P+ ' OR OK_CODE = 'P- ' OR OK_CODE = 'P++ ' OR OK_CODE = 'P-- '. EXIT. ENDIF. IF VEKP-VENUM = ' '. * processing mode b PERFORM DISP_DELIVERY. ELSE. * processing mode a PERFORM DISP_SHIP_UNIT. ENDIF. * common processing * get mara details CLEAR MAKT. *SELECT SINGLE * FROM MARA * WHERE MATNR = LIPS-MATNR . *IF SY-SUBRC = 0. * material description SELECT SINGLE * FROM MAKT WHERE MATNR = LIPS-MATNR AND SPRAS = SY-LANGU . DATA W_TDNAME LIKE THEAD-TDNAME. W_TDNAME = LIPS-VBELN. W_TDNAME+10 = LIPS-POSNR. CLEAR T_LINES. REFRESH T_LINES. CALL FUNCTION 'READ_TEXT' EXPORTING ID = 'Z034' LANGUAGE = SY-LANGU NAME = W_TDNAME OBJECT = 'VBBP' IMPORTING HEADER = T_HEADER TABLES LINES = T_LINES EXCEPTIONS ID = 1 LANGUAGE = 2 NAME = 3 NOT_FOUND = 4 OBJECT = 5 REFERENCE_CHECK = 6 WRONG_ACCESS_TO_ARCHIVE = 7 OTHERS = 8. LOOP AT T_LINES. EXIT. ENDLOOP. IF SY-TFILL > 1. * W_MAX = SY-TFILL - 5. W_MAX = SY-TFILL - 1. ELSE. W_MAX = 1. ENDIF. * IF W_MAX > 3 . SET PF-STATUS 'DELIVERY'. ELSE. SET PF-STATUS 'ONE'. ENDIF. ENDMODULE. " STATUS_0110 OUTPUT
*&---------------------------------------------------------------------* *& Form DISP_DELIVERY *&---------------------------------------------------------------------* * Diplay delivery title - Read delivery item from LIPS * processing mode B *----------------------------------------------------------------------* FORM DISP_DELIVERY. * SET PF-STATUS 'DELIVERY'. SET TITLEBAR 'DEL'. CLEAR LIPS. SELECT SINGLE * FROM LIPS WHERE VBELN = LTAP-VBELN_VL AND POSNR = LTAP-POSNR_VL .
ENDFORM. " DISP_DELIVERY
*&---------------------------------------------------------------------* *& Form DISP_SHIP_UNIT *&---------------------------------------------------------------------* * Display Shipping unit title and read shipping details *----------------------------------------------------------------------* * Processing MODE a *----------------------------------------------------------------------* FORM DISP_SHIP_UNIT.
* SET PF-STATUS 'DELIVERY'. SET TITLEBAR 'SHP'. * vekp already read * read vepo * only one line per case CLEAR VEPO. CLEAR LIPS. CLEAR W_MAKTX. CLEAR W_TIN_MAKTX. CLEAR ZPACKMAT. CLEAR S_PACKMAT1. CLEAR S_PACKMAT2. CLEAR S_BEZEI1. CLEAR S_BEZEI2. CLEAR LABELS. REFRESH LABELS. SELECT SINGLE * FROM VEPO WHERE VENUM = VEKP-VENUM. IF SY-SUBRC = 0. SELECT SINGLE * FROM LIPS WHERE VBELN = VEPO-VBELN AND POSNR = VEPO-POSNR . ENDIF. * packaging material IF VEKP-ZZPACKMAT1 NE ' '. SELECT SINGLE * FROM ZPACKMAT WHERE ZZPACKMAT = VEKP-ZZPACKMAT1. IF SY-SUBRC = 0. S_PACKMAT1 = VEKP-ZZPACKMAT1. S_BEZEI1 = ZPACKMAT-BEZEI. ENDIF. ENDIF.
IF VEKP-ZZPACKMAT2 NE ' '. SELECT SINGLE * FROM ZPACKMAT WHERE ZZPACKMAT = VEKP-ZZPACKMAT2. IF SY-SUBRC = 0. S_PACKMAT2 = VEKP-ZZPACKMAT2. S_BEZEI2 = ZPACKMAT-BEZEI. ENDIF. ENDIF. * hazard class x 3 CLEAR: W_HAZ_TEXT1, W_HAZ_TEXT2, W_HAZ_TEXT3. * REFRESH HAZ. IF VEKP-ZZLAGKL NE ' '. * HAZ-CODE = VEKP-ZZLAGKL.
SELECT SINGLE * FROM T646M WHERE SPRAS = SY-LANGU AND LAGKL = VEKP-ZZLAGKL . IF SY-SUBRC = 0. W_HAZ_TEXT1 = T646M-LAGKT. ENDIF. * APPEND HAZ. ENDIF. IF VEKP-ZZLAGKL2 NE ' '. * HAZ-CODE = VEKP-ZZLAGKL2.
SELECT SINGLE * FROM T646M WHERE SPRAS = SY-LANGU AND LAGKL = VEKP-ZZLAGKL2 . IF SY-SUBRC = 0. W_HAZ_TEXT2 = T646M-LAGKT. ENDIF. * APPEND HAZ. ENDIF. IF VEKP-ZZLAGKL3 NE ' '. * CLEAR HAZ. * HAZ-CODE = VEKP-ZZLAGKL3.
SELECT SINGLE * FROM T646M WHERE SPRAS = SY-LANGU AND LAGKL = VEKP-ZZLAGKL3 . IF SY-SUBRC = 0. W_HAZ_TEXT3 = T646M-LAGKT. ENDIF. * APPEND HAZ. ENDIF. * LOOP AT HAZ. * EXIT. * ENDLOOP.
* case label details IF VEKP-ZZCASELAB1 NE ' '. LABELS-CODE = VEKP-ZZCASELAB1. APPEND LABELS. ENDIF. IF VEKP-ZZCASELAB2 NE ' '. LABELS-CODE = VEKP-ZZCASELAB2. APPEND LABELS. ENDIF. IF VEKP-ZZCASELAB3 NE ' '. LABELS-CODE = VEKP-ZZCASELAB3. APPEND LABELS. ENDIF. IF VEKP-ZZCASELAB4 NE ' '. LABELS-CODE = VEKP-ZZCASELAB4. APPEND LABELS. ENDIF. IF VEKP-ZZCASELAB5 NE ' '. LABELS-CODE = VEKP-ZZCASELAB5. APPEND LABELS. ENDIF.
LOOP AT LABELS.
SELECT SINGLE * FROM ZCASHAZLAB WHERE ZZCASELAB = LABELS-CODE . LABELS-TEXT = ZCASHAZLAB-ZZCLB_TEXT. MODIFY LABELS. ENDLOOP. * tin material description IF VEPO-ZZTINNR NE ' '. SELECT SINGLE * FROM MAKT WHERE MATNR = VEPO-ZZTINNR AND SPRAS = SY-LANGU .
IF SY-SUBRC = 0. W_TIN_MAKTX = MAKT-MAKTX. ENDIF. ENDIF.
* case material description IF VEKP-VHILM NE ' '. SELECT SINGLE * FROM MAKT WHERE MATNR = VEKP-VHILM AND SPRAS = SY-LANGU .
IF SY-SUBRC = 0. W_MAKTX = MAKT-MAKTX. ENDIF. ENDIF.
ENDFORM. " DISP_SHIP_UNIT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0110 INPUT *&---------------------------------------------------------------------* * text * *----------------------------------------------------------------------* MODULE USER_COMMAND_0110 INPUT. * position text line cursor CASE OK_CODE. WHEN 'P+ '. C2 = C2 + 3. IF C2 > W_MAX. C2 = W_MAX. ENDIF. WHEN 'P- '. C2 = C2 - 3. IF C2 < 1. C2 = 1. ENDIF. WHEN 'P++ '. C2 = W_MAX. WHEN 'P-- '. C2 = 1. WHEN 'VL02'. SET PARAMETER ID 'VL ' FIELD LIPS-VBELN. CALL TRANSACTION 'VL02'.
ENDCASE. ENDMODULE. " USER_COMMAND_0110 INPUT
Show Most Readed SAP Tutorials
Most readed SAP Tutorials
Show Latest Added SAP Tutorials
Latest Added SAP documents
|
"Site covers most of the SAP technical and functional tutorials, articles, interview questions and PDF study materials . List and details of SAP transaction codes ( tcodes ), Tables, report names, Bapi, ABAP programming syntax and keywords are also available in the site.
Information on SAP Certification and training, latest SAP jobs in India, ABAP interview questions are useful for SAP professionals seeking for a career in SAP as a fresher or experienced.ABAP tutorial downloads on BDC, LSMW, BAPI, ALE, IDOC, Smartforms, Sapscripts etc etc are also added.Now you can read from this page about ABAP Program for Module Pool containing screen loop processing" |