Вы находитесь на странице: 1из 38

ABAP Workshop 2009 - Part1

Topics
Program Types Dialog Program and DYNPROs Program Flow and Flow Events DYNPRO data elements Vs. ABAP data elements FIELD Command and Conditional Module Calls CHAIN Command TAB controls Field, Data Element and Domains Input Help (List of Values) demo/coding Field Help (F1 Help) demo/coding Understanding Menu Bar, Application Toolbar and Function keys Menu Control and Function Keys Context Menu Title Bar Demo Hands-on Practice
2

Program Types
Program type First statement in program (After the include statements are resolved) REPORT (or PROGRAM) CLASS-POOL FUNCTION-POOL Processing blocks supported Can this have or support its own DYNPROS Yes No Yes Executable (1) Class pool (K) Function group (or function pool) (F) Interface pool (J) Module pool (M) All - except function modules Methods only All except event blocks for reporting events None Event block LOAD-OFPROGRAM, subroutines, methods Event block LOAD-OFPROGRAM, subroutines, methods None All except event blocks for reporting events

INTERFACE-POOL PROGRAM

No Yes

Subroutine pool (S)

PROGRAM

No

Type group or Type pool (T) Includes (I)

TYPE-POOL N/A

No No 3

Dialog Programs and DYNPRO


DYNPRO is a basic component (screen and flow logic) of Dialog programs DYNPRO (DYNamic PROgrams) are also called Transactions Sometimes the terms DYNPRO and Dialog Program are used interchangingly The procedure for creating dialog programs is different to that for reports A Dialog Program consists of one or more screens Screen consists of a Layout (buttons, frames, labels, edit fields etc) and its Flow Logic code to handle user events Collectively, a screen, its layout and flow logic is called a DYNPRO When a dialog program is run, screens are the objects called, not programs or subroutines In Dialog programs the system displays a screen for the user to enter or request information and it responds to user input or request by 1) Branching to next screen 2) Displaying an output 3) Running a report 4) Updating the database

Passing Control Between Layers

Database Layer

Explain Dialog Programming


In Dialog programming, control of the program is continually passed backwards and forwards between the presentation layer (SAP GUI) and application layer (application Server) When we start the screen is ready for input (presentation layer is active and application layer is not active) Once the user has entered data on the screen, program control passes back to the application layer Now, the presentation layer is inactive (the SAP GUI is still visible, but it cannot accept user input) The SAP GUI does not become active again until the application program has called a new screen and sent it to the presentation server. Basically, in Dialog programming we divide programs into dialog steps, with each of these steps comprising of the programming logic between two successive screens.

Flow Events
PROCESS BEFORE OUTPUT (PBO)
Fires before a screen is displayed. Can be used to initialize fields

PROCESS AFTER INPUT (PAI)


Fires on an user action (menu/buttons/function-keys)

PROCESS ON VALUE REQUEST (POV)


Fires when a set of possible values is requested (F4)

PROCESS ON HELP REQUEST (POH)


Fires when general help is requested (F1)
7

Program Flow

Dialog Processor
Dialog processor controls the display of the screen and execution of the ABAP program. The Dialog processor processes screen after the screen, thereby triggering the appropriate flow events of each screen After each screen is displayed, it waits for the appropriate user input and then executes the flow logic The controls passes from screen flow logic to ABAP code and back along with the values of the program elements
9

Program Flow Design

10

Dynpro (screen) Logic

11

ABAP code (include file)

12

Function Definition

13

Dynpro data elements Vs. ABAP data elements and Data Transport

14

FIELD Command and Conditional Module Calls


FIELD NAME
Value Transported

FIELD NAME MODULE ChangesDetectModule on REQUEST.


Value changed

FIELD NAME MODULE ChangesDetectModule on INPUT.


Non blank value

FIELD NAME MODULE ChangesDetectModule.


Custom check for format, etc
15

CHAIN Command
CHAIN FIELD: Name1, Name2 MODULE ChangesDetectModule on CHAIN-REQUEST. "Value changed? ENDCHAIN.

16

TAB controls
1) Scrolling at application server
Only one subscreen area with two subscreens. (see program 5)

2) Scrolling at Local SAPGUI


Two subscreens areas/Two subscreens. (see program 5A)

17

Data Element & Domains of Fields


Domain Domain depicts the technical attributes of a field
its data type, field length, no. of decimal places, appearance on the screen

Data Element Data Element Field Field

Data Element denotes the semantic attributes


short description, label names for a field that uses this.

Data Elements are directly attached to the Fields Data Element has an underlying Domain (optional) Domains are not directly attached to the fields A single Domain can be under many Data Elements. Within Domain - value range of a field can be described. Whereas within the Data Element parameter id and search help for a particular field can be assigned.
18

Input Help (List of Values)


1) Fixed Value (DOMAIN LEVEL) - Hard coded list in Data Dictionary
Using domain (of the Data Element) of the field

2) Check Tables (FIELD LEVEL)


Specifying the Check table on the Field level

3) Assigning the "Search Help" repository object (DATA ELEMENT LEVEL)


Create a "Search Help" Object [as an independent step] and then assign it to data element of the field.

