Upload
seven
View
102
Download
6
Tags:
Embed Size (px)
DESCRIPTION
Creating Dialog (ABAP Dynpro ) Programs. 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 - PowerPoint PPT Presentation
Citation preview
Creating Dialog (ABAP Dynpro)
Programs
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
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
Slide 4
Types of ABAP Programs (2) Module Pool Illustration
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 thecourse
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
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
Slide 8
Work Process (Illustration)
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
Slide 10
Work Processes (Details)
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
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
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)
Slide 14
Object Navigator (Development Objects)
Slide 15
Object Navigator (Development Objects) The demonstration transaction we will
use tonight
Slide 16
Parts of a Dialog Program Transaction code ABAP program
PAI / PBO / Includes Screen(s) UI status Screen flow logic GUI Title
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
Slide 18
An SAP Transaction Access through the Object Navigator
Slide 19
An SAP Transaction A transaction has an associated
program and screen number
Trans TZ40 Prog SAPMTZ40 Screen 100
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)
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
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)
Slide 23
ABAP Dialog Program (Top Include) Declare global data (PROGRAM) statement appears
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
Slide 25
ABAP Dialog Program (PBO Module) MODULE OUTOUT (PBO) – Setup for
program run
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
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
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
Slide 29
The SAP LUW Big Picture
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
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)
Slide 32
Program Screen (Flow Logic) PBO and PAI events call the modules we
created in the program
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)
Slide 34
Program Screen (Attributes) Attributes screen
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
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
Slide 37
Program Screen (Elements) Illustration
Slide 38
Program Screen (Elements) Element list / Texts I/O templates
contain prompts and edit masks
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
Slide 40
Program Screen (Layout Editor)
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
Slide 42
The ABAP Dialog GUI Status (Illustration)
Slide 43
The ABAP Dialog GUI Status (Types) There are three types of GUI statuses
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
Slide 45
The ABAP Dialog (Connecting the Dialog Status to a Screen)
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
Slide 47
The ABAP Dialog GUI Status (Application Toolbar) Associate a function and icon to the
toolbar
Slide 48
The ABAP Dialog GUI Status (Function Keys)
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
Slide 50
Database LUW (Illustration)
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
Slide 52
Database LUW (Explicit Commit) Call the function module DB_COMMIT Use the ABAP statement COMMIT WORK
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
Slide 54
Database LUW (Explicit Rollback) Call ROLLBACK WORK
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”
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)
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
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
Slide 59
References http://
help.sap.com/saphelp_470/helpdata/en/9f/db9ce935c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_470/helpdata/en/fc/eb2e7d358411d1829f0000e829fbfe/content.htm