Download presentation
Presentation is loading. Please wait.
Published byGwendoline Wade Modified over 9 years ago
1
Creating Dialog (ABAP Dynpro) Programs
2
Slide 2 Introduction All of the ERP systems operate similarly with regard to transactional integrity They all operate on the notion of a Unit of Work (UOW) They all have similar commit / rollback scenarios They all have some form of screen processor
3
Slide 3 Types of ABAP Programs (1) A program’s technical attributes and capabilities are determined by its type Type 1 programs are executable programs They do not need to be controlled by screens Type 1 programs are often called reports You have been creating these so far Type M programs are controlled through screen flow logic and must be started from a transaction code (called a dialog program or Dynpro) These are called Module Pools
4
Slide 4 Types of ABAP Programs (2) Module Pool Illustration
5
Slide 5 What is a Dialog (M) Program (1) They form the basis for transactions (transaction codes) Dialog programs implement a UOW We introduced a unit of work at the beginning of the course
6
Slide 6 What is a Dialog (Type M) Program (2) They consist of a single screen or multiple screens connected together Screens are created with the screen painter Code blocks (event handlers) execute as users navigate from screen to screen Code is still created with the ABAP Editor but the Object Navigator does a bit of work We will use the Object Navigator in this section
7
Slide 7 Transaction Internals Dialog steps in an application program is executed by a work process User interaction is controlled by screens (screen processor) The processing logic is executed by the ABAP processor The ABAP processor, in turn, communicates with the database interface
8
Slide 8 Work Process (Illustration)
9
Slide 9 Work Processes (Details) Dialog processes work with users to execute dialog steps A screen in a dialog is considered a dialog step Update processes execute database update requests Part of an SAP LUW to bundle database operations Background processes execute without user interaction Enqueue processes administer a shared database lock table More about locks later
10
Slide 10 Work Processes (Details)
11
Slide 11 The SAP LUW It takes several database LUWs and group them into a logical SAP LUW through a process called bundling You use explicit COMMIT WORK and ROLLBACK WORK statements You can bundle using function modules (CALL FUNCTION IN UPDATE TASK) The function module then gets committed
12
Slide 12 Object Navigator (Introduction) The object navigator wraps features of the ABAP editor, Screen painter ABAP dictionary And a few other items we have not mentioned
13
Slide 13 Object Navigator (Introduction) You can search for “things” based on Program name Package Function groups and function modules These are “generally callable” procedures Development objects (things used for development no release)
14
Slide 14 Object Navigator (Development Objects)
15
Slide 15 Object Navigator (Development Objects) The demonstration transaction we will use tonight
16
Slide 16 Parts of a Dialog Program Transaction code ABAP program PAI / PBO / Includes Screen(s) UI status Screen flow logic GUI Title
17
Slide 17 Transaction Code (Part 1) We think of a transaction as a sequence of actions that ‘logically’ belong together Add a material Post an accounting transaction We are back to the notion of the logical unit of work It’s the “Dynpro” application mentioned earlier So far, you have created simpler ‘reports’ A transaction code is bound to an ABAP dialog program and CAN appear on the Easy Access menu
18
Slide 18 An SAP Transaction Access through the Object Navigator
19
Slide 19 An SAP Transaction A transaction has an associated program and screen number Trans TZ40 Prog SAPMTZ40 Screen 100
20
Slide 20 The ABAP Dialog Program (Part 2) Think of it as a very well-structured.net project Each screen and GUI status belongs to an ABAP program There are different ways to call an ABAP program By default, it’s the dialog module (MODULE POOL)
21
Slide 21 ABAP Dialog Program (Characteristics) The program has a type (M) – Module Pool It typically contains 3-4 includes Global Data PBO modules PAI modules
22
Slide 22 ABAP Dialog Program (Top Level Program) Global program includes the top / PBO / and PAI modules (Includes and separate files are not required but a way of doing things)
23
Slide 23 ABAP Dialog Program (Top Include) Declare global data ( PROGRAM ) statement appears
24
Slide 24 ABAP Dialog Program (PBO Module) PBO event triggers (fires) before the screen is displayed Before SAP outputs the screen to the user Initialize screen values here PBO modules are declared inside of a MODULE block designated as OUTPUT It’s really just a procedure / event handler Called by screen logic in PROCESS BEFORE OUTPUT
25
Slide 25 ABAP Dialog Program (PBO Module) MODULE OUTOUT (PBO) – Setup for program run
26
Slide 26 ABAP Dialog Program (PBO Module) The command SET PF-STATUS sets the program function status More in a moment when we cover GUI status The command SET TITLEBAR sets the titlebar screen
27
Slide 27 ABAP Dialog Program (PAI Module) PAI triggers after user interaction Declare using a MODULE block as INPUT Here we do the real work
28
Slide 28 The ABAP Dialog Program Screens (Part 3) Screens form an application’s visual interface A program might have many screens Screen flow logic controls the navigation path between screens. As the user moves from screen to screen, those PAO and PAI events fire
29
Slide 29 The SAP LUW Big Picture
30
Slide 30 Program Screen (Contents) A program screen has a number to uniquely identify it Flow logic to call our PAI and PAO modules Attributes that describe the type of screen Elements containing the visible screen controls
31
Slide 31 Program Screen (Flow Logic) The flow logic of a screen calls the various PAO and PAI modules created earlier We handle the PROCESS BEFORE OUTPUT and PROCESS AFTER INPUT EVENTS using the MODULE statement to call the appropriate module (function)
32
Slide 32 Program Screen (Flow Logic) PBO and PAI events call the modules we created in the program
33
Slide 33 Program Screen (Attributes) Audit trail info The screen type and configuration settings We will work with normal screens here Subscreens are screens within screens Selection screens are what you have been working with Modal dialog boxes are custom popups The next screen in the screen sequence Size (lines and columns)
34
Slide 34 Program Screen (Attributes) Attributes screen
35
Slide 35 Program Screen (Elements) Think of them as VB controls They bind to our underlying tables They have a type They have a position They have formatting They have I/O characteristics
36
Slide 36 Program Screen (Element Types) Elementary types: Text Text field (field text) I/O Input/output field (template) Graphical field element types Push Pushbutton dHelp Pushbutton for dialog help Radio Radio button Check Checkbox Box Box Subsc Subscreen (area for an include screen) Table Table control ACtrl ABAP control FdCtr Field control
37
Slide 37 Program Screen (Elements) Illustration
38
Slide 38 Program Screen (Elements) Element list / Texts I/O templates contain prompts and edit masks
39
Slide 39 Program Screen (Layout Editor) The Layout Editor is similar to the Windows Forms Designer It just a visual interface into the screen editor
40
Slide 40 Program Screen (Layout Editor)
41
Slide 41 The ABAP Dialog GUI Status (Part 4) It is here that we control the behavior of The menu bar Application toolbar Function keys Each GUI status function has a code When the user chooses the function, the PAI event fires It’s assigned to the OK_CODE field AND SY- UCOMM
42
Slide 42 The ABAP Dialog GUI Status (Illustration)
43
Slide 43 The ABAP Dialog GUI Status (Types) There are three types of GUI statuses
44
Slide 44 The ABAP Dialog (Connecting the Dialog Status to a Screen) We see the dialog status in the PBO module of a screen This is how we wire the screen to the menu system Use the SET PF-STATUS statement
45
Slide 45 The ABAP Dialog (Connecting the Dialog Status to a Screen)
46
Slide 46 The ABAP Dialog GUI Status (Menu Painter) It is here we create the menu for the program The code maps to a function that is called This is the status field in the previous dialog box
47
Slide 47 The ABAP Dialog GUI Status (Application Toolbar) Associate a function and icon to the toolbar
48
Slide 48 The ABAP Dialog GUI Status (Function Keys)
49
Slide 49 Database LUW An inseparable sequence of database operations that ends with a database commit The LUW is fully executed or not at all The database will always be in a consistent state If the LUW fails, all changes are rolled back LUWs can be committed implicitly or explicitly
50
Slide 50 Database LUW (Illustration)
51
Slide 51 Database LUW (Implicit Commit) Happens when A dialog step is completed and control passes from the Update work process to the GUI When control is passed from one work process to another (function call) A work process can only execute one LUW
52
Slide 52 Database LUW (Explicit Commit) Call the function module DB_COMMIT Use the ABAP statement COMMIT WORK
53
Slide 53 Database LUW (Implicit Rollback) Cause by a runtime error in an application Divide by 0 for example ABAP termination message MESSASE with message type A or X
54
Slide 54 Database LUW (Explicit Rollback) Call ROLLBACK WORK
55
Slide 55 The SAP Lock Concept (Introduction) The problem Two of us try to book a flight at the same time When I’m recording my transaction, you cannot record yours The number of seats available, therefore, remains accurate The problem is solved via “locks”
56
Slide 56 The SAP Lock Mechanism Locks are set for database change statements (INSERT, UPDATE, MODIFY, DELETE) Locks are released when the change is committed Locks are available, therefore, for only one database UOW SAP locks live on top of database locks allowing you to set locks that span multiple dialog steps (These are logical locks)
57
Slide 57 The SAP Lock Mechanism SAP implements what is called SAP lock object You can lock entries in one or more database tables You create a lock object in the SAP data dictionary SAP creates to functions to set and release the locks ENQUEUE_name and DEQUEUE_name
58
Slide 58 The Lock Table It’s a central table in shared memory of the SAP system containing The owner id of the lock The lock type Name of the locked table Fields to be locked
59
Slide 59 References http://help.sap.com/saphelp_470/helpdata/en /9f/db9ce935c111d1829f0000e829fbfe/conte nt.htm http://help.sap.com/saphelp_470/helpdata/en /9f/db9ce935c111d1829f0000e829fbfe/conte nt.htm http://help.sap.com/saphelp_470/helpdata/en /fc/eb2e7d358411d1829f0000e829fbfe/conte nt.htm http://help.sap.com/saphelp_470/helpdata/en /fc/eb2e7d358411d1829f0000e829fbfe/conte nt.htm
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.