4) Assigning the "Search Help" repository object (SCREEN ELEMENT LEVEL)


Create a "Search Help" Object [as an independent step] and then assign it to dynpro screen element in screen painter.

5) Self defined Dropdown List Boxes (SCREEN ELEMENT LEVEL)


Most flexible but requires simple SQL to populate the list.

19

(1) Fixed Value (Domain Level)


Domain of the Data Element

Data Element of a Field

20

(2) Check Tables (Field Level)


Click on the Foreign Keys Icon

21

(3 & 4) Search Help (Object)


Create Srch Helps Object(s) And attach to the Data Element Or attach directly to the Dynpro field
LPos: Field Order SPos: Search Order 22

Search Help Field Order


LPos: Field Order SPos: Search Order

23

(5) Self defined Dropdown


MODULE create_dropdown_box INPUT. dynpro_utilities1=>value_help( ). ENDMODULE.

DATA city_list TYPE STANDARD TABLE OF city_line. SELECT distinct ZCITY ZCITYDESCR from ZCITY_TBL into corresponding fields of table city_list where ZCITY like '%O%' order by ZCITY. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'ZCITY' value_org = 'S' TABLES value_tab = city_list EXCEPTIONS

Select Listbox or Listbox with key

24

Field Help (F1 Help)


1) Documentation - (only one) can be attached to the Data Element of the Field needing help documentation. 2) Additional Documentation - (multiple can be attached to the Data Element of the Field needing help additional documentation), Dynpro screen field can call just one the one relevant to its context using PROCESS ON HELPREQUEST Flow Logic.
PROCESS ON HELP-REQUEST. (assuming 0001 and 0002 are additional documentation help is entered/exists)
FIELD ZBC400_S_HDR_CURR-CITYTO WITH '0001'.
Or

FIELD ZBC400_S_HDR_CURR-CITYTO WITH '0002'. etc

3) Uses the Process on Help Request (POH) event.


25

Field Help - Documentation


Click here in Change Mode to modify (display mode shown)

Data Element

26

Field Help - Additional Documentation


Data Element

Click here. Add as many as you wish Call any one Additional help PROCESS ON HELP-REQUEST. FIELD field1 WITH '0001'. Or FIELD field1 WITH '0002'.
27

Menu Control
Create GUI Status object (Interface Component) Command: SET PF-STATUS 'ZTEST1'. Each screen can have same or different menu (set this in PROCESS BEFORE OUTPUT) Various menus are: Menu Bar, Standard Tool Bar, Application Toolbar Function Keys are generally related to Menu Context Menu is inherited from Function Keys,so is same for all fields on screen by default, but Context Menu each field can be made different (program 10 and 10A)
28

Bars in the SAP GUI

Menu Bar Standard Tool Bar Title Bar Application Toolbar Related Item Function Keys F1, F2

29

Menu Painter

30

Menu Painter

Screen 1/2 Screen 2/2

GUI Status -> ZTEST1 Note: Standard tool bar is shown at the top of the Function Keys Setup!

31

Function Keys
The following Function Keys are reserved and are handled at run time
F1 (field help), F4 (Input Help) F10 (positions the cursor in the (top) menu bar)

Double Click automatically gets the functionality of whatever F2 is setup to do applies to all fields by default. (see subsequent slides) F2 or Double Click can be setup so that different logic can be mapped to individual fields (see program 10C & subsequent slides)
32

Double Click (all fields)


When we map a/any functionality to F2, the same functionality is automatically executed when we Double Click the object. Example: If we set the F2 to say BACK1 (also the Function code), the F2 as well as the Double Click get the functionality from the usual ABAP CASE statement logic.
. CASE ok_code. When 'BACK' or 'BACK1'. SET SCREEN 100. .

33

Double Click (individual fields)


The Function Code for F2 is set to CS (CURSORSELECTION) and TYPE to S (System Function). In PAI use the FIELD statement to call a module.
PROCESS AFTER INPUT. FIELD Field1 MODULE C1 AT CURSOR-SELECTION. FIELD Field2 MODULE C2 AT CURSOR-SELECTION.

Actual module defn: MODULE C1 INPUT. CALL TRANSACTION 'SE13'. ENDMODULE.


34

Context Menu
The Context Menu for a SCREEN is automatically defaulted from the function keys MENU setup done using menu designer i.e., GUI STATUS The Context Menu for individual fields is done using the ON_CTMENU_ field as explained in the subsequent slide.

35

Context Menu (of field)


Using the ON_CTMENU_ field of screen Elements FORM on_ctmenu_my_input2 USING l_menu TYPE REF TO cl_ctmenu.
CALL METHOD l_menu->add_function EXPORTING fcode = 'MY_CONTEXT_MENU7 text = 'My Context Menu 7'. CASE save_ok. WHEN 'MY_CONTEXT_MENU7'. CALL TRANSACTION 'SE92'. ENDCASE.
36

Title Bar
THE GUI TITLE is Interface Component SET TITLEBAR title. >> Command
Create Here Use/Call Here

37

Upcoming Topics
Character Sets/Unicode Format [UTF-8,etc] Data Clusters File Access Authorization Checks Lock Concept and Enqueue

38

Вам также может понравиться