SlideShare a Scribd company logo
Dialog Programming Overview
SAP System : Dialog Processing (Report)
                                      SAP GUI

                                                                              Report zpsm1.

                                   Request                                    Tables customers.
                                                List                          Select single * from
                                     Generate
                                  1   10
                                                                               customers where id = 1.
                                     Screen(List)
  Application Server       Send Request                                       Write: / customers-name.


  Store request
  to queue3                    Dispatcher
                  Send         2     Search for                  SAP Buffer
                  List
                    9                free WP
     Request                         Check Program in                                7
                                                                   Program
      Queue Send request             Program Buffer
                                         5                                        Execute
             to WP
                4                                                                 ABAP
                                                                   …
                    D          D        D …            D                          stateme
                                                                                  nt
                                                                       …

                           8                                 6

                           SQL                             Load&Gen
  Database Server          Request                         Program
Dialog WP : Executable Program
 Dialog WP                     Local Memory

      TaskHandler                Memory
                                 Space
     ABAP Processor


    DYNPRO Processor
                                 List Buffer


       DB Interface
           Result Set Memory




    Database
Types of ABAP Report

1


                     3




                 1. Report Listing
     4           2. Drill-down Report
                 3. Control-break Report
                 4. ALV Report
SAP System : Dialog Processing (DIALOG)
                                      SAP GUI

                                                                            Program sapmzex001.

                                   Request                                  Include ….
                                                Screen                      Set screen 100.
                                     Generate Dialog
                                  1   10
                                                                            …
                                     Screen
  Application Server       Send Request

  Store request
  to queue3                    Dispatcher
                  Send         2     Search for                SAP Buffer
                  List
                    9                free WP
     Request                         Check Program in                             7
                                                                 Program
      Queue Send request             Program Buffer
                                         5                                      Execute
             to WP
                4                                                               ABAP
                                                                 …
                    D          D        D …         D                           stateme
                                                                                nt
                                                                     …

                           8                               6

                           SQL                           Load&Gen
  Database Server          Request                       Program
Dialog WP : Dialog Program
 Dialog WP                     Local Memory
                                 ABAP Memory
      TaskHandler


     ABAP Processor


    DYNPRO Processor
                                 Screen Buffer


       DB Interface
           Result Set Memory




    Database
Dialog Program : Transaction
Dialog Program Components
Transaction Code



Dialog Program          Program Naming Convention : SAPM…




                                                              ABAP Module Pool
                 Screen : 100                          PBO
                   (Screen Layout)    Flow Logic


                                                        PAI   ABAP Module Pool




                                                       PBO    ABAP Module Pool
                   Screen : 200
                   (Screen Layout)     Flow Logic

                                                        PAI   ABAP Module Pool
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
Data Transfer (Local Memory)
                            Local Memory

Screen Work Area                           ABAP Work Area
ok_code

            Screen Buffer
                                             ABAP Memory Space
                                PBO
    Element List

                                              customers

                                               id       name   city   …
  customers-id                                0000000



  customers-name
                                                 ok_code
                               PAI
Flow Logic
   Process Before Output(PBO)
       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.

   Process After Input(PAI)
       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.
OK Code Field in Screen

               OK Code Field or
                Command Field
           (ok_code in Element List)
Defining Screen (4 Steps)
   Screen Attribute
   Screen Layout
   Flow Logic                   Element
                              List(ok_code
   Element List                  field)
Flow Logic in Screen 100
PROCESS BEFORE OUTPUT.
 MODULE STATUS_0100.

PROCESS AFTER INPUT.
  MODULE USER_COMMAND_0100.
PBO in Screen 100

MODULE status_0100 OUTPUT.
 SET PF-STATUS ‘0100’.
  SET TITLEBAR ‘0100’.
ENDMODULE.
PAI in Screen 100
MODULE user_command_0100 INPUT.
  CASE ok_code.
  WHEN ‘EXIT’.               “Leave program
    SET SCREEN 0. LEAVE SCREEN. “Leave to
  screen 0
  WHEN ‘SAVE’.
    UPDATE customers.
    MESSAGE S000(38) WITH ‘Update OK’.
    SET SCREEN 50. LEAVE SCREEN.
  ENDCASE.
ENDMODULE.
How to Create Dialog Program
   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
Example I

               Maintain Customers Data
Screen : 100                 Screen : 200
Example I
   Create Dialog Program SAPMZEX<nn> for
    changing Customers table
      Screen 100

         Field customers-id

      Screen 200

         Field customers-id and customers-name
Example I
   Screen 100

    PROCESS BEFORE OUTPUT.
     MODULE STATUS_0100.

    PROCESS AFTER INPUT.
     MODULE USER_COMMAND_0100.
Example I
   Screen 100

    MODULE status_0100 OUTPUT.
     SET PF-STATUS ‘0100’.
     SET TITLEBAR ‘0100’.
    ENDMODULE.
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.
Example I
   Screen 200

    PROCESS BEFORE OUTPUT.
     MODULE STATUS_0200.

    PROCESS AFTER INPUT.
     MODULE USER_COMMAND_0200.
Example I
   Screen 200

    MODULE status_0200 OUTPUT.
     SET PF-STATUS ‘0200’.
     SET TITLEBAR ‘0200’.
    ENDMODULE.
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.
Example I
   TOP Include
