SAP S/4 HANA Nedir?

SAP R/3 mimarisini bir önceki blog sayfamızda anlatmıştık. Her ne kadar uygulama ve veri tabanı seviyeleri dağıtılmış şekilde performansı arttırılarak çalıştırılıyor olsa da büyük veri, satır tabanlı ve sabit disk üzerinde çalışan veri tabanının performansını olumsuz yönde etkiliyor. Bu zafiyetten en az etkilenebilmek için programlama esnasında ham verinin mümkün olduğunca uygulama katmanında işlenmesi gerekmekteydi. Hızlı çalışan bir ABAP programı için, kodun veri tabanı katmanı ile mümkün olduğunca az etkileşime girmesi gerekirdi. Ayrıca programın çalıştırma sırasında, index ve hash algoritması kullanımlarından faydalanarak sorgulardan hızlı cevap alınması amaçlanıyordu.

SAP HANA Nedir?

Sabit disk üzerinde çalışan veri tabanı mimarisi ile veri tabanı sunucusunun büyük veri karşısında cevap verme süreleri uzun oluyordu. Bunun üzerine gelişen bellek içi veri tabanı teknolojileri ile beraber 2010 yılında SAP, bellek içi işlem platformu SAP HANA ürününü duyurdu. Yeni bir ürün olmakla beraber mevcut SAP ERP ile de çalışabiliyordu. 2012 yılında SAP BW on HANA ürünü ile büyük veri üzerinden hızlı rapor alınabilmesi amaçlandı. Peşinden SAP Business Suite on HANA ürünü 2013’te duyuruldu. Aynı zamanda SAP HANA Enterprise Cloud ürünü ile bu ürünlerin bulut ortamında kullanılması sağlandı. Böylelikle iş süreçleri hem HANA üzerinde hem de bulut ortamında çalışabilmesi gerçekleşti. 2014 ve sonrasında ise SAP ERP’ye göre basitleştirilmiş bir veri modeli ile önce SAP Simple Finance on HANA ve en son olarak 2015’te SAP S/4 HANA ürünleri piyasaya sunuldu.

SAP S/4 HANA Yol Haritası

SAP HANA Mimarisi

HANA veri tabanı kolon bazlı ve bellek içinde çalışmaktadır. Bilgisayar mimarisinde veri tutabilen temelde 3 donanım bileşeni vardır: Sabit disk, bellek (RAM) ve işlemci ön belleği. Bu donanımların cevap verme süreleri de farklıdır. En hızlı cevap veren işlemci ön belleğidir. İşlemcinin sık kullandığı veri ve uygulamalara en hızlı biçimde ulaşmasını sağlamak üzere tasarlanmıştır ancak belleğe oranla çok düşük kapasiteye sahiptir. En hızlı cevap veren 2. donanım ise bellektir. Gelişen bellek donanımı teknolojisi ile beraber belleğin tutabildiği verinin boyutu terabayt düzeyine ulaştı. Bununla beraber bellek içi veri tabanı mimarisi de gelişti ve ticari anlamda kullanılabilir hale geldi. Sabit disk ise cevap verme süresinin en fazla olduğu donanım bileşenidir ancak bellekler veriyi, elektrik olduğu müddetçe tutabilirlerken sabit diskler veri tutabilmeleri için elektriğe ihtiyaç duymazlar. Bu yüzden bellek için veri tabanı mimarisinde kısa periyotlarda verinin sabit diske yazılması gerekmektedir. Böylece olası güç kesintisi senaryolarında veri kaybı yaşanmaz.

Satır Bazlı / Kolon Bazlı

Kolonlu Veri Depolama

Veri tabanı tablosu geleneksel olarak satırlar ve sütunlar halinde düzenlenmiş iki boyutlu bir veri yapısıdır. Bilgisayar belleği, aksine, doğrusal bir yapı olarak düzenlenmiştir. Bir tablo, satır veya sütun sırasıyla temsil edilebilir. Satır yönelimli (row-oriented) bir veri varlığı, bir tabloyu bir kayıt dizisi olarak saklar. Tersine, sütun depolamada bir sütunun girişleri bitişik bellek konumlarında saklanır. SAP HANA her ikisini de destekler, ancak özellikle sütun sırası depolama için optimize edilmiştir.

