You are on page 1of 30

SAP R/3 Release 4.

7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apter # Programming Section


Flow Logic - Screen 9000 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. MODULE ADDITION. Flow Logic - Screen 900 PROCESS BEFORE OUTPUT. PROCESS AFTER INPUT. To! Incl"#e PRO$RAM SAPM%OP&& . DATA' NUM T%PE I( NUM) LI*E NUM ( RESULT LI*E NUM . PBO Mo#"le+ MODULE INITIALIZE OUTPUT. CLEAR' NUM ( NUM)( RESULT. ENDMODULE. PAI Mo#"le+ MODULE ADDITION INPUT. RESULT , NUM - NUM). ENDMODULE.

P.ge

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apters 4$% Programming Section


Flow Logic - Screen 9000 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. MODULE $ET1RECORD. Flow Logic - Screen 900 PROCESS BEFORE OUTPUT. PROCESS AFTER INPUT. To! Incl"#e PRO$RAM SAPM%OP&&2. TABLES' %MO3IE1OP. PBO Mo#"le+ MODULE INITIALIZE OUTPUT. CLEAR %MO3IE1OP. ENDMODULE. PAI Mo#"le+ MODULE $ET1RECORD INPUT. C4EC* %MO3IE1OP-CATE$OR% 56 7PIC7 OR %MO3IE1OP-CATE$OR% 56 7MAL7 OR %MO3IE1OP-CATE$OR% 56 7FEM7. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. ENDMODULE.

P.ge )

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apters &$' Programming Section


Flow Logic - Screen 9000 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. C4AIN. FIELD' %MO3IE1OP-%EARC( %MO3IE1OP-CATE$OR%. MODULE C4EC*1%EAR. MODULE $ET1RECORD. ENDC4AIN. 8 no:e' :/e SPA;$PA .::ri<":e+ .re :"rne# =on> ?or :/e @e.r .n# c.:egor@ ?iel#+ Flow Logic - Screen 900 PROCESS BEFORE OUTPUT. PROCESS AFTER INPUT. 8 No:e' :/e c"r+or i+ !o+i:ione# in :/e Screen A::ri<":e+ o? :/i+ +creen To! Incl"#e PRO$RAM SAPM%OP&&A TABLES' %MO3IE1OP. PBO Mo#"le+ MODULE INITIALIZE OUTPUT. CLEAR %MO3IE1OP. ENDMODULE. MESSA$E-ID %TRABAPMS$.

P.ge 2

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

PAI Mo#"le+ MODULE C4EC*1%EAR INPUT. 8 loc.l #.:. ?or :/i+ Bo#"le DATA' MA&1%EARCAD T%PE N. CONSTANTS' MIN1%EARCAD T%PE N 3ALUE E 9)FG. MA&1%EAR , S%-DATUMCAD. IF %MO3IE1OP-%EARC 5 MIN1%EAR OR %MO3IE1OP-%EARC 6 MA&1%EAR. MESSA$E E009 9IT4 MIN1%EAR MA&1%EAR. = InH.li# %e.r ENDIF. ENDMODULE. MODULE $ET1RECORD INPUT. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. IF S%-SUBRC 56 0. MESSA$E E00 . =No recor# eIi+:+ ENDIF. ENDMODULE.

P.ge A

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apters ($)* Programming Section


Flow Logic - Screen 9000 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. C4AIN. FIELD' %MO3IE1OP-%EARC( %MO3IE1OP-CATE$OR%. MODULE C4EC*1%EAR. MODULE $ET1RECORD. ENDC4AIN. MODULE E&IT. 8 no:e' :/e SPA;$PA .::ri<":e+ .re :"rne# =on> ?or :/e @e.r .n# c.:egor@ ?iel#+ in :/i+ +creen Flow Logic - Screen 900 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. 8 :/e c"r+or i+ now +e: in :/i+ ini:i.liJe Bo#"le PROCESS AFTER INPUT. MODULE CRITIC. MODULE E&IT. Flow Logic - Screen 900) PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. MODULE RETURN.

P.ge 0

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

