VAKA · 30.08.2026 · CANIAS ERP 9.03 · TROIA
Müşteri "şu hesap ekranına bir düğme koyalım, bakiyeyi getirsin" dedi. Klasik yolda bu iş IDE demek, VPN demek, lisans demek, sırada beklemek demek. Biz aynı işi baştan Çevir Kaydet'e kadar Canias'ın kendi web servisleriyle yaptık — veritabanına bir kez bile doğrudan bağlanmadan.
ADIMLAR
HER ADIM CANIAS SERVİS KATMANINDAN · DOĞRUDAN VERİTABANI BAĞLANTISI YOK
İlk adım tesadüf değil: nesne IDE'de açıkken dışarıdan yazılan kod, IDE o sekmeyi kapatınca üzerine yazılır ve kaybolur. Kilitliyken yazma yapılmaz.
Yazan her komutun bir deneme modu var: komut gerçekten çalışır, kaç satırı etkilediği ölçülür, sonra geri alınır. "Yaz" denmedikçe hiçbir şey kalıcı değil.
DANIŞMAN NE GÖRÜYOR
Aşağıdaki iki çizim ekran görüntüsü değil. Ekranın kendi tanımından — her kontrolün konumu, ölçüsü ve etiketi veritabanındaki metadata'dan — üretildi. Danışman düğmenin nereye oturacağını hiçbir şey yapmadan önce görüyor.
ÖNCE — FINT01F002 · STANDART, IAS
IAS'ın yazdığı ekran. Hiç dokunulmadı.
SONRA — PRTFINT01F002 · INHERIT, PRT
121 miras + 1 kendi. Turuncu çerçeve, eklenen tek kontrol.
Etiketler uydurma değil: düz metin olanlar olduğu gibi, {D} işaretli
olanlar domain zincirinden çözülüyor. 121 kontrolün 116'sının Türkçe başlığı bu yolla bulundu.
Gerçek ekrandaki … ile kesilmiş etiketler de eksik çeviri değil — kontrol dar.
SONUÇ
GELİŞTİRME EKRANI · INHERIT EDİLMİŞ NESNEDE
IDE yalnızca sonucu doğrulamak için açıldı; geliştirme burada yapılmadı.
TEST ORTAMI · ÇALIŞIRKEN
Aynı anda prodda bu düğme yoktu. Devreye alma iş veritabanında yaşıyor.
EKRANIN TAMAMI · TEST ORTAMI
NEDEN GÜVENLİ
Her adım Canias'ın kendi servis katmanından geçiyor. Servis, sahibi olmadığınız bir nesneye yazmayı reddediyor — bu kural bizim değil, Canias'ın kendi kodundan geliyor.
Ekran inherit ediliyor, taban olduğu gibi kalıyor. Sürüm güncellemesi geldiğinde ezilecek bir özelleştirme yok.
Devreye alma iş veritabanında yaşıyor. Testte denenen şey prodda kendiliğinden belirmiyor; bu bir kaza değil, mimarinin kendisi.
Deneme modu komutu gerçekten çalıştırıp etkisini sayar, sonra geri alır. Prodda ne olacağını önceden biliyoruz.
YOL BOYUNCA
Bunları yazıyoruz çünkü işin zor tarafı düğmeyi koymak değil, düğmenin neden görünmediğini bilmek. Üçü de artık koda gömüldü.
Inherit edilen nesneye önce uydurma bir ad verdik. Sistemdeki gerçek örneklere bakınca desen çıktı: müşteri öneki + orijinal ad. Uydurma ad bugün çalışır, iki yıl sonra kimse hangi standardın türevi olduğunu bulamaz. Yanlış adlı nesne silindi.
Düğme eklendi, derlendi, aktive edildi — ve çalışma zamanında görünmedi. Sebep dört
kolonun NULL kalmasıydı. Tuzağın asıl yeri şu: IDE tasarımcısı NULL
kontrolü yine de çiziyor, runner çizmiyor. IDE'ye bakıp "duruyor işte" derseniz
yanılırsınız. 261.748 kontrolün yalnızca 547'sinde bu var; yani anomali.
Inherit etmek yetmiyor. Canias'a "bundan sonra bu ekran çağrıldığında türevini aç" demek gerekiyor. O kayıt olmadan sistem standart ekranı açmaya devam ediyor ve hiçbir hata vermiyor.
DÜRÜST SINIR
Çizim bir tel kafes, ekran görüntüsü değil. Yazı tipi, ikon ve tema metadata'da yok; görünüm Canias runner'ının temasından geliyor. Amacı şu: müşteri "buraya bir düğme" dediğinde derlemeden önce yerini görmek.
Bir de tersi doğru: IDE'de görünmeyen şeyleri bu çizim gösteriyor. Gizli kontroller, üst üste binmiş katmanlar, ekran sınırının dışına taşmış alanlar — hepsi metadata'da duruyor ve tel kafeste görünüyor.
Paketleri gör →