Kolon bazlı sıralama yapıldığında genellikle bitişik değerler tekrarlanır. Bu şekilde yüksek verimli sıkıştırma sağlanmasına olanak verir. SAP HANA, çalışma uzunluğu kodlama, küme kodlama ve sözlük kodlama gibi yüksek verimli sıkıştırma yöntemleri kullanır.

Kolonlu veri depolama, çoğu durumda ek dizin yapılarına olan ihtiyacı ortadan kaldırır. Verileri sütunlarda depolamak, işlevsel olarak her sütun için yerleşik bir dizine sahip olmaya benzer. Bellek içi kolon veri deposunun sütun taraması, verinin sıkıştırılmış olmasına rağmen oldukça yüksek performansla okuma işlemlerine izin verir.

SAP HANA için ABAP

SAP R/3 mimarisine karşın SAP HANA mimarisinde ABAP programlarının kendi içindeki işlemleri, uygulama katmanından ziyade veri tabanı katmanında yapıyor olması, programların daha performanslı çalışmasını sağlar. Böylelikle SAP HANA veri tabanının performansı ABAP programına yansımış olur. Bunun için kodlama mantığının da buna göre şekillenmesi gerekir.

Mimarilere göre ABAP işlem katmanları

SAP S/4 HANA Nedir?

Şu ana kadar SAP HANA mimarisini ve onun getirilerini ele aldık. Bu mimari üzerinde koşan SAP’nin ERP modüllerindeki süreçlerinin bütününe ise SAP S/4 (Simple For) HANA deniyor. Burada SAP, R/3’ün devamını ve bir sonraki nesil ERP mimarisini betimlemek için S/4 kısaltmasını kullanmış.

SAP S/4 ile veri tabanı mimarisi ile beraber sunum katmanının da hem görsel hem de işlevsel olarak değişmiştir. Kullanıcılar SAP GUI ekranlarından bağlanmaya devam ederken herhangi bir cihazın web tarayıcısından da kullanıcı dostu ekranlarda SAP sistemine bağlanabilir.

SAP S/4 HANA ile çeşitli modüller bulunmaktadır. Bunlar:

  • SAP S/4HANA Asset Management
  • SAP S/4HANA Cross Capabilities
  • SAP S/4HANA Finance
  • SAP S/4HANA Industries
  • SAP S/4HANA Manufacturing
  • SAP S/4HANA R&D and Engineering
  • SAP S/4HANA Sales
  • SAP S/4HANA Service
  • SAP S/4HANA Sourcing & Procurement
  • SAP S/4HANA Supply Chain

SAP R/3 Mimarisi

R/3 sistemi nedir?

SAP’de gerçek zamanda (Realtime) 3 ayrı ortamın beraber çalışmasıdır. Bunlar:

1- Sunum Katmanı (Son kullanıcının kullandığı program)

2- Uygulama Katmanı

3- Veri Tabanı Katmanı

R/3 Çalışma Mimarisi

1- Sunum Katmanı (Presentation Layer):

Kullanıcıların sisteme girebildikleri, veri girişi yapabildikleri ve raporları görüntüleyebildikleri katmandır. Kullanıcılar SAP GUI programı veya web tarayıcı üzerinden sisteme giriş yapabilmektedir. Buraya aynı zamanda ön yüz (frond-end) katmanı da denir. Bu katmandan gelen çağrılar ve istekler Uygulama Katmanı (Application Layer) tarafından işlenir.

2- Uygulama Katmanı (Application Layer):

Uygulama Katmanı merkezdeki bir veya daha fazla sunucuda bulunabilir. Dispatcher sayesinde kullanıcılardan gelen istekler uygun işleyicilere (Work Process) dağıtılır. ABAP ile yazılan uygulamalar bu katmanda derlenir, işlenir ve çalıştırılır. Uygulamadaki sorgu ve komutlara göre Veri Tabanı Katmanı’na okuma yazma emirleri gönderir.

3- Veri Tabanı Katmanı (Database Layer):

R/3 sistemindeki tüm verilerin tutulduğu, merkezi veri tabanı sisteminden oluşur. Veri Tabanı Katmanı’nın amacı ABAP uygulamaları tarafından oluşturulan SQL sorgularına ve komutlarına göre verileri veri tabanından çekmek veya veri tabanında saklamaktır. Veri Tabanı ve Uygulama katmanları aynı veya farklı sunucuda olabilir.