To! Incl"#e PRO$RAM SAPM%OP&&0 TABLES' %MO3IE1OP. DATA' O*CODECAD. PBO Mo#"le+ MODULE INITIALIZE OUTPUT. CASE S%-D%NNR. = +@-#@nnr con:.in+ c"rren: +creen n"B<er 94EN 9000. CLEAR %MO3IE1OP. SET PF-STATUS EFIRSTG. SET TITLEBAR EONEG. 94EN 900 . SET PF-STATUS ESECONDG. SET TITLEBAR 7T9O7. SET CURSOR FIELD E%MO3IE1OP-NOTESG. =.no:/er w.@ :o +e: c"r+or !o+i:ion 94EN 900). SET PF-STATUS ET4IRDG. SET TITLEBAR 7T4REE7. ENDCASE. CLEAR O*CODE. ENDMODULE. PAI Mo#"le+ MODULE C4EC*1%EAR INPUT. 8 loc.l #.:. ?or :/i+ Bo#"le DATA' MA&1%EARCAD T%PE N. CONSTANTS' MIN1%EARCAD T%PE N 3ALUE E 9)FG. MA&1%EAR , S%-DATUMCAD. IF %MO3IE1OP-%EARC 5 MIN1%EAR OR %MO3IE1OP-%EARC 6 MA&1%EAR. MESSA$E E009. = InH.li# %e.r ENDIF. ENDMODULE. MODULE $ET1RECORD INPUT. CASE O*CODE. 94EN EADDG.
M.rc/ )000

MESSA$E-ID %TRABAPMS$.

P.ge K

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. IF S%-SUBRC , 0. CLEAR' %MO3IE1OP-9INNER( %MO3IE1OP-NAME ( %MO3IE1OP-NAME)( %MO3IE1OP-NAME2( %MO3IE1OP-NAMEA( %MO3IE1OP-NAME0( %MO3IE1OP-NOTES( %MO3IE1OP-CRITIC. MESSA$E E00K. =Recor# .lre.#@ eIi+:+ ENDIF. LEA3E TO SCREEN 900 . 94EN EEDITG. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. IF S%-SUBRC 56 0. MESSA$E E00 . =No recor# eIi+:+ ENDIF. LEA3E TO SCREEN 900 . ENDCASE. ENDMODULE.

P.ge F

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

MODULE CRITIC INPUT. C4EC* O*CODE , ENAMEG. CALL SCREEN 900) STARTIN$ AT 20 0 ENDIN$ AT K0 0. ENDMODULE. MODULE E&IT INPUT. IF O*CODE , EE&ITG. LEA3E TO SCREEN 0. ELSEIF O*CODE , EINITG. LEA3E TO SCREEN 9000. ENDIF. ENDMODULE. MODULE RETURN INPUT. LEA3E TO SCREEN 0. ENDMODULE.

P.ge L

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apters )#$)4 Programming Section


Flow Logic - Screen 9000 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. C4AIN. FIELD' %MO3IE1OP-%EARC( %MO3IE1OP-CATE$OR%. MODULE C4EC*1%EAR. MODULE $ET1RECORD. ENDC4AIN. MODULE E&IT AT E&IT-COMMAND. 8 no:e' :/e SPA;$PA .::ri<":e+ .re :"rne# =on> ?or :/e @e.r .n# c.:egor@ ?iel#+ in :/i+ +creen Flow Logic - Screen 900 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. 8 :/e c"r+or i+ now +e: in :/i+ ini:i.liJe Bo#"le PROCESS AFTER INPUT. MODULE MODIF%. MODULE CRITIC. MODULE E&IT AT E&IT-COMMAND. Flow Logic - Screen 900) PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. MODULE RETURN.

P.ge 9

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

