SAP ABAP Rapor Programlama

⚡ Akıllı Özet

ABAP Rapor Programlama, büyük miktarda veriyi seçen, işleyen ve görüntüleyen yürütülebilir programlar oluşturur. SAP Bu sayfa, rapor başlığı eklemelerini, seçim ekranını, olay dizisini, biçimlendirme komutlarını, etkileşimli listeleri ve mantıksal veritabanlarını açıklamaktadır.

  • 📊 Temel Amaç: Bir rapor programı, çeşitli tablolardan veri okur, işler ve biçimlendirilebilen, indirilebilen veya e-posta ile gönderilebilen bir liste olarak sunar.
  • 🧾 Program Türü: Her rapor, bir uygulama alanına bağlı ve tamamen olaylar tarafından yönlendirilen, tip 1'de yer alan yürütülebilir bir programdır.
  • 🏁 Başlık Eklemeleri: STANDART SAYFA BAŞLIĞI YOK, LINE-BOYUT, LINE-COUNT ve MESSAGE-ID ilk REPORT ifadesinde yer almalıdır.
  • ⌨️ Seçim Ekranı: PARAMETERS tek bir değer kabul ederken, SELECT-OPTIONS bir değer aralığı veya bir değer kümesi kabul eder.
  • ⏱️ Olay Sırası: LOAD-OF-PROGRAM, INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION ve END-OFSELECTION komutları sabit bir sırayla çalışır.
  • 🖱️ Etkileşimli Listeler: HIDE, seçili satırın alan değerlerini saklar ve HOTSPOT, bir liste alanını ikincil liste için tıklanabilir bir öğeye dönüştürür.
  • 🗄️ Mantıksal Veritabanları: SE36'da oluşturulan bu kodlar, SELECT ifadelerini GET olayıyla değiştirir ve merkezi yetkilendirme kontrolleri ekler.

SAP ABAP Rapor Programlama

ABAP Rapor Programlama Nedir?

SAP-ABAP iki tür programı destekler: Rapor Programları ve Diyalog Programları. Rapor Programları, büyük miktarda verinin görüntülenmesi gerektiğinde kullanılır.

Rapor Programlarının Amacı/Kullanımı

  • Bu yöntemler, sunulmadan önce birden fazla tablodan veri seçilip işlenmesi gerektiğinde kullanılır.
  • Raporların özel bir format gerektirmesi durumunda kullanılır.
  • Raporun indirilmesi gerektiğinde kullanılır SAP dağıtılacak bir Excel sayfasına.
  • Raporun belirli bir kişiye postalanması gerektiğinde kullanılır.

Rapor Programı Hakkında Dikkat Edilmesi Gereken Önemli Noktalar

  • Rapor Programları her zaman Yürütülebilir Programlardır. Program Türü her zaman 1'dir.
  • Her Rapor programı, Satış ve Dağıtım, FI – CO vb. gibi belirli bir Uygulama Türüne karşılık gelir. Ayrıca Çapraz Uygulama da olabilir, yani '*' türü.
  • Rapor Programlama Olay odaklı bir programlamadır.
  • Bir rapor programının ilk satırı her zaman Rapor'dur .
  • Liste başlığını veya programın adını gizlemek için ekleme Standart Sayfa Başlığı Yok kullanıldı.
  • Belirli bir raporun satır boyutu, ekleme kullanılarak ayarlanabilir. çizgi boyutu .
  • Belirli bir sayfanın satır sayısı, ekleme kullanılarak ayarlanabilir. satır sayısı n(n1). N, sayfanın satır sayısıdır ve N1, sayfa altbilgisi için ayrılan satır sayısıdır.
  • Herhangi bir bilgiyi veya hata mesajını görüntülemek için programa aşağıdaki eklemeyi kullanarak bir mesaj sınıfı ekliyoruz: Mesaj Kimliği . Mesaj sınıfları SE91'de korunur.

Bu nedenle ideal bir rapor programı şunlarla başlamalıdır:

Report <report name> no standard page heading

line-size <size>

line-count <n(n1)>

message-id <message class>.

Raporlama Programı ile Diyalog Programı Karşılaştırması

Her iki program türü de aynı sistemde çalışır, ancak zıt sorunları çözerler. Bir rapor verileri okur ve görüntülerken, bir diyalog programı kullanıcının verileri ekranlar aracılığıyla yönetmesine olanak tanır.

Kriterler Raporlama Programı Diyalog Programı
Program türü Tip 1, çalıştırılabilir Tip M, modül havuzu
Başlatan Program adı veya işlem kodu Sadece bir işlem kodu
Akış kontrolü Başlatma ve Seçimin Başlangıcı gibi olaylar PBO ve PAI modülleriyle ekran akışı mantığı
Kullanıcı girişi Oluşturulan bir seçim ekranı Ekran tasarımı Painter
Tipik kullanım Büyük veri hacimlerinin görüntülenmesi ve indirilmesi İş verilerinin oluşturulması ve değiştirilmesi

