SAP ABAP Nedir?

ABAP, SAP’nin özel olarak geliştirdiği bir programlama dilidir.

ABAP, SAP sistemlerinde özelleştirilmiş iş süreçleri ve uygulamalar oluşturmak için kullanılır.

İngilizce “Advanced Business Application Programming”in yani “İleri Düzey İş Uygulamaları Programlama”nın kısaltmasıdır.

1980’lerin sonunda geliştirilen bu dil, SAP ERP sistemlerinin temel taşıdır ve SAP’nin başarısında büyük rol oynamıştır.

ABAP, özellikle işletmelerin ihtiyaçlarına göre özelleştirilebilen uygulamalar ve raporlar geliştirmek için ideal bir araçtır.

SAP ABAP ile İlk Adımlar: Yeni Başlayanlar İçin Rehber

SAP ABAP’e yeni başlayanlar için bu programlama dilinin temellerini öğrenmek önemlidir.

Öncelikle, SAP GUI (Graphical User Interface) ve ABAP geliştirme ortamı olan SE80 hakkında bilgi edinmek gereklidir.

Ardından, ilk “Hello World” programınızı yazarak ABAP dünyasına adım atabilirsiniz.

ABAP Geliştirme Ortamını Tanıma: SE80

SE80, ABAP geliştirme için kullanılan entegre bir geliştirme ortamıdır (IDE).

Burada, programlarınızı yazabilir, test edebilir ve hata ayıklayabilirsiniz. SE80’de, programlar, fonksiyon modülleri, tablolar ve diğer nesneler üzerinde çalışabilirsiniz.

İlk Programınızı Yazmak

ABAP’ta ilk adım olarak basit bir “Hello World” programı yazabilirsiniz. Böylece dilin temel yapı taşlarını anlayabilirsiniz.

ABAP programları genellikle REPORT veya PROGRAM anahtar kelimeleriyle başlar ve ardından kodunuz gelir.

REPORT z_hello_world.

WRITE ‘Hello World’.

Bu basit program, ekranda “Hello World” mesajını görüntüler.

ABAP ile Veritabanı İşlemleri: Veritabanı Tabloları ve SQL Komutları

Veritabanı işlemleri, ABAP programlarının en önemli bileşenlerinden biridir.

ABAP, SQL komutları ile veritabanı tablolarına erişim sağlar ve bu sayede verilerin okunması, yazılması ve güncellenmesi mümkün olur.

Veritabanı Tablolarına Erişim

ABAP, SELECT komutu ile veritabanı tablolarından veri okuma işlemi gerçekleştirir. Örneğin, MARA tablosundan ürün verilerini çekmek için aşağıdaki komut kullanılabilir:

SELECT * FROM mara INTO TABLE lt_mara WHERE matnr = ‘1000001’.

Bu kod, MARA tablosundan MATNR değeri ‘1000001’ olan tüm kayıtları lt_mara adlı dahili tabloya çeker.

Veri Ekleme, Güncelleme ve Silme

ABAP, INSERT, UPDATE ve DELETE komutları ile veritabanına veri ekleme, güncelleme ve silme işlemleri yapabilir. Örneğin, yeni bir kayıt eklemek için INSERT komutu şu şekilde kullanılabilir:

INSERT INTO mara VALUES ‘1000002’, ‘New Product’, ‘EA’.

Bu komut, MARA tablosuna yeni bir ürün ekler. Tabi bu sadece örnek olarak verilmiştir, SAP standart tablolarına bu şekilde asla kayıt atılmamalıdır 🙂

SAP ABAP Nesne Yönelimli Programlama: OOP Kavramları ve Uygulamaları

Nesne yönelimli programlama (OOP), ABAP dilinde güçlü ve esnek bir yapı sağlar. ABAP OOP, kodunuzu daha modüler, okunabilir ve bakımı kolay hale getirir.

ABAP'ta Sınıflar ve Nesneler

