creating dialog (abap dynpro ) programs

59
Creating Dialog (ABAP Dynpro) Programs

Upload: seven

Post on 14-Feb-2016

101 views

Category:

Documents


6 download

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

TRANSCRIPT

Page 1: Creating Dialog (ABAP  Dynpro ) Programs

Creating Dialog (ABAP Dynpro)

Programs

Page 2: 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

Page 3: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 4: Creating Dialog (ABAP  Dynpro ) Programs

Slide 4

Types of ABAP Programs (2) Module Pool Illustration

Page 5: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 6: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 7: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 8: Creating Dialog (ABAP  Dynpro ) Programs

Slide 8

Work Process (Illustration)

Page 9: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 10: Creating Dialog (ABAP  Dynpro ) Programs

Slide 10

Work Processes (Details)

Page 11: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 12: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 13: Creating Dialog (ABAP  Dynpro ) Programs

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)

Page 14: Creating Dialog (ABAP  Dynpro ) Programs

Slide 14

Object Navigator (Development Objects)

Page 15: Creating Dialog (ABAP  Dynpro ) Programs

Slide 15

Object Navigator (Development Objects) The demonstration transaction we will

use tonight

Page 16: Creating Dialog (ABAP  Dynpro ) Programs

Slide 16

Parts of a Dialog Program Transaction code ABAP program

PAI / PBO / Includes Screen(s) UI status Screen flow logic GUI Title

Page 17: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 18: Creating Dialog (ABAP  Dynpro ) Programs

Slide 18

An SAP Transaction Access through the Object Navigator

Page 19: Creating Dialog (ABAP  Dynpro ) Programs

Slide 19

An SAP Transaction A transaction has an associated

program and screen number

Trans TZ40 Prog SAPMTZ40 Screen 100

Page 20: Creating Dialog (ABAP  Dynpro ) Programs

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)

Page 21: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 22: Creating Dialog (ABAP  Dynpro ) Programs

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)

Page 23: Creating Dialog (ABAP  Dynpro ) Programs

Slide 23

ABAP Dialog Program (Top Include) Declare global data (PROGRAM) statement appears

Page 24: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 25: Creating Dialog (ABAP  Dynpro ) Programs

Slide 25

ABAP Dialog Program (PBO Module) MODULE OUTOUT (PBO) – Setup for

program run

Page 26: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 27: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 28: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 29: Creating Dialog (ABAP  Dynpro ) Programs

Slide 29

The SAP LUW Big Picture

Page 30: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 31: Creating Dialog (ABAP  Dynpro ) Programs

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)

Page 32: Creating Dialog (ABAP  Dynpro ) Programs

Slide 32

Program Screen (Flow Logic) PBO and PAI events call the modules we

created in the program

Page 33: Creating Dialog (ABAP  Dynpro ) Programs

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)

Page 34: Creating Dialog (ABAP  Dynpro ) Programs

Slide 34

Program Screen (Attributes) Attributes screen

Page 35: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 36: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 37: Creating Dialog (ABAP  Dynpro ) Programs

Slide 37

Program Screen (Elements) Illustration

Page 38: Creating Dialog (ABAP  Dynpro ) Programs

Slide 38

Program Screen (Elements) Element list / Texts I/O templates

contain prompts and edit masks

Page 39: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 40: Creating Dialog (ABAP  Dynpro ) Programs

Slide 40

Program Screen (Layout Editor)

Page 41: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 42: Creating Dialog (ABAP  Dynpro ) Programs

Slide 42

The ABAP Dialog GUI Status (Illustration)

Page 43: Creating Dialog (ABAP  Dynpro ) Programs

Slide 43

The ABAP Dialog GUI Status (Types) There are three types of GUI statuses

Page 44: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 45: Creating Dialog (ABAP  Dynpro ) Programs

Slide 45

The ABAP Dialog (Connecting the Dialog Status to a Screen)

Page 46: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 47: Creating Dialog (ABAP  Dynpro ) Programs

Slide 47

The ABAP Dialog GUI Status (Application Toolbar) Associate a function and icon to the

toolbar

Page 48: Creating Dialog (ABAP  Dynpro ) Programs

Slide 48

The ABAP Dialog GUI Status (Function Keys)

Page 49: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 50: Creating Dialog (ABAP  Dynpro ) Programs

Slide 50

Database LUW (Illustration)

Page 51: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 52: Creating Dialog (ABAP  Dynpro ) Programs

Slide 52

Database LUW (Explicit Commit) Call the function module DB_COMMIT Use the ABAP statement COMMIT WORK

Page 53: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 54: Creating Dialog (ABAP  Dynpro ) Programs

Slide 54

Database LUW (Explicit Rollback) Call ROLLBACK WORK

Page 55: Creating Dialog (ABAP  Dynpro ) Programs

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”

Page 56: Creating Dialog (ABAP  Dynpro ) Programs

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)

Page 57: Creating Dialog (ABAP  Dynpro ) Programs

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

Page 58: Creating Dialog (ABAP  Dynpro ) Programs

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