ABAP PROGRAMLAMA DİLİNE GİRİŞ

Merhaba arkadaşlar,bugün SAP ın programlama dili olan ABAP’a giriş yapıp temel kavramlardan bahsedeceğiz.

GENEL BİLGİLER :

ABAP(Advanced Business Application Programming ) yazılım şirketi SAP tarafından geliştirilmiş bir programlama dilidir.Java,C#…gibi yüksek seviyeli diller arasında yerini almaktadır.ABAP ın en temel kullanım amacı SAP üzerinde müşterinin isteklerine uygun uyarlamanın yapılmasıdır.Yani temel SAP yazılımının üzerine müşterinin istediği herhangi bir eklentinin yapılması gerektiğinde ABAP devreye girer.Bunun dışında ilk ve en çok kullanım amacı ise SAP sistemindeki verilerin istenilen biçimde raporlanarak sunulması,rapor programı yazılmasıdır.Bir rapor programında amaç kullanıcının sisteme girdiği veriler üzerinde işlem yapmaktır.En basit örnekle : bir çikolata şirketiniz olsun :) ve işlerinizi takip etmek için SAP kullannıyorsunuz.İşte belli iki tarih arasında hangi üründen nekadar sattığınızın raporu için ABAP ile raporlama programları yazılır.Toparalayacak olursak ABAP ile gerekli bilgileri veritabanından okuyan ve ekrana sunan report programlar,sisteme bilgi girilmesini sağlayan dialog programlar ve SAP ile diğer sistemler arası veri alışverişini sağlayan Interface ler yazılabilir.

Bana göre ABAP’ın  önemli özelliklerinden biri çevirilebilen bir metin yapısının olması,bu sayede birden fazla dilde çalıştırılabilen programlar elde ediyoruz.Diğer bir özelliği ise OPEN-SQL yapısının olması ve sistem üzerinde direk program satırlarınızı yazarken veri tabanına erişim mümkün  yani connection-stringsiz bir yapı :) SAP sisteminin kendi içerisinde var olan veri tabanı tabloları var.Elbette bununla da sınırlı kalmıyor yani sadece kendi veri tabanını desteklemekle kalmıyor oracle,mssql gibi  veri tabanlarınıda destekliyor.Yani her şekilde şirketinize uyum sağlıyor.Bir diğer özelliği her geçen gün gelişen yapısının eski kodlara zarar vermemesi.Buda bize nesneye dayalı bir programlama(OOP) yapısına sahip olduğunu gösteriyor.

ABAP ile programlamaya başlayacak birinin SAP nin temel işleyişi hakkında bilgi sahibi olması gerekli.Ancak bu işleyişi öğrenmek oldukca uzun bir süreç.Biz basit örnekler ile başlayacağız bunun içinse SAP nin kullandığı R/3 mimarini kavramak yeterli.Temelde bildiğimiz 3 katmanlı mimari yapısı.SAP R/3,3 katmandan oluşan bir client/server mimarisidir.Sırası ile Database Layer(veritabanı katmanı),Application Layer(uygulama katmanı) ve Presentation Layer (sunum katmanı).

-Database Layer : Bu katmanda işletmenin bilgileri,girilen veriler bunun yanısıra metadata yani kullnılan veritabanı  yapısını tarif eden metaveriler saklanır.Verilerle ilgli işlemler için SQL kullanılır ve daha öncede değindiğimiz gibi piyasadaki pek çok veritabanını destekler.

-Application Layer : Bu katmanda SAP tarafından geliştirilmiş uygulamalar,ABAP tarafında yazılmış programlar çalışır.Yani veritabanı üzerine yerleştirilmiş uygulamalar bu katmanda çalışır diyebiliriz.

-Presentation Layer: Kullanıcı tarafından verilerin girildiği,veriler üzerinde işlem yapılabildiği katman bu katmandır.SAP GUI(graphical user ınterface) kullanıcı arayüzümüzdür.En basit hali ile aşağıdaki şekilde karşımıza çıkar.

 

 

  ABAP GELİŞTİRME ORTAMI:

Geliştirmeleri yaptığımız ortam ABAP Workbench.Bu çalışma ortamını tam anlamıyla kullanmak için SAP sistemine erişiminizin olması gerekmektedir.Yani gerçek uygulamalar için bir SAP danışmanlık şirketinin üyesi olmanız gerek.Ancak bu erişime sahip değilseniz ve ABAP programlama dilini öğrenmek istiyorsanız

http://www.sdn.sap.com/irj/scn/downloads adresinden bilgisayınızla uyumlu deneme versiyonlarını indirip kurabilirsiniz.İçinde ABAP workbench i taşıyan en rahat sistem Mini SAP Basis dir.Ancak en kapsamlı olan SAP Netweaver Application Server deneme versiyonu.

 