ABAP’ta sınıflar, veriler ve bu verilere yönelik işlemleri tanımlayan yapılar olarak kullanılır. Sınıflar, CLASS anahtar kelimesi ile tanımlanır ve METHOD blokları ile işlevler tanımlanır.

 

CLASS lcl_vehicle DEFINITION.

  PUBLIC SECTION.

    METHODS: start,

                                  stop.

ENDCLASS.

 

CLASS lcl_vehicle IMPLEMENTATION.

  METHOD start.

    WRITE: ‘Vehicle started’.

  ENDMETHOD.

 

  METHOD stop.

    WRITE: ‘Vehicle stopped’.

  ENDMETHOD.

ENDCLASS.

 

Bu örnekte, lcl_vehicle adlı bir sınıf tanımlanmış ve bu sınıfın start ve stop metotları tanımlanmıştır.

Kalıtım ve Polimorfizm

ABAP OOP’de kalıtım, bir sınıfın başka bir sınıftan türetilmesini sağlar. Bu, kodun yeniden kullanılabilirliğini artırır ve polimorfizm yoluyla farklı nesnelerin aynı yöntemleri farklı şekilde uygulamalarını sağlar.

ABAP Performans Optimizasyonu: Kodunuzu Nasıl Hızlandırırsınız?

ABAP kodunun performansını optimize etmek, büyük ve karmaşık SAP sistemlerinde kritik bir öneme sahiptir. Yavaş çalışan bir kod, sistem performansını olumsuz etkileyebilir ve kullanıcı deneyimini düşürebilir.

Performans optimizasyonu noktasında kodunuzu hızlandırmak için neler yapabileceğinize göz atalım:

Veritabanı Performansını Artırma

Veritabanı işlemleri, ABAP kodlarının performansını büyük ölçüde etkiler. SELECT sorgularının optimize edilmesi, gereksiz veri yüklemelerin önüne geçmek için önemlidir. Örneğin, SELECT * yerine yalnızca gerekli alanları seçmek, veritabanı yükünü azaltır.

 

SELECT matnr, maktx FROM mara INTO TABLE lt_mara WHERE matnr = ‘1000001’.

 

Bu sorgu, yalnızca MATNR ve MAKTX alanlarını çeker, bu da daha hızlı bir işlem sağlar.

Dahili Tabloların Optimizasyonu

Dahili tabloların doğru kullanımı, bellek yönetimini iyileştirir. Büyük dahili tabloların kullanılması gerektiğinde, SORTED TABLE ve HASHED TABLE gibi optimize edilmiş tablolardan faydalanılabilir.

SAP ABAP ile Modül Geliştirme: Fonksiyon Modülleri ve Kullanım Alanları

Fonksiyon modülleri, ABAP programlarının modülerliğini artırmak için kullanılır.

Fonksiyon Modülü Oluşturma

Bir fonksiyon modülü oluşturmak için SE37 işlem kodu kullanılır. Fonksiyon modülleri, giriş ve çıkış parametreleri tanımlayarak veri alıp verebilir.

 

FUNCTION z_calculate_total.

  IMPORTING value1 TYPE i value2 TYPE i

  EXPORTING total TYPE i.

  total = value1 + value2.

ENDFUNCTION.

 

Bu örnekte, iki sayının toplamını hesaplayan basit bir fonksiyon modülü oluşturulmuştur.

Fonksiyon Modüllerinin Kullanım Alanları

Fonksiyon modülleri, veri işleme, entegrasyon ve SAP dışı sistemlerle iletişim gibi çeşitli alanlarda kullanılır. Örneğin, RFC (Remote Function Call) fonksiyon modülleri, farklı SAP sistemleri arasında veri alışverişi yapmak için kullanılabilir.

ABAP Debugging ve Hata Ayıklama: Sık Karşılaşılan Sorunlar ve Çözümleri

Debugging, ABAP kodlarındaki hataları tespit etmek ve çözmek için kullanılan bir süreçtir. Hata ayıklama, kodun doğru çalışmasını sağlamak ve potansiyel sorunları önceden belirlemek için önemlidir.

Debugging Araçları