Veri Tabanı Katmanı, Veri Tabanı Yönetim Sistemi (Database Management System – DBMS) tarafından yönetilir. SAP’nin HANA adında kendi veri tabanı ürünü mevcuttur ancak Oracle, Microsoft SQL gibi büyük veri tabanları ile de uyumludur. Veri tabanında hem işlemsel veriler, hem R/3 arzu edildiği gibi çalışmasını sağlayan uyarlama verileri, hem de tüm ABAP uygulamalarının kodları bulunur. Uygulamalar ile alakalı tüm bilgiler (programlar, sınıflar, fonksiyonlar, ekranlar…) R/3 Repository denen veri tabanının bir bölümünde tutulur. Buradaki nesneler ABAP Workbench’te kullanılır.

R/3 sisteminin amacı nedir?

Birçok uygulamanın birbirleriyle entegre çalışmasını sağlamaktır. Temel uygulamalar(modüller) şunlardır:

– PP (Production Planning) 

– MM (Materials Management) 

– SD (Sales and Distribution) 

– FI (Financial Accounting) 

– CO (Controlling) 

– AA (Assets Accounting) 

– HCM (Human Chain Management) 

– PM (Plant Maintenance) 

– QM (Quality Management) 

Bu uygulamaların hepsi ABAP kodlaması ile yazılmıştır. Buna göre bir SAP danışmanı herhangi bir geliştirme yapmak isterse önce SAP üzerinde bu geliştirmenin ihtiyacı olan bileşenleri (tablo, yapı) bilmesi gerek. Ayrıca SAP’nin modüllerinin çalışma şekilleri ve mevcut olan programları da bilmek gerekir. Aksi taktirde daha önce SAP’de zaten var olan bir geliştirme için gereksiz yere emek harcanmış olabilir. Her SAP danışmanı kendine bir modül seçer ve bu modül üzerinde uzmanlığını geliştirir. ABAP danışmanı ise modül danışmanından aldığı bilgilerle ya da modül danışmanının hazırladığı fonksiyonel tasarım dokümanları sayesinde geliştirmelerini yapar.

R/3 Menüsü:

Ana menü 3 başlık altında toplanmıştır.

Uygulama Menüsü (Modüller) : Burada modüllerde kullanılan veri girişi ve rapor programları bulunur.

Basis Menüsü (Sistem): Sistem ile ilgili tüm bakım ekranlarının ve izleme raporlarının bulunduğu menüdür.

Geliştirme Menüsü: ABAP geliştirme ve modül bazında uyarlama ekranlarının bulunduğu bölümdür.

SAP PO Nedir?

SAP Process Orchestration (PO), basit iş akışlarından, entegre süreçlere kadar tüm iş süreçlerini, hızlı bir şekilde otomatikleştirmeyi ve esnek şekilde optimize etmenizi sağlar. Şirketler, SAP PO sayesinde kendilerine özgü kişileştirmelerle, kendi bünyesindeki süreçlerini tasarlar. Verilerinin, güvenli bir ortamda, SAP veya SAP olmayan uygulamalar arasında, aktarılmalarını sağlar. Tayin ettiği kurallar çerçevesinde veri aktarım yönleri belirlenir ve otomatik bir şekilde bu kurallar uygulanır.

SAP PO, yeni süreçleri modelleme, uygulama, entegre etme ve izleme süreçlerinde zaman ve maliyeti azaltır. SAP Business Process Management  (SAP BPM) ürünü, SAP Process Integration (SAP PI) teknolojisinin ve SAP Business Rules Management  (SAP BRM) bileşeninin gücünü tek bir entegre çözüme birleştiren bu çözüm, iş süreçleri için iyileştirme yaşam döngüsünün her aşamasını desteklemektedir.

Örnek olarak:

  • Süreçler ve kurallar kodlamadan modellenir ve çalıştırılır.
  • Şirket içi veya dışında, SAP veya SAP olmayan uygulamalarda  güvenilir şekilde veri aktarımları için süreçler entegre edilir.
  • Kararları otomatikleştiren ve politikaları yürürlüğe koyan iş kurallarının merkezi olarak yönetilir.
  • Süreçler izlenir ve darboğazlar tanımlanır.