ABAP Workbench:ABAP kod editörü(ABAP editör),fonksiyon modül editörü(function builder),kullanıcı ekran oluşturucu(screen painter),veri türü sözlüğü(data dictionary) ve sınıf oluşturucudan(class builder) oluşur.SAP pek çok modülü kapsayan,ayrıntısı oldukca fazla olan bir sistemdir.Bu sistem içerisinde ilgili alanlara erişebilmek için transaction kodları dediğimiz kısa yollar mevcuttur.ABAP ın bütün parçalarına eriştiğimiz transaction kodu : SE80 dir.Sadece kod geliştirme ortamına erişmek için kullandığımız kod ise SE38 dir.Şimdi ABAP da kod yazacağımız ortamı tanıyıp ardından programlama klasiği olan ekrana ‘merhaba dünya’ yazan programcığı gerçekleştirelim:)

 

1-İlk adımımız SE38 transaction kodu ile ABAP editörüne geçiş yapmak.

 

 

 

2-Bizi yazacağımız programa dair özellikleri vermemiz bildirmemizin istendiği ekran karşılayacak.

Programımıza İsmini veriyoruz.Burada bilmemiz gereken şey ABAP da sisteme dahil olmayan yani programcı tarafından extra olarak yazılmış programlara isim verilirken ‘Z’ yada ‘Y ‘ ile başlanıyor olması.Bu durum ABAP a özel bir özellik,kural haline gelmiş bir durum.Programa ‘Z_MERHABA’ ismini veriyoruz ve yarat seçeneğine tıklıyoruz.

3-Şimdi ise programa dahil özelliklerin belirleneceği bir alan karşımıza çıkıyor.İlk alanda programla ilgili açıklamayı belirtmemiz gerekiyor.Bunu daha sonra yazdıklarımızla karışmaması yada bizden başka okuyacak olanlara anlaşılma sağlaması için yapıyoruz.İkinci alanda programın tipi devreye giriyor ilk uygulamamız olacağı için ‘yürütülebilir programı’ seçiyoruz.Hemen altında programın statüsü var.Burada ‘deneme programı’nı seçiyoruz ve ‘save ‘ diyoruz.

4-Bir sonraki adımda paket seçimi yapmamız gerekiyor.Ancak şuan yazacağımız program herhangi bir pakete dahil edilemeyeceğiiçin ‘local object’ i seçiyor ve artık kodları yazacağımız editör ortamımıza ulaşıyoruz.

 5-ABAP editöründeyiz artık.Kodlarımızı burada yazıp derleyeceğiz.İlk olarak notepad i andıran kelime işlemci arayüzü bizi karşılar .Programın iilk satırları ABAP ediötürü tarafından otomatik olarak eklenir.Bu satırlar yorum satırıdır ve programın adını belirler.Bir sonraki adıma geçmeden ortamı tanıyalım.

 

 * 1-Düzenleme-görüntüleme modu arası geçiş tuşu (programı daha sonra tekrar çalışmak için kaydettiğimiz zaman değişiklik yapabilmek için düzenleme moduna geçmemiz gerekiyor yoksa kodlarımız üzerinde değişiklik yapmaya imkanımız olmuyor)

* 2- Etkin olan-olmayan sürümler arası geçiş tuşu,

* 3- Programın içinden veya dışından başka bir nesneye erişim tuşu,

* 4- Enhancement kodlamaları,

* 5- Syntax kontolü(varsa hata hangi satırsa onu bulur),

* 6- Programın aktifleştirilmesi.(her program çalışmadan önce aktifleştirilmeli aksi halde hatalara sebep oluyor),Ve bütün ABAP programları ilk yazıldığında inaktiftir.

*7- Run.Programın yürütülmesi gerçekleştiriliyor(kısayolu F8),

*8- Nesne görüntüleme tuşu(oluşturduğumuz nesneleri görüntüler),

*9- Dolaşma pencelesi ,

*10- Programın içine kontrol noktası konulması (yani break point koyarak programımızı adım adım işletmemzi ve varsa hataları bulmamzı sağlıyor)

*12-Programın içerisine dışarıdan aktarma yapmamıza yarayan tuş.Bu tuşla sorgu,fonksiyon kontrol mekanizması oluşturp ekleyebilriz.(örneğin daha önce yazdığımız bir programı yeni program içinde kullanmak için)

*13-Kodlama yaparken güzel görünmesini,büyük küçük harf ayrımını ve blokları düzenlemeyi sağlayan tuş.

(Başlangıçta en çok syntax kontrolü,pretty printer,düzenleme-görüntüleme modları arası geçiş ve run tuşları işimize yarayacak.İlerledikce diğerleri de anlam kazanacak.)