Raporun girdi verilerini topladığı yer seçim ekranıdır, bu nedenle aşağıda açıklanmaktadır.

Seçim Ekranı

“Seçim ekranı”, programın çalışması için gereken giriş değerlerinin belirtildiği ekrandır.

Seçim ekranı normalde şu adresten oluşturulur:

  1. Parametreler
  2. Seçenekler

Sözdizimi

Selection-screen begin of screen <screen #>
selection-screen begin of block <#>  with frame title <text>
.........
.........
selection-screen end of block <#>
selection-screen end of screen <screen #>

Parametreler

Parametreler dinamik seçim yapılmasına yardımcı olur. Programın bir yürütme döngüsü için yalnızca bir değeri barındırabilirler.

Sözdizimi

Parametreleri veri türü olarak tanımlama

Parameters p_id(30) type c.

Tablo alanı gibi parametrelerin tanımlanması.

Parameter p_id like <table name>-<field name>.

Parametreler Onay Kutuları ve Radyo Düğmeleri olabilir.

Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>.
Parameters p_id2  radiobutton group <group name>.

Parametreler listbox olabilir.

Parameter p_id like <table name>-<field name> as listbox

Seçenekleri Seç

Bir programa bir değer aralığı veya bir dizi değer girmek için bir Seçenek Seçme kullanılır

Sözdizimi

select-options s_vbeln for vbak-vbeln.

Seçim Ekranı

Ekran görüntüsü, bir seçim seçeneğinin oluşturduğu düşük ve yüksek giriş alanlarını ve çoklu seçim düğmesini göstermektedir.

Ayrıca değişken gibi bir seçme seçeneği de tanımlayabilirsiniz.

select-options s_vbeln for vbak-vbeln no intervals no-extension

Giriş verileri toplandıktan sonra, program önceden belirlenmiş bir olay dizisine göre tepki verir.

ABAP Rapor Programındaki Etkinlikler

ABAP rapor programları olaya dayalı programlar. Bir rapor Programındaki farklı olaylar şunlardır:

Program yükleme

  • İlgili olayı, tip 1, M, F veya S tipi bir program yüklendikten sonra dahili bir oturumda tetikler.
  • Ayrıca ilgili işlem bloğunu her program ve dahili oturum için yalnızca bir kez çalıştırır.
  • LOAD-OF-PROGRAM işlem bloğu, bir program için kabaca aynı işleve sahiptir. ABAP programı ABAP Nesnelerindeki sınıflar için bir kurucunun sahip olduğu tip 1, M, F veya S

Başlatma.

  • Bu olay, seçim ekranı görüntülenmeden önce yürütülür.
  • Tüm değerlerin başlatılması.
  • Seçim ekranında varsayılan değerler dışında farklı değerler atayabilirsiniz.
  • Seçim ekranınızı çalışma zamanında bazı değerlerle doldurabilirsiniz.