TABLES customers.
DATA ok_code TYPE sy-ucomm.
   Create Transaction Code
Transaction Code : ZEX<nn>
Exercise

Create Dialog Program : SAPMZCUST<nn>
     Transaction Code : ZCUST<nn>
Exercise : Customers Maintenance
Screen : 100             Screen : 200
Setting the Cursor Position Dynamically

PROCESS BEFORE OUTPUT.
 MODULE STATUS_0200.
 MODULE set_cursor.




MODULE set_cursor OUTPUT.
 SET CURSOR FIELD ‘CUSTOMERS-CITY’
    OFFSET 3.
ENDMODULE.
                                     Cursor Position
Avoiding the Unexpected
Processing Step of ok_code Field
1. Auxiliary OK_CODE Variable
   TOP Include
TABLES customers.
DATA ok_code TYPE sy-ucomm.
DATA save_ok TYPE sy-ucomm.
Example I - Change
   Screen 100 : PAI
     MODULE user_command_0100 INPUT.
     save_ok = ok_code.
     CLEAR ok_code.
     CASE save_ok.
      WHEN ‘BACK’.
       LEAVE PROGRAM.
      WHEN space.
       SELECT SINGLE * FROM customers WHERE id = customers-id.
       LEAVE TO SCREEN 200.
     ENDCASE.
    ENDMODULE.
Example I - Change
    Screen 200 : PAI
     MODULE user_command_0200 INPUT.
     save_ok = ok_code.
     CLEAR ok_code.
     CASE save_ok.
      WHEN ‘BACK’.
       LEAVE TO SCREEN 100.
      WHEN space.
       LEAVE TO SCREEN 200.
      WHEN ‘SAVE’.
       UPDATE customers.
       MESSAGE s000(38) WITH ‘Update OK!’.
       LEAVE TO SCREEN 100.
     ENDCASE.
    ENDMODULE.
2. Specify the Enter Function at GUI Status
Check Enter Function
   Screen 100 : PAI
    MODULE user_command_0100 INPUT.
     CASE ok_code.
       WHEN ‘BACK’.
        LEAVE PROGRAM.
       WHEN ‘ENTE’.
        SELECT SINGLE * FROM customers
          WHERE id = customers-id.
        LEAVE TO SCREEN 200.
      ENDCASE.
    ENDMODULE.
3. Clear OK_CODE at PBO
   Screen 100 : Flow Logic

    PROCESS BEFORE OUTPUT.
     MODULE STATUS_0100.
     MODULE clear_ok_code.

    PROCESS AFTER INPUT.
     MODULE USER_COMMAND_0100.
Clear OK_CODE at PBO
   Screen 100 : PBO
    MODULE status_0100 OUTPUT.
     SET PF-STATUS ‘0100’.
     SET TITLEBAR ‘0100’.
    ENDMODULE.

    MODULE clear_ok_code OUTPUT.
      CLEAR ok_code.
    ENDMODULE.
Checking User Input
Example II
Maintain Customers Data
 Check Input Data Manually
Example II
   Screen 100 : PAI
     MODULE user_command_0100 INPUT.
     ...
      WHEN SPACE.
         SELECT SINGLE * FROM customers WHERE id = customers-id.
         IF sy-subrc <> 0.
           MESSAGE S000(38) WITH ‘Customers data not found’.
           LEAVE TO SCREEN 100.
         ELSE.
           LEAVE TO SCREEN 200.
         ENDIF.
     ENDCASE.
    ENDMODULE.
Example III
Maintain Customers Data
 Check Input Data Using Field Command
Example III – Field Statement
   Screen 100 : Flow Logic (PAI)

    PROCESS AFTER INPUT.
     FIELD customers-id MODULE user_command_0100.
Example III
   Screen 100 : PAI
     MODULE user_command_0100 INPUT.
     ...
      WHEN SPACE.
         SELECT SINGLE * FROM customers WHERE id = customers-id.
         IF sy-subrc <> 0.
           MESSAGE E000(38) WITH ‘Customers data not found’.
         ELSE.
           LEAVE TO SCREEN 200.
         ENDIF.
     ENDCASE.
    ENDMODULE.
Field Input Checking
   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
Field Statement With More Than 1 Field
     Screen 100 : Flow Logic (PAI)
      PROCESS AFTER INPUT.
       CHAIN.
        FIELD: customers-id,customers-custtype
              MODULE user_command_0100.
       ENDCHAIN.


PROCESS AFTER INPUT.
 CHAIN.
  FIELD customers-id MODULE user_command_0100.
  FIELD customers-custtype MODULE user_command_0100.
 ENDCHAIN.
Field Statement & Data Transport
       PROCESS AFTER INPUT.
        MODULE a.             •Transfer f3,f4
                              •Call module a
        FILED f1 MODULE b.    •Transfer f1
        FILED f2 MODULE c.    •Call module b
                              •Transfer f2
        MODULE d.             •Call module c
Screen 100                    •Call module d
  f1    f2

  f3     f4
Required Field
Required Field
Required Field
At exit-command
Function Type : Exit Command
At exit-command
    When user chooses a function with type
    E,the screen flow logic jumps directly to the
    following statement
        MODULE <module> AT EXIT-COMMAND
    No other screen fields are transported to the
    program except OK Code field