To! Incl"#e PRO$RAM SAPM%OP&&K MESSA$E-ID %TRABAPMS$. TABLES' %MO3IE1OP. DATA' O*CODECAD( INITIAL1O*CODE LI*E O*CODE. PBO Mo#"le+ MODULE INITIALIZE OUTPUT. CASE S%-D%NNR. = +@-#@nnr con:.in+ c"rren: +creen n"B<er 94EN 9000. CLEAR %MO3IE1OP. SET PF-STATUS EFIRSTG. SET TITLEBAR EONEG. 94EN 900 . SET PF-STATUS ESECONDG. SET TITLEBAR 7T9O7. SET CURSOR FIELD E%MO3IE1OP-NOTESG. =.no:/er w.@ :o +e: c"r+or !o+i:ion 94EN 900). SET PF-STATUS ET4IRDG. SET TITLEBAR 7T4REE7. ENDCASE. CLEAR O*CODE. ENDMODULE. PAI Mo#"le+ MODULE C4EC*1%EAR INPUT. 8 loc.l #.:. ?or :/i+ Bo#"le DATA' MA&1%EARCAD T%PE N. CONSTANTS' MIN1%EARCAD T%PE N 3ALUE E 9)FG. MA&1%EAR , S%-DATUMCAD. IF %MO3IE1OP-%EARC 5 MIN1%EAR OR %MO3IE1OP-%EARC 6 MA&1%EAR. MESSA$E E009. = InH.li# %e.r ENDIF. ENDMODULE. MODULE $ET1RECORD INPUT. CASE O*CODE. 94EN EADDG. PERFORM LOC*1RECORD. =nee# :o locM <e?ore +elec:ing SELECT SIN$LE 8 FROM %MO3IE1OP
P.ge 0 M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. IF S%-SUBRC , 0. CLEAR' %MO3IE1OP-9INNER( %MO3IE1OP-NAME ( %MO3IE1OP-NAME)( %MO3IE1OP-NAME2( %MO3IE1OP-NAMEA( %MO3IE1OP-NAME0( %MO3IE1OP-NOTES( %MO3IE1OP-CRITIC. MESSA$E E00K. =Recor# .lre.#@ eIi+:+ ENDIF. INITIAL1O*CODE , O*CODE. LEA3E TO SCREEN 900 . 94EN EEDITG. PERFORM LOC*1RECORD. =nee# :o locM <e?ore +elec:ing SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. IF S%-SUBRC 56 0. MESSA$E E00 . =No recor# eIi+:+ ENDIF. INITIAL1O*CODE , O*CODE. LEA3E TO SCREEN 900 . ENDCASE. ENDMODULE.

P.ge

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

MODULE MODIF% INPUT. =+ee .l:ern.:iHe :o :/i+ Bo#"le on :/e neI: !.ge C4EC* O*CODE , EMODIG. IF INITIAL1O*CODE , EEDITG. UPDATE %MO3IE1OP. IF S%-SUBRC , 0. COMMIT 9OR*. MESSA$E S00). =Recor# "!#.:e# +"cce++?"ll@ ELSE. ROLLBAC* 9OR*. MESSA$E I002. =U!#.:e "n+"cce++?"l ENDIF. ELSEIF INITIAL1O*CODE , EADDG. INSERT %MO3IE1OP. IF S%-SUBRC , 0. COMMIT 9OR*. MESSA$E S00F. =Recor# in+er:e# +"cce++?"ll@ ELSE. ROLLBAC* 9OR*. MESSA$E I00L. =In+er: "n+"cce++?"l ENDIF. ENDIF. PERFORM UNLOC*1RECORD. =nee# :o "nlocM :/e recor# w/en le.Hing 900 LEA3E TO SCREEN 9000. ENDMODULE.

P.ge )

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

88888888888888888888888 .l:ern.:iHe co#e ?or MODIF% Bo#"le 88888888888888888888888 MODULE MODIF% INPUT. C4EC* O*CODE , EMODIG. MODIF% %MO3IE1OP. =Bo#i?@ will in+er: . new recor# or "!#.:e .n eIi+:ing one MESSA$E S0 F. =Recor# Bo#i?ie# +"cce++?"ll@ PERFORM UNLOC*1RECORD. =nee# :o "nlocM :/e recor# w/en le.Hing 900 LEA3E TO SCREEN 9000. ENDMODULE. 888888888888888888888888888888888888888888888888888888888888888888888888888888

P.ge 2

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

MODULE CRITIC INPUT. C4EC* O*CODE , ENAMEG. CALL SCREEN 900) STARTIN$ AT 20 0 ENDIN$ AT K0 0. ENDMODULE. MODULE E&IT INPUT. IF S%-D%NNR , 900 . PERFORM UNLOC*1RECORD. =nee# :o "nlocM recor# w/en le.Hing 900 ENDIF. IF O*CODE , EE&ITG. LEA3E TO SCREEN 0. ELSEIF O*CODE , EINITG. LEA3E TO SCREEN 9000. ENDIF. ENDMODULE. MODULE RETURN INPUT. LEA3E TO SCREEN 0. ENDMODULE.

P.ge A

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