ABAP’ta debugging yapmak için SE80 veya SE37 gibi araçlar kullanılabilir. Programın çalışması sırasında breakpoint (duraklama noktası) ekleyerek, kod adım adım incelenebilir ve değişkenlerin değerleri izlenebilir.

 

BREAK-POINT.

 

Bu komut, kodun belirli bir noktada durmasını sağlar ve bu noktadan itibaren adım adım debugging yapılabilir.

Eğer herhangi bir programı kullanırken debug yapmak isterseniz ilgili ekranda sol üstteki komut alanına /h yazıp enter’a basarak debug’a düşürebilirsiniz.

Yaygın Hatalar ve Çözümleri

ABAP kodlarında yaygın olarak karşılaşılan hatalar arasında null değer hataları, veri türü uyuşmazlıkları ve veritabanı erişim sorunları bulunur. Bu tür hatalar, doğru debugging teknikleri kullanılarak kolayca çözülebilir.

  • Null Değer Hataları: Bir değişkenin beklenmedik bir şekilde null değeri alması, kodun beklenmedik bir şekilde çökmesine neden olabilir. Bu tür hataları önlemek için değişkenlerin başlatılması ve null kontrollerinin yapılması önemlidir.

 

IF lv_value IS INITIAL.

     lv_value = ‘Default Value’.

ENDIF.

 

  • Veri Türü Uyuşmazlıkları: ABAP, katı veri türü kontrollerine sahiptir. Yanlış veri türlerinin kullanılması, kodun derlenmesini veya çalışmasını engelleyebilir. Bu hatalar, değişkenlerin doğru veri türleriyle tanımlanması ve dönüştürme işlemlerinin dikkatle yapılması ile çözülebilir.

 

DATA: lv_number TYPE i,

                lv_text TYPE string.

 

lv_number = lv_text. “Bu, veri türü uyuşmazlık hatasına neden olabilir.

lv_number = CONV i( lv_text ). “Doğru dönüştürme işlemi

  • Veritabanı Erişim Sorunları: Yanlış veritabanı sorguları, performans sorunlarına veya yanlış veri sonuçlarına neden olabilir. SQL sorgularının doğru şekilde optimize edilmesi ve WHERE koşullarının dikkatle yazılması bu tür hataların önüne geçer.

 

SELECT matnr FROM mara INTO TABLE lt_mara WHERE matnr = ‘1000001’.

SAP ABAP ile Raporlama: Basit ve İleri Düzey Raporlar Oluşturma

SAP ABAP, güçlü raporlama yetenekleri sunar ve bu yetenekler, işletmelerin iş süreçlerini izlemek ve analiz etmek için kritik öneme sahiptir. Basit raporlamadan karmaşık raporlara kadar, ABAP ile her türlü rapor oluşturulabilir.

Basit Raporlar Oluşturma

Basit bir rapor, belirli veritabanı tablolarından veri çekip bu verileri listelemek için kullanılabilir. Aşağıdaki örnek, MARA tablosundan ürün bilgilerini listeleyen bir rapor gösterir.

 

REPORT z_simple_report.

DATA: lt_mara TYPE TABLE OF mara,

      ls_mara TYPE mara.

SELECT * FROM mara INTO TABLE lt_mara.

LOOP AT lt_mara INTO ls_mara.

  WRITE: / ls_mara-matnr, ls_mara-maktx.

ENDLOOP.

 

Bu basit rapor, MARA tablosundaki tüm ürünlerin numarasını ve açıklamasını listeleyecektir.

İleri Düzey Raporlar

İleri düzey raporlar, kullanıcı etkileşimi, dinamik veri filtreleme ve grafiksel arayüzler gibi özellikler içerir. Örneğin, SELECT-OPTIONS veya PARAMETERS komutlarını kullanarak dinamik raporlar oluşturabilirsiniz.

 

REPORT z_advanced_report.

TABLES: mara.

SELECT-OPTIONS: so_matnr FOR mara-matnr.

SELECT * FROM mara INTO TABLE lt_mara WHERE matnr IN so_matnr.