At exit-command
   Screen 100 : Flow Logic

    PROCESS BEFORE OUTPUT.
     MODULE STATUS_0100.

    PROCESS AFTER INPUT.
     MODULE exit AT EXIT-COMMAND.
     MODULE USER_COMMAND_0100.
At exit-command
   Screen 100 : PAI

    MODULE exit INPUT.
     CASE ok_code.
                         LEAVE PROGRAM.
      WHEN ‘EXIT’.
       LEAVE PROGRAM.
     ENDCASE.
    ENDMODULE.
Function Module
(POPUP_TO_CONFIRM_LOSS_OF_DATA)
Example IV
Maintain Customer Data
 Popup confirmation data using function

    ‘POPUP_TO_CONFIRM_LOSS_OF_DATA’
Example IV
   TOP Include
    ...
    DATA ans.
Example IV
   Screen 100 : PAI
    MODULE exit INPUT.
     CALL FUNCTION ‘POPUP_TO_CONFIRM_LOSS_OF_DATA’
       EXPORTING
         textline1 = ‘Are you sure?’
         titel      = ‘Please Confirm!!!’
       IMPORTING
         answer = ans.
      IF ans = ‘J’. “J = Ja in German= Yes in English
       LEAVE PROGRAM.
     ELSE.
     ENDIF.
    ENDMODULE.
SAP Transaction : Enqueue Lock Object
SAP Transaction & DB Transaction
   Each Dialog step can contain update
    requests(INSERT,DELETE,UPDATE)
   After each Dialog step,the R/3 system
    automatically passes a database commit to the
    database system.The database system then
    distributes the update requests from the
    individual dialog steps across several database
    transactions
   A rollback in one Dialog step has no effect on
    database updates performed in previous Dialog
    steps
SAP Transaction(LUW)
          DB Commit        DB Commit


 DB LUW




                 SAP LUW
SAP Database Maintenance Steps
   Check data locking by calling function
    ‘ENQUEUE_<lock object>’
   Read data from Database Ex. Select single …
   Data Processing Ex. Update ...
   Release lock by calling function
    ‘DEQUEUE_<lock object>’
SAP Lock Object
   Transaction SE11 : Lock object
       ENQUEUE_<lock object>
       DEQUEUE_<lock object>
SAP Lock Object : Function Module
Example IV
   ENQUEUE /DEQUEUELock Object(SE11)
    CALL FUNCTION ‘ENQUEUE_EZCUST<nn>’
    CALL FUNCTION ‘DEQUEUE_EZCUST<nn>’




     User 1                      User 2
Example IV (I)
   Screen 100 : PAI
    MODULE user_command_0100 INPUT.
    ...
     WHEN SPACE.
        CALL FUNCTION ‘ENQUEUE_EZCUST00’
         EXPORTING
             …
             id = customers-id
         EXCEPTIONS
         ...
        IF sy-subrc <> 0.
       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     ELSE.
         SELECT SINGLE * FROM customers WHERE id = customers-id.
     ...
Example IV (II)
   Screen 100 : PAI
    MODULE user_command_0100 INPUT.
    ...
     WHEN SPACE.
        CALL FUNCTION ‘ENQUEUE_EZCUST00’
          EXPORTING                      message id sy-msgid type
              id = customers-id          sy-msgty number
          ...                                       sy-msgno with sy-
        IF sy-subrc <> 0.                msgv1 sy-msgv2
            CONCATENATE ‘Data was locked by :’ sy-msgv1 INTO mess.
                                                    sy-msgv3 sy-
            MESSAGE E000(38) WITH mess. msgv4.
        ELSE.
            SELECT SINGLE * FROM customers WHERE id = customers-id.
        ...
Example IV
   Screen 200 : PAI
    MODULE user_command_0200 INPUT.
    ...
     WHEN ‘BACK’.
        CALL FUNCTION ‘DEQUEUE_EZCUST00’
          EXPORTING
            …
            id = customers-id.
        LEAVE TO SCREEN 100.
         …
Example IV
   Screen 200 : PAI
    MODULE user_command_0200 INPUT.
    ...
     WHEN ‘SAVE’.
        UPDATE customers.
        MESSAGE S000(38) WITH ‘Update OK!’.
        CALL FUNCTION ‘DEQUEUE_EZCUST00’
         EXPORTING
             …
             id = customers-id.
        LEAVE TO SCREEN 100.
         ...
         ...
Monitoring Enqueue Lock : SM12

More Related Content

What's hot (20)

PPT
07.Advanced Abap
sapdocs. info
 
PDF
Smartforms interview questions with answers
Uttam Agrawal
 
PDF
Abap reports
Milind Patil
 
PPT
SAP ABAP - Needed Notes
Akash Bhavsar
 
PPTX
Sap abap
Jugul Crasta
 
PDF
Sap Abap Reports
vbpc
 
PPTX
Reports
Jugul Crasta
 
PPT
Alv theory
Phani Kumar
 
PDF
Sap abap material
Kranthi Kumar
 
PDF
500+ SAP ABAP INTERVIEW QUESTIONS WITH ANSWERS
IICT Chromepet
 
