Tutorial Sublayar ABAP: Panggil Sublayar masuk SAP
⚡ Ringkasan Cerdas
Sublayar ABAP menyematkan satu layar di dalam area layar lain saat runtime, bersama dengan logika alurnya. Halaman ini menjelaskan area sublayar, pernyataan CALL SUBSCREEN di PBO dan PAI, transfer data, dan batasan yang menyebabkan kesalahan runtime.

Apa itu Subscreen? SAP ABAP?
Sebelum membaca tutorial ini, pastikan Anda memahami apa itu... Program Dialog adalah.
- Sublayar adalah layar independen yang ditampilkan di area layar (“utama”) lainnya.
- Sublayar memungkinkan Anda menyematkan satu layar ke layar lain saat runtime. Anda dapat memasukkan beberapa sub-layar di layar utama.
- Istilah sublayar berlaku untuk layar yang Anda sematkan, dan area di layar utama tempat Anda menempatkannya. Tutorial ini tentang area sublayar. Layar sebenarnya yang dibuat melalui transaksi SE51, disebut layar sublayar jika ditentukan dalam atribut layar.
- Saat Anda menggunakan sublayar, logika aliran layar yang tertanam juga tertanam dalam logika aliran layar utama. Oleh karena itu, Menggunakan sublayar pada layar seperti menggunakan penyertaan dalam program ABAP.
Untuk menggunakan sublayar, Anda harus mengikuti tiga langkah sederhana
- Tentukan area sublayar pada layar
- Tentukan layar sublayar yang sesuai
- Sertakan layar sublayar di area sublayar.
Selain itu, Anda perlu menyesuaikan bingkai sub-layar dan layar utama. Anda perlu memberi nama di bidang nama bidang.
Selanjutnya, Anda juga perlu menyesuaikan bidang dalam sublayar agar muncul di layar utama. Jika sub-layar ditentukan lebih besar dari area yang tersedia di layar utama, hanya bagian sub-layar yang sesuai dengan area yang tersedia yang akan terlihat. Luas selalu diukur dari sudut kiri atas layar. Oleh karena itu, Anda harus berhati-hati saat menentukan area sub-layar dan membuat sub-layar.
PANGGILAN SUBSKREEN
CONTOH
Misalnya di sini kita telah mendefinisikan dua area sub-layar di layar utama dan telah melampirkan dua Sub-layar berbeda ke area terkait. Setiap kali layar utama dipanggil, PBO layar utama dipanggil. Namun sebelum ditampilkan, PBO setiap layar yang dilengkapi dengan area sub-layar pada layar utama juga disebut.
Tangkapan layar menunjukkan layar utama dengan dua area sublayar yang diisi oleh dua layar sublayar terpisah.
Anda dapat menyertakan layar sublayar menggunakan pernyataan CALL SUBSCREEN dalam logika aliran layar utama.
Memanggil sublayar di PBO
Untuk menyertakan layar sublayar di area sublayar layar utama dan memanggil logika aliran PBO-nya, gunakan pernyataan berikut dalam acara PBO layar utama:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Pernyataan ini menetapkan layar sublayar dengan nomor ke area sublayar yang disebut . Anda juga dapat menentukan program yang menentukan layar sublayar (opsional). Jika Anda tidak menentukan program secara eksplisit, sistem akan mencari layar sub-layar di program ABAP yang sama dengan program utama. Jika tidak menemukan layar sublayar yang sesuai, kesalahan runtime akan terjadi. Logika aliran PBO pada layar sublayar juga disertakan pada titik yang sama. Ini dapat disebut modul PBO dari program ABAP yang layar sub-layarnya ditentukan. Di akhir PBO sublayar, field global dari program diteruskan ke setiap field layar dengan nama yang sama di layar sublayar. Logika aliran PBO dari layar sublayar itu sendiri dapat mencakup sublayar lebih lanjut.
Nama area sublayar harus dimasukkan langsung tanpa koma terbalik. Anda dapat menentukan namanya Dan baik sebagai literal atau variabel. Jika Anda menggunakan variabel, Anda harus mendeklarasikan dan mengisi variabel dengan nama yang sama di program ABAP. Nomor layar harus terdiri dari 4 karakter. Jika Anda tidak menetapkan layar sublayar ke suatu area, layar tersebut tetap kosong.
Memanggil sublayar di PAI
Untuk memanggil logika aliran PAI pada layar sublayar, gunakan pernyataan berikut dalam logika aliran PAI pada layar utama:
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Pernyataan ini mencakup logika aliran PAI dari layar sublayar yang termasuk dalam area sublayar dalam acara PBO. Ini dapat disebut modul PAI dari program ABAP yang layar sub-layarnya ditentukan. Data diangkut antara bidang dengan nama yang sama di layar sublayar dan program ABAP baik saat peristiwa PAI dipicu, atau pada pernyataan FIELD yang sesuai dalam logika aliran PAI di layar sublayar.
Cara Membuat dan Menyematkan Sublayar
Tiga langkah yang disebutkan sebelumnya dilakukan di Layar. Painter dan dalam logika alur layar utama. Urutan di bawah ini menciptakan satu layar utama dengan satu area sublayar.
- Buat area sublayar: Buka layar utama, misalnya layar 100, di Layar. Painter (SE51). Pilih Sublayar Pilih elemen dari bilah elemen, gambarkan pada tata letak, dan masukkan nama seperti SUB_AREA di kolom Nama. Nama tersebut akan digunakan nanti dalam pernyataan CALL SUBSCREEN.
- Buat layar sublayar: Buat layar kedua, misalnya layar 110, dan atur tipe layarnya menjadi Sublayar pada atribut. Layar subscreen tidak memiliki field kode OK dan tidak memiliki status GUI sendiri.
- Tempatkan kolom-kolom tersebut: Gambarlah kolom input pada layar 110. Pastikan tata letaknya berada di dalam ukuran area sublayar, karena hanya bagian yang sesuai yang akan ditampilkan, diukur dari sudut kiri atas.
- Nyatakan data global: Letakkan field-field tersebut di bagian include TERATAS dari module pool, sehingga baik layar utama maupun subscreen membaca variabel global yang sama.
- Panggil sublayar: Tambahkan CALL SUBSCREEN ke PBO dan ke PAI layar utama, seperti yang ditunjukkan di bawah ini.
- Aktifkan dan uji: Aktifkan layar dan program, lalu mulai transaksi. Area sublayar diisi oleh layar 110, dan modul-modulnya berjalan di dalam logika alur layar 100.
* Flow logic of the main screen 100 PROCESS BEFORE OUTPUT. MODULE status_0100. CALL SUBSCREEN sub_area INCLUDING 'SAPMZDEMO' '0110'. PROCESS AFTER INPUT. CALL SUBSCREEN sub_area. MODULE user_command_0100.
💡 Kiat: Simpan nomor layar dalam variabel global, bukan literal, ketika area tersebut harus menampilkan sublayar yang berbeda tergantung pada input pengguna. Variabel tersebut harus memiliki nama yang sama dalam program dan dalam pernyataan CALL SUBSCREEN.
Poin yang perlu diingat
- Nama elemen sub-layar dalam layar harus unik
- Anda tidak boleh memasang OK_CODE atau FCODE dengan sub-layar. OK_CODE layar utama itu sendiri adalah OK_CODE sub-layar
- Sub-layar tidak boleh memiliki modul dialog apa pun yang berisi SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN, atau LEAVE TO SCREEN. Ini akan menyebabkan kesalahan runtime.
- Anda perlu memanggilnya dalam logika aliran (PBO dan PAI) di layar utama.
- CALL SUBSCREEN tidak diperbolehkan dalam pernyataan CHAIN..ENDCHAIN dan LOOP ENDLOOP
- Tidak dapat memiliki modul AT EXIT-COMMAND
- Bidang yang Anda gunakan adalah bidang global. Mereka harus dinyatakan di bagian atas
- Jika menggunakan sublayar dari yang lain program dialog transfer data tidak akan terjadi kecuali Anda menambahkan kode tertentu.
⚠️ Peringatan: Menempatkan CALL SUBSCREEN di dalam CHAIN … ENDCHAIN atau di dalam LOOP layar akan menghasilkan kesalahan sintaks, dan memanggil nomor layar yang tidak ada akan menghasilkan kesalahan runtime pada tampilan pertama.

