İçindekiler
  1. Hata gövdede, HTTP'de değil
  2. Dış kod sebebi gizler
  3. Sebep iç kayıtta
  4. Belge kimliği başarı değildir
  5. Hata metnini kırpmayın
  6. Sık sorulan sorular
Kısa cevap

Digital Planet'te hata sebebi dış hata kodundan okunamaz; aynı kod birbirinden bağımsız sebepler için döndü. Gerçek sebep, yanıtın içindeki belge durum kaydındaki açıklamada yazar. Belge numarası boşsa belge oluşmamıştır; sağlayıcının belge kimliğini geri yansıtması başarı anlamına gelmez.

Hata gövdede, HTTP'de değil

Digital Planet'in her yanıtı HTTP olarak başarılı döner. Karar, yanıt gövdesindeki sonuç alanı ve hata koduyla verilir. Bu, web servislerinde sık görülen bir tasarımdır ama beklenmedik sonuçlar doğurur: yalnızca HTTP başarısına bakan bir istemci, reddedilen belgeyi gönderilmiş sanabilir.

Benzer bir tuzak oturumda da vardır. Hatalı kimlik bilgisi bir hata değil, boş bir oturum anahtarı döndürür. Anahtar boşsa işlem başarısız sayılmalı ve ağ çağrısı yapılmadan operatöre bildirilmelidir.

Dış kod sebebi gizler

Hata durumunda yanıtta bir dış hata kodu ve kısa bir açıklama gelir. Ancak dış kod genel bir sınıftır: aynı kod, test hesabımızda üç ayrı durumda döndü. Belge tarihi ileri olduğunda, hesabın belge kesmeye aktif olmadığı bildirildiğinde ve alıcı uyumsuzluğunda aynı sonuç alındı.

Sonuç açıktır: dış koda bakarak sebep tahmin etmek, yanlış kişiye yanlış talep yazdırır. Biz de ilk turda sebebi hesapta aktivasyon eksikliği sandık; asıl sebep başka bir katmandaydı. Bir hata mesajına dayanarak sağlayıcıya talep yazmadan önce iç kaydı okumak gerekir.

Sebep iç kayıtta

Gönderim yanıtı, içinde belge listesi taşır. Listedeki her belgenin kendi durum kodu ve açıklaması vardır. Reddedilen belgede sebep burada yazar. Test hesabımızda bu kayıt, gönderici birim yetkisinin bulunmadığını açıkça söyledi; dış kod ise yalnızca hesabın aktif olmadığını bildiriyordu.

Hata nerede okunur?
KatmanNe söylerGüvenilir mi?
HTTP durumuHer zaman başarılıHayır
Dış hata koduGenel sınıfSebep için hayır
İç belge durum kaydıBelgeye özgü sebepEvet

Hesap tarafındaki bu sebebin ayrıntısı hesap ve gönderen etiketi yazısında. STEQAR bu yüzden hata mesajını doğrudan sunucunun açıklamasından alır ve dış kodu yalnızca bilgi olarak saklar; karar vermek için kullanmaz.

Belge kimliği başarı değildir

İkinci tuzak daha sinsidir. Sunucu, reddettiği bir belgenin kimliğini de iç kayıtta geri yansıtabilir. Bu kimlik, bizim gönderdiğimiz belge kimliğidir; kayıt oluşmuş gibi görünür. Oysa sağlayıcının atadığı belge numarası boştur.

Bu nedenle başarı ölçütü iki parçalıdır: sorgunun kendisi başarılı olmalı ve sağlayıcı belgeye bir numara atamış olmalıdır. Kimlik yansıması tek başına kanıt sayılmaz. Gönderim ve numaralandırma sürecinin tamamı gönderim akışı yazısında anlatılıyor.

Hata metnini kırpmayın

Küçük ama pahalı bir ders de kayıt tutmayla ilgilidir. Hata açıklamasını kısa tutmak için kırptığımızda, firma kısa kodunun son harfleri kayboldu ve kodun yanlış yazıldığı sanıldı. Sunucu kodu eksiksiz yazıyordu; yanlış olan kırpılmış kayıttı. Hata metni, özet çıkarılmadan, bütün hâliyle saklanmalıdır.

Genel hata çerçevesi için e-irsaliye durumları ve hata çözümleri yazısına bakabilirsiniz. Hazırlık durumunun bütünü merkez yazıda; demo için iletişim sayfası açıktır, demo ücretsizdir.

Sık sorulan sorular

Digital Planet hata verdiğinde HTTP durumuna bakılır mı?

Hayır. Her yanıt HTTP olarak başarılı döner; hata, yanıt gövdesindeki sonuç alanında bildirilir. Yalnızca HTTP başarısına güvenen bir program hatayı hiç görmez.

Aynı hata kodu neden farklı sebepleri anlatıyor?

Dış hata kodu genel bir sınıf bildirir. Test hesabımızda aynı kod; ileri tarihli belge, hesabın belge kesmeye aktif olmaması ve alıcı uyumsuzluğu için döndü. Sebep, yanıtın içindeki belge durum kaydında yazar.

Belge kimliği yanıtta görünüyorsa belge kabul edilmiş midir?

Hayır. Sağlayıcı, reddettiği belgenin kimliğini de iç kayıtta geri yansıtabilir. Belge numarası boşsa belge oluşmamıştır. Başarı ölçütü, sorgunun başarılı olması ve sağlayıcının bir belge numarası atamasıdır.

Belge bulunamadı ile geçersiz parametre nasıl ayırt edilir?

Kodla ayırt edilemez; ikisi de aynı hata kodunu döndürdü. Bu yüzden belge sorgusunda parametre adları sözleşmeye birebir uymalıdır; yanlış adla yapılan sorgu, belge yokmuş gibi görünebilir.

Hatalı kimlik bilgisi nasıl bir yanıt verir?

Hata kodu ya da açıklama gelmez; oturum anahtarı boş döner. Bu yüzden boş anahtar başarısız sayılır ve ağ çağrısı yapılmadan operatöre bildirilir.

STEQAR, SCP Bilişim ve Otomasyon Sistemleri'nin geliştirdiği kantar programıdır; Türkiye genelinde uzaktan kurulum ve destek verir.

Kendi kantarınızda görün

Bir tartımı birlikte yapalım.

Kantarınızın akışını birlikte inceleyelim; kurulum ve destek Türkiye genelinde uzaktan verilir.