Vaka Çalışması · SAPCase Study · SAP

Klasik ABAP'ten RAP'e: 21 konuluk, uçtan uca bir geliştirme projesi From classic ABAP to RAP: a 21-topic, end-to-end development project

Kendi S/4HANA 2025 sandbox'ımda, OData ve SAPUI5'ten RAP, draft ve ABAP Unit'e uzanan tam bir geliştirme zinciri kurdum. Her adım çalışır halde doğrulandı ve abapGit ile arşivlendi. On my own S/4HANA 2025 sandbox I built a complete development chain, from OData and SAPUI5 through RAP, draft handling and ABAP Unit. Every step was verified working and archived with abapGit.

S/4HANA 2025RAPFiori Elements V2 / V4 SAPUI5OData V2 / V4CDS ABAP UnitATCabapGit
21 KonuTopics Her biri kendi test senaryosu ve öz değerlendirmesiyle tamamlandı. Each closed with its own test scenario and self-assessment.
6 Launchpad TileLaunchpad Tiles Statik, dinamik, elle yazılmış UI5 ve Fiori Elements V2/V4 uygulamaları tek Launchpad'de. Static, dynamic, hand-written UI5 and Fiori Elements V2/V4 apps on a single Launchpad.
5/5 ABAP Unit EML tabanlı testler, test double'larla gerçek tablolara dokunmadan yeşil. EML-based tests green, on test doubles, without touching real tables.
01

Bağlam ve HedefContext and Goal

21 yılı aşkın klasik ABAP deneyimi sonrasında soru şuydu: RAP tabanlı geliştirmeyi "bilmek" yerine, sıfırdan kurup uçtan uca çalıştırabilir miyim? Amaç bir demo değil, gerçek projelerde karşılaşılan zincirin tamamını (yetki, servis, önyüz, iş mantığı, test, versiyonlama) kendi elimle kurmak ve her kararın gerekçesini yazılı hale getirmekti.

After more than 21 years of classic ABAP, the question was: rather than "knowing" RAP-based development, could I build it from scratch and run it end to end? The aim was not a demo, but the whole chain met in real projects (authorization, services, UI, business logic, tests, version control), built by hand with the reasoning behind every decision written down.

Ortam: SAP Cloud Appliance Library üzerinden AWS'de kurulan S/4HANA 2025 Fully-Activated Appliance. Proje tamamlandığında ortam kapatıldı; kalıcı çıktı GitHub'daki abapGit deposu ve belgelenmiş README. Environment: an S/4HANA 2025 Fully-Activated Appliance on AWS via SAP Cloud Appliance Library. The environment was decommissioned on completion; the lasting output is the abapGit repository on GitHub and its documented README.
02

YaklaşımApproach

Üç kitapla başladım; kitaplar bitince 21 konuluk bir müfredatı kendim kurguladım. Her konu aynı döngüyle ilerledi: kısa teori → sandbox'ta uygulama → ayrı bir son kullanıcı hesabıyla doğrulama → öz değerlendirme → GitHub'a push. Öz değerlendirmelerde cevaplar "ne" değil, "neden → hangi mekanizma → sonuç" zinciri olarak yazıldı; zayıf kalan cevaplar bir sonraki oturumun açılışında yeniden soruldu.

I started with three books; when they ran out, I designed a 21-topic curriculum myself. Every topic followed the same loop: brief theory → hands-on in the sandbox → verification with a separate end-user account → self-assessment → push to GitHub. Self-assessment answers were written not as "what" but as chains of "why → which mechanism → what result"; weak answers were re-asked at the start of the next session.

03

Kurulan ZincirWhat Was Built

01

OData V2

SEGW ile servisler; Gateway Client ve ERROR_LOG ile hata ayıklama, DPC debug.

Services with SEGW; debugging via Gateway Client and ERROR_LOG, DPC debugging.

02

SAPUI5

Elle yazılmış uygulama: MVC, routing, i18n (TR/EN), arama, filtreleme, sıralama.

Hand-written app: MVC, routing, i18n (TR/EN), search, filtering, sorting.

03

Fiori Launchpad

Katalog, hedef eşleme, statik ve dinamik tile, space/page, PFCG rol ve servis yetkileri.

Catalog, target mappings, static and dynamic tiles, spaces/pages, PFCG role and service authorizations.

04

CDS + Fiori Elements

Aynı iş nesnesi üzerinde V2 ve V4 List Report / Object Page; metadata extension, value help, criticality.

V2 and V4 List Report / Object Page on the same business object; metadata extensions, value help, criticality.

05