PDF
Table maintenance generator and its modifications
scribid.download
 
PPT
ABAP Open SQL & Internal Table
sapdocs. info
 
PDF
SAP ABAP data dictionary
Revanth Nagaraju
 
PPT
table maintenance generator1
Kranthi Kumar
 
PPTX
Sap abap-data structures and internal tables
Mustafa Nadim
 
PPTX
Sap scripts
Jugul Crasta
 
PDF
Bapi step-by-step
mateenjambagi
 
PPTX
SAP Adobe forms
Jugul Crasta
 
DOCX
Sap abap modularization interview questions
Pradipta Mohanty
 
PPT
ABAP Programming Overview
sapdocs. info
 
07.Advanced Abap
sapdocs. info
 
Smartforms interview questions with answers
Uttam Agrawal
 
Abap reports
Milind Patil
 
SAP ABAP - Needed Notes
Akash Bhavsar
 
Sap abap
Jugul Crasta
 
Sap Abap Reports
vbpc
 
Reports
Jugul Crasta
 
Alv theory
Phani Kumar
 
Sap abap material
Kranthi Kumar
 
500+ SAP ABAP INTERVIEW QUESTIONS WITH ANSWERS
IICT Chromepet
 
Table maintenance generator and its modifications
scribid.download
 
ABAP Open SQL & Internal Table
sapdocs. info
 
SAP ABAP data dictionary
Revanth Nagaraju
 
table maintenance generator1
Kranthi Kumar
 
Sap abap-data structures and internal tables
Mustafa Nadim
 
Sap scripts
Jugul Crasta
 
Bapi step-by-step
mateenjambagi
 
SAP Adobe forms
Jugul Crasta
 
Sap abap modularization interview questions
Pradipta Mohanty
 
ABAP Programming Overview
sapdocs. info
 

Viewers also liked (16)

PPT
ABAP Message, Debugging, File Transfer and Type Group
sapdocs. info
 
PPT
ABAP Event-driven Programming &Selection Screen
sapdocs. info
 
PPT
HR ABAP Technical Overview | http://sapdocs.info/
sapdocs. info
 
PDF
HR ABAP Programming Training Material | http://sapdocs.info
sapdocs. info
 
PDF
SAP FICO BBP Sample Document PDF NEW!
sapdocs. info
 
PPT
List Processing in ABAP
sapdocs. info
 
PPT
Introduction to ABAP
sapdocs. info
 
PPT
Modularization & Catch Statement
sapdocs. info
 
DOC
SAP ABAP Material
renterpserver
 
PPT
ABAP Advanced List
sapdocs. info
 
PPTX
Comparison between abap & abap hr
Mahender Donthula
 
PDF
Abap hr programing
tcsabarinathan
 
PPT
SAP Accounts Reveivable Functions | http://sapdocs.info
sapdocs. info
 
PPT
Open SQL & Internal Table
sapdocs. info
 
PPT
SAP Accounts Reveivable Customer Master | http://sapdocs.info
sapdocs. info
 
PDF
ABAP Basico para Consultores Funcionales
sapdocs. info
 
ABAP Message, Debugging, File Transfer and Type Group
sapdocs. info
 
ABAP Event-driven Programming &Selection Screen
sapdocs. info
 
HR ABAP Technical Overview | http://sapdocs.info/
sapdocs. info
 
HR ABAP Programming Training Material | http://sapdocs.info
sapdocs. info
 
SAP FICO BBP Sample Document PDF NEW!
sapdocs. info
 
List Processing in ABAP
sapdocs. info
 
Introduction to ABAP
sapdocs. info
 
Modularization & Catch Statement
sapdocs. info
 
SAP ABAP Material
renterpserver
 
ABAP Advanced List
sapdocs. info
 
Comparison between abap & abap hr
Mahender Donthula
 
Abap hr programing
tcsabarinathan
 
SAP Accounts Reveivable Functions | http://sapdocs.info
sapdocs. info
 
Open SQL & Internal Table
sapdocs. info
 
SAP Accounts Reveivable Customer Master | http://sapdocs.info
sapdocs. info
 
ABAP Basico para Consultores Funcionales
sapdocs. info
 
Ad

Similar to 08.Abap Dialog Programming Overview (20)

PPT
03 abap3-090715081232-phpapp01 (1)
saifee37
 
PPT
03 abap3-090715081232-phpapp01 (1)
saifee37
 
DOC
SAP ABAP Online Training
Srihitha Technologies
 
PPT
08.abap dialog programming overview
Raj Rajesh
 
PPTX
Sap abap
satheesh sutharapu
 
PPTX
Sap abap
Goodrich IT Solutions
 
PDF
Abap sample
deerbabu
 
PDF
Complete reference to_abap_basics
Abhishek Dixit
 
PPT
ABAP Dialog Programming Overview.ppt
GaneshP820675
 
DOCX
Sap transaction codes
Nigel D'souza
 
PDF
Abap tips
Rajesh Kumar
 
PDF
ABAP Course Content
Choodamani Infotech
 
PDF
SAP ABAP Online Training
revanthonlineenquiry
 
PPTX
Abap course chapter 1 introduction and first program
Milind Patil
 
