SAP ve ABAP Nedir ?

Nedir bu SAP?

Tarihceden sonra gerçek bir tanımla yaklaşmak istiyorum.Bana göre SAP nin en güzel tanımı : bir şirketin herhangi bir bölümünün veya herhangi bir sürecinin bilgisayar ortamına dökülmiş hali.Bir örnekle somutlaştırmaya çalışırsak; bir gıda firmanız olduğunu düşünün.Bir çok ürün üretiyorsunuz,satışını yapıyorsunuz ,ithalat-ihracat kısacası bir şirketin yaptığı her şeyi gerçekleştiriyorsunuz.Bu süreçte sizin üretimden,stoğa,satılan ürün sayısından alınan malzemeye,çalıştırdığınız personelinizin takibi ve bilgilerinin kontrolüne ihtiyacınız var.İşte SAP ile bütün bunları bilgisayar ortamına dökmeniz için gerekli yazılımdır.
SAP her ihtiyacı karşılamak için kendi içinde bölümlere ayrılmış ve bunlara modüller demiş.Yani kendisini meydana getiren modüller dediğimiz parçalardan oluşuyor.Mesela firmanızın satış ve dağıtımdan sorumlu modülü SD(sale and distrubition).Her bir modül için uzamanlar yetişmekte,çalışmakta.Ve her modül birbirine bağlı.Genel olarak belli modeller olsada her şirket için özel olarak ihtiyac ve istekler doğrultusunda analiz yapılmakta ve ona özel yazılım oluşturulmakta.Sonuç olarak aslında parça birleştirilmesi yapılmakta.Şimdi kısaca bazı modüllere bir göz atıp bilgim olan modüllerin tanımını yapalım.

  • PP (Production Planning) : Üretim planlama modülü. Fabrikalardaki üretim programlarının  SAP sistemine uyarlamasından sorumludur. İşçilik,malzeme,üretim planları gibi tüm aktivitelerin
    SAP sistemine aktarılması bu modülün sorumluluğundadır.
  • MM (Materials Management): Malzeme yönetim modülü. Her türlü malzeme tertip ve düzeni dahil olmak üzere satın alma gibi şirket için oldukça önemli bir görevi üstlenmektedir.
  • SD (Sales and Distribution): Satış ve dağıtım modülü.Sipariş,teslimat,faturalandırma ve ödeme almaya
    kadar tüm satış süreçlerinden Sales&Distribution(SatışveDağıtım) modülü sorumludur.
  • FI (Financial Accounting):Finans modülü.  Mali Muhasebe tarafında verilerin entegre bir şekilde kaydı ve
    saklanmasının yanısıra, yönetim kademelerinin finans bilgilerini kullanarak planlama ve kontrol yapmalarına ve
    stratejik kararlar almalarına olanak sağlayan modüldür.
  • CO (Controlling):Maliyet muhasebesi modülü. Şirketin karlılık analizlerinin çıkarılarak hangi alanların daha
    karlı hangi alanların ise maliyetli olduğunun tespitini sağlar.
  • PS (Project System):Proje sistem, bütçeleme, yürütme, yönetim, maliyet, satış ve satış sonrası, hizmetler de dahil olmak üzere yönetilen büyük projeleri kapsayan modüldür.
  • BC (basis): SAP sisteminin kurulup düzgün çalşıtığından emin olan modüldür.
  • HR (Human Resources):İnsan kaynakları modülü.SAP’nin insan kaynakları alanında işyönetimi konusunda kullanılan modülüdür.
  • PM (Plant Maintenance):Bakım ve onarım modülü.Tamamlanan yazılım bir süre için yapan şirketin sorumluluğundadır.Gerekli sorunlara ait bakım ve onarımla ilgilenirler.

(SAP de bunların dışında da pek çok modül var.Ben inceleme fırsatım olanlar hakkında bilgi verdim.)
Çalışma prensibi olarakda SAP her ülkede bir şubesi var aslında distrübitör demek daha mantıklı olabilir.Ve her ülkedeki SAP a bağlı partnerlar var.Yani bir Türkiye SAP var birde ona bağlı SAP işini yapan şirketler.

Peki ya ABAP ?

İşin özelleşmesi kısmında ise devreye ABAP dediğimiz SAP nin programlama dili devreye giriyor.Yani SAP de müşterinin isteklerini karşılamak için yetersiz kalınan yerlerde SAP kendini geliştirme yöntemini bu dil ile sağlamış.ABAP programcıları gerekli düzenlemeyi arka planda gerçekleştiriyor.
Temel olarak syntax ını belki C ye benzetebilceğimiz OOP mantığının ciddi anlamda uygulandığı yüksek seviyeli bir programlama dili.Kendi geliştirme ortamı olduğu gibi belli kısımları eclipsde de geliştirilebiliyor.

ABAP 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.

BUNLARADA BAKMAK İSTERMİSİN ?

PC Remote Control Wifi PRO Android (Kotlin) & C# WPF

LCD PANO - Raspberry Pi 3 Php,Jquery Ajax,Mysql

Vocabulary Memorization App for ANDROID&REALM