S"<ro":ine+ FORM LOC*1RECORD. CALL FUNCTION EENNUEUE1EZ1MO3IE1OPG E&PORTIN$ %EARC , %MO3IE1OP-%EARC CATE$OR% , %MO3IE1OP-CATE$OR% E&CEPTIONS FOREI$N1LOC* , S%STEM1FAILURE , ) OT4ERS , 2. IF S%-SUBRC , . MESSA$E E00A. =T/i+ recor# i+ c"rren:l@ locMe# ELSEIF S%-SUBRC , ) OR S%-SUBRC , 2. MESSA$E E0 0. =Error :r@ing :o locM recor# ENDIF. ENDFORM. FORM UNLOC*1RECORD. CALL FUNCTION EDENUEUE1EZ1MO3IE1OPG E&PORTIN$ %EARC , %MO3IE1OP-%EARC CATE$OR% , %MO3IE1OP-CATE$OR% E&CEPTIONS OT4ERS , . IF S%-SUBRC , . MESSA$E E0 K. =Error :r@ing :o "nlocM recor# ENDIF. ENDFORM.

P.ge 0

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apters )% Programming Section


Flow Logic - Screen 9000 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. C4AIN. FIELD' %MO3IE1OP-%EARC( %MO3IE1OP-CATE$OR%. MODULE C4EC*1%EAR. MODULE $ET1RECORD. ENDC4AIN. MODULE E&IT AT E&IT-COMMAND. 8 no:e' :/e SPA;$PA .::ri<":e+ .re :"rne# =on> ?or :/e @e.r .n# c.:egor@ ?iel#+ in :/i+ +creen Flow Logic - Screen 900 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. 8 :/e c"r+or i+ now +e: in :/i+ ini:i.liJe Bo#"le PROCESS AFTER INPUT. MODULE MODIF%. MODULE CRITIC. MODULE E&IT AT E&IT-COMMAND. Flow Logic - Screen 900) PROCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. MODULE RETURN.

P.ge K

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

Flow Logic - Screen 9002 PROCESS BEFORE OUTPUT. MODULE INITIALIZE. LOOP AT MO3IE1ITAB CURSOR LOOP1NUM. ENDLOOP. PROCESS AFTER INPUT. LOOP. ENDLOOP. To! Incl"#e PRO$RAM SAPM%OP&&F TABLES' %MO3IE1OP. T%PES' MESSA$E-ID %TRABAPMS$.

