CAP · informational
CAP runtime: Node.js varsayılan, Java gerekçeli
SAP CAP dokümantasyonu ve Fiori araç zinciri Node.js’i varsayılan kabul eder. Java, mevcut Spring ekibi veya belirli kurum politikası için seçilir. Fiori Teknoloji aynı bounded context içinde iki runtime karıştırmaz; handler sözleşmesi tek dilde kalır.
Node.js handler ve cds.ql
Node.js CAP’te srv/*.js veya TypeScript, before/on/after olaylarına bağlanır. cds.ql sorguları CDS modeline göre üretilir; ham SQL kaçış kapısıdır, HANA diyalektine kilitler. Fiori Teknoloji iş kuralını handler’da, protokol ayrıntısını approuter’da tutar. Uzun senkron S/4 çağrısı HTTP zaman aşımına düşer; o iş kuyruk veya iFlow’dur. TypeScript, model ve handler arasında tip güvenliği sağlar; zorunlu değildir ama ekip büyüyünce işe yarar. npm ve cds watch yerel döngüdür. Üretim Node sürümü MTA’da kilitlenir. Native addon’lar Cloud Foundry stack’inde sürpriz çıkarır; tercih edilmez. Test, cds.test ile servis katmanında başlar. UI E2E ayrıdır. Handler’da UI DOM’u varsayılmaz.
- before/on/after olayları iş kuralının yeridir
- Ham SQL yerine cds.ql; uzun S/4 çağrısı kuyruğa kayar
- Üretim Node sürümü MTA’da kilitlenir
Java CAP ne zaman
Java CAP, Spring ve Maven bilen ekiplerde, kurumun yalnızca JVM kabul ettiği yerde seçilir. CDS model aynı kalır; handler Java sınıflarına döner. Fiori Elements tüketimi protokol üzerinden olduğu için UI runtime seçiminden bağımsızdır. Fiori Teknoloji “Java daha kurumsal” sloganıyla Node’u reddetmez. Operasyon, kütüphane olgunluğu ve işe alım gerçekliği bakılır. İki runtime’ı aynı MTA’da “bir servis Node bir servis Java” yapmak destination, log ve yetkiyi ikiye katlar. Gerekçe yoksa tek runtime. BTP ABAP environment üçüncü yoldur ve CAP Java değildir. Karar tablosu keşif notundadır. Lisans JVM veya Node için bizden satılmaz; BTP runtime entitlement müşteridedir.
- Java, Spring ekibi ve JVM politikası için gerekçelenir
- Aynı MTA’da çift runtime yetki ve log maliyetini katlar
- BTP ABAP, CAP Java’nın yerine geçen gizli seçenek değildir
S/4 çağrısı ve hata modeli
Node veya Java, S/4’e destination ile gider. Hata, CAP mesajına çevrilir; ham 500 Fiori’ye bırakılmaz. Idempotent yazma, tekrar denemede çift belge üretmemelidir. Fiori Teknoloji yazma otoritesini netler: belge S/4’te doğuyorsa CAP yalnızca tetikler. Destination timeout, Cloud Connector kesintisi ve principal propagation hatası ayrı sınıflardır. Bunları tek catch’te yutmak AMS’i kör eder. Log korelasyon kimliği approuter’dan S/4’e taşınır. Java veya Node bu disiplini değiştirmez. Performansta N+1 remote çağrı Elements Object Page’de görünür. Batch veya okuma projeksiyonu handler’da tasarlanır, UI’de döngüyle değil. Runtime kararı keşif notunda gerekçelenir, sprint ortasında değişmez. Teslimat bu cümle keşif notuna işlenmeden kapanmaz.
- S/4 hatası CAP mesajına çevrilir, ham 500 bırakılmaz
- Timeout, connector ve kimlik hataları ayrı loglanır
- Object Page N+1 remote çağrısı runtime’dan bağımsız anti-kalıptır
Sık sorulanlar
TypeScript CAP’te zorunlu mu?
Zorunlu değildir. Node.js JavaScript yeter. TypeScript ekip ölçeğinde model-handler uyumunu kolaylaştırır. Fiori Teknoloji bunu standart dayatma olarak değil teslimat kalitesi olarak önerir.
Node.js ve Java’yı aynı projede kullanır mısınız?
Aynı bounded context’te hayır. Ayrı uygulamalar ayrı gerekçeyle farklı runtime alabilir. Karışık MTA, destination ve rol koleksiyonunu şişirir.
Bu konuyu ortamınızda netleştirmek için 48 saatlik ön değerlendirme.
Lisans satmıyoruz. Destination, yetki ve model kararını yazılı notlarız.