6- İlk programcığı yazmak için artık hazırız.ABAP da string(metin) tipinde bir çıktı alabilmek için “WRITE” komutunu kullanıyoruz.ABAP da her satırın bitimine ‘.’(nokta)  koyuyoruz.-Bu sytax kurallarından birtanesi.- Ayrıca yorum satırı eklemekde mümkün.Bunun içinde tırnak işaretini ‘  “  ‘ kullanıyoruz.Ayrıca ABAP da büyük/küçük harf duyarlılığı yoktur.

7-Active edip run dediğimizde metnimiz program sonucu olarak gösterilmiş olacaktır.

 

 Böylece ilk ABAP programımızı yazmış ve derleme ortamını kısaca öğrenmiş olduk.

iyi çalışmalar dilerim :)

 

 

 

 

 

 

 

 

 

 

 

30 comments

  1. sercan   •  

    merhaba, abap eğitimi almak istiyorum ama adana eğitim veren bir yer yok nasıl oğrenebilirm acaba yardmcı olrsanz cok sevinirim.

    • gulistan   •     Yazar

      Zannediyorum ki kaliteli eğitimler istanbulda, öncelikle bilgisayarınıza Abap workbench kurmalısınız ki uygulamalı öğrenilecek bir şey abap.Sonrasında internet dökümanları ile destekleyebilirsiniz.(abap tutorials)

  2. sercan   •  

    teskurler

  3. levent   •  

    merhaba. abap için programcı olmak gerekiyormu. Aslında bilgisayar donanımı işi yapıyorum ama merakım var. yeterli olur mu

  4. Müslüm   •  

    Merhaba arkadaşim anlatim ve örneklemeler harika olmuş Sap Abap hakkında on bilgi ve daha fazlasini buldum. Teşekkürler çalışma için. .

    • gulistan   •     Yazar

      Aradığınızı bulmanıza çok memnun oldum Müslüm Bey, teşekkür ederim.

  5. Özgür   •  

    Merhabalar abap workbench arıyorum. Şuanda Sap kullanıyoruz ancak kendi programlarımıda yazmaya başlamak istiyorum. yardımcı olabilir misiniz?

  6. Hakant   •  

    Merhaba. Abap için Programcı olmak gerekiyormu veya hangi altyapıya sahip olunmalı ?? “On the Job” öğrenebilinirmi ? Hangi sürede öğrenebilinir ..?

    • gulistan   •     Yazar

      Abapında bir programlama dili olduğunu varsayınca algoritma temeli; nesneye yönelik olduğu içinde oop nin bilinmesi oldukça kolaylık sağlar. Zaten ister istemez on the job modunda öğreniliyor (kursları falan saymazsak). Sürecinse tamamen kişiye bağlı olduğunu düşünüyorum.

  7. emre   •  

    Merhaba Gülistan hanım ABAP hakkında yayınlamış olduğunuz bilgiler çok verimli emeğinize sağlık teşekkür ederim.

    • gulistan   •     Yazar

      Rica ederim Emre Bey, faydası olduğu için memnun oldum.

  8. Arda   •  

    Merhabalar,

    Sap Abap egitimi almak istiyorum, ancak nerede veriliyor ve neresi daha iyi bulamadim. Yardimci olursaniz cok sevinirim.
    Sagesse Bilisim ve Medyasoft veriyor. Sagesse, 7 ser gunden 2 kurda tamamini veriyor. Medyasoft ise haftasonlari 2 ayda bitiriyor.

    • gulistan   •     Yazar

      Arda Bey Merhabalar,

      Dışarıdan herhangi bir eğitim almadığım için yanlış bilgilendirmek istemem. Ancak vaktiniz varsa uzun süreli eğitimin kendinizi geliştirme açısından da faydalı olabileceğini düşünürdüm.

  9. ahmet   •  

    Merhaba ,

    özel bir şirkette istatistikçi olarak çalışıyorum ve SAP kullanıyorum SD BI MM modullerıne hakım bir şekilde SAP bilgi var ancak ben ABAP yazılımı ögrenmek istiyorum istanbulda yaşıyorum ,
    en kaliteli eğitimi veren kurs hakkında bilgi verebilir misiniz

    teşekkürler..

    • gulistan   •     Yazar

      Ahmet Bey kurslar hakkında ne yazık ki bilgim yok. Ama kendi kendinize de öğrenebileceğinizi düşünüyorum.

  10. Merve   •  

    Merhabalar,

    Sap Abap eğitimini kursa gitmeden kendimiz nasil öğrenebiliriz Sap bilgim var fakat Abap kursa gitmeden öğrenebilir miyim? Bilgi verirseniz sevinirim teşekkürler.

    • gulistan   •     Yazar

      Tabi ki öğrenebilirsiniz biraz ilgi ile alakalı bir şey, güzel kaynaklar var internette. Yalnız ABAP çalışırken daha rahat öğrenilen yani on the job modunda bir dil benim kişisel görüşümce. Gerçekten bu alanda çalışmak istiyorsanız junior abap danışmanı yetiştirmek isteyen şirketlere başvurabilirsiniz.

  11. Koray   •  

    Gülistan hanim paylaşımlariniz çok güzel. SAP için workbanch ve kendi calismalarimla bi yol kat edebiliyorum. Junior sap danışmanları arayan sirketler henüz donus yapmadı ama olsun. Soracağım herseyi de sormuş diğer arkadaşlar. Bilgilendiricı ve ilgi çekici paylaşımlar için teşekkürler.

    • gulistan   •     Yazar

      Rica ederim Koray Bey, faydalanmanıza çok sevindim. Dilerim en kısa zamanda dönüş olur şirketlerden :) İyi haberlerinizi almak dileği ile.

  12. Serkan Cebeci   •  

    Merhaba Gülistan Hanım,

    Yazınız çok güzel ve ufuk açıcı, teşekkürler. Kendi başına öğrenilebilir olduğuna inanıyorsunuz ki bu fikrinizi paylaşıyorum. Ancak yukarıda bahsettiğiniz adresten işime yarayacak dosyayı indirip bilgisayarıma kurmayı başaramadım:

    SAP Netweaver Portal Enterprise Workspaces 1.1 SP3 (255 MB) isimli bir dosya indirdim ama içinde .exe dosyası yok.

    ABAP_Trial_7_02_Win_64_bit_1_84_GB isimli dosyayı indirdim ama programın kuruluş mantığını çözemedim.

    Bu konuda da (mümkünse resimli) yardımcı olursanız çok memnun olurum.

    İyi çalışmalar.

    • gulistan   •     Yazar

      Serkan Bey,
      Faydalanmanıza çok sevindim, ancak yazı 2 sene kadar önce yazıldı yani linklerde sıkıntı olması doğal, doğru linkleri SAP’ın kendi sitesinde bulmanız mümkün, ben de uygun vaktimde yardımcı olmak isterim. İyi çalışmalar dilerim.

  13. ulker   •  

    Günaydın Gülistan hanım okuduğum cevaplarınızdan anlaşılıyor ki kendi kendimize de öğreneceğizmiz bir program bu ama bunun kitapları var almaya düşünüyorum sizin bu konuda yazdığınız bir kitap var mı yoksa neden yazmıyorsunuz
    varsa kitapbın ismini öğrenebilirmiyiz
    cevabınız için öncelikli teşekkürler

    • gulistan   •     Yazar

      Ülker Hanım,
      Kitap yazacak yetkinlikte değilim ne yazık ki o yüzden yazamıyorum :) Ben genelde internet üzerindeki ingilizce kaynakları takip ediyorum yeni bir şey öğrenirken. Size de tavsiye ederim.

  14. ulker   •  

    SAP ve ABAP proglama yazılarınızı okudum gerçekten güzel bir açıklamalı yazı olmuş güzel bir yardım sizin tarafınızda teşekkürler
    ben Ankarada oturuyorum Ankara bu yazılımı kullanan şirket vveya kişiler taanıyor musunuz
    teşekkürler Gülistan hanım

  15. Fatih   •  

    Merhaba,

    Paylaşımlarınız için çok müteşekkir olduğumu belirterek, hakkımda sayfanızdaki “burdan yetkililere sesleneyim paylaşmaktan korkmayın! ” cümlenizi de üzülerek sonuna kadar desteklediğimi bilmenizi isterim.
    İyi Çalışmalar,

    • gulistan   •     Yazar

      Ülkemizin en büyük eksiklerinden biri bildiğini paylaşmamak :(

  16. emre   •  

    merhaba notlarınız çok güzel benim sorum yeni başlayan sıfırdan başlayacak birine ne tavsiye edersin?

  17. Soner   •  

    Merhaba
    Ben universite 3.sinif okuyorum ABAP ogrenmek istiyorum ve bu alanda calismak istiyorum.Sadece ABAP i bilmem gerekli mi yoksa yanina Java tarzi baska bir dilde bilmem gerekiyor mu? Okudugum forumda ABAP la tek basina uygulama gelistiremessin gibisinden yaziyordu simdiden TESEKKURLER.

  18. Rıdvan   •  

    Paylaşım için teşekkürler. Sap Abap öğrenmeye başladım sizin bilgilerinizin çok faydası oluyor.

Bir Cevap Yazın

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

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">