Sei sulla pagina 1di 34

Module Pool Programming

DAY 1

Agenda - Day 1
Introduction Why Module Pool? Components of Module Pool Program Screen Painter Flow Logic and Events Screen Painter - Layout Basic Screen Design Menu Painter

Copyright 2010 Deloitte Development LLC. All rights reserved.

Sample Screen or GUI

Copyright 2010 Deloitte Development LLC. All rights reserved.

Structure of Module Pool Program

Copyright 2010 Deloitte Development LLC. All rights reserved.

Structure of Module Pool Program

Copyright 2010 Deloitte Development LLC. All rights reserved.

Program Organization
Program Organization
Create Program

Program Organization
Program
SAPMZ##BC410_SOLUTION

System Help

Object Navigator

With TOP Include

Object name
SAPMZ##BC410_SOLUTION

Global Global declarations declarations PBO PBO modules modules PAI PAI modules modules Subroutines Subroutines Events Events
SAP AG 2002

Dictionary structures Fields PBO modules PAI modules Subroutines Screens GUI status GUI title Transactions Includes
MZ##BC410_SOLUTION TOP MZ##BC410_SOLUTION O01 MZ##BC410_SOLUTION I01 MZ##BC410_SOLUTION F01 MZ##BC410_SOLUTION E01

Copyright 2010 Deloitte Development LLC. All rights reserved.

Creating a Transaction Code


Use SE93 to create a Tcode giving: 1) Program name 2) 1st screen of transaction

Copyright 2010 Deloitte Development LLC. All rights reserved.

Using screen painter


SE41 Menu Painter SE51 Screen Painter

SE80 Object Navigator

Copyright 2010 Deloitte Development LLC. All rights reserved.

Events
The screen flow logic is built using events. There are four event blocks
1) PROCESS BEFORE OUTPUT : Triggered before current screen is displayed. At end of PBO current screen is displayed. 2) PROCESS AFTER INPUT: Triggered when user chooses a function on screen. At end of PAI another screen is called or PBO of current screen is triggered.

Copyright 2010 Deloitte Development LLC. All rights reserved.

Events
3) PROCESS ON HELP-REQUEST: User requests for field help (Presses F1 on a field) 4) PROCESS ON VALUE-REQUEST: User request for value request (Presses F1 on a field)

Copyright 2010 Deloitte Development LLC. All rights reserved.

10

Basic Screen Design

Copyright 2010 Deloitte Development LLC. All rights reserved.

11

Screen Attributes
Program Name of ABAP program Screen Number 4 digit number Screen Type Normal, Modal Dialog, Subscreen Size Screen Size Sequence Next Screen

Copyright 2010 Deloitte Development LLC. All rights reserved.

12

Basic Screen Elements


Text fields Display elements Input/output fields Used to enter data on screen or display data from the ABAP program. Checkboxes Radio buttons Pushbuttons Elements on screen that trigger PAI event. Function codes are associated. Box Visual grouping of related fields OK_CODE Function code for a screen is placed in this field
Copyright 2010 Deloitte Development LLC. All rights reserved.

13

Identical Names
Data Exchange: Screens - ABAP Programs

IDENTICAL NAMES
Time PBO MODULE trans_to_100 After PBO
SDYN_CONN-CARRID LH SDYN_CONN-CONNID 0402 Program work area

TABLES:
LH CARRID

sdyn_conn.

0400 CONNID

MODULE trans_to_100 OUTPUT. MOVE-CORRESPONDING wa_spfli TO sdyn_conn. ENDMODULE. TABLES: Before PAI
LH CARRID

sdyn_conn.

0402 CONNID

PAI MODULE trans_from_100

MODULE trans_from_100 INPUT. MOVE-CORRESPONDING sdyn_conn TO wa_spfli. ENDMODULE.

SAP AG 2002

Copyright 2010 Deloitte Development LLC. All rights reserved.

14

Creating Screen Menu

Menu Bar Title Bar

Standard Tool Bar

Application Tool Bar

Copyright 2010 Deloitte Development LLC. All rights reserved.

15

Creating Screen Menu