BE$IN OF MO3IE1REC( CATE$OR% LI*E %MO3IE1OP-CATE$OR%( 9INNER LI*E %MO3IE1OP-9INNER( END OF MO3IE1REC.

DATA' MO3IE1ITAB T%PE STANDARD TABLE OF MO3IE1REC INITIAL SIZE 2 9IT4 4EADER LINE. DATA' O*CODECAD( INITIAL1O*CODE LI*E O*CODE( LOOP1NUM LI*E S%-INDE&.

P.ge F

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

PBO Mo#"le+ MODULE INITIALIZE OUTPUT. CASE S%-D%NNR. = +@-#@nnr con:.in+ c"rren: +creen n"B<er 94EN 9000. CLEAR %MO3IE1OP. REFRES4 MO3IE1ITAB. SET PF-STATUS EFIRSTG. SET TITLEBAR EONEG. 94EN 900 . SET PF-STATUS ESECONDG. SET TITLEBAR 7T9O7. SET CURSOR FIELD E%MO3IE1OP-NOTESG. =.no:/er w.@ :o +e: c"r+or !o+i:ion 94EN 900). SET PF-STATUS ET4IRDG. SET TITLEBAR 7T4REE7. 94EN 9002. SET PF-STATUS EFOURT4G. SET TITLEBAR 7FOUR7. ENDCASE. CLEAR O*CODE. ENDMODULE. PAI Mo#"le+ MODULE C4EC*1%EAR INPUT. 8 loc.l #.:. ?or :/i+ Bo#"le DATA' MA&1%EARCAD T%PE N. CONSTANTS' MIN1%EARCAD T%PE N 3ALUE E 9)FG. MA&1%EAR , S%-DATUMCAD. IF %MO3IE1OP-%EARC 5 MIN1%EAR OR %MO3IE1OP-%EARC 6 MA&1%EAR. MESSA$E E009. = InH.li# %e.r ENDIF. ENDMODULE.

P.ge L

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

MODULE $ET1RECORD INPUT. CASE O*CODE. 94EN EADDG. PERFORM LOC*1RECORD. =nee# :o locM <e?ore +elec:ing SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. IF S%-SUBRC , 0. CLEAR' %MO3IE1OP-9INNER( %MO3IE1OP-NAME ( %MO3IE1OP-NAME)( %MO3IE1OP-NAME2( %MO3IE1OP-NAMEA( %MO3IE1OP-NAME0( %MO3IE1OP-NOTES( %MO3IE1OP-CRITIC. MESSA$E E00K. =Recor# .lre.#@ eIi+:+ ENDIF. INITIAL1O*CODE , O*CODE. LEA3E TO SCREEN 900 . 94EN EEDITG. PERFORM LOC*1RECORD. =nee# :o locM <e?ore +elec:ing SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE %EARC , %MO3IE1OP-%EARC AND CATE$OR% , %MO3IE1OP-CATE$OR%. IF S%-SUBRC 56 0. MESSA$E E00 . =No recor# eIi+:+ ENDIF. INITIAL1O*CODE , O*CODE. LEA3E TO SCREEN 900 .

P.ge 9

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

94EN ELOOPG. REFRES4 MO3IE1ITAB. = To cle.r :/e con:en:+ o? :/e in:ern.l :.<le SELECT CATE$OR% 9INNER FROM %MO3IE1OP INTO CMO3IE1ITAB-CATE$OR%( MO3IE1ITAB-9INNERD 94ERE %EARC , %MO3IE1OP-%EARC. APPEND MO3IE1ITAB. ENDSELECT. IF S%-SUBRC 56 0. MESSA$E E0 9. =No winner+ eIi+: ?or :/i+ @e.r ENDIF. INITIAL1O*CODE , O*CODE. LEA3E TO SCREEN 9002. ENDCASE. ENDMODULE.

P.ge )0

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

MODULE MODIF% INPUT. =+ee .l:ern.:iHe :o :/i+ Bo#"le on :/e neI: !.ge C4EC* O*CODE , EMODIG. IF INITIAL1O*CODE , EEDITG. UPDATE %MO3IE1OP. IF S%-SUBRC , 0. COMMIT 9OR*. MESSA$E S00). =Recor# "!#.:e# +"cce++?"ll@ ELSE. ROLLBAC* 9OR*. MESSA$E I002. =U!#.:e "n+"cce++?"l ENDIF. ELSEIF INITIAL1O*CODE , EADDG. INSERT %MO3IE1OP. IF S%-SUBRC , 0. COMMIT 9OR*. MESSA$E S00F. =Recor# in+er:e# +"cce++?"ll@ ELSE. ROLLBAC* 9OR*. MESSA$E I00L. =In+er: "n+"cce++?"l ENDIF. ENDIF. PERFORM UNLOC*1RECORD. =nee# :o "nlocM :/e recor# w/en le.Hing 900 LEA3E TO SCREEN 9000. ENDMODULE.

P.ge )

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

88888888888888888888888 Al:ern.:iHe co#e ?or MODIF% Bo#"le 88888888888888888888888 MODULE MODIF% INPUT. C4EC* O*CODE , EMODIG. MODIF% %MO3IE1OP. =Bo#i?@ will in+er: . new recor# or "!#.:e .n eIi+:ing one MESSA$E S0 F. =Recor# Bo#i?ie# +"cce++?"ll@ PERFORM UNLOC*1RECORD. =nee# :o "nlocM :/e recor# w/en le.Hing 900 LEA3E TO SCREEN 9000. ENDMODULE. 888888888888888888888888888888888888888888888888888888888888888888888888888888

P.ge ))

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

MODULE CRITIC INPUT. C4EC* O*CODE , ENAMEG. CALL SCREEN 900) STARTIN$ AT 20 0 ENDIN$ AT K0 0. ENDMODULE. MODULE E&IT INPUT. IF S%-D%NNR , 900 . PERFORM UNLOC*1RECORD. =nee# :o "nlocM recor# w/en le.Hing 900 ENDIF. IF O*CODE , EE&ITG. LEA3E TO SCREEN 0. ELSEIF O*CODE , EINITG. LEA3E TO SCREEN 9000. ENDIF. ENDMODULE. MODULE RETURN INPUT. LEA3E TO SCREEN 0. ENDMODULE.

P.ge )2

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

