
İçindekiler
- Önceliklendirme: belirtiden ilk kontrole
- BTP'de 2024 ile 2026 arasında neler değişti
- Sorun 1: servis anahtarı kimlik bilgileriyle 401 unauthorized
- Sorun 2: Integration Suite açılırken Internal Server Error
- Sorun 3: bozuk gezinme ve ölü bağlantılar
- Sorun 4: CAP uygulamalarında destination hataları
- Sorun 5: trial ve free tier'da bir gecede duran uygulamalar
- Sık sorulan sorular
SAP BTP Cockpit size hata veriyorsa, büyük olasılıkla beş şeyden biridir. Bir servis anahtarından gelen 401 hemen her zaman kimlik bilgileri değil, OAuth isteğidir. Integration Suite'te bir Internal Server Error genellikle eksik rol koleksiyonları ya da eskimiş bir oturum anlamına gelir. Ölü bağlantılar, subaccount değişmeden önce kurulmuş booster'lardan gelir. CAP destination hataları çoğunlukla bir ad uyuşmazlığı ya da eksik bir bağlamadır. Bir trial hesapta dün çalışan bir uygulama ise veritabanını bir gecede kaybetmiş olabilir. Bu rehber, Cloud Foundry subaccount'larında çalışan geliştiriciler ve entegrasyon danışmanları için. Aşağıdaki önceliklendirme tablosu önce neye bakacağınızı söylüyor.
SAP BTP Cockpit'teki kırmızı hata şeridini ilk gördüğümde bir şeyi yanlış yaptığımı sandım. Yanlış bağlantı, süresi dolmuş oturum.
Üçüncü ya da dördüncü seferden sonra sorunun yalnızca bende olmadığı belli oldu.
Sonraki haftalarda bir defter tuttum ve bir şey bozulduğunda her seferinde not ettim. Integration Suite'i açarken alınan Internal Server Error'lar. Geçerli görünüp bağlanmayı reddeden destination'lar. Dün çalışıp bugün takılan uygulamalar. Kalıplar ortaya çıktı. Bunların pek azı işe yarar bir yerde belgelenmişti ve Cockpit'in kendisi size neredeyse hiçbir şey sunmuyor.
| Belirti | En olası neden | Önce neye bakılır |
|---|---|---|
| Servis anahtarıyla bir API çağrılırken 401 Unauthorized | Yanlış grant type, token URL'si ya da eksik yetkiler | Token'ı çözün ve aud ile scope değerlerini okuyun |
| Integration Suite açılırken Internal Server Error | Eksik rol koleksiyonları ya da eskimiş oturum | Kullanıcınızdaki rol koleksiyonları, ardından tam çıkış |
| Booster ya da tile boş veya yanlış bir sayfa açıyor | Booster çalıştıktan sonra subaccount değişti | Bunun yerine Cockpit ağacı üzerinden gezinin |
| CAP uygulaması: “destination not found” ya da kimlik doğrulama hataları | Ad uyuşmazlığı, eksik bağlama, yanlış OData türü | cds.requires ve xs-app.json değerlerini Cockpit'teki adla karşılaştırın |
| Uygulama dün çalışıyordu, bugün takılıyor (trial) | HANA Cloud örneği bir gecede durdu | SAP HANA Cloud Central'da veritabanı örneğinin durumu |
Cloud Foundry, Kyma ve ABAP ortamı, 2020'den beri yeni müşteriler için varsayılan olan SAP'nin çok bulutlu altyapısı üzerinde çalışır. Eski Neo ortamı yalnızca güvenlik ve uyumluluk güncellemeleri alıyor ve SAP kapanış tarihini 31 Aralık 2028 olarak belirledi. Aşağıdaki sorunların neredeyse tamamı bir Cloud Foundry sorunudur.
Eski rehberleri okuyanların kafasını hâlâ iki yeniden adlandırma karıştırıyor. SAP Launchpad service, Ocak 2023'te SAP Build Work Zone, standard edition adını aldı. Ayrıca SAP Build büyürken birçok tile ve booster yeniden kuruldu; bu yüzden 2022'den kalma ekran görüntüleri çoğunlukla gördüğünüzle uyuşmuyor.
RISE with SAP'te BTP genellikle sözleşmenin içinde kredi bazlı bir hak (entitlement) olarak gelir. Cockpit aynıdır. Farklı olan, kuruluşunuzda global account'u kimin kontrol ettiğidir; bu yüzden yeni bir hakka ihtiyaç duymadan önce o kişiyi bulun.
Bir servis örneği oluşturuyorsunuz, servis anahtarı üretiyorsunuz, client ID ve secret'ı Postman'e kopyalıyorsunuz, token URL'sini ekleyip isteği gönderiyorsunuz. 401. Hiçbir ayrıntı yok.
Secret'ı yeniden kopyalıyorsunuz. Yine başarısız. Servis sağlam. OAuth akışı değil.
Sırayla bakılacaklar:
- Grant type. Çoğu BTP servis API'sine teknik erişim
client_credentialskullanır. Postman'de bunu açıkça ayarlayın. Varsayılana güvenmeyin. - Token URL'si. Servis anahtarından alın. Bazı anahtarlar bir
tokenurlverir; bazıları XSUAAurlverir ve ona/oauth/tokeneklersiniz. Başka bir subaccount'tan asla ödünç almayın. - Başlıklar. Doğrudan token çağrısı için
Content-Type: application/x-www-form-urlencodedveAuthorization: Basic <base64(clientid:clientsecret)>gönderin. - Yetkiler. Client credentials ile token yalnızca o servis örneğine verilmiş scope'ları taşır. API, örneğin sahip olmadığı bir rol istiyorsa yine token alırsınız ve API yine hayır der. Bunu istekte değil, örnek parametrelerinde düzeltin (örneğin bir Integration Suite API plan örneğindeki roller).
- Audience. Token'ınız var ve API onu reddediyorsa, token'ı çözün ve
audclaim'ini okuyun. Çağırdığınız API ile eşleşmiyorsa, yanlış servis örneğinden bir anahtar kullanıyorsunuz.
Integration Suite'i açıyorsunuz ve kırmızı bir “Internal Server Error” şeridi çıkıyor. Günlük yok. Sayfayı yeniliyorsunuz, farklı tarayıcı deniyorsunuz, sonuç aynı.
Genellikle hizmet bir süre kullanılmadan kaldıktan sonra olur: sabah açılır, birkaç saat bırakılır, sonra yeniden kullanılır. SAP'nin topluluk başlıkları ve bilgi tabanı iki olağan nedeni işaret ediyor: eksik rol koleksiyonları ve eskimiş oturumlar.
Genellikle çözen şeyler:
- Rol koleksiyonlarını kontrol edin. Kullanıcınızın tenant'ı kurmak için
Integration_Provisioner, içinde çalışmak için de ilgiliPI_rol koleksiyonlarına (yönetici, entegrasyon geliştiricisi, iş uzmanı) ihtiyacı var. Bunları subaccount'ta Security altından atayın. - Tamamen çıkış yapın. Rol değişiklikleri oturumunuza ancak yeni bir girişten sonra ulaşır. Tüm BTP ve Integration Suite sekmelerini kapatın, çıkış yapın, sonra yeniden girin.
- BTP alan adları için çerezleri temizleyin, hata yeni girişe rağmen sürüyorsa. Eskimiş bir oturum çerezi oturumdan uzun yaşayabilir.
- Tek bir Cockpit oturumu kullanın. Aynı subaccount üzerinde birkaç sekme ya da tarayıcı profili, tam olarak bu hataya benzeyen oturum çatışmalarına yol açar.
Asıl sorun görünürlük. Cockpit neyin başarısız olduğu hakkında hiçbir şey söylemiyor, siz de tahmin yürütüyorsunuz. Bunun yerine listeyi sırayla uygulayın. Entegrasyon programlarının neden tıkandığına daha geniş bir bakış için SAP Integration Suite teslimat gecikmeleri yazıma bakın.
“Go to Application”a tıklıyorsunuz ve boş bir ekran, genel bir açılış sayfası ya da anlamsız bir yönlendirme alıyorsunuz.
Belli kalıpları izliyor:
- Booster çalıştıktan sonra subaccount kurulumu değişirse booster bağlantıları bozulur. Yönlendirme artık var olmayan bir yere işaret eder.
- Integration Suite tile'ları bazen çalışır, bazen hata verir, bazen zaman aşımına uğrar; çoğunlukla yukarıdaki oturum nedenleriyle.
- SAP Build Work Zone bağlantıları, abonelik var ama kullanıcınızda site için rol koleksiyonu yoksa “connection denied” gösterir.
- Birden fazla sekme ya da tarayıcı profili bağlantıları süresi dolmuş bağlamlarda açar.
İşe yarayan: Cockpit ağacı üzerinden gezinin (subaccount, ardından Services, ardından Instances and Subscriptions) ve Integration Suite, destination'lar ve Work Zone için doğrudan URL'leri yer imine ekleyin. Temiz bir tarayıcı profilinde tek oturum kullanın. Bir bağlantı üç seferde bir başarısız olduğunda platforma güvenmeyi bırakıp geçici çözümler kurmaya başlarsınız. Yer imleri, var olan en ucuz geçici çözümdür. Hâlâ yolunuzu bulmaya çalışıyorsanız, BTP Cockpit rehberim temel gezinmeyi ele alıyor.
Bir CAP uygulaması dağıtıyorsunuz, Cockpit'te bir destination yapılandırıyorsunuz ve istekler hâlâ “destination not found” ya da kimlik doğrulama hatalarıyla başarısız oluyor. Destination listede görünüyor. Uygulama çalışıyor. Hata mesajları işe yarar bir yere işaret etmiyor.
SAP'nin CAP belgeleri bunun nasıl bağlanması gerektiği konusunda net: uzak servis package.json içinde (ya da .cdsrc.json) cds.requires altında bir kind ile bildirilir ve destination adı credentials.destination altına yazılır. Uygulamanın ayrıca hem Destination servisine hem de XSUAA'ya bağlamaları olmalıdır. Hataların çoğu bu zincirin bir yerindeki kopukluktur.
- cds.requiresUzak servisi, türünü ve destination adını bildirir
- Production profiliDağıtımdan sonra destination kimlik bilgilerini tutar
- Servis bağlamalarıUygulama Destination ve XSUAA'ya bağlıdır
- Cockpit'teki destinationcds.requires ve xs-app.json'daki ile aynı ad, büyük/küçük harf dahil
- Uzak servisV2 servis için odata-v2, V4 için odata
İstekler uzak servise ulaşır
| Belirti | Çözüm |
|---|---|
| Destination listede görünüyor ama uygulama bulamıyor | cds.requires ve xs-app.json rotalarındaki adı Cockpit'tekiyle karakter karakter, büyük/küçük harf dahil karşılaştırın |
| Yerelde çalışıyor, dağıtımdan sonra başarısız | [production] profilinin destination kimlik bilgilerini gerçekten tuttuğunu ve uygulamanın Destination ile XSUAA'ya bağlı olduğunu kontrol edin |
| Uzak OData V2 servisi hata döndürüyor | V2 servis için kind değerini odata-v2, V4 için odata yapın. İki taraf da izin veriyorsa V4 kullanın |
| Bir UI5 uygulaması V2 istiyor ama CAP servisiniz V4 | @cap-js-community/odata-v2-adapter eklentisini ekleyin. Eski @sap/cds-odata-v2-adapter-proxy kullanımdan kaldırılmıştır (deprecated) |
| Geçerli kimlik bilgileriyle kimlik doğrulama başarısız | OAuth2ClientCredentials ya da BasicAuthentication ile başlayın. SAML ya da principal propagation'ı yalnızca senaryo gerektiriyorsa kullanın |
| Hedefe hiç ulaşılabildiğinden emin değilsiniz | Uygulamada hata ayıklamadan önce Cockpit'te destination üzerinde “Check Connection” kullanın |
Bunu iyi yöneten ekipler, uygulama başına kısa bir destination kontrol listesi tutar. Kurulum karmaşık olduğu için değil. Ad, bağlama ya da OData türü hakkında yapılan tek bir yanlış varsayım sessizce başarısız olduğu ve bulunması önlenmesinden çok daha uzun sürdüğü için.
SAP BTP Cockpit bir şey bozulduğunda çok az geri bildirim verir. Hata ayıklamanın çoğu deneme yanılmayla yürür. Kalıpları bilmek saatlerinizi kurtarır.
Dün çalışan bir CAP uygulaması şimdi takılıyor. Hata yok. Cockpit çalışıyor gösteriyor. Yeniden başlatıyorsunuz. Değişen bir şey yok.
Önce veritabanına bakın. SAP'nin kendi HANA Cloud trial eğitimi, free-tier örneklerinin her gece durdurulduğunu ve çalıştığınız her gün yeniden başlatılması gerektiğini söylüyor. Trial hesabın kendisi düzenli giriş yaparsanız 90 güne kadar sürer. Uygulamanız sağlam. Veritabanı uyuyor.
Yardımcı olanlar:
- Kodda hata ayıklamaya başlamadan önce HANA Cloud örneğini SAP HANA Cloud Central'dan yeniden başlatın.
- Bellek ve servis kullanımını görmek için CLI'yı (
cf apps,cf services) kullanın. Cockpit arayüzü çok daha azını gösterir. - Yenilerini oluşturmadan önce kullanılmayan servis örneklerini silin. Trial kotaları yalnızca tek bir uygulamaya değil, tüm hesaba uygulanır.
- Demo ve test iş yüklerini ayrı subaccount'larda tutun.
Birden fazla uygulama ve veritabanının güvenilir biçimde çalışmasına ya da demolar için kararlı çalışma süresine ihtiyacınız varsa, productive bir hesaba geçin. Productive hesaptaki free-tier planları işinizi kaybetmeden ücretliye yükseltilebilir; trial hesapta bu mümkün değildir.
Kimlik bilgileri doğru görünse bile SAP BTP servis anahtarıyla neden 401 hatası alıyorum?
Neredeyse her zaman kimlik bilgileri değil, OAuth isteği sorunludur. Olağan nedenler yanlış grant type (teknik erişim için client_credentials kullanın), servis anahtarıyla eşleşmeyen bir token URL'si ya da token çağrısındaki yanlış başlıklardır.
Bir token alıyorsanız ve API yine de reddediyorsa, token'ı çözün. aud claim'inin API ile eşleştiğini ve scope'ları kontrol edin. Client credentials ile scope'lar servis örneğine verilen yetkilerden gelir; eksik rolleri örnek parametrelerinde düzeltin.
BTP Cockpit'te Integration Suite açılırken Internal Server Error'a ne yol açar?
En sık eksik rol koleksiyonları ya da eskimiş bir oturum. Kullanıcınızda Integration_Provisioner ve ihtiyaç duyduğunuz PI_ rol koleksiyonlarının bulunduğundan emin olun. Ardından tüm BTP sekmelerini kapatın, çıkış yapın ve yeniden girin; yeni roller yalnızca yeni bir girişten sonra geçerli olur.
Sürerse BTP alan adları için çerezleri temizleyin ve tek bir Cockpit oturumunda kalın. Aynı subaccount üzerinde birden fazla sekme aynı hatayı tetikler.
CAP uygulamam Cockpit'te doğru görünen bir destination'a neden bağlanamıyor?
Genellikle bir ad uyuşmazlığı. cds.requires ve xs-app.json rotalarınızdaki destination adı, büyük/küçük harf dahil Cockpit'tekiyle tam olarak eşleşmelidir.
Ad doğruysa, uygulamanın hem Destination servisine hem de XSUAA'ya bağlı olduğunu, [production] profilinin kimlik bilgilerini taşıdığını ve kind değerinin uzak servisle uyumlu olduğunu kontrol edin: V2 için odata-v2, V4 için odata. Hedefe ulaşılabildiğini doğrulamak için Cockpit'te “Check Connection” kullanın.
SAP BTP trial uygulamam neden bir gecede çalışmayı bırakıyor?
Trial ve free-tier planlarında SAP HANA Cloud örnekleri kaynak tasarrufu için her gece durdurulur. Uygulamanız çalışmaya devam eder ama veritabanına ulaşamaz. Çalışmadan önce her gün örneği SAP HANA Cloud Central'dan yeniden başlatın.
Trial kotalarını Cockpit'te görmek zor olduğu için bellek ve servis kullanımını kontrol etmek üzere cf apps ve cf services kullanın. Yenilerini oluşturmadan önce kullanılmayan örnekleri silin.
Booster'lar ve tile'lar içindeki bağlantılar neden boş sayfalara gidiyor?
Booster bağlantıları, booster çalıştıktan sonra subaccount yapısı değişince bozulur. Yönlendirme artık var olmayan ya da hiç tam yapılandırılmamış bir konuma işaret eder.
Bunun yerine Cockpit ağacı üzerinden gezinin ve Integration Suite, destination'lar ve SAP Build Work Zone için doğrudan URL'leri yer imine ekleyin. Her gün kullandığınız hiçbir şey için booster'ın ürettiği gezinmeye güvenmeyin.
BTP trial hesabından ücretli plana ne zaman geçmeliyim?
Sınırlar size zaman kaybettirmeye başladığında. Birden fazla uygulama ya da veritabanı çalıştırıyorsanız ya da demolar veya testler için kararlı çalışma süresi gerekiyorsa, trial kazandırdığından çok sürtünme yaratır.
Asıl kazanımlar yeni özellikler değil, kararlılık ve daha net kaynak görünürlüğüdür. Free-tier planlı bir productive hesap iyi bir ara adımdır: bu planları sonradan hiçbir şeyi yeniden kurmadan ücretliye yükseltebilirsiniz.
Sonraki adım
Şu anda bir ERP programı mı yürütüyorsunuz?
Bu makale şu anda içinde olduğunuz bir programa dokunduysa, 30 dakikalık bir görüşme genellikle bir hafta daha süren iç analizden daha fazla yol aldırır.