GUI Title Set Screen Title SET TITLEBAR ABC GUI Status Set Screen Function Codes SET PF-STATUS XYZ [OF PROGRAM prog] [EXCLUDING fcode]

Copyright 2010 Deloitte Development LLC. All rights reserved.

16

Processing Function Codes


Processing the Function Code
PROCESS PROCESS AFTER AFTER INPUT. INPUT. ... ... MODULE MODULE user_command_100. user_command_100. Screen Screen Painter Painter

Function key: Function code: Function type:

F3 BACK ' '

DATA:ok_code DATA:ok_code TYPE TYPE sy-ucomm. sy-ucomm.

ABAP ABAP

General attributes
Field name ... OK_CODE Type OK . ..

MODULE MODULE user_command_100 user_command_100 INPUT. INPUT. CASE CASE ok_code. ok_code. WHEN WHEN 'BACK'. 'BACK'. LEAVE LEAVE TO TO SCREEN SCREEN 0. 0. ENDCASE. ENDCASE. ENDMODULE. ENDMODULE. The ok_code ABAP data field still contains the old function code after processing

Screen Screen Painter Painter Element Element list list


SAP AG 2002

Copyright 2010 Deloitte Development LLC. All rights reserved.

17

Exit Command
Type E function codes Identifies exit command function codes

MODULE <mod> at EXIT-COMMAND Processing for exit command function codes


18

Copyright 2010 Deloitte Development LLC. All rights reserved.

Screen Input Validations


Mandatory Fields Input Format ABAP Dictionary Check Checking a value list
Field f values ( <V1>, <V2> ) Checking single fields FIELD <f> MODULE <mod>.

Copyright 2010 Deloitte Development LLC. All rights reserved.

19

Screen Input Validation


Field <f> MODULE <mod> Chain ... Endchain Addition to field statement and chain endchain statement - ON REQUEST, ON INPUT

Copyright 2010 Deloitte Development LLC. All rights reserved.

20

Screen Input Validation


Checking Groups of Fields

PROCESS AFTER INPUT. CHAIN. FIELD: <Field name 1>, 1> <Field name 2>, 2> . . . <Field name n>. MODULE check_input. ENDCHAIN.

Screen Painter MODULE check_input INPUT. . . . MESSAGE E ... . ENDMODULE.

ABAP

1 1 1 EMessage Ready for input again

1 1 1

SAP AG 2002

Copyright 2010 Deloitte Development LLC. All rights reserved.

21

Screen Input Validation


Execution on Input

PROCESS AFTER INPUT. FIELD <Field name> MODULE <module> ON INPUT. . . .

Screen Painter

PROCESS AFTER INPUT. CHAIN. FIELD: <Field name <Field name . . . <Field name MODULE <module> ON ENDCHAIN. . . .
SAP AG 2002

Screen Painter

1>, 2>, n>. CHAIN-INPUT.

Called when field contents are not equal to initial value

Copyright 2010 Deloitte Development LLC. All rights reserved.

22

Screen Input Validation


Execution on Change

PROCESS AFTER INPUT. FIELD <Field name> MODULE <module> ON REQUEST. . . .

Screen Painter

Screen Painter PROCESS AFTER INPUT. CHAIN. FIELD: <Field name 1>, <Field name 2>, . . . <Field name n>. MODULE <module>ON CHAIN-REQUEST. ENDCHAIN. . . .
SAP AG 2002

Execution when input is new

Copyright 2010 Deloitte Development LLC. All rights reserved.

23

Dialog Message Categories


Dialog Message Categories

Termination
Program call

Error

Warning

Information

Success
Screen 100

New entries required

Screen 100

Screen 100

Screen 100

E message

W message

New entries possible

Screen 100

Restart

I message

A message X message

Screen 100

Screen 200

Screen 200 S message

SAP AG 2002

Copyright 2010 Deloitte Development LLC. All rights reserved.

24

Avoiding Field input checks


Avoiding Field Input Checks

PROCESS AFTER INPUT. MODULE exit AT EXIT-COMMAND. . . .

Screen Painter

ABAP

Execution when function has type E