S"<ro":ine+ FORM LOC*1RECORD. CALL FUNCTION EENNUEUE1EZ1MO3IE1OPG E&PORTIN$ %EARC , %MO3IE1OP-%EARC CATE$OR% , %MO3IE1OP-CATE$OR% E&CEPTIONS FOREI$N1LOC* , S%STEM1FAILURE , ) OT4ERS , 2. IF S%-SUBRC , . MESSA$E E00A. =T/i+ recor# i+ c"rren:l@ locMe# ELSEIF S%-SUBRC , ) OR S%-SUBRC , 2. MESSA$E E0 0. =Error :r@ing :o locM recor# ENDIF. ENDFORM. FORM UNLOC*1RECORD. CALL FUNCTION EDENUEUE1EZ1MO3IE1OPG E&PORTIN$ %EARC , %MO3IE1OP-%EARC CATE$OR% , %MO3IE1OP-CATE$OR% E&CEPTIONS OT4ERS , . IF S%-SUBRC , . MESSA$E E0 K. =Error :r@ing :o "nlocM recor# ENDIF. ENDFORM.

P.ge )A

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apter )& +,it" App$serverFlow Logic O Screen 9000 PROCESS BEFORE OUTPUT. MODULE ini:i.liJe. PROCESS AFTER INPUT. MODULE +elec:. Flow Logic O Screen 900 PROCESS BEFORE OUTPUT. MODULE +e:1:.<!.ge. CALL SUBSCREEN +"< INCLUDIN$ +@-re!i# +crnr. PROCESS AFTER INPUT. MODULE "+er1coBB.n#. To! Incl"#e TABLES' %MO3IE1OP. DATA' +crnr LI*E +@-re!i# 3ALUE 9 00( oMco#e LI*E +@-"coBB. CONTROLS' B@1:.<+:ri! T%PE TABSTRIP. PBO Mo#"le+ MODULE ini:i.liJe OUTPUT. CLEAR %MO3IE1OP. ENDMODULE. P INITIALIZE OUTPUT MODULE +e:1:.<!.ge OUTPUT. CASE oMco#e. 94EN 7FNTAB 7. B@1:.<+:ri!-.c:iHe:.< , 7FNTAB 7. +crnr , 79 007. 94EN 7FNTAB)7. B@1:.<+:ri!-.c:iHe:.< , 7FNTAB)7. +crnr , 79 007. 94EN 7FNTAB27.
P.ge )0 M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

B@1:.<+:ri!-.c:iHe:.< , 7FNTAB27. +crnr , 79 007. ENDCASE. ENDMODULE. P SET1TABPA$E OUTPUT PAI Mo#"le+ MODULE +elec: INPUT. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE @e.rc , %MO3IE1OP-@e.rc AND c.:egor@ , 7PIC7. LEA3E TO SCREEN 900 . ENDMODULE. P SELECT INPUT MODULE "+er1coBB.n# INPUT. cle.r' %MO3IE1OP -c.:egor@( %MO3IE1OP -winner( %MO3IE1OP -n.Be ( @BoHie1o!-n.Be)( @BoHie1o!-n.Be2( @BoHie1o!-n.BeA( @BoHie1o!-n.Be0. CASE oMco#e. 94EN 7FNTAB 7. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE @e.rc , %MO3IE1OP-@e.rc AND c.:egor@ , 7PIC7. 94EN 7FNTAB)7. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE @e.rc , %MO3IE1OP-@e.rc AND c.:egor@ , 7FEM7. 94EN 7FNTAB27. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE @e.rc , %MO3IE1OP-@e.rc AND c.:egor@ , 7MAL7. ENDCASE. ENDMODULE. P USER1COMMAND INPUT

