Klasik ABAP’tan RAP’a Yol Haritası

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.

Advertisement

Posted

in

,

by

Tags:

Comments

15 responses to “Klasik ABAP’tan RAP’a Yol Haritası”

  1. Hazal Kandemir Avatar
    Hazal Kandemir

    ABAP ögrenmeye yeni baslamis birisi icin, harika bir yol haritasi olmus. Tesekkürler!

    1. Dr. Kerem Koseoglu Avatar

      Yeni başlamış birinin klasik ABAP ile başlaması gerekir tabii 😊 Sonrasında yukarıdaki yol takip edilebilir.

  2. Ertuğrul Pehlivan (@epehlivans) Avatar

    Eline sağlık Kerem hocam faydalı bir yazı olmuş…

  3. […] If you want to improve your ABAP knowledge from classic ABAP towards RAP, check my roadmap🇹🇷. […]

  4. Doğan Pamuklu Avatar
    Doğan Pamuklu

    Emeğinize saglık, Kerem Bey. Test Driven Development da, ha keza buraya eklenir bence. Alışması zor evet, ama alışınca çok keyifli olabiliyor 🙂 Belki RAP ile direkt bağlantılı olmadığı için yazmamışsınızdır, ancak modern ABAP’ın bir parçası olarak daha sıklıkta kullanılmaya başlandı.

    1. Dr. Kerem Koseoglu Avatar

      Katkınız için teşekkür ederim 😊

  5. Ceyhun Avatar
    Ceyhun

    Fiori için Javascript yanında html5 css3 bilinmesi gerekiyor mu hocam
    cds , odata ve abap gibi eğitim videoları çekmek gibi bir düşünceniz var mı

    1. Dr. Kerem Koseoglu Avatar

      Temel Fiori Elements uygulamaları için JavaScript’e de gerek yok. FreeStyle uygulama geliştirecekseniz, normal şartlar altında JavaScript kodu yazmanız yeterli oluyor, HTML5 veya CSS kodu yazma zorunluluğu yok. Ancak, özel bir ihtiyaçla karşılaşır da doğrudan HTML / CSS yazmak zorunda kalırsanız bilmekte fayda var elbette.

    2. Dr. Kerem Koseoglu Avatar

      YouTube kanalımda OData’nın temellerini anlattığım bir video bulabilirsiniz.

  6. ceyhun Avatar
    ceyhun

    Yazı için elinize sağlık hocam

    1. Dr. Kerem Koseoglu Avatar

      Faydalı olmasına sevindim!

  7. Cabir Avatar
    Cabir

    Thanks for preparing a detailed roadmap. I have been looking for a long time.

    1. Dr. Kerem Koseoglu Avatar

      Glad to be helpful!

  8. Fatih Usta Avatar
    Fatih Usta

    Çok güzel bir yol haritası olmuş. Tebrik ederim.

    1. Dr. Kerem Koseoglu Avatar

      Teşekkür ederim!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s