HOME   |   TUTORIALS   |   JOBS  |    DOWNLOAD  |   CERTIFICATION   |    EMERGING TECH  |    TOOLS   |    PROJECTS  |    ARTICLES  |    REFERENCES 
 
Welcome to SAPBrainsOnline

"Site covers most of the SAP technical and functional tutorials, articles, interview questions. 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"

 ABAP Program for Module Pool containing screen loop processing

 
Sample ABAP program for showing how to program Module Pool containing screen loop processing

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

SAP TOPICS

ABAP  Advanced ABAP  SAP JOBS  SAP Functional Modules  SAP R/3  SAP NetWeaver  

Most readed SAP Tutorials

Latest Added SAP documents

SAP Technical Tutorials

SAP Functional Tutorials

SAP Emerging Technologies

SAP References

TOOLS

 
Custom Search
ABAP Tutorials ABAP Syntax BAPI SAP Jobs SAP Glossary SAP Netweaver SAP XI SAP Download SAP Interview questions

Complete SAP Study materials | SAP JOBS | PDF Tutorials   List of SAP Companies India

Google-Translate-Chinese (Simplified) BETA Google-Translate-English to French Google-Translate-English to German Google-Translate-English to Italian Google-Translate-English to Japanese BETA Google-Translate-English to Korean BETA Google-Translate-English to Russian BETA Google-Translate-English to Spanish

All of the product names here are trademarks of their respective companies. The site sapbrainsonline.com no way affiliated with SAP AG. Use information on this site at your own risk. Information furnished in the site is collected from various sites and posts from users. This site does not host any files on its server. If any compliants about the posts please contact us at sapbrain.support@gmail.com

Sitemap
web counter