ABAP Dialog Programming Examples (Scribd)
ABAP Dialog Programming Examples (Scribd)
Request
Tables customers.
Application Server
Store request to queue
3
Send Request
Generate Screen(List)
10
List
Dispatcher
Send List
2 9
SAP Buffer
Program
D
8
D
SQL Request
D
6
Load&Gen Program
Database Server
Local Memory
Memory Space
ABAP Processor
DYNPRO Processor
List Buffer
DB Interface
Result Set Memory
Database
1. Report Listing
Request
Include .
Application Server
Store request to queue
3
Send Request
Screen
Dispatcher
Send List
2 9
SAP Buffer
Program
D
8
D
SQL Request
D
6
Load&Gen Program
Database Server
Local Memory
ABAP Memory
ABAP Processor
DYNPRO Processor
Screen Buffer
DB Interface
Result Set Memory
Database
Dialog Program
Screen : 100
(Screen Layout)
Flow Logic
PBO
PAI
Screen : 200
(Screen Layout)
Flow Logic
PBO PAI
SAP Transaction
DB Commit DB Commit
An SAP transaction consists of Dialog steps. A Dialog step begins when the user press Enter,activates a function by pressing a function key,double-clicks or chooses a function from a menu.It ends when the next screen is display In the course of a Dialog step,The PAI modules belonging to the current screen and the PBO modules belonging to the next screen
9
Screen Buffer
Element List
PBO
customers-id customers-name
0000000
PAI
ok_code
10
Flow Logic
After it has processed all of the modules in the PBO processing block, the system copies the contents of the fields in the ABAP work area to their corresponding fields in the screen work area.
Before it processes the first module in the PAI processing block, the system copies the contents of the fields in the screen work area to their corresponding fields in the ABAP work area.
11
12
13
14
15
Transaction SE80 : Create Dialog Program Create Screen(4 steps) Screen Attribute Screen Layout Flow Logic(PBO,PAI) Define Variable ok_code in Element List Define Data Object in ABAP Work Area at TOP Include(Tables, Data,...) Check and Activate Dialog Program Create Transaction Code
17
Example I
Maintain Customers Data
Screen : 100
Screen : 200
18
Example I
Create Dialog Program SAPMZEX<nn> for changing Customers table Screen 100 Field customers-id Screen 200 Field customers-id and customers-name
19
Example I
Screen 100
PROCESS BEFORE OUTPUT. MODULE STATUS_0100. PROCESS AFTER INPUT. MODULE USER_COMMAND_0100.
20
Example I
Screen 100
MODULE status_0100 OUTPUT. SET PF-STATUS 0100. SET TITLEBAR 0100. ENDMODULE.
21
Example I
Screen 100
MODULE user_command_0100 INPUT. CASE ok_code. WHEN BACK. LEAVE PROGRAM. leave to screen 0 WHEN space. if not assign Enter Key SELECT SINGLE * FROM customers WHERE id = customers-id. LEAVE TO SCREEN 200. ENDCASE. ENDMODULE.
22
Example I
Screen 200
PROCESS BEFORE OUTPUT. MODULE STATUS_0200. PROCESS AFTER INPUT. MODULE USER_COMMAND_0200.
23
Example I
Screen 200
MODULE status_0200 OUTPUT. SET PF-STATUS 0200. SET TITLEBAR 0200. ENDMODULE.
24
Example I
Screen 200
MODULE user_command_0200 INPUT. CASE ok_code. WHEN BACK. LEAVE TO SCREEN 100. set screen 100 WHEN SAVE. UPDATE customers. MESSAGE S000(38) WITH Update OK!. LEAVE TO SCREEN 100. ENDCASE. ENDMODULE.
25
Example I
26
Exercise
Create Dialog Program : SAPMZCUST<nn> Transaction Code : ZCUST<nn>
27
Screen : 200
28
Cursor Position
29
30
TOP Include
TABLES customers. DATA ok_code TYPE sy-ucomm. DATA save_ok TYPE sy-ucomm.
31
Example I - Change
Example I - Change
ENDMODULE.
33
34
ENDMODULE.
35
38
Example II
Maintain Customers Data
39
Example II
40
Example III
Maintain Customers Data
41
42
Example III
If you want to check input values in the module pool and start dialog in the event of a negative result,you use the FIELD statement with the addition MODULE. If the module results in an error(E) or warning(W) message,the screen is redisplayed without processing the PBO modules.The message text is displayed and only the field being checked by this module becomes ready for input again
44
PROCESS AFTER INPUT. CHAIN. FIELD customers-id MODULE user_command_0100. FIELD customers-custtype MODULE user_command_0100. ENDCHAIN.
45
Transfer f3,f4 Call module a Transfer f1 Call module b Transfer f2 Call module c Call module d
Required Field
47
Required Field
48
Required Field
49
At exit-command
50
51
At exit-command
When user chooses a function with type E,the screen flow logic jumps directly to the following statement
No other screen fields are transported to the program except OK Code field
52