Daha önceki Embedded Analytics – 1. Bölüm yazımızda SAP HANA ile işlemsel sistemlere gelen OLAP özelliklerden, in-memory analitiklerin evriminden bahsederek Embedded Analytics teknolojisini genel hatlarıyla ele almıştık. Bu yazımızda ise iki veya çok boyutlu olmasına göre rapor çeşitlerini kavrayıp, Embedded Analytics’in modelleme, geliştirme, entegrayon ve son kullanıcı arayüzüne detaylarıyla odaklanacağız. Eğer SAP Embedded Analytics konulu bu yazı serimiz ile yeni karşılaşıyorsanız, öncelikle 1. bölümü okumanızı öneririz.
S4/HANA’da raporlama projelerine başlarken en çok karşılaştığımız durum, raporlar sınıflandırılırken analitik mi (OLAP Embedded Analytics) yoksa düz tablosal formatta mı (ABAP ALV) rapor yapılacağı konusundaki ayrımın net olarak yapılamaması olarak karşımıza çıkıyor. Burada analitik ve tablosal kavramlarının anlaşılmasında fayda olacaktır.
Önceden raporlama daha çok platform ayrımına göre BW veya ERP/CRM/ISU gibi işlemsel sistemler şeklinde karar verildiğinden, tercih BW olduğunda, kendisi de bir analitik platform olduğundan bunun doğal sonucu olarak sorgular da analitik sorgular olarak üretiliyordu, BW Analyzer veya SAP Portal üzerinden görüntüleniyordu. ERP gibi işlemsel sistemler tarafında ise düz tablosal formatta ABAP ALV raporları yazılıyordu.
Analitik Rapor
Raporda sürükle-bırak, drill-down ve drill-up gibi navigasyon yapılabilen, anahtar metin ve ölçü birimi alanlarının birbirleriyle bağlantılı olduğu ve en önemlisi metriklerin otomatik özetleme yapmaya olanak sağladığı raporlardır. Excel’deki pivot tablo da bu mantıkla çalışan bir gösterim şeklidir. Buradan yola çıkarak sektör içerisinde de analitik raporlardan genelde pivot adıyla da bahsedilir. Analitik ve düz tablosal raporlar arasındaki farklara örnek vermek gerekirse; ABAP ALV raporlarında bir alanın, örneğin malzemenin anahtar ve metin değerleri her raporun çıktısında birbirinden bağımsız iki alan olarak ayrı ayrı geliştirilir. Analitik raporlarda ise malzeme için ayrı bir boyut oluşturulur ve malzeme anahtar alanı ile malzeme metni boyut üzerinden birbiriyle ilişkilendirilir. Oluşturulan boyut modellemesi sadece birkez oluşturulup bütün küp ve dolayısıyla da sorgu tasarımlarında kullanılabilir.Diğer bir senaryoda yıl, ay, gün ve tutar alanlarından oluşan bir rapor çıktısını düşünelim. ABAP ALV raporunda gün alanı görüntüden kaldırıldığında tutar alanlarında bir özetleme çalışmaz. Yani gün alanı ekranda görünmemesine rağmen, yine gün alanı varmış gibi satırlar tabloda tekrarlanır. Bu durumda ALV’nin özelliği olan ara toplamlar aldırarak yıl ve ay bazındaki tutarlar gösterilebilir. Çünkü ABAP kodu tablosal düz bir çıktı vermiştir, rapordaki detay kırılım azaldığında özetleme yapması gerektiğini bilemez. Analitik raporlarda ise, “tutar” gibi bir sayısal alanın varsayılan bir özetleme özelliği vardır ve hangi kırılımda olursa olsun otomatik olarak özetleme yapar. Bunun yönetimi HANA’daki Analitik OLAP Engine tarafından yapılır. Böylece sürükle-bırak, navigasyon, hiyerarşi gibi özellikleri barındıran tam olarak analitik bir modelleme kurulmuş olur.
Embedded Analytics modellerinde @DefaultAggregation: #SUM annotation’ı kullanılarak bu özellik atanır.Sonuç olarak eğer rapordaki herhangi bir değere tıklayarak, örneğin malzeme, belge numarası, müşteri, satıcı gibi, bir işlem koduna atlamak gibi bir talep varsa ABAP ALV raporu, raporda navigasyonlar yaparak farklı AD-HOC analizler yapmak, hiyerarşileri kullanmak, hızlı pivot dönüşümler kullanmak gibi bir ihtiyaç varsa da Embedded Analytics modelleriyle analitik raporlar yapmak uygun olacaktır.
Analitik Modelleme Örneği
Biraz da geliştirme aşamasındaki teknik detaylardan bahsetmek istiyorum. Önceki yazımızdan da hatırlayacağınız üzere, ABAP CDS View’lere annotation’lar ekleyerek analitik yetenekler kazandırdığımızı söylemiştik. Böylece CDS ile başlayan maceramız aslında tam olarak bir BI konseptine dönüyor. Bazı önemli annotation’lardan bahsedelim. Annotation’lar @ ile başlar ve view genelinde veya alan özelinde olabilir. Bazı annotation’lar hem view hem alan üzerinde tanımlanabilir ve tanımladığı yere göre özellik verir.View genelindeki annotation’lar;
@Analytics.dataCategory: #DIMENSION, #CUBE veya #FACT özellikleri alarak modelimizin rolünü belirtir.
@Analytics.query: true bu view’in #CUBE üzerinde geliştirilmiş bir analitik sorgu olduğunu söyler.
@VDM.viewType: Veri modelinin özelliğine göre #BASIC, #COMPOSITE veya #CONSUMPTION değerleri alır.
@OData.publish: true, Kurulan modeli OData servisi olarak yayınlar, Fiori tarafındaki analitik uygulamalar için gereklidir.Alan özelindeki annotation’lar daha çok sorgu tasarlarken kullanılıyor. Bunlara örnek olarak;
@AnalyticsDetails.query.axis: #FREE, #ROWS veya #COLUMS ile alanların sorguda bulunacağı eksen belirtilir.
@EndUserText.label: ile alanların son arayüzde görüntülenecek başlık metinleri belirtilebilir.
@DefaultAggregation: ile istenilen sayısal alanlara metrik (measure) özelliği verilir ve özetleme özelliği atanır.Aşağıda, standart SAP Flight veritabanından oluşturduğumuz analitik bir view geliştirmesi bulunmaktadır. Burada geleneksel OLAP küplerindeki dimension ve fact tablo ilişkileri, hiyerarşiler, ölçü ve para birimleri, özetleme tipleri gibi çok boyutlu veri modelleme yetenekleri örneklendirilmiştir.
SAP Bex Query Designer ile oluşturduğumuz değişkenler gibi Embeded Analytics sorguları için de CDS ortamında değişkenler oluşturabilir ve rapor filtre parametreleri belirleyebiliriz. Rapor için varsayılan alanları satır ve sütun seviyesinde seçebilir ve tam olarak ihtiyaçların belirleyeceği bir sorgu yapısı oluşturabiliriz. Şimdiye kadar araç ve sihirbazlar kullanarak yaptığımız veri modellemeleri ve sorgu tasarımlarını Embeded Analytics ile ABAP CDS DDL yazarak yapmaya başladık. Bu doğrultuda ileride Embeded Analytics ve ABAP CDS View oluşturmak için bir grafiksel araç karşımıza çıkabilir. Özellikle HANA 2.0 ile birlikte gelen HANA CDS Grafik Editör sonrasında, ABAP CDS için de benzer bir durum söz konusu olabilir. Mevcut ABAP CDS Grafik Editör ile sadece kurduğumuz mevcut modeldeki bağlantıları görüntüleme özelliğine sahibiz.
ABAP CDS Grafik Editör
CDS Table Function
ABAP 7.40 SP08 ile tanıtılan CDS views with parameters ile CDS view’leri geliştirme aşamasında parametreli olarak tasarlayabilir olduk. Üzerinden çok fazla zaman geçmeden ABAP 7.50 ile AMDP sınıfları tablo tipinde veriler dönebilecek şekilde uyarlandı ve CDS Table Function’lar ortaya çıktı. Böylece kompleks SQL cümleleri yazmayı gerektirecek durumlarda, ABAP AMDP sınıfları üzerinde yazılan window fonksiyonları dahil tüm native SQL kodlarının yer aldığı AMDP metotları CDS table function ile referans verilerek CDS ortamından çağırılabilir duruma geldi. Sonuç olarak CDS’de ihtiyacı karşılamayan bir talep söz konusu olduğunda native SQL çağırma yeteneği ile bu handikap da ortadan kalkmış oldu. Bir diğer anlamda script based calculation view’ler Embedded Anlaytics çözümündeki karşılığını buldu.
OAnalysis
S/4HANA ile konuşan servislerle güçlendirilmiş Fiori ile karşımıza analitik OAnalysis raporlama aracı çıkıyor.
Design studio kullanılarak geliştirilmiş web tabanlı analitik (OLAP) bir query analiz aracıdır. S/4 HANA ile birlikte kurulu geliyor. Fiori Query Browser üzerinden ilgili sorgular seçilerek OAnalysis uygulaması başlatılır. Oluşturulan analiz görünümü bir Fiori Tile olarak saklanabilir ve SAP Fiori Launcpad üzerinde her zaman ulaşılabilir bir analitik sorgu görünümü kısayolu olarak konumlandırılır.
OData
OData evrensel bir veri REST protokolüdür. Artık sayısız farklı sistem ile haberleşilen bir dünyada yaşadığımızdan, her sistem ile haberleşme kurallarının farklılaşması geliştirmeyi zorlaştırmaktadır.
Bundan doğan ihtiyaç doğrultusunda OData ile bir standart oluşturulmuş ve genel geçer bir iletişim protokolü sağlanmıştır.
Embeded Analytics tarafında OData teknolojisinin rolü ise, oluşturulan CDS View’lerin tek bir metadata eklenmesi ile OData servisi olarak sunulabilir olmasıdır. Böylece çok boyutlu veri modellerinin OData ile SAP Fiori Uygulamaları, diğer Native HANA XS Uygulmaları veya 3rd party uygulamalar için servis edebilecek altyapıyı oluşturabiliyoruz, SAP Fiori Tile’larında dinamik olarak değişken canlı kutucuklarda analitik sorguların sonuçlarını gösterebiliyoruz.Bu modellemenin kullandığı en çok rastlanan uygulamalar ise SAP Fiori üzerindeki Master-Detail uygulamaları olarak karşımıza çıkıyor. Embeded Analytics çıktılarının OData ile servis edilmesiyle, sadece tek bir REST servis ile client uygulamalar back-end veri üzerinden hiyerarşik olarak navigasyon yapabilir hale geliyor.Embeded Analytics, SAP Business Roles (PFCG) içerisine konumlandırılmış standart içerik ile Fiori Launchpad üzerinde, tek bir repositoryden gelen standart işlemsel ve analitik uygulamalar da içermektedir. İlgili PFCG rolleri SAP Fiori tarafında kullanılabilir Fiori Katalog ve Gruplar barındırmaktadır. Farklı frontend araçlar ile kullanılabilen Embeded Analytics çıktılarının en temelde birleştiği nokta; yetki, gruplama, geliştirme gibi adımların tek bir S/4 HANA ortamında yapılmasıdır. Böylece şirketler unified bir yapı ile hem OLTP hem de OLAP çözümlerini oluşturup, yönetebilecekler.Devam eden ve önümüzde SAP S/4 HANA projelerinde Embeded Analytics’in tek başına veya BW/4HANA ile hibrit senaryolarda vazgeçilmez olarak yerini alacağını hep birlikte göreceğiz.