PDF
SAP ABAP Online Training
Nagendra Kumar
 
PPTX
Ratnadip Mysap.Ppt
ratnadipsaperp
 
DOC
SAP Admin Tcode
Richard Boon
 
PPTX
Sap abap
nrj10
 
PPTX
InduSoft VBScript Webinar
AVEVA
 
PPTX
School management system
Soumya Behera
 
03 abap3-090715081232-phpapp01 (1)
saifee37
 
03 abap3-090715081232-phpapp01 (1)
saifee37
 
SAP ABAP Online Training
Srihitha Technologies
 
08.abap dialog programming overview
Raj Rajesh
 
Abap sample
deerbabu
 
Complete reference to_abap_basics
Abhishek Dixit
 
ABAP Dialog Programming Overview.ppt
GaneshP820675
 
Sap transaction codes
Nigel D'souza
 
Abap tips
Rajesh Kumar
 
ABAP Course Content
Choodamani Infotech
 
SAP ABAP Online Training
revanthonlineenquiry
 
Abap course chapter 1 introduction and first program
Milind Patil
 
SAP ABAP Online Training
Nagendra Kumar
 
Ratnadip Mysap.Ppt
ratnadipsaperp
 
SAP Admin Tcode
Richard Boon
 
Sap abap
nrj10
 
InduSoft VBScript Webinar
AVEVA
 
School management system
Soumya Behera
 
Ad

More from sapdocs. info (20)

PDF
SAP PM Master Data Training Guide
sapdocs. info
 
DOCX
SAP SD Certification (C_TSCM62_66) Preparation Training Notes
sapdocs. info
 
DOCX
Variant Configuration in SAP PP: Beginner's Guide
sapdocs. info
 
PDF
SAP PP MRP Guide for Beginners
sapdocs. info
 
PDF
SAP ECC 6.0 PM Configuration Manual - www.sapdocs.info
sapdocs. info
 
PDF
SAP PM Training Manual - www.sapdocs.info
sapdocs. info
 
PDF
SAP Configuration Guide for Functional Modules (Based on IDES)
sapdocs. info
 
PDF
SAP FI-AP TCODES & MENU PATHS
sapdocs. info
 
PDF
SAP FI-AR TCODES & MENU PATHS
sapdocs. info
 
DOC
SAP CO Configuration Guide - Exclusive Document
sapdocs. info
 
DOC
SAP PP End User Document - www.sapdocs.info
sapdocs. info
 
PDF
SAP MM Configuration - Real Project Documentation
sapdocs. info
 
PDF
SAP FI AP: Configuration & End User Guide
sapdocs. info
 
PDF
SAP FI AR: End User Guide for Beginners
sapdocs. info
 
PDF
SAP FI AP: End User Guide for Beginners
sapdocs. info
 
PDF
SAP FI Asset Accounting: End User Guide for Beginners
sapdocs. info
 
PDF
Variant Configurition in SAP: Beginners Guide | www.sapdocs.info
sapdocs. info
 
PDF
Exclusive SAP Basis Training Book | www.sapdocs.info
sapdocs. info
 
PDF
SAP Plant Maintenance Training Material | www.sapdocs.info
sapdocs. info
 
PDF
SAP HR Time Management User Guide | www.sapdocs.info
sapdocs. info
 
SAP PM Master Data Training Guide
sapdocs. info
 
SAP SD Certification (C_TSCM62_66) Preparation Training Notes
sapdocs. info
 
Variant Configuration in SAP PP: Beginner's Guide
sapdocs. info
 
SAP PP MRP Guide for Beginners
sapdocs. info
 
SAP ECC 6.0 PM Configuration Manual - www.sapdocs.info
sapdocs. info
 
SAP PM Training Manual - www.sapdocs.info
sapdocs. info
 
SAP Configuration Guide for Functional Modules (Based on IDES)
sapdocs. info
 
SAP FI-AP TCODES & MENU PATHS
sapdocs. info
 
SAP FI-AR TCODES & MENU PATHS
sapdocs. info
 
SAP CO Configuration Guide - Exclusive Document
sapdocs. info
 
SAP PP End User Document - www.sapdocs.info
sapdocs. info
 
SAP MM Configuration - Real Project Documentation
sapdocs. info
 
SAP FI AP: Configuration & End User Guide
sapdocs. info
 
SAP FI AR: End User Guide for Beginners
sapdocs. info
 
SAP FI AP: End User Guide for Beginners
sapdocs. info
 
SAP FI Asset Accounting: End User Guide for Beginners
sapdocs. info
 
Variant Configurition in SAP: Beginners Guide | www.sapdocs.info
sapdocs. info
 
Exclusive SAP Basis Training Book | www.sapdocs.info
sapdocs. info
 
SAP Plant Maintenance Training Material | www.sapdocs.info
sapdocs. info
 
SAP HR Time Management User Guide | www.sapdocs.info
sapdocs. info
 

Recently uploaded (20)

PDF
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
PPTX
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
PDF
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
PDF
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 
PDF
Rapid Mathematics Assessment Score sheet for all Grade levels
DessaCletSantos
 
PPT
21st Century Literature from the Philippines and the World QUARTER 1/ MODULE ...
isaacmendoza76
 
