13 Nisan 2026
TROIA callService() Nasıl Çalışır? Session, Parameters ve Response Mantığı
TROIA Web Service tarafında gerçek iş, login değil callService() sırasında yapılır. SessionId/SecurityKey disiplininden XML parametre kurgusuna ve CaniasResponse okumasına kadar sahada en çok karışan noktaları netleştiren teknik bir saha notu.
Yazar: Fatih Görgülü
login() sadece oturum açar. Asıl trafik, callService() ile başlar. Bu yüzden sahada yaşanan sorunların büyük kısmı SessionId/SecurityKey yönetimi, yanlış Parameters XML veya CaniasResponse okuma hatalarından gelir.
callService() neden merkezde?
callService(), kayıtlı bir TROIA sınıf metodunu çalıştırır ve CaniasResponse döner. Burada amaç: doğru ServiceId ile doğru parametreleri, doğru sırayla taşıyabilmek.
- SessionId: login dönüşünde gelen oturum kimliği, her çağrıda taşınmalıdır.
- SecurityKey: başarılı login sonrası alınan güvenlik anahtarı; çağrının doğrulanması için zorunludur.
- ServiceId: çalıştırılacak TROIA metodunu seçer.
- Parameters: XML string payload; parametrelerin tamamı burada taşınır.
- Compressed: parametrelerin sıkıştırılıp sıkıştırılmadığını belirtir.
- Permanent: transaction kapanış davranışını etkiler.
- ExtraVariables: response içinde geri istenen değişkenler.
- RequestId: çağrı eşleme için basit bir kimlik.
Parameters XML nasıl düşünülmeli?
Parameters alanı tek bir XML string'dir. Basit tipler doğrudan <PARAM> içinde taşınır. Özel karakterlerde CDATA, base64 için encoding="base64" tercih edilir.
- Varsayılan encoding plain’dir.
- base64 kullanıldığında değer UTF-8’e çözülür.
- Özel karakter içeren alanlarda CDATA güvenli bir yoldur.
Table ve vector parametreleri
Table veya vector taşımak için TYPE attribute eklemek gerekir. Aksi halde sunucu parametreyi primitive kabul eder.
- TYPE="TABLE": satır/kolon yapısı ile tablo gönderilir.
- TYPE="VECTOR": name/type/value kombinasyonları ile vektör taşınır.
- XML hiyerarşisi bozulursa parse başarısız olur.
CaniasResponse nasıl okunur?
callService() dönüşü tek bir string değildir. CaniasResponse içinde Response, SYSStatus, Messages ve ExtraVariables birlikte değerlendirilmelidir.
- Response (StringResponse): Value + Compressed flag içerir.
- SYSStatus / SYSStatusError: TROIA tarafındaki son durum değerleri.
- Messages: çalışma sırasında oluşan TROIA mesajları (XML).
- ExtraVariables: talep edilen değişkenler (XML).
- RequestId: çağrı eşleme için geri döner.
Sahada en sık karışan noktalar
- SessionId ve SecurityKey’in her çağrıda taşınmaması.
- ServiceId’nin yanlış veya eksik olması.
- Parameters XML’de type/encoding hataları.
- Compressed flag’ine rağmen response’u açmamak.
- Messages/ExtraVariables alanlarını okumadan hata ayıklamaya çalışmak.
İlgili okumalar
TROIA Web Service rehberi, Encryption & compression notları, Canias ERP ana sayfa.
Canias cluster içinde
Bu yazı Canias, go-live, steering veya fit-gap hattının bir parçası. Landing ve rehberlerle birlikte okunduğunda daha güçlü bir karar çerçevesi verir.
İlgili yazılar
TROIA Web Service’te Encryption ve Compression Neden Sık Karışır?
TROIA Web Service’te şifreleme ve sıkıştırma çoğu zaman aynı şey sanılır. Oysa encryption bir güvenlik seçimi, compression ise boyut optimizasyonudur. Bu teknik not, iki kavramı sahadaki karışıklıklarıyla birlikte netleştirir.
Oku →Canias Fit-Gap: Proje Daha Başlamadan Nerede Sapar?
Fit-gap yalnızca ihtiyaç toplama değildir. Canias projelerinde hangi standardın kabul edildiğini, hangi sapmanın karar istediğini ve hangi veri/süreç gerçeğiyle ilerleyeceğimizi netleştirir. Zayıf fit-gap, daha tasarım başlamadan projeyi sessizce saptırır.
Oku →Canias Go-Live: Canlı Geçişte Asıl Risk Nerede Başlar?
Canias go-live yalnızca sistemin açıldığı gün değildir. Veri, sahiplik, kullanıcı alışkanlığı ve yönetim görünürlüğü aynı anda sınanır. Bu saha notu, kırılan yerleri ve geçiş disiplinini netleştirir.
Oku →