Mobile 
SAP NetWeaver 
Process 
Orchestration 
Consumption 
Analytics 
Business 
extensibility 
40 
cess inte$ 
Custom- 
built 
e' 
Collaboration 
Business process 
management 
Service and event 
composition 
SOA governance 
Service bus 
On-premise applications 
UI interoperability 
Business rules 
management 
UI composition 
Mapping and 
transformations 
Connectivity and 
integration 
On-demand 
applications 
Partner 
system 
Legacy 
system

ABAP Nedir?

ABAP (Advanced Business Application Programming), Alman yazılım şirketi SAP AG tarafından geliştirilen, üst seviye bir nesne tabanlı programlama dilidir. SAP firmasının, iş uygulamaları geliştirmek amacıyla, NetWeaver platformunda Java ile beraber ABAP kodlama dilini kullanmaktadır.

ABAP mantıksal veri tabanı kavramını içeren ilk dillerden biridir.

ABAP proglama dili ilk olarak geliştiriciler tarafından SAP R/3 platformunu geliştirmek için kullanıldı. SAP müşterileri ise ABAP kodlama dilini, kendilerine özgü raporlar ve arayüzler ile uygulamalar geliştirmek için kullandı.

Kimler ABAP yazabilir?

Yazılım ile ilgilenenler için öğrenmesi kolaydır. ABAP programları oluşturabilmek için ilişkisel veritabanı tasarımı ve tercihen nesne odaklı kavram bilgisini içeren programlama yetenekleri gereklidir.

ABAP Kodu Hangi Ortamda Çalışır?

Tüm ABAP programları ABAP tabanlı SAP uygulamasının veri tabanında bulunur. Java ve C++ programları gibi ayrı dosyalarda depolanmazlar. ABAP programları, SAP çekirdeğinin (kernel) parçası olan çalışma zamanı sisteminin kontrolü altında çalışırlar. Çalışma zamanı sistemi ABAP komutlarını işlemekten, ekranların akış mantığını kontrol etmekten ve olaylara (kullanıcının ekran butonuna tıklaması gibi) cevap vermekten sorumludur. ABAP çalışma zamanı sisteminin anahtar bileşenlerinden biri, veri tabanından bağımsız ABAP ifadelerini (“Open SQL”), DBMS (veri tabanı yönetim sistemi) in anlayabileceği ifadelere (“Native SQL”) çeviren veri tabanı arayüzüdür. Veri tabanı arayüzü, ABAP programları adına, ilişkisel veri tabanıyla olan tüm iletişimi ele alır, aynı zamanda uygulamada sık kullanılan verileri de ara belleğe alır.

Bu sebeplerden ötürü, ABAP kodları, ABAP tabanlı SAP uygulamaları dışında derlenemez veya çalıştırılamaz.

SAP R/3 mimarisinde üç katman mevcuttur. Bunlar sunum katmanı (GUI), uygulama katmanı (programlar burada çalışır) ve kullanıcının hazırladığı durumlardan ve son kullanıcının sunum katmanından verdiği komutlardan tüm verinin kazanıldığı ve depolandığı veri tabanı katmanıdır. Sunum katmanı, kullanıcıları yerel bilgisayarlarından çalıştırdıkları SAP uygulamasıdır.

Yeni Yazılan ABAP Kodlarının Canlı Ortamda Kullanılma Stratejileri

Bir firmada sağlıklı ve sağlam bir SAP uygulaması için genel olarak 3 bağımsız sistem kullanılır: Geliştirme, Test-Kalite, Canlı. ABAP kodları geliştirme sisteminde yazılır. Test-Kalite sisteminde kontrol edilir. Onaylandığında kodlar canlı sisteme taşınır. Belirli periyotlarda canlı sisteminden veriler Test-Kalite sistemine kopyalanır. Kodların performans testi için gerekirse canlı sistemi ile aynı özellikleri olan başka bir sunucu daha açılır (Pre-prod).

Bazı firmalarda ise Geliştirme ve Test-Kalite sistemleri aynı sunucuda farklı üst birimlerde olabilir. ABAP nesneleri (Workbench) sunucu bazında tutulduğu için geliştirme sisteminde yazılan kodlar, oluşturulan tablolar vs. test sisteminde de geçerli olur. Sadece üst birim bağımlı olan tablolardaki (Tabloda MANDT alanı varsa) uygulama verileri, uyarlamalar farklıdır. Yine aynı şekilde test sisteminde onaylanan kodlar canlı sisteme taşınır.