P.ge )K

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apter )& +,it"out App$serverFlow Logic O Screen 9000 PROCESS BEFORE OUTPUT. MODULE ini:i.liJe. PROCESS AFTER INPUT. MODULE +elec:. Flow Logic O Screen 900 PROCESS BEFORE OUTPUT. MODULE +e:1:.<!.ge. CALL SUBSCREEN +"< INCLUDIN$ +@-re!i# +crnr . CALL SUBSCREEN +"<) INCLUDIN$ +@-re!i# +crnr). PROCESS AFTER INPUT. MODULE "+er1coBB.n#. To! Incl"#e TABLES' %MO3IE1OP. DATA' +crnr LI*E +@-re!i# 3ALUE 9 00( +crnr) LI*E +@-re!i# 3ALUE 9 00 oMco#e LI*E +@-"coBB. CONTROLS' B@1:.<+:ri! T%PE TABSTRIP. PBO Mo#"le+ MODULE ini:i.liJe OUTPUT. CLEAR %MO3IE1OP. ENDMODULE. P INITIALIZE OUTPUT

P.ge )F

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

MODULE +e:1:.<!.ge OUTPUT. CASE oMco#e. 94EN 7FNTAB 7. B@1:.<+:ri!-.c:iHe:.< , 7FNTAB 7. +crnr , 79 007. 94EN 7FNTAB)7. B@1:.<+:ri!-.c:iHe:.< , 7FNTAB)7. +crnr) , 79 0 7. ENDCASE. ENDMODULE. P SET1TABPA$E OUTPUT PAI Mo#"le+ MODULE +elec: INPUT. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE @e.rc , %MO3IE1OP-@e.rc AND c.:egor@ , %MO3IE1OP-CATE$OR%. LEA3E TO SCREEN 900 . ENDMODULE. P SELECT INPUT MODULE "+er1coBB.n# INPUT. cle.r' %MO3IE1OP -winner( %MO3IE1OP -n.Be ( @BoHie1o!-n.Be)( @BoHie1o!-n.Be2( @BoHie1o!-n.BeA( @BoHie1o!-n.Be0( @BoHie1o!-no:e+( @BoHie1o!-cri:ic. CASE oMco#e. 94EN 7FNTAB 7. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE @e.rc , %MO3IE1OP-@e.rc AND c.:egor@ , %MO3IE1OP-CATE$OR%. 94EN 7FNTAB)7. SELECT SIN$LE 8 FROM %MO3IE1OP 94ERE @e.rc , %MO3IE1OP-@e.rc AND c.:egor@ , %MO3IE1OP-CATE$OR%. ENDCASE. ENDMODULE. P USER1COMMAND INPUT

P.ge )L

M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

!"apter )7 + a.le !ontrolFlow Logic O Screen 9000 PROCESS BEFORE OUTPUT. MODULE ini:i.li+e. PROCESS AFTER INPUT. MODULE +elec:. Flow Logic O Screen 900 PROCESS BEFORE OUTPUT. LOOP AT ITAB 9IT4 CONTROL ITEMS CURSOR ITEMS-CURRENT1LINE. MODULE #i+!l.@1@BoHie. ENDLOOP. PROCESS AFTER INPUT. LOOP AT ITAB. ENDLOOP. To! Incl"#e TABLES' %MO3IE1OP. DATA' ITAB LI*E %MO3IE1OP OCCURS 0 9IT4 4EADER LINE. CONTROLS ITEMS T%PE TABLE3IE9 USIN$ SCREEN 900 . PBO Mo#"le+ MODULE ini:i.li+e OUTPUT. CLEAR %MO3IE1OP. ENDMODULE. P INITIALIZE OUTPUT

MODULE #i+!l.@1@BoHie OUTPUT. %MO3IE1OP-%EARC , ITAB-%EARC. %MO3IE1OP-CATE$OR% , ITAB-CATE$OR%. %MO3IE1OP-9INNER , ITAB-9INNER. %MO3IE1OP-NAME , ITAB-NAME .
P.ge )9 M.rc/ )000

SAP R/3 Release 4.7 Online Programming: Exercise Solutions SAP Development ABAP raining

%MO3IE1OP-NAME) , %MO3IE1OP-NAME2 , %MO3IE1OP-NAMEA , %MO3IE1OP-NAME0 , ENDMODULE. PAI Mo#"le+

ITAB-NAME). ITAB-NAME2. ITAB-NAMEA. ITAB-NAME0. P DISPLA%1%MO3IE OUTPUT

MODULE +elec: INPUT. SELECT 8 FROM %MO3IE1OP INTO TABLE ITAB 94ERE %EARC , %MO3IE1OP-%EARC. ENDMODULE. P SELECT 9000 INPUT

P.ge 20

M.rc/ )000

You might also like