MODULE exit INPUT. CASE ok_code. WHEN 'CANCEL'. CLEAR ok_code. LEAVE TO SCREEN 0. WHEN 'EXIT'. LEAVE PROGRAM. ENDCASE. ENDMODULE. " EXIT
SAP AG 2002

INPUT

Copyright 2010 Deloitte Development LLC. All rights reserved.

25

Calling Next Screen


Set screen , Leave screen. Leave to screen Call screen

Copyright 2010 Deloitte Development LLC. All rights reserved.

26

Setting the next screen dynamically


Setting the Next Screen Dynamically

Screen Screen Attributes Attributes


Screen Screen number number Next Next screen screen 100 100 200 200

Screen Attributes
Screen number Next screen 300 400

PBO

PAI

PBO

PAI

400
MODULE ... SET SCREEN 300. LEAVE SCREEN. ENDMODULE.
SAP AG 2002

Copyright 2010 Deloitte Development LLC. All rights reserved.

27

Dialog Boxes
Calling a Dialog Box Dynamically

Screen 101

MODULE user_command INPUT. ... CALL SCREEN 101 STARTING AT lc ur.


...

ENDMODULE. 101 101 Screen Attributes Screen type . . . Modal dialog box . . . Next screen 101 MODULE user_command INPUT. ... CALL SCREEN 101 STARTING AT lc ur ENDING AT rc lr. ... ENDMODULE. 101 101 100 100
SAP AG 2002

100 100

Copyright 2010 Deloitte Development LLC. All rights reserved.

28

Dynamic Modifications
Dynamically Modifiable Static Attributes

Attributes Attributes
General
Object

SCREEN
SCREEN-NAME SCREEN-GROUP1 SCREEN-GROUP2 SCREEN-GROUP3 SCREEN-GROUP4 SCREEN-LENGTH SCREEN-INPUT SCREEN-OUTPUT SCREEN-REQUIRED SCREEN-INTENSIFIED SCREEN-INVISIBLE SCREEN-ACTIVE

name Modif. groups Size


- Dynamic

Program
Dialog

behavior

- Input - Output - Required

Display

Bright Invisible

SAP AG 2002

Copyright 2010 Deloitte Development LLC. All rights reserved.

29

Modifying attributes dynamically


Modifying Attributes Dynamically: Program

PROCESS BEFORE OUTPUT. . . . MODULE modify_screen. . . . MODULE modify_screen OUTPUT. LOOP AT SCREEN. IF screen-group1 = 'SEL'. screen-input = 1. ENDIF. IF screen-name= 'FIELD1'. screen-active= 0. ENDIF. MODIFY SCREEN. ENDLOOP. ENDMODULE.
SAP AG 2002

Screen Painter

ABAP

...

Copyright 2010 Deloitte Development LLC. All rights reserved.

30

Set Cursor Position


Setting the Cursor Position Dynamically

SET CURSOR FIELD <f> [OFFSET <o>].

PROCESS PROCESS BEFORE BEFORE OUTPUT. OUTPUT. MODULE MODULE set_cursor. set_cursor.

Screen Painter

ABAP

Airline Flight number Flight date

LH ? ?

MODULE set_cursor OUTPUT. sdyn_conn-carrid = 'LH'. SET CURSOR FIELDSDYN_CONN-CONNID. ... ENDMODULE.
SAP AG 2002

Copyright 2010 Deloitte Development LLC. All rights reserved.

31

Using SAP Memory

Copyright 2010 Deloitte Development LLC. All rights reserved.

32

Process on Help Request


PROCESS ON HELP-REQUEST. FIELD <f> MODULE <mod>. Function module used to display help text HELP_OBJECT_SHOW HELP_OBJECT_SHOW_FOR_FIELD

Copyright 2010 Deloitte Development LLC. All rights reserved.

33

Process on Value Request


PROCESS ON VALUE-REQUEST. FIELD <f> MODULE <mod>.

Function modules used to display list of values F4IF_FIELD_VALUE_REQUEST F4IF_INT_TABLE_VALUE_REQUEST

Copyright 2010 Deloitte Development LLC. All rights reserved.

34

Potrebbero piacerti anche