SAP SALV #1 Basit Alv Yapısı

sap

Merhaba SAP SALV #1 Basit Alv Yapısı başlıklı yazımızla birlikte Sap’de sıkça kullandığımız alv serimize başlıyoruz. Bu seride olabildiğince ayrıntılara değineceğiz. İsterseniz gelin hemen başlayalım.

SALV Nedir?

SAP Netweaver 04 ile birlikte tanıtmıştır. Kullanımı basit ve hızlıdır. Nesne yönelimlidir. 3 farklı çeşidi bulunmaktadır. Bunlar;

AçıklamaSınıf
Basit 2D raporlamaCL_SALV_TABLE
Hiyerarşik raporlamaCL_SALV_HIERSEQU_TABLE
Ağaç yapısında raporlamaCL_SALV_TREE

Biz bu yazımızda basit 2D raporlama yapacağız. Diğer türleri de başka yazılarımızda ele alacağız. Tüm sınıflar statik bir method olan factory methoduna sahiptir. Raporlama yaparken ilk olarak bunu çağırmalıyız. Parametre olarak kendi sınıfını referans alan bir obje ve bir internal table vermeniz yeterli. Herhangi bir fieldcat vermemize gerek yok. Daha sonra display methodu ile raporumuzu ekranda gösterebiliriz. Bizim örneğimizde diğer kısımları da sınıf yapısında yazdım. Size de OOP(Nesne Yönelimli Programlama) öğrenmenizi ve kodlarınızda bunu kullanmanızı tavsiye ediyorum. Düzenlenebilirlik ve yeniden kullanılabilirlik özellikleri ile kodlarınıza çok fazla esneklik kazandıracaktır.

Örnek Rapor

Raporumuzda VBRK tablosundaki faturaları göstereceğiz. İlk olarak sınıfımızı oluşturuyoruz. Değişken tanımlamalarımızı yapıyoruz. get_data methodu ile verimizi çekiyoruz. show_alv methodu içerisinde ise raporumuzu ekranda gösteriyoruz.

SALV

REPORT zmop_deneme3.

*----------------------------------------------------------------------*
*       CLASS lcl_class DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_class DEFINITION.
*
  PUBLIC SECTION.

*   Rapor Yapısı Tipi
    TYPES: BEGIN OF ty_vbrk,
             vbeln TYPE vbrk-vbeln,
             vtext TYPE bezei40,
             waerk TYPE vbrk-waerk,
             fkdat TYPE vbrk-fkdat,
             gjahr TYPE vbrk-gjahr,
           END   OF ty_vbrk.

    DATA: t_vbrk TYPE STANDARD TABLE OF ty_vbrk.

*   ALV reference
    DATA: o_alv TYPE REF TO cl_salv_table.

    METHODS:
*     Veriler çekiliyor.
      get_data,

*     Alv ekranda gösteriliyor.
      show_alv.

ENDCLASS.                    "lcl_class DEFINITION

START-OF-SELECTION.
  DATA: lo_report TYPE REF TO lcl_class.

  CREATE OBJECT lo_report.
  lo_report->get_data( ).
  lo_report->show_alv( ).
*
*----------------------------------------------------------------------*
*       CLASS lcl_class IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_class IMPLEMENTATION.
*
  METHOD get_data.

*   Verimizi çekiyoruz.
    SELECT vbeln, vtext, waerk, fkdat, gjahr
      INTO  TABLE @t_vbrk
      FROM  vbrk
      INNER JOIN tvfkt
      ON tvfkt~fkart EQ vbrk~fkart
      AND spras EQ 'T'
      UP TO 100 ROWS.

  ENDMETHOD.                    "get_data
  METHOD show_alv.

* İstisnalar için
    DATA: lx_msg TYPE REF TO cx_salv_msg.

    TRY.
        cl_salv_table=>factory(
          IMPORTING
            r_salv_table = o_alv
          CHANGING
            t_table      = t_vbrk ).
      CATCH cx_salv_msg INTO lx_msg.
    ENDTRY.

    o_alv->display( ).

  ENDMETHOD.                    "show_alv

ENDCLASS.                    "lcl_class IMPLEMENTATION

Bu serimizde gelecek olan diğer yazılarımızı buradan takip edebilirsiniz. Bir sonraki yazımızda görüşmek dileğiyle.

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

Yazar

Merhaba, Kocaeli Üniversitesi Bilişim Sistemleri Mühendisliği Bölümü'nden 2019 yılında mezun oldum. Daha sonra Sap sektöründe çalışma hayatına başladım. Burada elimden geldiğince tecrübelerimi sizinle paylaşacağım.

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hızlı yorum için giriş yapın.

Başka Yazı Yok

Kayıt Ol

Zaten üye misiniz? Giriş Yap

Giriş Yap

Henüz üyeliğiniz yok mu? Kayıt Ol