Giriş
SAP’nin güncel geliştirme paradigması olan ABAP RESTful Application Programming Model, beraberinde pek çok yenilik getirdi. EML, Annotations, Draft Handling, Behavior, Metadata Extension, Fiori Tools gibi bazı anahtar kelimeler sayılabilir. Hatta geliştirmeleri dahi kısmen Eclipse, kısmen VS Code’da yapıyoruz.
Ancak; hala SE38 içerisinde klasik ABAP ile çalışan ve bu gelişmelerin ucunu biraz kaçırmış programcılar var. Bir dönem kullanıp, yavaş yavaş geride bıraktığımız Fiori modeline dahi uğramadığını söyleyenler oluyor.
Bu doğrultuda, treni yakalamak isteyenlere kılavuzluk edeceğini umduğum bir kişisel gelişim haritası paylaşmak istiyorum. Aralarda boşluklar kalmış olabilir, bildirirseniz memnuniyetle tamamlarım. Konuların sırası ise kendi kanaatimdir.
Konular
Back End
Öncelikle, bilgisayarınıza Eclipse + ADT kurarak işe başlayın. RAP dünyasındaki pek çok geliştirme nesnesine karşılık SE* işlem kodu bulamayacaksınız, muhakkak Eclipse gereklidir. Mevcut müşterilerinizin sistemlerine de Eclipse ile bağlanıp kod yazabilirsiniz muhtemelen.
Modern ABAP: Bilhassa ABAP 7.50 sonrasında gelen pek çok yeni ABAP komutu var. Yeni dünyada yazılan kodları anlayabilmek ve daha az kodla daha çok iş başarabilmek için, bu yeni komutları tanımak gerekiyor. Bu konuda ABAP To The Future kitabını beğenmiştim. Web sitelerinde de sayısız kaynak var. Daha temiz ABAP kodu yazmanın global standartları ise GitHub üzerinde yayınlandı, bunları öğrenip takip etmenizi öneririm.
Object Oriented ABAP: Artık isteseniz de istemeseniz de sınıflardan kaçış yok. RAP dünyasında Behavior kodlaması büyük ölçüde sınıflarda yapıldığı gibi, CDS View’ların arkasına da sınıf bağlayabiliyoruz. Sınıfların mecburi olduğu başka noktalar da var. Kaynak önerisi tabii ki kendi kitabım olacaktır 😊 Design Patterns in ABAP Objects
CDS View: CDS View’lar artık hem veri modellerinin, hem de OData servislerinin temel yapı taşı durumundadır. Join, Association gibi temel CDS bileşenlerinin yanı sıra, Access Control gibi yetki özelliklerini ve CONCAT, CASE, COALESCE gibi CDS fonksiyonlarını iyi öğrenmeniz gerekir. Yoksa, çok basit 1-2 komutla halledilebilecek işler için bir kamyon dolusu kod yazıp bir de performansı yavaşlatabilirsiniz. Bu konuda epey kaynak var.
Open SQL: Her ne kadar artık ABAP’ta SELECT komutu yazmak yerine CDS View tercih etsek de, MODIFY / INSERT / DELETE gibi komutları yine ABAP’ta yazıyoruz. SELECT de hala yazılabiliyor tabii. CDS ile büyük benzerlik gösteren modern Open SQL komutlarını öğrenip kullanmak, işimizi şüphesiz kolaylaştıracaktır.
HANA Teknolojileri: HANA veritabanı üzerinde geliştirme yapan programcılar; geliştirmelerde ADBC, AMDP gibi pek çok imkandan faydalanabilir. Daha fazlası da var tabii. Native HANA geliştirmesi ne kadar lazım olur emin değilim, ancak hakkıyla ABAP odaklı HANA geliştirmesi yapabilmek için, ABAP odaklı teknolojilerini tanımak lazım. Bu konuda SQLScript for SAP HANA beğendiğim bir kaynak.
ABAP RAP: Bu altyapı hazırlığının üzerine, ABAP RESTful Application Programming Model ile baştan sona uygulama geliştirmeyi öğrenmeye sıra geliyor. Burada, işin Back End kısmını öğreniyor gibi düşünebilirsiniz. Bu konuda, open.sap.com üzerindeki Building Apps with the ABAP RESTful Application Programming Model eğitimini tavsiye ederim. OData’ya kadar gelip, GUI / Servis katmanlarında sadece Preview yapabilecek noktaya kadar getiriyor bizi.
Front End
Geliştirme ortamı için, SAP BTP Trial sunucusu üzerindeki SAP Business Application Studio’yu Web tarayıcınızda kullanabilirsiniz. Lokalinde geliştirme yapmak isteyenler, VS Code + kurulacak ek bileşenlerle çalışabilir. Her ikisinin de detayı, aşağıdaki eğitimlerde anlatılmaktadır.
SAP Fiori dünyasında iki tür Front-End paradigması var: Fiori Elements ve Free Style.
Fiori Elements: Fiori Elements kullandığınızda, SAP’nin hazır şablonlarından faydalanıp, tek satır JavaScript yazmadan Annotation’lar ile Front-End geliştirmek mümkün oluyor. SAP, kendi yeni uygulamalarının da %80’ini Fiori Elements ile geliştirmiş ve bizlere bunu tercih etmemizi tavsiye ediyor. Bu konuda, open.sap.com üzerindeki Developing and Extending SAP Fiori Elements Apps eğitimini tavsiye ederim. Standart SAP uygulamalarını modifiye etmek ve Deployment dahil epey kapsamlı bir içerik hazırlamışlar.
JavaScript: Free Style uygulama geliştirirken, JavaScript tabanlı SAPUI5 kütüphaneleriyle JavaScript kodu yazmanız gerekecek. Temel düzeyde de olsa JavaScript okur-yazarlığı edinmekte fayda var. Chrome üzerinde JavaScript Debug edebilmek ise elzem – bilhassa UI5 Inspector Plug-In’ini kurarsanız rahat edersiniz. JavaScript, kaynak açısından epey zengin bir dil.
Free Style: Her ne kadar SAP’nin kendisi Fiori Elements’i de önerse; Fiori Elements yetersiz kaldığında, JavaScript bilgimizi ortaya koyup SAPUI5 kütüphaneleriyle terzi usülü özel Frontend geliştirmesi de yapabiliriz. Fiori Elements eğitimini tamamladıysanız; bir sonraki adım bu olabilir. Kapsamlı bir giriş için open.sap.com ‘daki Developing Web Apps with SAPUI5 eğitimini öneririm. Kendim okumamış olsam da, SAPUI5: The Comprehensive Guide kitabı da iyiye benziyor – eğitmenler tarafından kaleme alınmış.
Destek Konuları
ABAP Programming Model for SAP Fiori: Her ne kadar güncel S/4 HANA sistemlerinde yeni geliştirmeleri artık RAP ile yapsak da, pek çok SAP müşterisinde yıllardır (bir önceki paradigma olan) SEGW tabanlı Fiori geliştirmesi de yapılmış halde. Bunlara destek vermemiz gerekebilir. O yüzden; RFC – OData (SEGW) – SAPUI5 tabanlı uygulamalara ve BOPF kavramına aşina olmakta fayda var. open.sap.com, SAP Press ve Web sitelerinde epey kaynak var.
DevOps
gCTS: GIT uygulamalarını ABAP hariçi platformlarda zaten kullanıyorduk. ABAP dünyasında ise abapGIT ile belli bir oranda kullanabilmeye başlamıştık. SAP bu işi bir adım ileri götürerek; geliştirmelerin dağınık sistemlerde yapıldığı ve farklı sunuculara farklı Branch’lerin gönderileceği karmaşık durumları dahi yönetebildiğimiz gCTS adında bir altyapı çıkardı. Jenkins gibi Pipeline’lara da dahil edilebiliyor. Öğrenmek isteyenler, open.sap.com ‘a uğrayabilir.
Eğitim Sistemi
Bunca konuyu öğrenirken hepimizin elinin altında modern bir S/4 HANA sistemi olmayabilir tabii. SAP bu konuda bize bazı imkanlar sunuyor.
- hanatrial.ondemand.com adresinde bir hesap oluşturup, SAP’nin halka açık deneme sunucusu üzerinde bazı çalışmalar yapabilirsiniz. Üstte bahsettiğim eğitimler, bu konuda sizi yönlendiriyor. Ancak, bu sunucularda ara sıra silme işlemi gerçekleşiyor, takipte olun.
- cal.sap.com adresinde sunucu kiralayıp, kendinize ait HANA, S/4 HANA, vb sunucusunda istediğiniz gibi geliştirme / deneme yapabilirsiniz. Sunucu açık kaldığı kadar fatura ediliyor. Bazı sunucular en fazla 30 gün kullanılabilirken, bazıları ödediğiniz sürece aktif kalıyor. Dikkat etmezseniz ay sonunda yüksek fatura çıkabilir, hesabı baştan iyi yapmakta fayda var.
- SAP ABAP Platform 1909 Developer Edition ile, lokal bilgisayarınızda RESTful ABAP denemeleri yapabilirsiniz.
Soru & Cevap
Bunları Öğrenmezsem Ne Olur?
Sadece klasik ABAP bilerek daha ne kadar idare edilebilir emin değilim. Aktif kod yazmayı bırakmanıza birkaç sene kaldıysa, mevcut R/3 müşterilerinizin de yakın zamanda S/4 HANA’ya veya Cloud’a geçme niyeti yoksa, olabilir.
Aksi takdirde, yukarıda listelediğim konuları bir an önce gündeme almanızı tavsiye ederim. İsterseniz 20 yıllık ABAP’çı olun, müşterilerinizin ihtiyaç duyduğu teknolojiler konusunda yetkin değilseniz, sizinle çalışmaları için bir sebep kalmayabilir. Mimari / algoritma kurma mantığınız sağlam bile olsa, sonuca dönüştüremiyorsanız tercih edilmeyebilirsiniz.
Yurtdışındaki iş ilanlarına göz atmanızı tavsiye ederim. Klasik ABAP’tan ziyade, SAP’nin yeni paradigmalarını bilen kişilerin arandığını göreceksiniz. Bu, yurtdışına gitmeyi düşünebilecek kişiler için önemli. Bunun yanı sıra, Türkiye’deki müşterilerin er geç geleceği nokta açısından da anlamlı bence.
Teknolojileri öğrenip, open.sap.com eğitimlerinizin sonunda sertifika almak kadar, bunları uygulayabileceğiniz proje fırsatı bulmak da önemli.
Full Stack mi Olmalıyız?
Eski Fiori paradigmasında, Back End ve Front End arasında keskin bir çizgi vardı. Her ikisini de iyi yapabilen (Full Stack) ABAP danışmanları olmasına rağmen, projelerde genelde Back End kısmını başka kişiler, Front End (SAPUI5 / JavaScript) kısmını başka kişiler üstleniyordu. Biraz da paralel çalışabilmek için.
O yüzden, “Ben sadece Back End’ciyim” veya “Front End’ciyim” demek anlamlıydı.
Bugünkü RAP dünyasında ise, bu aradaki çizgi biraz erimiş halde bence.
- Eğer Fiori Elements uygulaması geliştiriliyorsa (mesela List Report), işin çok büyük bir kısmı Back End Annotation’larla halledilebiliyor, Front End adına VS Code içerisinde Fiori Tools Wizard’ları yardımıyla yapılacak bazı XML Annotation işleri kalıyor sadece. JavaScript doğrudan kullanılmıyor.
- Eğer Free Style uygulama geliştirilecekse, eski Fiori paradigmasındaki gibi sağlam SAPUI5 / JavaScript geliştirmesi gerekecektir. Ancak, SAP’nin yeni uygulamalarının dahi sadece %20’si Free Style yazılmış. Müşterilerinizden gelen ihtiyaçların çoğunun Fiori Elements ile halledebileceğinizi düşünebilirsiniz.
Bu noktaları değerlendirdiğimizde, bilhassa Türkiye’deki yazılım alışkanlıklarını da düşünürsek, RAP ile birlikte “Ben sadece Back End’ciyim” demenin biraz daha zorlaşacağı kanaatindeyim. En azından Fiori Elements seviyesinde dahi olsa, Front End’i yapmaları beklenecektir.
“Ben sadece Front End’ciyim” demek ise, müşterilerin hem hız hem de efor açısından mümkün olan noktalarda Free Style yerine Fiori Elements tercih edeceğini düşünürsek, yine riskli bir kariyer yolu olabilir.
Bu konudaki doğruyu zaman gösterecek, ancak biraz vakit ayırıp Full Stack’e yönelmekte fayda görüyorum.
Leave a Reply