RAP (Managed)

Early numbering, determination, validation, instance action, feature control, instance ve global authorization.

Early numbering, determinations, validations, instance action, feature control, instance and global authorization.

06

Draft & Composition

Draft tabloları, etag / total etag, kilit; parent-child composition ve create-by-association.

Draft tables, etag / total etag, locking; parent-child composition and create-by-association.

07

Additional Save

Kayıt sonrası değişiklik log'u, T100 mesaj sınıfı.

Post-save change log, T100 message class.

08

KaliteQuality

ABAP Unit (EML + test double), ATC (ABAP Cloud varyantı), abapGit ile GitHub'a export.

ABAP Unit (EML + test doubles), ATC (ABAP Cloud variant), export to GitHub with abapGit.

09

FE V4 Flexible Programming Model

Custom section, custom header action, controller extension.

Custom section, custom header action, controller extension.

04

Öne Çıkan DerslerKey Lessons

  1. Launchpad bir ekran değil, bir yetki zinciridir The Launchpad is not a screen, it's an authorization chain Katalog, hedef eşleme, rol, servis yetkisi; tek halka eksikse tile görünmez. "Ekran açılmıyor" sorunlarının büyük çoğunluğu UI'da değil, bu zincirin bir halkasında çıkar. Catalog, target mapping, role, service authorization; if one link is missing the tile simply doesn't show. Most "the screen won't open" problems live in this chain, not in the UI.
  2. V2 ve V4 aynı kuralı farklı gösterir V2 and V4 present the same rule differently Aynı RAP BO üzerinde: V2, yetkisiz butonu gösterip backend'de reddeder; V4 hiç göstermez. Bir müşteriye "neden V4" sorusunu tek cümleyle açıklamak için yeterli. On the same RAP BO: V2 shows the unauthorized button and rejects in the backend; V4 doesn't show it at all. Enough to answer a customer's "why V4?" in one sentence.
  3. Draft küçük bir anahtar değildir Draft is not a small switch Veri modelinden numaralandırmaya, kilitten validasyona her şeyi değiştirir. Early numbering'de %is_draft geri döndürülmediğinde alınan dump, projenin en öğretici hatasıydı. It changes everything from the data model to numbering, from locking to validation. The dump caused by not returning %is_draft in early numbering was the most instructive mistake of the project.
  4. "Çalışıyor" ile "doğru" arasındaki fark test ve ATC'dir The gap between "it runs" and "it's right" is tests and ATC RAP için EML tabanlı ABAP Unit testleri yazmak ve ATC'yi ABAP Cloud varyantıyla çalıştırmak beklediğimden çok daha ulaşılabilirdi; sonucu doğrudan kod kalitesine yansıdı. Writing EML-based ABAP Unit tests for RAP and running ATC with the ABAP Cloud variant was far more approachable than expected, and showed directly in code quality.
  5. Bilmek, gerekçesini zincir olarak yazabilmektir Knowing means being able to write the reasoning as a chain "Biliyorum" hissi ile gerçekten bilmek arasındaki boşluk, cevaplar "neden → mekanizma → sonuç" olarak yazıldığında ortaya çıktı. Bu yöntem artık her yeni konuda standart. The gap between feeling like I knew something and actually knowing it appeared once answers were written as "why → mechanism → result". That method is now standard for every new topic.
05

Sonuç ve Sıradaki AdımOutcome and Next Step

Kalıcı çıktı: her konusu belgelenmiş, çalışır halde doğrulanmış ve abapGit ile arşivlenmiş bir RAP uygulaması; yetki, servis ve önyüz katmanları için yeniden kullanılabilir kontrol listeleri; ve müşteri projelerinde doğrudan uygulanabilecek V2/V4, draft ve test pratikleri.

Lasting output: a RAP application with every topic documented, verified working and archived with abapGit; reusable checklists for the authorization, service and UI layers; and V2/V4, draft and testing practices that apply directly to customer projects.

Sıradaki adım: aynı iş nesnesini SAP CAP ile yeniden kurmak ve iki yaklaşımı yan yana karşılaştırmak. Next step: rebuilding the same business object with SAP CAP and comparing the two approaches side by side.
İletişimGet In Touch

Benzer Bir Geçişi
Planlıyor musunuz?
Planning a Similar
Transition?

Klasik ABAP'ten RAP ve Fiori'ye geçişte mimari, yetki tasarımı ve geliştirme desteği için konuşalım.Let's talk about architecture, authorization design and development support for moving from classic ABAP to RAP and Fiori.

E-Posta Gönder Send an Email Ana Sayfa Home