Seçim Ekranında.

  • Olay, seçim ekranı işlendiğinde (PAI'nin sonunda) işlenir.
  • Girilen değerlerin Doğrulanması ve Kontrolleri burada gerçekleşir

Seçimin Başlangıcı.

  • Burada program tablolardan değer seçmeye başlar.

Seçim sonu.

  • Tüm veriler seçildikten sonra bu olay verileri ekrana yazar.

Etkileşimli Etkinlikler

  • Etkileşimli raporlama için kullanılır. Temel bir listeden ayrıntılı bir liste oluşturmak için kullanılır.

💡 İpucu: Olay anahtar kelimesi olmadan yazılan ifadeler varsayılan olarak START-OF-SELECTION'a aittir; bu nedenle olay eksik olsa bile rapor yine de çalıştırılır.

Örnek: Basit Bir ABAP Raporlama Programı

Aşağıdaki program, eklemeleri, seçim ekranını ve olayları tek bir çalışan raporda birleştirir. Seçim ekranında girilen numaralar için VBAK'tan satış siparişi başlıklarını okur ve bunları bir liste olarak yazar.

REPORT z_sales_order_list NO STANDARD PAGE HEADING
                          LINE-SIZE 80
                          LINE-COUNT 65(3)
                          MESSAGE-ID zsd.

TABLES: vbak.

DATA: lt_vbak TYPE STANDARD TABLE OF vbak,
      ls_vbak TYPE vbak.

* Selection screen
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
PARAMETERS: p_erdat LIKE vbak-erdat.

INITIALIZATION.
  p_erdat = sy-datum.

AT SELECTION-SCREEN.
  IF p_erdat > sy-datum.
    MESSAGE e001(zsd).          " Date must not lie in the future
  ENDIF.

START-OF-SELECTION.
  SELECT * FROM vbak
    INTO TABLE lt_vbak
    WHERE vbeln IN s_vbeln
      AND erdat LE p_erdat.

END-OF-SELECTION.
  LOOP AT lt_vbak INTO ls_vbak.
    WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr.
    HIDE ls_vbak-vbeln.
  ENDLOOP.

Üç ayrıntıya dikkat çekmekte fayda var. INITIALIZATION, seçim ekranı görünmeden önce tarih parametresini doldurur. AT SELECTION-SCREEN, girişi doğrular ve ZSD sınıfından bir mesaj gönderir. HIDE, yazılan her satırın sıra numarasını saklar, böylece çift tıklama ile bundan ikincil bir liste oluşturulabilir; bu da bir sonraki bölümün konusudur.

Raporu biçimlendirme

ABAP, raporların kullanıcının istediği şekilde biçimlendirilmesine olanak tanır. Örneğin “Alternatif Satırlar” farklı renklerde, “Toplamlar” satırı ise Sarı renkte görünmelidir.

Sözdizimi

Format Color n

Format Color n Intensified On

n çeşitli sayılara karşılık gelebilir

Lütfen formatın yanı sıra başka eklemelerin de olduğunu unutmayın.

FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF

İnteraktif Rapor Programlama

  • Etkileşimli Programlama kullanarak kullanıcılar, veri alımını ve veri görüntülemeyi aktif olarak kontrol edebilirler.
  • Çok temel bir listeden detaylı bir liste oluşturmak için kullanılır.
  • Ayrıntılı veriler ikincil bir listeye yazılır.
  • İkincil liste ya tamamen ilk ekranın üzerine yerleştirilebilir ya da yeni bir ekranda görüntülenebilir
  • İkincil listelerin kendileri etkileşimli olabilir.
  • İlk liste aynı zamanda bir işlemi de çağırabilir.
  • Etkileşimli programlamayla ilişkili farklı etkinlikler vardır.

Etkileşimli programlama için kullanılan bazı komutlar

hotspot

Fare raporda görüntülenen verinin üzerine sürüklenirse imleç Uzatılmış İşaret Parmağı olan El'e dönüşür. FORMAT deyimi kullanılarak bir sıcak noktaya ulaşılabilir.

Syntax:      Format Hotspot On (Off).

gizlemek

Bu komut, ayrıntılı bir liste elde etmek için hangisinin daha fazla işlem yapacağına bağlı olarak alan adlarını saklamanıza yardımcı olur. Bir alan için WRITE deyiminden hemen sonra yazılır. Bir satır seçildiğinde değerler daha sonra kullanılmak üzere değişkenlere otomatik olarak doldurulur.

Syntax:     Hide <field-name>.

Birden fazla tabloyu okuyan raporlar, SELECT ifadelerini aşağıda açıklanan mantıksal bir veritabanıyla değiştirebilirler.

Mantıksal Veritabanları

  • Bir programın verilerini almak için “Seç” sorgularını kullanmak yerine mantıksal veritabanını kullanabilirsiniz.
  • Mantıksal veritabanları işlemlerle oluşturulur SE36
  • Mantıksal bir veritabanının adı en fazla 20 karakter uzunluğunda olabilir. Bir ad alanı önekiyle başlayabilir.
  • Veriler başka bir program tarafından seçilir ve verilere GET kullanılarak erişilebilir. verileri çalışma alanına yerleştiren komut .

Mantıksal veritabanının normal Select sorgularına göre avantajları.

  1. Girişin doğru, eksiksiz ve makul olup olmadığını görmek için kontrol koşulları sunar
  2. Veritabanı erişimi için merkezi yetkilendirme kontrollerini içerir
  3. Performansın iyileştirilmesi gibi iyileştirmeler, mantıksal veritabanı kullanan tüm raporlara anında uygulanır.

Not: Karmaşıklıklar nedeniyle mantıksal veritabanları çoğu durumda kullanılmaz

SSS

PARAMETERS, tek bir değer tutan bir giriş alanı oluşturur. SELECT-OPTIONS ise SIGN, OPTION, LOW ve HIGH alanlarına sahip dahili bir tablo oluşturarak aralıkları, hariç tutmaları ve birden fazla seçimi kabul eder.

AT LINE-SELECTION çift tıklamaya veya F2 tuşuna tepki verirken, AT USER-COMMAND menüdeki bir fonksiyon koduna tepki verir. Her ikisi de HIDE tarafından saklanan değerlerden ikincil listeyi oluşturur.

Liste menüsü, klasik bir rapor için Listele, Kaydet ve Yerel Dosya seçeneklerini sunar. Bir program ayrıca GUI_DOWNLOAD fonksiyon modülünü çağırabilir ve ALV listesi herhangi bir ek kodlama gerektirmeden bir elektronik tabloya aktarılabilir.

Evet. ABAP geliştirme araçlarındaki yapay zeka asistanları, gerekli listenin düz bir tanımından REPORT başlığını, SELECT-OPTIONS'ı ve olay bloklarını oluşturur. Oluşturulan SELECT'in yine de performans değerlendirmesine ihtiyacı vardır.

Yapay zeka araçları uzun bir listeyi özetler, aykırı değerleri vurgular ve verilerle ilgili soruları sade bir dille yanıtlar. Bu tür analizlerin entegre edilmesi genellikle klasik listenin ALV veya Fiori tabanlı bir çıktıya taşınması anlamına gelir.

Bu yazıyı şu şekilde özetleyin: