← Kanaldaki Canias Danışmanı

VAKA · 30.08.2026 · CANIAS ERP 9.03 · TROIA

Ekrana düğme,
IDE'ye hiç bağlanmadan.

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

Altı servis çağrısı

HER ADIM CANIAS SERVİS KATMANINDAN · DOĞRUDAN VERİTABANI BAĞLANTISI YOK

ReadQuerykilit var mı?0 — temiz RunSqlekranı inherit etPRTFINT01F002 ← FINT01F002 AddControldüğmeyi ekle659 378 168 22 RunSqltıklama kodunu yazevent=2 · 860 bayt ConvertDialogderle32 miras + 1 kendi ActivateObjectdevreye alyalnızca test ortamı

İ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

Derlemeden önce çizilen ekran

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

Hesap Detayı — FINT01F002 842 x 595 nokta · 112 gorunur · 9 gizli · taban: BASEFORM002L (1 miras, 120 kendi) tablo: IASACCOUNT (PROTECH903) · 82 etiket domainden · 34 etiket ekrana ozel Bayraklar Proje, Maliyet Nesnesi, Maliyet Merkezi Hesap Türü Nakit Akış Kredi Bilgisi Maliyetlendirme Finansal Eşleştirme ve Kur Değerleme IASACCOUNTCOSTCENTER Damga Vergisi Bilgisi KDV Bilgisi Üst Hesaplar Açiklama Kur Değerleme İşl. Bakiye Mutabakatı Bu hesap için sadece seçilen para birimi kullanilsin Farkli Vade Tarihine Izin Verilsin Ayni Hesap Için Satirlari Birlestir? Bütçede Kullaniliyor? Bütçe kontrolü var mi? Damga Vergisi Hesabı -FL*#,###,##0.0000 Öndeger Üst Hesap RadioGroup1 Nakit Akis Deger Tipi Nakit Akis Tarih Tipi Nakit Akışı Kullanımında Esl. Isleminde(FINT22) Toplu Esl. Isl.(FINT21) Kur Degerleme(FINT76-FINT77) Hesap No L0##################### Fiili Maliyet Hesaplama Tipi Maliyet Hesap Grubu Mlyt. Statüsü Islem Yönü Türü Bakiye Yönü Türü Enf. Hes. Tipi Tarih Kontrol Kodu Ertelenmis Vergi Tipi(Türk Ticar… Ana Hesap T.D. Hes.No KDV Belgesi Sabit KDV Anahtarı Stok Import Proje mi? Demirbas Hesabi? Entertainment Account Kasa? Corporate Car Konsolidasyon Hesabi? Firma, Muh.Std. Hes. Tipi Açiklama P. Br. Proje Giris Zorunlulugu Maliyet Nes. Giris Zorun… Maliyet Merkezi Girisi Nakit Akis Deger Tipi Nakit Akış Tarih Tipi Nakit Akış Tipi (FRMT12) Fin.Eşleştirme (FINT22) Toplu Fin.Eşleş. (FINT21) Kur Değerleme(FINT76-FIN… Bütçe Üst Hesap KDV Anah. KDV Anah. KDV Tipi Kredi Limiti Damga Vergisi Orani Öndeger Üst Hesap Üst Hesap Dog.Günc.Hes. Üst Hesap Hesap Sınıfı Grubu Proje Kodu Maliyet Elemani Ka… Mly.Nesnesi Fiili Maliyet Hesa… Maliyet Hesap Grubu Mlyt. Statüsü Mutabakat Aktif? Islem Yönü Türü Bakiye Yönü Türü Enf. Hes. Tipi Tarih Kontrol Kodu Ertelenmis Vergi T… Hes. Tipi Proje Giris Zorun… Maliyet Nes. Giri… Maliyet Merkezi G… Kredi Limiti Yönü Muh. Std. Kur Çevrim Metodu Silindi IASACCOUNT_LEVEL… Kons. Grup Firma… date LABEL8 -FL*#,###,###,#… Mly.Merk. Hes. Sin. Hes. Grp. Kons. Grup … Hes. Ti… P. Br. Firma Hes. T… MM T… Kontrol turleri 1 dugme (2) 2 giris (26) 3 etiket (32) 5 onay (19) 7 liste (18) 8 grup (13) 9 tablo (1) 22 gomulu (1) SYSCONTROLS geometrisi + zorder · etiketler SYSCTLTEXTS + {D} ise SYSFIELDS/SYSDOMAINSTXT zincirinden · tel kafes

IAS'ın yazdığı ekran. Hiç dokunulmadı.

SONRA — PRTFINT01F002 · INHERIT, PRT

PRTFINT01F002 842 x 595 nokta · 113 gorunur · 9 gizli · taban: FINT01F002 (121 miras, 1 kendi) tablo: IASACCOUNT (PROTECH903) · 82 etiket domainden · 35 etiket ekrana ozel Bayraklar Proje, Maliyet Nesnesi, Maliyet Merkezi Hesap Türü Nakit Akış Kredi Bilgisi Maliyetlendirme Finansal Eşleştirme ve Kur Değerleme IASACCOUNTCOSTCENTER Damga Vergisi Bilgisi KDV Bilgisi Üst Hesaplar Açiklama Kur Değerleme İşl. Bakiye Mutabakatı Bu hesap için sadece seçilen para birimi kullanilsin Bakiye Getir Farkli Vade Tarihine Izin Verilsin Ayni Hesap Için Satirlari Birlestir? Bütçede Kullaniliyor? Bütçe kontrolü var mi? Damga Vergisi Hesabı -FL*#,###,##0.0000 Öndeger Üst Hesap RadioGroup1 Nakit Akis Deger Tipi Nakit Akis Tarih Tipi Nakit Akışı Kullanımında Esl. Isleminde(FINT22) Toplu Esl. Isl.(FINT21) Kur Degerleme(FINT76-FINT77) Hesap No L0##################### Fiili Maliyet Hesaplama Tipi Maliyet Hesap Grubu Mlyt. Statüsü Islem Yönü Türü Bakiye Yönü Türü Enf. Hes. Tipi Tarih Kontrol Kodu Ertelenmis Vergi Tipi(Türk Ticar… Ana Hesap T.D. Hes.No KDV Belgesi Sabit KDV Anahtarı Stok Import Proje mi? Demirbas Hesabi? Entertainment Account Kasa? Corporate Car Konsolidasyon Hesabi? Firma, Muh.Std. Hes. Tipi Açiklama P. Br. Proje Giris Zorunlulugu Maliyet Nes. Giris Zorun… Maliyet Merkezi Girisi Nakit Akis Deger Tipi Nakit Akış Tarih Tipi Nakit Akış Tipi (FRMT12) Fin.Eşleştirme (FINT22) Toplu Fin.Eşleş. (FINT21) Kur Değerleme(FINT76-FIN… Bütçe Üst Hesap KDV Anah. KDV Anah. KDV Tipi Kredi Limiti Damga Vergisi Orani Öndeger Üst Hesap Üst Hesap Dog.Günc.Hes. Üst Hesap Hesap Sınıfı Grubu Proje Kodu Maliyet Elemani Ka… Mly.Nesnesi Fiili Maliyet Hesa… Maliyet Hesap Grubu Mlyt. Statüsü Mutabakat Aktif? Islem Yönü Türü Bakiye Yönü Türü Enf. Hes. Tipi Tarih Kontrol Kodu Ertelenmis Vergi T… Hes. Tipi Proje Giris Zorun… Maliyet Nes. Giri… Maliyet Merkezi G… Kredi Limiti Yönü Muh. Std. Kur Çevrim Metodu Silindi IASACCOUNT_LEVEL… Kons. Grup Firma… date LABEL8 -FL*#,###,###,#… Mly.Merk. Hes. Sin. Hes. Grp. Kons. Grup … Hes. Ti… P. Br. Firma Hes. T… MM T… Kontrol turleri 1 dugme (3) 2 giris (26) 3 etiket (32) 5 onay (19) 7 liste (18) 8 grup (13) 9 tablo (1) 22 gomulu (1) SYSCONTROLS geometrisi + zorder · etiketler SYSCTLTEXTS + {D} ise SYSFIELDS/SYSDOMAINSTXT zincirinden · tel kafes

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Ç

Aynı düğme, iki yerde

GELİŞTİRME EKRANI · INHERIT EDİLMİŞ NESNEDE

TROIA IDE, PRTFINT01F002 içinde Bakiye Getir düğmesi

IDE yalnızca sonucu doğrulamak için açıldı; geliştirme burada yapılmadı.

TEST ORTAMI · ÇALIŞIRKEN

Test ortamında çalışan Bakiye Getir düğmesi

Aynı anda prodda bu düğme yoktu. Devreye alma iş veritabanında yaşıyor.

EKRANIN TAMAMI · TEST ORTAMI

Hesap Planı ekranının tamamı, Bakiye Getir düğmesiyle

NEDEN GÜVENLİ

Dört ayrı koruma

Veritabanına doğrudan bağlanılmıyor

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.

Standart nesne değişmiyor

Ekran inherit ediliyor, taban olduğu gibi kalıyor. Sürüm güncellemesi geldiğinde ezilecek bir özelleştirme yok.

Ortamlar birbirinden bağımsız

Devreye alma iş veritabanında yaşıyor. Testte denenen şey prodda kendiliğinden belirmiyor; bu bir kaza değil, mimarinin kendisi.

Her komut önce ölçülüyor

Deneme modu komutu gerçekten çalıştırıp etkisini sayar, sonra geri alır. Prodda ne olacağını önceden biliyoruz.

YOL BOYUNCA

Üç tuzağa düştük

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ü.

İsim uydurmak

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.

Görünürlük bayraklarını boş bırakmak

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.

Aktivasyonu unutmak

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

Bu bir IDE değil

Ç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