PPTX
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
PPTX
How to Configure Taxes in Company Currency in Odoo 18 Accounting
Celine George
 
PDF
Indian National movement PPT by Simanchala Sarab, Covering The INC(Formation,...
Simanchala Sarab, BABed(ITEP Secondary stage) in History student at GNDU Amritsar
 
PPTX
How Physics Enhances Our Quality of Life.pptx
AngeliqueTolentinoDe
 
PPTX
The Gift of the Magi by O Henry-A Story of True Love, Sacrifice, and Selfless...
Beena E S
 
PPTX
How to Configure Refusal of Applicants in Odoo 18 Recruitment
Celine George
 
PPTX
Urban Hierarchy and Service Provisions.pptx
Islamic University of Bangladesh
 
PDF
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
PDF
Genomics Proteomics and Vaccines 1st Edition Guido Grandi (Editor)
kboqcyuw976
 
PPTX
Matatag Curriculum English 8-Week 1 Day 1-5.pptx
KirbieJaneGasta1
 
PPTX
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
PPTX
How to Create & Manage Stages in Odoo 18 Helpdesk
Celine George
 
PPTX
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
PPTX
Connecting Linear and Angular Quantities in Human Movement.pptx
AngeliqueTolentinoDe
 
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 
Rapid Mathematics Assessment Score sheet for all Grade levels
DessaCletSantos
 
21st Century Literature from the Philippines and the World QUARTER 1/ MODULE ...
isaacmendoza76
 
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
How to Configure Taxes in Company Currency in Odoo 18 Accounting
Celine George
 
Indian National movement PPT by Simanchala Sarab, Covering The INC(Formation,...
Simanchala Sarab, BABed(ITEP Secondary stage) in History student at GNDU Amritsar
 
How Physics Enhances Our Quality of Life.pptx
AngeliqueTolentinoDe
 
The Gift of the Magi by O Henry-A Story of True Love, Sacrifice, and Selfless...
Beena E S
 
How to Configure Refusal of Applicants in Odoo 18 Recruitment
Celine George
 
Urban Hierarchy and Service Provisions.pptx
Islamic University of Bangladesh
 
COM and NET Component Services 1st Edition Juval Löwy
kboqcyuw976
 
Genomics Proteomics and Vaccines 1st Edition Guido Grandi (Editor)
kboqcyuw976
 
Matatag Curriculum English 8-Week 1 Day 1-5.pptx
KirbieJaneGasta1
 
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
How to Create & Manage Stages in Odoo 18 Helpdesk
Celine George
 
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
Connecting Linear and Angular Quantities in Human Movement.pptx
AngeliqueTolentinoDe
 

08.Abap Dialog Programming Overview

  • 2. SAP System : Dialog Processing (Report) SAP GUI Report zpsm1. Request Tables customers. List Select single * from Generate 1 10 customers where id = 1. Screen(List) Application Server Send Request Write: / customers-name. Store request to queue3 Dispatcher Send 2 Search for SAP Buffer List 9 free WP Request Check Program in 7 Program Queue Send request Program Buffer 5 Execute to WP 4 ABAP … D D D … D stateme nt … 8 6 SQL Load&Gen Database Server Request Program
  • 3. Dialog WP : Executable Program Dialog WP Local Memory TaskHandler Memory Space ABAP Processor DYNPRO Processor List Buffer DB Interface Result Set Memory Database
  • 4. Types of ABAP Report 1 3 1. Report Listing 4 2. Drill-down Report 3. Control-break Report 4. ALV Report
  • 5. SAP System : Dialog Processing (DIALOG) SAP GUI Program sapmzex001. Request Include …. Screen Set screen 100. Generate Dialog 1 10 … Screen Application Server Send Request Store request to queue3 Dispatcher Send 2 Search for SAP Buffer List 9 free WP Request Check Program in 7 Program Queue Send request Program Buffer 5 Execute to WP 4 ABAP … D D D … D stateme nt … 8 6 SQL Load&Gen Database Server Request Program
  • 6. Dialog WP : Dialog Program Dialog WP Local Memory ABAP Memory TaskHandler ABAP Processor DYNPRO Processor Screen Buffer DB Interface Result Set Memory Database
  • 7. Dialog Program : Transaction
  • 8. Dialog Program Components Transaction Code Dialog Program Program Naming Convention : SAPM… ABAP Module Pool Screen : 100 PBO (Screen Layout) Flow Logic PAI ABAP Module Pool PBO ABAP Module Pool Screen : 200 (Screen Layout) Flow Logic PAI ABAP Module Pool
  • 9. 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
  • 10. Data Transfer (Local Memory) Local Memory Screen Work Area ABAP Work Area ok_code Screen Buffer ABAP Memory Space PBO Element List customers id name city … customers-id 0000000 customers-name ok_code PAI
  • 11. Flow Logic  Process Before Output(PBO)  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.  Process After Input(PAI)  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.
  • 12. OK Code Field in Screen OK Code Field or Command Field (ok_code in Element List)
  • 13. Defining Screen (4 Steps)  Screen Attribute  Screen Layout  Flow Logic Element List(ok_code  Element List field)
  • 14. Flow Logic in Screen 100 PROCESS BEFORE OUTPUT. MODULE STATUS_0100. PROCESS AFTER INPUT. MODULE USER_COMMAND_0100.
  • 15. PBO in Screen 100 MODULE status_0100 OUTPUT. SET PF-STATUS ‘0100’. SET TITLEBAR ‘0100’. ENDMODULE.
  • 16. PAI in Screen 100 MODULE user_command_0100 INPUT. CASE ok_code. WHEN ‘EXIT’. “Leave program SET SCREEN 0. LEAVE SCREEN. “Leave to screen 0 WHEN ‘SAVE’. UPDATE customers. MESSAGE S000(38) WITH ‘Update OK’. SET SCREEN 50. LEAVE SCREEN. ENDCASE. ENDMODULE.
  • 17. How to Create Dialog Program  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
  • 18. Example I Maintain Customers Data Screen : 100 Screen : 200
  • 19. Example I  Create Dialog Program SAPMZEX<nn> for changing Customers table  Screen 100  Field customers-id  Screen 200  Field customers-id and customers-name
  • 20. Example I  Screen 100 PROCESS BEFORE OUTPUT. MODULE STATUS_0100. PROCESS AFTER INPUT. MODULE USER_COMMAND_0100.
  • 21. Example I  Screen 100 MODULE status_0100 OUTPUT. SET PF-STATUS ‘0100’. SET TITLEBAR ‘0100’. ENDMODULE.
  • 22. 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.
  • 23. Example I  Screen 200 PROCESS BEFORE OUTPUT. MODULE STATUS_0200. PROCESS AFTER INPUT. MODULE USER_COMMAND_0200.
  • 24. Example I  Screen 200 MODULE status_0200 OUTPUT. SET PF-STATUS ‘0200’. SET TITLEBAR ‘0200’. ENDMODULE.
  • 25. 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.
  • 26. Example I  TOP Include TABLES customers. DATA ok_code TYPE sy-ucomm.  Create Transaction Code Transaction Code : ZEX<nn>
  • 27. Exercise Create Dialog Program : SAPMZCUST<nn> Transaction Code : ZCUST<nn>
  • 28. Exercise : Customers Maintenance Screen : 100 Screen : 200
  • 29. Setting the Cursor Position Dynamically PROCESS BEFORE OUTPUT. MODULE STATUS_0200. MODULE set_cursor. MODULE set_cursor OUTPUT. SET CURSOR FIELD ‘CUSTOMERS-CITY’ OFFSET 3. ENDMODULE. Cursor Position
  • 30. Avoiding the Unexpected Processing Step of ok_code Field
  • 31. 1. Auxiliary OK_CODE Variable  TOP Include TABLES customers. DATA ok_code TYPE sy-ucomm. DATA save_ok TYPE sy-ucomm.
  • 32. Example I - Change  Screen 100 : PAI MODULE user_command_0100 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN ‘BACK’. LEAVE PROGRAM. WHEN space. SELECT SINGLE * FROM customers WHERE id = customers-id. LEAVE TO SCREEN 200. ENDCASE. ENDMODULE.
  • 33. Example I - Change  Screen 200 : PAI MODULE user_command_0200 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN ‘BACK’. LEAVE TO SCREEN 100. WHEN space. LEAVE TO SCREEN 200. WHEN ‘SAVE’. UPDATE customers. MESSAGE s000(38) WITH ‘Update OK!’. LEAVE TO SCREEN 100. ENDCASE. ENDMODULE.
  • 34. 2. Specify the Enter Function at GUI Status
  • 35. Check Enter Function  Screen 100 : PAI MODULE user_command_0100 INPUT. CASE ok_code. WHEN ‘BACK’. LEAVE PROGRAM. WHEN ‘ENTE’. SELECT SINGLE * FROM customers WHERE id = customers-id. LEAVE TO SCREEN 200. ENDCASE. ENDMODULE.
  • 36. 3. Clear OK_CODE at PBO  Screen 100 : Flow Logic PROCESS BEFORE OUTPUT. MODULE STATUS_0100. MODULE clear_ok_code. PROCESS AFTER INPUT. MODULE USER_COMMAND_0100.
  • 37. Clear OK_CODE at PBO  Screen 100 : PBO MODULE status_0100 OUTPUT. SET PF-STATUS ‘0100’. SET TITLEBAR ‘0100’. ENDMODULE. MODULE clear_ok_code OUTPUT. CLEAR ok_code. ENDMODULE.
  • 39. Example II Maintain Customers Data  Check Input Data Manually
  • 40. Example II  Screen 100 : PAI MODULE user_command_0100 INPUT. ... WHEN SPACE. SELECT SINGLE * FROM customers WHERE id = customers-id. IF sy-subrc <> 0. MESSAGE S000(38) WITH ‘Customers data not found’. LEAVE TO SCREEN 100. ELSE. LEAVE TO SCREEN 200. ENDIF. ENDCASE. ENDMODULE.
  • 41. Example III Maintain Customers Data  Check Input Data Using Field Command
  • 42. Example III – Field Statement  Screen 100 : Flow Logic (PAI) PROCESS AFTER INPUT. FIELD customers-id MODULE user_command_0100.
  • 43. Example III  Screen 100 : PAI MODULE user_command_0100 INPUT. ... WHEN SPACE. SELECT SINGLE * FROM customers WHERE id = customers-id. IF sy-subrc <> 0. MESSAGE E000(38) WITH ‘Customers data not found’. ELSE. LEAVE TO SCREEN 200. ENDIF. ENDCASE. ENDMODULE.
  • 44. Field Input Checking  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
  • 45. Field Statement With More Than 1 Field  Screen 100 : Flow Logic (PAI) PROCESS AFTER INPUT. CHAIN. FIELD: customers-id,customers-custtype MODULE user_command_0100. ENDCHAIN. PROCESS AFTER INPUT. CHAIN. FIELD customers-id MODULE user_command_0100. FIELD customers-custtype MODULE user_command_0100. ENDCHAIN.
  • 46. Field Statement & Data Transport PROCESS AFTER INPUT. MODULE a. •Transfer f3,f4 •Call module a FILED f1 MODULE b. •Transfer f1 FILED f2 MODULE c. •Call module b •Transfer f2 MODULE d. •Call module c Screen 100 •Call module d f1 f2 f3 f4
  • 51. Function Type : Exit Command
  • 52. At exit-command  When user chooses a function with type E,the screen flow logic jumps directly to the following statement MODULE <module> AT EXIT-COMMAND  No other screen fields are transported to the program except OK Code field
  • 53. At exit-command  Screen 100 : Flow Logic PROCESS BEFORE OUTPUT. MODULE STATUS_0100. PROCESS AFTER INPUT. MODULE exit AT EXIT-COMMAND. MODULE USER_COMMAND_0100.
  • 54. At exit-command  Screen 100 : PAI MODULE exit INPUT. CASE ok_code. LEAVE PROGRAM. WHEN ‘EXIT’. LEAVE PROGRAM. ENDCASE. ENDMODULE.
  • 56. Example IV Maintain Customer Data  Popup confirmation data using function ‘POPUP_TO_CONFIRM_LOSS_OF_DATA’
  • 57. Example IV  TOP Include ... DATA ans.
  • 58. Example IV  Screen 100 : PAI MODULE exit INPUT. CALL FUNCTION ‘POPUP_TO_CONFIRM_LOSS_OF_DATA’ EXPORTING textline1 = ‘Are you sure?’ titel = ‘Please Confirm!!!’ IMPORTING answer = ans. IF ans = ‘J’. “J = Ja in German= Yes in English LEAVE PROGRAM. ELSE. ENDIF. ENDMODULE.
  • 59. SAP Transaction : Enqueue Lock Object
  • 60. SAP Transaction & DB Transaction  Each Dialog step can contain update requests(INSERT,DELETE,UPDATE)  After each Dialog step,the R/3 system automatically passes a database commit to the database system.The database system then distributes the update requests from the individual dialog steps across several database transactions  A rollback in one Dialog step has no effect on database updates performed in previous Dialog steps
  • 61. SAP Transaction(LUW) DB Commit DB Commit DB LUW SAP LUW
  • 62. SAP Database Maintenance Steps  Check data locking by calling function ‘ENQUEUE_<lock object>’  Read data from Database Ex. Select single …  Data Processing Ex. Update ...  Release lock by calling function ‘DEQUEUE_<lock object>’
  • 63. SAP Lock Object  Transaction SE11 : Lock object  ENQUEUE_<lock object>  DEQUEUE_<lock object>
  • 64. SAP Lock Object : Function Module
  • 65. Example IV  ENQUEUE /DEQUEUELock Object(SE11) CALL FUNCTION ‘ENQUEUE_EZCUST<nn>’ CALL FUNCTION ‘DEQUEUE_EZCUST<nn>’ User 1 User 2
  • 66. Example IV (I)  Screen 100 : PAI MODULE user_command_0100 INPUT. ... WHEN SPACE. CALL FUNCTION ‘ENQUEUE_EZCUST00’ EXPORTING … id = customers-id EXCEPTIONS ... IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ELSE. SELECT SINGLE * FROM customers WHERE id = customers-id. ...
  • 67. Example IV (II)  Screen 100 : PAI MODULE user_command_0100 INPUT. ... WHEN SPACE. CALL FUNCTION ‘ENQUEUE_EZCUST00’ EXPORTING message id sy-msgid type id = customers-id sy-msgty number ... sy-msgno with sy- IF sy-subrc <> 0. msgv1 sy-msgv2 CONCATENATE ‘Data was locked by :’ sy-msgv1 INTO mess. sy-msgv3 sy- MESSAGE E000(38) WITH mess. msgv4. ELSE. SELECT SINGLE * FROM customers WHERE id = customers-id. ...
  • 68. Example IV  Screen 200 : PAI MODULE user_command_0200 INPUT. ... WHEN ‘BACK’. CALL FUNCTION ‘DEQUEUE_EZCUST00’ EXPORTING … id = customers-id. LEAVE TO SCREEN 100. …
  • 69. Example IV  Screen 200 : PAI MODULE user_command_0200 INPUT. ... WHEN ‘SAVE’. UPDATE customers. MESSAGE S000(38) WITH ‘Update OK!’. CALL FUNCTION ‘DEQUEUE_EZCUST00’ EXPORTING … id = customers-id. LEAVE TO SCREEN 100. ... ...