Diyalog Programlama Eğitimi: Modül Havuzu SAP ABAP
⚡ Akıllı Özet
Dialog Programming in SAP ABAP builds module pool programs that interact with the user through screens and change database contents. This page explains transaction codes, screens, GUI status, screen flow logic, dynpros, and the module pool structure.

What is Dialog Programming?
SAP-ABAP iki tür programı destekler – Rapor Programı ve Diyalog Programı.
ABAP programınız kullanıcı girişi gerektiriyorsa Dialog programlama kullanılır.
A user dialog is any form of interaction between the user and the program and could be any of the following
- Veri giriliyor
- Bir menü öğesi seçme
- Bir düğmeye tıklamak
- Bir girdiye tıklama veya çift tıklama
Diyalog programı aynı zamanda ekranlar arasında ileri geri gitmemiz gerektiğinde de kullanılır.
Diyalog programları 'M' – Modül Havuzu tipinde oluşturulur. Bağımsız olarak yürütülemezler ve başlangıç ekranını belirttiğiniz en az bir işlem koduna eklenmeleri gerekir.
Rapor ve Diyalog Programları Arasındaki Fark
Rapor Programı:
Rapor, genellikle veritabanı tablolarındaki verileri, tabloların içeriğini değiştirmeden okuyan ve analiz eden bir programdır. veritabanı.
Diyalog Programı:
Bir diyalog programı, sistemle etkileşimli olarak çalışmanıza ve veritabanı tablolarının içeriğini değiştirmenize olanak tanır. Her diyalog programında sistem tarafından birbiri ardına işlenen belirli bir ekran dizisi bulunur.
| Kriterler | Report Program | Dialog Program |
|---|---|---|
| Program türü | Type 1, executable | Type M, module pool |
| Veritabanı erişimi | Reads and analyses data | Reads and changes data |
| infaz | Runs on its own | Runs only through a transaction code |
| Control | Events of the report | Screen flow logic of each dynpro |
The screen sequence of a dialog transaction is easier to follow with an example.
Diyalog Programlamada Örnek işlem işleme
The diagram follows one transaction from the first screen to the database update. The user enters data on screen 100, PAI validates the entry and decides the next screen, screen 200 collects the remaining data, and the update task finally writes the record. Each of those steps is produced by the components listed below.
Diyalog Programının Bileşenleri
aksine rapor Genellikle diğer nesnelerden bağımsız olarak yürütülebilen tek bir otonom programın oluşturulmasını gerektiren diyalog programı geliştirme, hiçbiri kendi başına yürütülemeyen birden fazla nesnenin geliştirilmesini gerektirir. Bunun yerine tüm nesneler hiyerarşik olarak ana programa bağlanır ve Dialog Ana Programı tarafından belirlenen bir sırayla yürütülür..
Bir diyalog programının bileşenleri şunlardır:
İşlem kodu
- İşlem kodu bir ekran dizisini başlatır.
- ABAP Workbench'teki Depo Tarayıcısında veya İşlem SE93'ü kullanarak işlem kodları oluşturursunuz.
- Bir işlem kodu bir ABAP programına ve bir başlangıç ekranına bağlanır.
- CALL SCREEN deyimini kullanarak herhangi bir ABAP programından bir ekran dizisi başlatabilirsiniz.
Ekranlar
- Her bir diyalogda SAP Sistem bir veya daha fazla ekran tarafından kontrol edilir.
- Ekranı kullanarak ekranlar oluşturursunuz Painter ABAP Workbench'te SE51 işlemi aracılığıyla
- Her ekran bir kişiye aittir. ABAP programı.
- Bu ekranlar bir "ekran maskesi" veya "düzen" ve onun akış mantığından oluşur. Ekranın giriş/çıkış alanlarının ve onay kutuları ve radyo düğmeleri gibi diğer grafiksel öğelerin konumlarını belirleyen bir düzeni vardır. Bir akış mantığı ekran içindeki mantıksal işlemeyi belirler.
GUI durumu
- Her ekranın, bir programın bağımsız bileşenleri olan bir GUI durumu/durumları vardır.
- Bu, kullanıcının uygulamadaki işlevleri seçebileceği menü çubuklarını, standart araç çubuğunu ve uygulama araç çubuğunu kontrol eder.
- Bunları ABAP Workbench'te Menüyü kullanarak oluşturursunuz Painter.
ABAP Programı
- R/3 Sistemindeki her ekran ve GUI durumu bir ABAP programına aittir.
- ABAP programı, ekran akış mantığı tarafından çağrılan diyalog modüllerini içerir ve ayrıca GUI durumundan kullanıcı girişini işler.
- Ekranları kullanan ABAP programlarına diyalog programları da denir.
- Bir modül havuzunda (M tipi program); çağrılacak ilk işlem bloğu her zaman bir diyalog modülüdür. Ancak çalıştırılabilir programlar veya fonksiyon modülleri gibi diğer ABAP programlarındaki ekranları da kullanabilirsiniz. İlk işlem bloğu daha sonra farklı şekilde çağrılır; örneğin, çalışma zamanı ortamı veya bir prosedür çağrısı tarafından. Daha sonra CALL SCREEN ifadesi kullanılarak ekran dizisi başlatılır.
Ekran Akış Mantığı
Ekran Akışı mantığı öncelikle dört bileşene ayrılmıştır.
- Çıkış Öncesi İşlem (Kamu Yararına Çalışan Kuruluş) olay: ekran görüntülenmeden önce işlenen olay
- Giriş Sonrası İşlem (PAI) olay: ekrandaki bir kullanıcı eyleminden sonra işlenen olay
- Yardım isteği üzerine işlem (P.O.H.): F1'e basıldığında işlenir
- Değer isteği üzerine işlem (POV):F4 tuşuna basıldığında işlenir
POH and POV are explained in detail on the page about process on value request and process on help request.
Dinpro
- A screen together with its Flow logic is called a Dynpro (“Dynamic Program” since the screen flow logic influences the program flow)
- Her dynpro, Diyalog Programınızın tam olarak bir adımını kontrol eder.
- Bir programa ait ekranlar sayılı. The screen flow sequence can be either linear or cyclic. From within a screen chain, you can even call another screen chain and, after processing it, return to the original chain. You can also override the statically-defined next screen from within the dialog modules of the ABAP program.
ABAP Modül Havuzu
- On a PBO or PAI event a Dynpro calls an ABAP dialog program. Collection of such programs is called the ABAP module pool.
- Örneğin PAI olayında çağrılan modüller, kullanıcı girişini kontrol etmek ve güncelleme görevi gibi uygun diyalog adımlarını tetiklemek için kullanılır.
- Tüm dynpro'lar içeriden çağrılacak bir işlem ortak bir modül havuzuna atıfta bulunur.
Diyalog Programının Yapısı
The structure diagram shows how the transaction code, the screens, the GUI status, and the module pool are linked to the same main program.
Bir Diyalog Programı için Süreç Akışı
The process flow diagram shows the alternation between the screen and the ABAP program: PBO fills the screen fields, the user acts, and PAI processes the input before the next screen is called.
How to Create a Module Pool Program
The components above are created in a fixed order. The steps below build a working transaction from an empty module pool.
- Create the module pool: In SE80, or in SE38, create a program whose name begins with SAPMZ and set the program type to M – Module pool. The type cannot be changed later without deleting the object.
- Declare the global data: Put the TABLES statement and the global variables in the TOP include, which every dialog module of the pool can read.
- Design the screen: Create screen 100 with the Screen Painter (SE51), place the input fields on the layout, and enter the next screen number in the screen attributes.
- Write the flow logic: On the Flow logic tab, call one module for PBO and one for PAI, as shown below.
- Build the GUI status: Create a status with the Menu Painter (SE41) and set it in the PBO module with the SET PF-STATUS statement, so that Save, Back, and Exit reach the program as function codes.
- Link a transaction code: In SE93 create a dialog transaction, name the module pool, and enter 100 as the initial screen.
* Screen 100, flow logic PROCESS BEFORE OUTPUT. MODULE status_0100. PROCESS AFTER INPUT. MODULE user_command_0100. * Module pool SAPMZDEMO MODULE status_0100 OUTPUT. SET PF-STATUS 'STATUS_100'. SET TITLEBAR 'TITLE_100'. ENDMODULE. MODULE user_command_0100 INPUT. CASE sy-ucomm. WHEN 'SAVE'. PERFORM save_data. WHEN 'BACK' OR 'EXIT'. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE.
💡 İpucu: LEAVE TO SCREEN 0 ends the current screen and returns to the calling point, which is the standard way to leave a dialog transaction cleanly.