LOOP AT lt_mara INTO ls_mara.

  WRITE: / ls_mara-matnr, ls_mara-maktx.

ENDLOOP.

Bu örnek, kullanıcıdan ürün numarası aralığı girmesini ister ve bu aralığa göre filtrelenmiş sonuçları listeler.

ALV Raporlama

SAP sisteminde en çok kullanılan raporlama çeşididir. Gelişmiş filtreleme sıralama varyant kaydetme exele aktarım vb.. bir çok özelliği içerisinde standart olarak barındırır.

ALV raporlama için en yaygın kullanılan fonksiyon;

‘REUSE_ALV_GRID_DISPLAY’

 

fonksiyonudur.

SAP ABAP’taki Yenilikler: Gelecek Trendlere Hazır Mısınız?

SAP ABAP, sürekli olarak evrim geçiren ve yeni özelliklerle zenginleşen bir dildir. SAP’nin gelecekteki yol haritası, ABAP’ın yeniliklerle daha da güçlendirileceğini gösteriyor.

ABAP RESTful Application Programming Model (RAP)

ABAP RESTful Application Programming Model (RAP), SAP’nin en son geliştirme paradigmalarından biridir. RAP, bulut tabanlı uygulamalar geliştirmek için modern ve esnek bir framework sağlar. Bu model, SAP S/4HANA ve SAP Cloud Platform ile entegrasyon sunar.

SAP ABAP'da Yapay Zeka ve Makine Öğrenimi Entegrasyonları

Gelecekte, SAP ABAP’ın yapay zeka ve makine öğrenimi ile entegrasyonları, iş süreçlerini daha da akıllı hale getirecek. Bu entegrasyonlar, ABAP’ta veri analizini ve karar alma süreçlerini optimize etmek için kullanılacak.

ABAP ile Entegrasyon: Diğer SAP Modülleri ve Harici Sistemlerle Bağlantı

SAP ABAP, diğer SAP modülleri ve harici sistemlerle güçlü entegrasyon yeteneklerine sahiptir. Bu entegrasyonlar, SAP sistemlerinin farklı işlevleri arasında sorunsuz veri akışı sağlar.

SAP Modülleri ile Entegrasyon

ABAP, SAP modülleri arasındaki veri alışverişini yönetmek için kullanılır. Örneğin, MM (Malzeme Yönetimi) ve SD (Satış ve Dağıtım) modülleri arasında veri aktarımı, ABAP fonksiyon modülleri ve BAPI’ler kullanılarak gerçekleştirilebilir.

Harici Sistemlerle Bağlantı

ABAP, SOAP, REST ve RFC gibi protokoller kullanarak harici sistemlerle iletişim kurabilir. Bu tür entegrasyonlar, şirketlerin SAP sistemlerini diğer ERP sistemleri veya üçüncü taraf uygulamalarla entegre etmelerine olanak tanır.

ABAP Coding Standartları: Kod Kalitesini Artırmanın Yolları

ABAP’ta kod kalitesini artırmak, projelerin sürdürülebilirliği ve bakım kolaylığı için önemlidir.

Kodlama Standartları

ABAP’ta kodlama standartlarına uymak, kodun daha okunabilir, modüler ve sürdürülebilir olmasını sağlar. Örneğin, anlamlı değişken adları kullanmak, kodun amacını açıkça belirtir ve yanlış anlamaları önler.

DATA: lv_total_price TYPE p DECIMALS 2.

Versiyon Kontrolü ve Dokümantasyon

Kodun versiyon kontrolü altında tutulması ve doğru şekilde dokümante edilmesi, takım çalışmasında tutarlılığı ve izlenebilirliği artırır. ABAP’ta versiyon kontrolü, SAP’nin kendi transport sistemleri veya harici araçlar kullanılarak yapılabilir.

Güncel SAP ve İşinizi Geliştirecek Haberler için Bültenimize Kaydolun

SAP SuccessFactors modülleri arasında yer alan SAP SuccessFactors Learning, şirketler için kapsamlı bir kurumsal öğrenim