AIFA AKADEMI · Kurumsal Wiki
4.330 makale
Ana sayfa Kurumsal Wiki › Hata Bilgi Bankası › EKB-POTANSIYEL

Potansiyel Hatalar

ERROR_KBERPGOLD_COREACTIVEAIFASOFT_INTERNALGENERATED_PROPOSAL
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Kod ve veritabanı analizinde bulunan, henüz gözlemlenmemiş 140 hata noktası (Gözlemlendi: HAYIR).

Künye (front-matter) · EKB-POTANSIYEL · reality [SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL]
idEKB-POTANSIYEL
titlePotansiyel Hatalar
entity_typeERROR_KB
moduleMOD-KALITE
audience[SUPPORT, DEVELOPER, QA]
confidentialityAIFASOFT_INTERNAL
product_scopeERPGOLD_CORE
customer_scopeALL
reality[SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL]
lifecycleACTIVE
confidenceMEDIUM
version_fromVERSION_UNKNOWN
version_to-
created_at2026-09-13
last_verified2026-09-13
source_hashes[]
sources[DOCUMENT:ERPGOLD_ERROR_MASTER.xlsx, DOCUMENT:ERPGOLD_HATA_KOK_NEDEN_BILGI_BANKASI.md, SRC-TKT-ERP, SOURCE_CODE:ERPPRO, DB_CATALOG:INST-ERPGOLDV2]
aliases[Potansiyel Hatalar]
tags[error-kb]
wiki_versionv1.5
source_packageERPGOLD_HATA_BILGI_BANKASI_v1 / Wiki_23_Hata_Bilgi_Bankasi
severityS1–S4 (kayıt bazında)
runtime_statusNOT_REPRODUCED — statik analiz; Gözlemlendi: HAYIR

Potansiyel hatalar (140). Kod ve veritabanı analizinde bulunan, henüz gözlemlenmemiş hata noktaları (transaction eksikliği, eksik nesne/kolon, guard yokluğu, konfigürasyon). Etiket: POTANSİYEL · her kayıtta Gözlemlendi: HAYIR. Müşteriye "bilinen hata" olarak sunulmaz; önce yeniden üretilir.

Özet

Kayıt140
Gözlemlendi: EVET / HAYIR0 / 140
SeverityS1 14 · S2 54 · S3 59 · S4 13
Çözümü bilinen0
DurumAÇIK 140

Modül dağılımı

ModülKayıtS1S2S3S4
MOD-VERİTABANI70516409
MOD-KOD-KALİTESİ49928120
MOD-EFATURA80800
MOD-CARI50032
MOD-SISTEM40202
MOD-RAPOR30030
MOD-SIPARIS10010

Hata kategorisi dağılımı

KategoriKayıt
E02 — SQL Server Hatası59
E01 — Uygulama / Kod Exception21
E06 — Algoritma Hatası14
E07 — Finansal Hesaplama Hatası12
E11 — Kullanıcı / Yetki Hatası6
E09 — Konfigürasyon Hatası6
E05 — Transaction Hatası5
E04 — Trigger / Dependency Hatası4
E08 — Yuvarlama / Hassasiyet Hatası3
E17 — Eski Veri / Legacy Problemi2
E15 — Duplicate / Çift İşlem2
E19 — Raporlama Hatası2
E03 — Veri Bütünlüğü Hatası2
E14 — UI / İş Akışı Hatası1
E13 — Performans / Timeout / Deadlock1

Kayıtlar

POTANSİYEL ERR-POT-001TD-01 — Çok adımlı işlemlerde transaction yok S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE05 — Transaction Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — fatura başlığı yazılıp `FaturaYaz` çalışmayabilir; işlem yazılıp `RsAktar` yapılmayabilir; karşı hesap kaydı düşerse bakiye hareketi tek taraflı kalır; kopyalama yarım kalır.
Kod dosyası`ERPPRO/Class/Dao/Cari.Fatura.vb:229-230,313-317`; `ERPPRO/Class/Dao/Islem/Cari.Islem.vb:695-696,989`; `ERPPRO/Controls/Islem Ekranı/Ekran/iFormBase.vb:218-241,242-264`; `ERPPRO/Class/Module/Devir.vb:76-87,128`; `ERPPRO/Class/Ext/Siparis.ReceteEx.vb:61-68`; `Siparis.SiparisEx.vb:47-54`; `ERPPRO/Clas
Kök nedenÇok adımlı işlemlerde transaction yok — VB — fatura başlığı yazılıp `FaturaYaz` çalışmayabilir; işlem yazılıp `RsAktar` yapılmayabilir; karşı hesap kaydı düşerse bakiye hareketi tek taraflı kalır; kopyalama yarım kalır.
Neden zinciriTeknik olay: VB — fatura başlığı yazılıp `FaturaYaz` çalışmayabilir; işlem yazılıp `RsAktar` yapılmayabilir; karşı hesap kaydı düşerse bakiye hareketi tek taraflı ↓ Kök neden: Çok adımlı işlemlerde transaction yok ↓ Kanıt: `grep -rn "SqlTransaction|TransactionScope|BeginTransaction|BEGIN TRAN"` → yalnız `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1
Etkilenen veri`ERPPRO/Class/Dao/Cari.Fatura.vb:229-230,313-317`; `ERPPRO/Class/Dao/Islem/Cari.Islem.vb:695-696,989`; `ERPPRO/Controls/Islem Ekranı/Ekran/iFormBase.vb:218-241,242-264`; `ERPPRO/Class/Module/Devir.vb:76-87,128`; `ERPPRO/Class/Ext/Siparis.ReceteEx.vb:61-68`; `Siparis.SiparisEx.vb:47-54`; `ERPPRO/Clas
Olasılık / etki / güvenYÜKSEK / S1 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `Save` zincirlerini tek `SqlConnection` + `SqlTransaction` (veya `TransactionScope`) altında toplayan bir "birim iş" sarmalayıcısı; SP'leri (`FaturaYaz`, `RsAktar`) aynı transaction'da çağırmak; `SendTo` başarısızsa ilk kaydı geri almak.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Dao/Cari.Fatura.vb:229-230,313-317`; `ERPPRO/Class/Dao/Islem/Cari.Islem.vb:695-696,989`; `ERPPRO/Controls/Islem Ekranı/Ekran/iFormBase.vb:218-241,
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-01 · öncelik P1 · kanıt: `grep -rn "SqlTransaction|TransactionScope|BeginTransaction|BEGIN TRAN"` → yalnız `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1588-1992` (üretilmiş, çağıranı yok); scan `transaction=True` yalnız `TableAdapte
Wiki bağlantılarıTD-01
POTANSİYEL ERR-POT-002TD-02 — `Max(...)+1` ile numara üretimi (yarış koşulu) S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE17 — Eski Veri / Legacy Problemi
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — iki istemci aynı anda kaydederse aynı fiş/kod/fatura numarası üretilir; fiş numarası evrensel tek sayaç (`ERPGOLD-mimari-referans.md §10 soru 6`, AS-DOCUMENTED) olduğundan çok kullanıcılı/web senaryosunda kesin çakışma.
Kod dosyası`ERPPRO/Class/Ext/Cari.IslemEx.vb:256-260` (`GetNewFisNo`: `Select Max(FisNo) From Cari.Islemler` + 1), `:261-267` (`GetNewSiraNo`: `Cari.GetNewSiraNo(...)` + 1); `ERPPRO/Class/Dao/Stok.Model.vb:248`, `Stok.Pirlanta.vb:469`, `Class/Ext/Siparis.ModelEx.vb:52`, `Siparis.ParcaEx.vb:56` (`GetLastKodu`:
Kök neden`Max(...)+1` ile numara üretimi (yarış koşulu) — VB — iki istemci aynı anda kaydederse aynı fiş/kod/fatura numarası üretilir; fiş numarası evrensel tek sayaç (`ERPGOLD-mimari-referans.md §10 soru 6`, AS-DOCUMENTED) olduğundan çok kullanıcılı/web senaryosunda kesin çakışma.
Neden zinciriTeknik olay: VB — iki istemci aynı anda kaydederse aynı fiş/kod/fatura numarası üretilir; fiş numarası evrensel tek sayaç (`ERPGOLD-mimari-referans.md §10 soru 6`, ↓ Kök neden: `Max(...)+1` ile numara üretimi (yarış koşulu) ↓ Kanıt: Kilit/`UPDLOCK`/`SEQUENCE` yok; okuma ve yazma ayrı bağlantılarda (TD-01).
Etkilenen veri`ERPPRO/Class/Ext/Cari.IslemEx.vb:256-260` (`GetNewFisNo`: `Select Max(FisNo) From Cari.Islemler` + 1), `:261-267` (`GetNewSiraNo`: `Cari.GetNewSiraNo(...)` + 1); `ERPPRO/Class/Dao/Stok.Model.vb:248`, `Stok.Pirlanta.vb:469`, `Class/Ext/Siparis.ModelEx.vb:52`, `Siparis.ParcaEx.vb:56` (`GetLastKodu`:
Olasılık / etki / güvenYÜKSEK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): SQL `SEQUENCE` veya `Sistem.FaturaSiraNo` benzeri sayaç tablosunda `UPDATE … OUTPUT` ile atomik artırma; fatura serisi bazında ayrı sayaç; benzersiz indeks ile ikinci koruma.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Ext/Cari.IslemEx.vb:256-260` (`GetNewFisNo`: `Select Max(FisNo) From Cari.Islemler` + 1), `:261-267` (`GetNewSiraNo`: `Cari.GetNewSiraNo(...)` + 1
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-02 · öncelik P1 · kanıt: Kilit/`UPDLOCK`/`SEQUENCE` yok; okuma ve yazma ayrı bağlantılarda (TD-01).
İlişkili kayıtlarERR-POT-008, ERR-SIL-001, ERR-SIL-002, ERR-SIL-003, ERR-SIL-028, ERR-SIL-056, ERR-SIL-059
Wiki bağlantılarıTD-02 · TD-01
POTANSİYEL ERR-POT-003TD-03 — `Cari.AcceptTransaction` tetikleyicisinde cursor sızıntısı S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE05 — Transaction Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB, PF — cursor `GLOBAL` kapsamda ise bağlantı havuzuna dönen bağlantıda "A cursor with the name 'IslemCursor' already exists" ile sonraki tüm işlemler başarısız olur (AS-DOCUMENTED `§9-4`; kod yolu VERIFIED).
Kod dosyasıDB `Cari.AcceptTransaction` (TR, 29.862 karakter) — `DECLARE IslemCursor CURSOR` satır 72, `OPEN` 79; `RAISERROR … ROLLBACK … RETURN` satır 94-97 (şube pasif) ve 102-105 (e-döviz faturası gönderilmiş) — arada `CLOSE/DEALLOCATE` yok; normal kapanış 566-567 (`kb_src/db/modules_all.json`).
Kök neden`Cari.AcceptTransaction` tetikleyicisinde cursor sızıntısı — VB, PF — cursor `GLOBAL` kapsamda ise bağlantı havuzuna dönen bağlantıda "A cursor with the name 'IslemCursor' already exists" ile sonraki tüm işlemler başarısız olur (AS-DOCUMENTED `§9-4`; kod yolu VERIFIED).
Neden zinciriTeknik olay: VB, PF — cursor `GLOBAL` kapsamda ise bağlantı havuzuna dönen bağlantıda "A cursor with the name 'IslemCursor' already exists" ile sonraki tüm işlemle ↓ Kök neden: `Cari.AcceptTransaction` tetikleyicisinde cursor sızıntısı ↓ Kanıt: Yukarıdaki satırlar; demo kopyasında tetikleyici **DISABLED** (`erpgoldv2-kod-katmani-bulgulari.md §2`) — üretimde açık
Etkilenen veriDB `Cari.AcceptTransaction` (TR, 29.862 karakter) — `DECLARE IslemCursor CURSOR` satır 72, `OPEN` 79; `RAISERROR … ROLLBACK … RETURN` satır 94-97 (şube pasif) ve 102-105 (e-döviz faturası gönderilmiş) — arada `CLOSE/DEALLOCATE` yok; normal kapanış 566-567 (`kb_src/db/modules_all.json`).
Olasılık / etki / güvenYÜKSEK / S1 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Her hata dalında `CLOSE/DEALLOCATE` veya `DECLARE … CURSOR LOCAL`; uzun vadede cursor'suz küme temelli kural motoru.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: DB `Cari.AcceptTransaction` (TR, 29.862 karakter) — `DECLARE IslemCursor CURSOR` satır 72, `OPEN` 79; `RAISERROR … ROLLBACK … RETURN` satır 94-97 (şube pasif) v
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-03 · öncelik P1 · kanıt: Yukarıdaki satırlar; demo kopyasında tetikleyici **DISABLED** (`erpgoldv2-kod-katmani-bulgulari.md §2`) — üretimde açık olup olmadığı `[GAP]`.
İlişkili kayıtlarERR-OBS-086, ERR-POT-004, ERR-POT-030, ERR-POT-116, ERR-POT-134, ERR-POT-135, ERR-SIL-033, ERR-SIL-046
Wiki bağlantılarıTD-03
POTANSİYEL ERR-POT-004TD-04 — Tetikleyicide `ROLLBACK` sonrası `RETURN` yok S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE04 — Trigger / Dependency Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — `ROLLBACK` sonrası kod akışı devam eder; sonraki `INSERT/UPDATE`'ler transaction dışında (autocommit) çalışabilir.
Kod dosyasıDB `Cari.AcceptTransaction` satır 119-122 (eksik evrak), 182-184 (şube/kasa/hesap seçilmedi), 229-231 (takoza ait işlem var), 243-245 (takoz stokta yok).
Kök nedenTetikleyicide `ROLLBACK` sonrası `RETURN` yok — VB — `ROLLBACK` sonrası kod akışı devam eder; sonraki `INSERT/UPDATE`'ler transaction dışında (autocommit) çalışabilir.
Neden zinciriTeknik olay: VB — `ROLLBACK` sonrası kod akışı devam eder; sonraki `INSERT/UPDATE`'ler transaction dışında (autocommit) çalışabilir. ↓ Kök neden: Tetikleyicide `ROLLBACK` sonrası `RETURN` yok ↓ Kanıt: `kb_src/db/modules_all.json` içindeki tanım; `ROLLBACK` 13, `RETURN` 5.
Etkilenen veriDB `Cari.AcceptTransaction` satır 119-122 (eksik evrak), 182-184 (şube/kasa/hesap seçilmedi), 229-231 (takoza ait işlem var), 243-245 (takoz stokta yok).
Olasılık / etki / güvenYÜKSEK / S1 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Her `ROLLBACK`'ten sonra `RETURN`; `THROW` kullanımı.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: DB `Cari.AcceptTransaction` satır 119-122 (eksik evrak), 182-184 (şube/kasa/hesap seçilmedi), 229-231 (takoza ait işlem var), 243-245 (takoz stokta yok).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-04 · öncelik P1 · kanıt: `kb_src/db/modules_all.json` içindeki tanım; `ROLLBACK` 13, `RETURN` 5.
İlişkili kayıtlarERR-POT-003, ERR-POT-134, ERR-SIL-033
Wiki bağlantılarıTD-04
POTANSİYEL ERR-POT-005TD-05 — Koda gömülü bağlantı dizeleri, `sa` hesabı ve parolalar S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-053 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE11 — Kullanıcı / Yetki Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-053 RDP (uzak masaüstü) bağlantı / giriş / parola sorunu
Teknik belirtiGV — derlenmiş EXE'den parola okunabilir; uygulama üretimde `sa` ile bağlanıyorsa TD-09/TD-10'daki her açık tam yetkiyle sonuçlanır.
Kod dosyası`ERPPRO/Class/Module/InternalDb.vb:11` (`ConnStr` varsayılanı: sunucu, `sa`, düz metin parola); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1730` (sunucu IP'si + `sa`); `ERPPRO/app.config:10-12` (Integrated Security, sunucu adı); `ERPPRO/Class/Module/Program.vb:201-210` (EO.WebBrowser lisansı ve `AifaDev.C
Kök nedenKoda gömülü bağlantı dizeleri, `sa` hesabı ve parolalar — GV — derlenmiş EXE'den parola okunabilir; uygulama üretimde `sa` ile bağlanıyorsa TD-09/TD-10'daki her açık tam yetkiyle sonuçlanır.
Neden zinciriTeknik olay: GV — derlenmiş EXE'den parola okunabilir; uygulama üretimde `sa` ile bağlanıyorsa TD-09/TD-10'daki her açık tam yetkiyle sonuçlanır. ↓ Kök neden: Koda gömülü bağlantı dizeleri, `sa` hesabı ve parolalar ↓ Kanıt: satırlar yukarıda; `Program.ConnectDatabase` (`Program.vb:78-87`) çalışma zamanında değeri değiştirse de sabit binaride
Etkilenen veri`ERPPRO/Class/Module/InternalDb.vb:11` (`ConnStr` varsayılanı: sunucu, `sa`, düz metin parola); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1730` (sunucu IP'si + `sa`); `ERPPRO/app.config:10-12` (Integrated Security, sunucu adı); `ERPPRO/Class/Module/Program.vb:201-210` (EO.WebBrowser lisansı ve `AifaDev.C
Olasılık / etki / güvenYÜKSEK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Sabit değerleri kaldırmak; Windows kimlik doğrulaması veya en az yetkili SQL hesabı; lisans anahtarlarını yapılandırma/gizli depo üzerinden yüklemek; mevcut parolaları döndürmek.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Module/InternalDb.vb:11` (`ConnStr` varsayılanı: sunucu, `sa`, düz metin parola); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1730` (sunucu IP'si + `sa`)
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-05 · öncelik P1 · kanıt: satırlar yukarıda; `Program.ConnectDatabase` (`Program.vb:78-87`) çalışma zamanında değeri değiştirse de sabit binaride kalır.
İlişkili kayıtlarERR-POT-013, ERR-POT-014
Wiki bağlantılarıTD-09 · TD-10 · TD-05
POTANSİYEL ERR-POT-006TD-06 — Yapılandırma dosyası şifrelemesi zayıf S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE11 — Kullanıcı / Yetki Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiGV — `Config.cfg` içindeki bağlantı dizesi (SQL parolası dahil) uygulama binarisine sahip herkes tarafından çözülebilir.
Kod dosyası`ERPPRO/Configuration/ConfigurationForm.vb:301` (okuma), `:325` (yazma), `:331-365` (`AES_Encrypt/AES_Decrypt`: Rijndael **ECB**, MD5 anahtar türetme, **koda gömülü sabit parola**).
Kök nedenYapılandırma dosyası şifrelemesi zayıf — GV — `Config.cfg` içindeki bağlantı dizesi (SQL parolası dahil) uygulama binarisine sahip herkes tarafından çözülebilir.
Neden zinciriTeknik olay: GV — `Config.cfg` içindeki bağlantı dizesi (SQL parolası dahil) uygulama binarisine sahip herkes tarafından çözülebilir. ↓ Kök neden: Yapılandırma dosyası şifrelemesi zayıf ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Configuration/ConfigurationForm.vb:301` (okuma), `:325` (yazma), `:331-365` (`AES_Encrypt/AES_Decrypt`: Rijndael **ECB**, MD5 anahtar türetme, **koda gömülü sabit parola**).
Olasılık / etki / güvenYÜKSEK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): DPAPI (`ProtectedData`, kullanıcı/makine kapsamı) veya Windows kimlik doğrulaması; ECB yerine kimlik doğrulamalı mod.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Configuration/ConfigurationForm.vb:301` (okuma), `:325` (yazma), `:331-365` (`AES_Encrypt/AES_Decrypt`: Rijndael **ECB**, MD5 anahtar türetme, **koda gö
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-06 · öncelik P1 · kanıt: satırlar yukarıda.
Wiki bağlantılarıTD-06
POTANSİYEL ERR-POT-007TD-07 — Parolalar geri döndürülebilir şifreli S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE11 — Kullanıcı / Yetki Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiGV — DB erişimi olan herkes tüm parolaları çözebilir; parolalar süreç belleğinde düz metin.
Kod dosyası`ERPPRO/Class/Module/Crypto.vb:6-48` (sabit parola, Rijndael CBC — değer kopyalanmadı); `ERPPRO/Class/Dao/Sistem.Users.vb:43,144,188` (kullanıcı parolası `Crypto.Decrypt` ile yükleniyor, `Encrypt` ile yazılıyor); `Cari.Kart.vb:36,281,437` (kart şifresi); `Genel.Dosya.vb:134,200`; `Cari.View.Hesaplis
Kök nedenParolalar geri döndürülebilir şifreli — GV — DB erişimi olan herkes tüm parolaları çözebilir; parolalar süreç belleğinde düz metin.
Neden zinciriTeknik olay: GV — DB erişimi olan herkes tüm parolaları çözebilir; parolalar süreç belleğinde düz metin. ↓ Kök neden: Parolalar geri döndürülebilir şifreli ↓ Kanıt: satırlar yukarıda (mimari referans §9-20 ile uyumlu).
Etkilenen veri`ERPPRO/Class/Module/Crypto.vb:6-48` (sabit parola, Rijndael CBC — değer kopyalanmadı); `ERPPRO/Class/Dao/Sistem.Users.vb:43,144,188` (kullanıcı parolası `Crypto.Decrypt` ile yükleniyor, `Encrypt` ile yazılıyor); `Cari.Kart.vb:36,281,437` (kart şifresi); `Genel.Dosya.vb:134,200`; `Cari.View.Hesaplis
Olasılık / etki / güvenYÜKSEK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): PBKDF2/bcrypt/Argon2 ile tek yönlü hash + tuz; kart PIN/şifresi için ayrı doğrulama servisi; önbelleğe parola kolonu yüklememek.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Module/Crypto.vb:6-48` (sabit parola, Rijndael CBC — değer kopyalanmadı); `ERPPRO/Class/Dao/Sistem.Users.vb:43,144,188` (kullanıcı parolası `Crypt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-07 · öncelik P1 · kanıt: satırlar yukarıda (mimari referans §9-20 ile uyumlu).
Wiki bağlantılarıTD-07
POTANSİYEL ERR-POT-008TD-08 — İşlem ekranında sabit yönetici parolası S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE11 — Kullanıcı / Yetki Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiGV — kaynak/binari üzerinden parola öğrenen herkes fişleri iptal edebilir; değiştirilemez, denetlenemez.
Kod dosyası`ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:722` — `PasswordBox.ShowDialog(Me, "", "")`; doğrulanınca `:723` `Update Cari.Islemler Set IsDeleted='True' Where FisNo=… and KasaId=…` (fiş toplu iptali). Karşılaştırma için `:428` aynı dialog `.Password` alanını kullanır (dinamik).
Kök nedenİşlem ekranında sabit yönetici parolası — GV — kaynak/binari üzerinden parola öğrenen herkes fişleri iptal edebilir; değiştirilemez, denetlenemez.
Neden zinciriTeknik olay: GV — kaynak/binari üzerinden parola öğrenen herkes fişleri iptal edebilir; değiştirilemez, denetlenemez. ↓ Kök neden: İşlem ekranında sabit yönetici parolası ↓ Kanıt: satırlar yukarıda (değer kopyalanmadı).
Etkilenen veri`ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:722` — `PasswordBox.ShowDialog(Me, "", "")`; doğrulanınca `:723` `Update Cari.Islemler Set IsDeleted='True' Where FisNo=… and KasaId=…` (fiş toplu iptali). Karşılaştırma için `:428` aynı dialog `.Password` alanını kullanır (dinamik).
Olasılık / etki / güvenYÜKSEK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Yetki grubu bazlı izin (`Usergroup`), parola yerine kullanıcı yeniden kimlik doğrulaması; işlem günlüğü.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:722` — `PasswordBox.ShowDialog(Me, "", "")`; doğrulanınca `:723` `Update Cari.Islemler Set IsDeleted='True
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-08 · öncelik P1 · kanıt: satırlar yukarıda (değer kopyalanmadı).
İlişkili kayıtlarERR-POT-002, ERR-SIL-001, ERR-SIL-002, ERR-SIL-003, ERR-SIL-028, ERR-SIL-056, ERR-SIL-059
Wiki bağlantılarıTD-08
POTANSİYEL ERR-POT-009TD-09 — SQL metni birleştirme, string kullanıcı girdileri S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-013 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE11 — Kullanıcı / Yetki Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-013 Kullanıcı tanımlama / düzenleme / isim değişikliği / kullanıcı açma
Teknik belirtiGV, VB — `'` içeren girdi sorguyu bozar; bilinçli girdi `sa` yetkisiyle (TD-05) veri değiştirebilir.
Kod dosyası1010/1468 ifade, 311 sınıf (scan). String girdi örnekleri: `ERPPRO/Form/Doviz/FrmDovFaturaEkranı.vb:239-243` (`InputBox` → `RefNo`), `Controls/Islem Ekranı/Ekran/Fatura Helper/FindTaxInfo.vb:25`, `FrmFaturaBas.vb:140` (`SearchText`), `Controls/Editor/CmbListLayout.vb:110,116` (`Ad`), `Class/Dao/Pers
Kök nedenSQL metni birleştirme, string kullanıcı girdileri — GV, VB — `'` içeren girdi sorguyu bozar; bilinçli girdi `sa` yetkisiyle (TD-05) veri değiştirebilir.
Neden zinciriTeknik olay: GV, VB — `'` içeren girdi sorguyu bozar; bilinçli girdi `sa` yetkisiyle (TD-05) veri değiştirebilir. ↓ Kök neden: SQL metni birleştirme, string kullanıcı girdileri ↓ Kanıt: database-access §8.1; mimari referans §9-21 "~435 yer" → scan ile 1010 ifade / 568 tırnak-içi birleştirme satırı (sayım
Etkilenen veri1010/1468 ifade, 311 sınıf (scan). String girdi örnekleri: `ERPPRO/Form/Doviz/FrmDovFaturaEkranı.vb:239-243` (`InputBox` → `RefNo`), `Controls/Islem Ekranı/Ekran/Fatura Helper/FindTaxInfo.vb:25`, `FrmFaturaBas.vb:140` (`SearchText`), `Controls/Editor/CmbListLayout.vb:110,116` (`Ad`), `Class/Dao/Pers
Olasılık / etki / güvenYÜKSEK / S1 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Tüm sorgular `SqlParameter`; tablo/alan adı gerektiren genel yardımcılar (`FindRecord`) için beyaz liste; grid filtreleri için `SqlParameter` üreten filtre çevirici.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: 1010/1468 ifade, 311 sınıf (scan). String girdi örnekleri: `ERPPRO/Form/Doviz/FrmDovFaturaEkranı.vb:239-243` (`InputBox` → `RefNo`), `Controls/Islem Ekranı/Ekra
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-09 · öncelik P1 · kanıt: database-access §8.1; mimari referans §9-21 "~435 yer" → scan ile 1010 ifade / 568 tırnak-içi birleştirme satırı (sayım tabanı farkı).
İlişkili kayıtlarERR-SIL-057, ERR-SIL-059
Wiki bağlantılarıTD-05 · TD-09
POTANSİYEL ERR-POT-010TD-10 — Serbest SQL editörü ve bağlantı dizesi S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE11 — Kullanıcı / Yetki Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiGV — uygulama içinden `sa` ile rastgele SQL; menü yetkisine bağlı `[GAP: hangi kullanıcı grubuna açık olduğu Usergroup verisinden doğrulanmadı]`.
Kod dosyası`ERPPRO/Form/Tanımlamalar/Sistem/FrmSqlEditor.vb:77-85` (`RadioGroup1` → `InternalDb.ConnStr` veya `TxtConnectionString.Text`), `:86-…` (`TestConnection`, sorgu çalıştırma).
Kök nedenSerbest SQL editörü ve bağlantı dizesi — GV — uygulama içinden `sa` ile rastgele SQL; menü yetkisine bağlı `[GAP: hangi kullanıcı grubuna açık olduğu Usergroup verisinden doğrulanmadı]`.
Neden zinciriTeknik olay: GV — uygulama içinden `sa` ile rastgele SQL; menü yetkisine bağlı `[GAP: hangi kullanıcı grubuna açık olduğu Usergroup verisinden doğrulanmadı]`. ↓ Kök neden: Serbest SQL editörü ve bağlantı dizesi ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Form/Tanımlamalar/Sistem/FrmSqlEditor.vb:77-85` (`RadioGroup1` → `InternalDb.ConnStr` veya `TxtConnectionString.Text`), `:86-…` (`TestConnection`, sorgu çalıştırma).
Olasılık / etki / güvenYÜKSEK / S1 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Üretim derlemesinden çıkarmak veya salt-okunur, yetki ve günlük kaydı ile sınırlamak.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Form/Tanımlamalar/Sistem/FrmSqlEditor.vb:77-85` (`RadioGroup1` → `InternalDb.ConnStr` veya `TxtConnectionString.Text`), `:86-…` (`TestConnection`, sorgu
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-10 · öncelik P1 · kanıt: satırlar yukarıda.
Wiki bağlantılarıTD-10
POTANSİYEL ERR-POT-011TD-11 — Veritabanındaki kaynak kodun çalışma zamanında derlenmesi S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiGV, BK — tabloya yazabilen herkes uygulama sürecinde kod çalıştırır; derlenen sınıflar statik analiz/test dışı; ayrı bir ORM dünyası (TD-17).
Kod dosyası`ERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:57-74` (`VBCodeProvider.CompileAssemblyFromSource`), `Class/Base/DynamicForm.vb:300-318` (`AifaDev.DynamicForms.Code` kolonu), `Class/Base/Table.vb:145-160` (`Exec('…')` ile tablo oluşturma betiği), giriş `Form/Genel/FrmMainForm.vb:98-101`.
Kök nedenVeritabanındaki kaynak kodun çalışma zamanında derlenmesi — GV, BK — tabloya yazabilen herkes uygulama sürecinde kod çalıştırır; derlenen sınıflar statik analiz/test dışı; ayrı bir ORM dünyası (TD-17).
Neden zinciriTeknik olay: GV, BK — tabloya yazabilen herkes uygulama sürecinde kod çalıştırır; derlenen sınıflar statik analiz/test dışı; ayrı bir ORM dünyası (TD-17). ↓ Kök neden: Veritabanındaki kaynak kodun çalışma zamanında derlenmesi ↓ Kanıt: satırlar yukarıda; tüketici yalnız `DynamicWizard`.
Etkilenen veri`ERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:57-74` (`VBCodeProvider.CompileAssemblyFromSource`), `Class/Base/DynamicForm.vb:300-318` (`AifaDev.DynamicForms.Code` kolonu), `Class/Base/Table.vb:145-160` (`Exec('…')` ile tablo oluşturma betiği), giriş `Form/Genel/FrmMainForm.vb:98-101`.
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Özelliği yetkili/ayrı araca taşımak; üretimde kapalı tutmak; kaynak kod yerine bildirimsel form tanımı.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:57-74` (`VBCodeProvider.CompileAssemblyFromSource`), `Class/Base/DynamicForm.vb:300-318` (`AifaDev.DynamicForms.Code
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-11 · öncelik P2 · kanıt: satırlar yukarıda; tüketici yalnız `DynamicWizard`.
Wiki bağlantılarıTD-17 · TD-11
POTANSİYEL ERR-POT-012TD-12 — Boş `Catch` S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB, BK — `Save` `False` döner ama sebep kaybolur; kur/önbellek yüklenemezse sessizce boş/eski değer kullanılır.
Kod dosyası679 metot, 273 dosya; `ERPPRO/Class/Dao` 361. En yoğun: `Designer/DosPrint/DosPrint.vb` (14), `Form/Siparis/NetEntegrator.vb` (12), `Class/Dao/Dynamic/Class/Base/Data.vb` (8), `Class/Module/Database.vb` (8), `Class/Ext/Cari.Provizyon.vb` (7). Kritik örnekler: `Class/Dao/Islem/Cari.Islem.vb:697` (INS
Kök nedenBoş `Catch` — VB, BK — `Save` `False` döner ama sebep kaybolur; kur/önbellek yüklenemezse sessizce boş/eski değer kullanılır.
Neden zinciriTeknik olay: VB, BK — `Save` `False` döner ama sebep kaybolur; kur/önbellek yüklenemezse sessizce boş/eski değer kullanılır. ↓ Kök neden: Boş `Catch` ↓ Kanıt: hotspots §5. Mimari referans §9-6 "348" → scan 679 (Designer/CodeDesigner dahil).
Etkilenen veri679 metot, 273 dosya; `ERPPRO/Class/Dao` 361. En yoğun: `Designer/DosPrint/DosPrint.vb` (14), `Form/Siparis/NetEntegrator.vb` (12), `Class/Dao/Dynamic/Class/Base/Data.vb` (8), `Class/Module/Database.vb` (8), `Class/Ext/Cari.Provizyon.vb` (7). Kritik örnekler: `Class/Dao/Islem/Cari.Islem.vb:697` (INS
Olasılık / etki / güvenYÜKSEK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Merkezi günlükleme (`Exception` + SQL metni + kullanıcı/şube), boş `Catch` yasağı (analizör kuralı), `Save` sonucuna hata nesnesi eklemek.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-12 · öncelik P1 · kanıt: hotspots §5. Mimari referans §9-6 "348" → scan 679 (Designer/CodeDesigner dahil).
Wiki bağlantılarıTD-12
POTANSİYEL ERR-POT-013TD-13 — `InternalDb` yaşam döngüsü kusurları S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE09 — Konfigürasyon Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiPF, VB — 866 `Using db As New InternalDb` bloğundan yalnız 231'i açıkça kapatıyor; kalanlar GC'ye kalıyor (havuz baskısı, uzun süreli açık bağlantı); aynı örnekte iki `DataTable()` çağrısı satırları çoğaltır (INFERRED sonuç, VERIFIED yapı).
Kod dosyası`ERPPRO/Class/Module/InternalDb.vb:131-141` (`Dispose(disposing)` gövdesi boş — `SqlConnection` kapatılmıyor), `:53-65,69-81` (`Finally` boş), `:100-123` (`Da.Fill(Ds)` aynı `DataSet`'e ekler, temizlenmez), `:85-96` (`ExecuteReader` `CloseConnection` davranışı yok).
Kök neden`InternalDb` yaşam döngüsü kusurları — PF, VB — 866 `Using db As New InternalDb` bloğundan yalnız 231'i açıkça kapatıyor; kalanlar GC'ye kalıyor (havuz baskısı, uzun süreli açık bağlantı); aynı örnekte iki `DataTable()` çağrısı satırları çoğaltır (INFERRED sonuç, VERIFIED yapı).
Neden zinciriTeknik olay: PF, VB — 866 `Using db As New InternalDb` bloğundan yalnız 231'i açıkça kapatıyor; kalanlar GC'ye kalıyor (havuz baskısı, uzun süreli açık bağlantı); ↓ Kök neden: `InternalDb` yaşam döngüsü kusurları ↓ Kanıt: satırlar + grep sayıları (database-access §3).
Etkilenen veri`ERPPRO/Class/Module/InternalDb.vb:131-141` (`Dispose(disposing)` gövdesi boş — `SqlConnection` kapatılmıyor), `:53-65,69-81` (`Finally` boş), `:100-123` (`Da.Fill(Ds)` aynı `DataSet`'e ekler, temizlenmez), `:85-96` (`ExecuteReader` `CloseConnection` davranışı yok).
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `Dispose` içinde `SqlConnection.Close/Dispose`; her çağrıda `Ds.Clear()` veya yeni `DataTable`; okuyucu için `CommandBehavior.CloseConnection`.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Module/InternalDb.vb:131-141` (`Dispose(disposing)` gövdesi boş — `SqlConnection` kapatılmıyor), `:53-65,69-81` (`Finally` boş), `:100-123` (`Da.F
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-13 · öncelik P2 · kanıt: satırlar + grep sayıları (database-access §3).
İlişkili kayıtlarERR-POT-005, ERR-POT-014
Wiki bağlantılarıTD-13
POTANSİYEL ERR-POT-014TD-14 — Veri katmanı UI açıyor S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE09 — Konfigürasyon Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiBK — DAO sunucu/servis/test ortamında çalışamaz; kullanıcı kararı (Yes/No) iş mantığının içinde.
Kod dosyası`ERPPRO/Class/Module/InternalDb.vb:44,61,77,93,106,120` (`MessageBox/MsgBox`); `Class/Dao` 45 satır/19 dosya, `Class/Ext` 19 satır/4 dosya; `Class/Dao/Islem/Cari.Islem.vb:533-535,1025,1049` (`FrmSilmeOnayAl.ShowDialog`), `:1057` (`MessageBox.YesNo` ile karşı işlem iptal kararı); `Class/Dao/Cari.Hesa
Kök nedenVeri katmanı UI açıyor — BK — DAO sunucu/servis/test ortamında çalışamaz; kullanıcı kararı (Yes/No) iş mantığının içinde.
Neden zinciriTeknik olay: BK — DAO sunucu/servis/test ortamında çalışamaz; kullanıcı kararı (Yes/No) iş mantığının içinde. ↓ Kök neden: Veri katmanı UI açıyor ↓ Kanıt: hotspots §11.
Etkilenen veri`ERPPRO/Class/Module/InternalDb.vb:44,61,77,93,106,120` (`MessageBox/MsgBox`); `Class/Dao` 45 satır/19 dosya, `Class/Ext` 19 satır/4 dosya; `Class/Dao/Islem/Cari.Islem.vb:533-535,1025,1049` (`FrmSilmeOnayAl.ShowDialog`), `:1057` (`MessageBox.YesNo` ile karşı işlem iptal kararı); `Class/Dao/Cari.Hesa
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Sonuç nesnesi (`Result` + hata/uyarı listesi) döndürmek; onay soruları çağıran ekrana taşınmalı; `InternalDb` yalnız istisna fırlatmalı.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Module/InternalDb.vb:44,61,77,93,106,120` (`MessageBox/MsgBox`); `Class/Dao` 45 satır/19 dosya, `Class/Ext` 19 satır/4 dosya; `Class/Dao/Islem/Car
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-14 · öncelik P2 · kanıt: hotspots §11.
İlişkili kayıtlarERR-POT-005, ERR-POT-013
Wiki bağlantılarıTD-14
POTANSİYEL ERR-POT-015TD-15 — Global durum bağımlılığı S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiBK — birim test ve çoklu oturum imkânsız; şube/kasa bağlamı örtük.
Kod dosyası1175 başvuru, 312 sınıf (`Program` 763, `DSX` 322, `LoginInformation` 87); DAO'da 110/162 sınıf. Örnek: `Class/Dao/Base.vb:6-16` (`ActiveSirketId/SubeId` → `Program.*`), `Class/Dao/Islem/Cari.Islem.vb:506-531` (`LoginInformation.Sube`, `Program.GetKur`, `Program.SubeId`), `Class/Module/Database.vb:1
Kök nedenGlobal durum bağımlılığı — BK — birim test ve çoklu oturum imkânsız; şube/kasa bağlamı örtük.
Neden zinciriTeknik olay: BK — birim test ve çoklu oturum imkânsız; şube/kasa bağlamı örtük. ↓ Kök neden: Global durum bağımlılığı ↓ Kanıt: hotspots §8.
Etkilenen veri1175 başvuru, 312 sınıf (`Program` 763, `DSX` 322, `LoginInformation` 87); DAO'da 110/162 sınıf. Örnek: `Class/Dao/Base.vb:6-16` (`ActiveSirketId/SubeId` → `Program.*`), `Class/Dao/Islem/Cari.Islem.vb:506-531` (`LoginInformation.Sube`, `Program.GetKur`, `Program.SubeId`), `Class/Module/Database.vb:1
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Oturum bağlamı nesnesi (`ISessionContext`) enjeksiyonu; önbelleğin servis arkasına alınması.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: 1175 başvuru, 312 sınıf (`Program` 763, `DSX` 322, `LoginInformation` 87); DAO'da 110/162 sınıf. Örnek: `Class/Dao/Base.vb:6-16` (`ActiveSirketId/SubeId` → `Pro
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-15 · öncelik P2 · kanıt: hotspots §8.
Wiki bağlantılarıTD-15
POTANSİYEL ERR-POT-016TD-16 — Kopyala-yapıştır S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE15 — Duplicate / Çift İşlem
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiBK — bir kural değişikliği 100+ dosyaya dokunur; ekran çiftleri ayrışır (`iFDoviz`/`iFNakit` farkı, mimari referans §9-17).
Kod dosyası`Save()` 91/105 birebir (`Class/Dao/Agent.Agent.vb:104`, `Cari.Transferler.vb:164-166` …); `SetPropertyValue/GetPropertyValue` 121 dosya (`Cari.Fatura.vb:376-392` …); üçlü `Delete` 87 dosya (`Cari.Hesap.vb:749/770/792`); `Insert/Update` 110+110 el yazımı alan bloğu (`Personel.Personel.vb:391-820`);
Kök nedenKopyala-yapıştır — BK — bir kural değişikliği 100+ dosyaya dokunur; ekran çiftleri ayrışır (`iFDoviz`/`iFNakit` farkı, mimari referans §9-17).
Neden zinciriTeknik olay: BK — bir kural değişikliği 100+ dosyaya dokunur; ekran çiftleri ayrışır (`iFDoviz`/`iFNakit` farkı, mimari referans §9-17). ↓ Kök neden: Kopyala-yapıştır ↓ Kanıt: hotspots §6.
Etkilenen veri`Save()` 91/105 birebir (`Class/Dao/Agent.Agent.vb:104`, `Cari.Transferler.vb:164-166` …); `SetPropertyValue/GetPropertyValue` 121 dosya (`Cari.Fatura.vb:376-392` …); üçlü `Delete` 87 dosya (`Cari.Hesap.vb:749/770/792`); `Insert/Update` 110+110 el yazımı alan bloğu (`Personel.Personel.vb:391-820`);
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Genel `Repository(Of T)` + attribute/kaynak üreteci; ekran temel sınıflarında ortak `FormSave`; çakışma dosyasını silmek.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-16 · öncelik P2 · kanıt: hotspots §6.
Wiki bağlantılarıTD-16
POTANSİYEL ERR-POT-017TD-17 — Üç veri erişim yolu ve artık referanslar S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiBK — dört farklı kalıp; yeni geliştirici hangisini kullanacağını bilemez.
Kod dosyası`InternalDb` (293 sınıf), `DataLayout/DBBaseClass.vb` (tek türev `Repository.vb:21-23`), `Class/Dao/_SQLBase/SQLBase.vb` (tek türev `Class/Dao/Islem/Cari.IDetay.vb:4-6`), `Class/Dao/Dynamic/*`; `ERPPRO/ERPPRO.vbproj:180` (`DevExpress.Xpo.v14.1`, kullanan kod yok), `app.config:11` (`XpoProvider`), `E
Kök nedenÜç veri erişim yolu ve artık referanslar — BK — dört farklı kalıp; yeni geliştirici hangisini kullanacağını bilemez.
Neden zinciriTeknik olay: BK — dört farklı kalıp; yeni geliştirici hangisini kullanacağını bilemez. ↓ Kök neden: Üç veri erişim yolu ve artık referanslar ↓ Kanıt: database-access §1, §4, §6.
Etkilenen veri`InternalDb` (293 sınıf), `DataLayout/DBBaseClass.vb` (tek türev `Repository.vb:21-23`), `Class/Dao/_SQLBase/SQLBase.vb` (tek türev `Class/Dao/Islem/Cari.IDetay.vb:4-6`), `Class/Dao/Dynamic/*`; `ERPPRO/ERPPRO.vbproj:180` (`DevExpress.Xpo.v14.1`, kullanan kod yok), `app.config:11` (`XpoProvider`), `E
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Tek yol seçmek; XPO referansı, `localhost_Connection`, typed dataset'i kaldırmak.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-17 · öncelik P3 · kanıt: database-access §1, §4, §6.
Wiki bağlantılarıTD-17
POTANSİYEL ERR-POT-018TD-18 — `DBBase.IsValidate` semantiği ters, yalnız 4 tipte doğrulama S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE09 — Konfigürasyon Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — dinleyicisi olmayan/ikinci dinleyici eklenen tiplerde doğrulama yanlış anlamda çalışır; olay `Shared` olduğu için `Program` statik kurucusu çalışmadan hiçbir doğrulama yapılmaz.
Kod dosyası`ERPPRO/Class/Dao/Base.vb:116-121` (`Validate(Obj, ByRef Cancel)`, `IsValid=True` ile çağrılır, aynen döner); tek dinleyici `Class/Module/Program.vb:4,20-30` (`Validated` anlamında yazar; `Parcakarti/Takimkarti/Paket/Modelkarti`). Çağıranlar: `Class/Dao/Siparis.Parcakarti.vb:220`, `Form/Siparis/FrmM
Kök neden`DBBase.IsValidate` semantiği ters, yalnız 4 tipte doğrulama — VB — dinleyicisi olmayan/ikinci dinleyici eklenen tiplerde doğrulama yanlış anlamda çalışır; olay `Shared` olduğu için `Program` statik kurucusu çalışmadan hiçbir doğrulama yapılmaz.
Neden zinciriTeknik olay: VB — dinleyicisi olmayan/ikinci dinleyici eklenen tiplerde doğrulama yanlış anlamda çalışır; olay `Shared` olduğu için `Program` statik kurucusu çalış ↓ Kök neden: `DBBase.IsValidate` semantiği ters, yalnız 4 tipte doğrulama ↓ Kanıt: satırlar yukarıda. Mimari referans §9-10 "fiilen devre dışı" → kodda: **4 tip için çalışıyor, diğerlerinde doğrulama yok
Etkilenen veri`ERPPRO/Class/Dao/Base.vb:116-121` (`Validate(Obj, ByRef Cancel)`, `IsValid=True` ile çağrılır, aynen döner); tek dinleyici `Class/Module/Program.vb:4,20-30` (`Validated` anlamında yazar; `Parcakarti/Takimkarti/Paket/Modelkarti`). Çağıranlar: `Class/Dao/Siparis.Parcakarti.vb:220`, `Form/Siparis/FrmM
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `Validate` sanal metodu (`Overridable Function Validate() As ValidationResult`); olay tabanlı doğrulamayı kaldırmak.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Dao/Base.vb:116-121` (`Validate(Obj, ByRef Cancel)`, `IsValid=True` ile çağrılır, aynen döner); tek dinleyici `Class/Module/Program.vb:4,20-30` (`
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-18 · öncelik P2 · kanıt: satırlar yukarıda. Mimari referans §9-10 "fiilen devre dışı" → kodda: **4 tip için çalışıyor, diğerlerinde doğrulama yok, parametre adı ters** (ayrıntı, `CONTRADICTS` değil).
İlişkili kayıtlarERR-POT-019
Wiki bağlantılarıTD-18
POTANSİYEL ERR-POT-019TD-19 — `DBBase.ActiveKasaId` sonsuz özyineleme S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-063 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-063 Kasa bakiyesi / kasa stoğu tutmuyor
Teknik belirtiBK — çağrılırsa `StackOverflowException` (süreç çöker). Çağıran yok (grep 0) → latent.
Kod dosyası`ERPPRO/Class/Dao/Base.vb:18-22` (`Get … Return ActiveKasaId`).
Kök neden`DBBase.ActiveKasaId` sonsuz özyineleme — BK — çağrılırsa `StackOverflowException` (süreç çöker). Çağıran yok (grep 0) → latent.
Neden zinciriTeknik olay: BK — çağrılırsa `StackOverflowException` (süreç çöker). Çağıran yok (grep 0) → latent. ↓ Kök neden: `DBBase.ActiveKasaId` sonsuz özyineleme ↓ Kanıt: satır yukarıda.
Etkilenen veri`ERPPRO/Class/Dao/Base.vb:18-22` (`Get … Return ActiveKasaId`).
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `Return Program.KasaId` veya özelliği silmek.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-19 · öncelik P3 · kanıt: satır yukarıda.
İlişkili kayıtlarERR-POT-018
Wiki bağlantılarıTD-19
POTANSİYEL ERR-POT-020TD-20 — `SQLBase._Query` `Shared` S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — ikinci bir `SQLBase` türevi eklendiğinde yanlış tabloya MERGE. Bugün tek türev (`Cari.IFatura`) → gizli.
Kod dosyası`ERPPRO/Class/Dao/_SQLBase/SQLBase.vb:31` (`Private Shared _Query`), `:38-64` (ilk hesaplanan MERGE metni tüm türevlerde kullanılır).
Kök neden`SQLBase._Query` `Shared` — VB — ikinci bir `SQLBase` türevi eklendiğinde yanlış tabloya MERGE. Bugün tek türev (`Cari.IFatura`) → gizli.
Neden zinciriTeknik olay: VB — ikinci bir `SQLBase` türevi eklendiğinde yanlış tabloya MERGE. Bugün tek türev (`Cari.IFatura`) → gizli. ↓ Kök neden: `SQLBase._Query` `Shared` ↓ Kanıt: satırlar yukarıda; `grep "Inherits AIO.SQL.SQLBase"` = 1.
Etkilenen veri`ERPPRO/Class/Dao/_SQLBase/SQLBase.vb:31` (`Private Shared _Query`), `:38-64` (ilk hesaplanan MERGE metni tüm türevlerde kullanılır).
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Tip başına önbellek (`Dictionary(Of Type, String)`) veya örnek alanı.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-20 · öncelik P3 · kanıt: satırlar yukarıda; `grep "Inherits AIO.SQL.SQLBase"` = 1.
Wiki bağlantılarıTD-20
POTANSİYEL ERR-POT-021TD-21 — `Program.GetKur` her zaman alış; birim yoksa `1` S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-023 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-023 Birim (para birimi) tanımlama / listede görünmüyor / çarpan / çift birim
Teknik belirtiVB — satış yönünde alış kuru → marj kaybı (kabul edilmiş hata, AS-DOCUMENTED §10 soru 4); listede olmayan birim için `1` dönmesi sessiz yanlış tutar. Mimari referans §9-6 "kur bulunamazsa 0 akıyor" → `Program.GetKur` için **`1`** döner (`CONTRADICTS`; 0 senaryosu `Set_Alis` ile boş kur satırında olabilir, `Sistem.KurListesi.vb:106`).
Kod dosyası`ERPPRO/Class/Module/Program.vb:260-268` (`Return K.Alis` / `Else Return 1`). Kullanım: `Class/Dao/Islem/Cari.Islem.vb:506-531`, `Controls/Islem Ekranı/Ekran/FrmEFaturaBas.vb:298`, `Form/Doviz/FrmDovFaturaEkranı.vb:201-202`, `GiseEkrani.vb:19`, `ParakendeSatis.vb` — toplam 19 sınıf (scan `globals`).
Kök neden`Program.GetKur` her zaman alış; birim yoksa `1` — VB — satış yönünde alış kuru → marj kaybı (kabul edilmiş hata, AS-DOCUMENTED §10 soru 4); listede olmayan birim için `1` dönmesi sessiz yanlış tutar. Mimari referans §9-6 "kur bulunamazsa 0 akıyor" → `Program.GetKur` için **`1`** döner (`CONTRADICTS`; 0 senaryosu `Set_Alis` ile boş kur satırında olabilir, `Sistem.KurListesi.vb:106`).
Neden zinciriTeknik olay: VB — satış yönünde alış kuru → marj kaybı (kabul edilmiş hata, AS-DOCUMENTED §10 soru 4); listede olmayan birim için `1` dönmesi sessiz yanlış tutar. ↓ Kök neden: `Program.GetKur` her zaman alış; birim yoksa `1` ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Class/Module/Program.vb:260-268` (`Return K.Alis` / `Else Return 1`). Kullanım: `Class/Dao/Islem/Cari.Islem.vb:506-531`, `Controls/Islem Ekranı/Ekran/FrmEFaturaBas.vb:298`, `Form/Doviz/FrmDovFaturaEkranı.vb:201-202`, `GiseEkrani.vb:19`, `ParakendeSatis.vb` — toplam 19 sınıf (scan `globals`).
Olasılık / etki / güvenYÜKSEK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `GetKur(Birim, Yon As Alis|Satis)`; bulunamazsa istisna/uyarı, `1` yerine `Nothing`.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-21 · öncelik P1 · kanıt: satırlar yukarıda.
İlişkili kayıtlarERR-POT-037
Wiki bağlantılarıTD-21
POTANSİYEL ERR-POT-022TD-22 — Kur fallback sessiz (DB) S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — eski kurla işlem; kullanıcı uyarılmaz.
Kod dosyasıDB `Sistem.GetKurListesi` (IF) satır 5-9: `IsNull(K.Alis, L.Alis)` … `Left Join Sistem.GetLastKur L` — o güne kur girilmemişse son kur döner, işaret yok. Tüketici `ERPPRO/Class/Dao/Sistem.KurListesi.vb:100`.
Kök nedenKur fallback sessiz (DB) — VB — eski kurla işlem; kullanıcı uyarılmaz.
Neden zinciriTeknik olay: VB — eski kurla işlem; kullanıcı uyarılmaz. ↓ Kök neden: Kur fallback sessiz (DB) ↓ Kanıt: `kb_src/db/modules_all.json`.
Etkilenen veriDB `Sistem.GetKurListesi` (IF) satır 5-9: `IsNull(K.Alis, L.Alis)` … `Left Join Sistem.GetLastKur L` — o güne kur girilmemişse son kur döner, işaret yok. Tüketici `ERPPRO/Class/Dao/Sistem.KurListesi.vb:100`.
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Fallback'te `Tarih`/`IsFallback` kolonu döndürüp ekranda uyarmak; günlük kur girişi zorunluluğu.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-22 · öncelik P2 · kanıt: `kb_src/db/modules_all.json`.
Wiki bağlantılarıTD-22
POTANSİYEL ERR-POT-023TD-23 — `Stok.GetMadenMaliyeti` `TOP 50` ve güncel kur S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-034 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-034 Stok tutmuyor / stok düzeltme / eksi stok / stok girişi
Teknik belirtiVB — talep miktarı son 50 hareketi aşarsa maliyet eksik; maliyet hareket tarihindeki değil bugünkü kurla çevriliyor.
Kod dosyasıDB `Stok.GetMadenMaliyeti` (FN) satır 16-17 (`Select top 50 … From Stok.StokHaraketleri`), satır 38 (`FN.Bol(@ToplamMaliyet, (Select top 1 Alis From Sistem.Kurlar … Order By Tarih Desc))`).
Kök neden`Stok.GetMadenMaliyeti` `TOP 50` ve güncel kur — VB — talep miktarı son 50 hareketi aşarsa maliyet eksik; maliyet hareket tarihindeki değil bugünkü kurla çevriliyor.
Neden zinciriTeknik olay: VB — talep miktarı son 50 hareketi aşarsa maliyet eksik; maliyet hareket tarihindeki değil bugünkü kurla çevriliyor. ↓ Kök neden: `Stok.GetMadenMaliyeti` `TOP 50` ve güncel kur ↓ Kanıt: `kb_src/db/modules_all.json` (mimari referans §9-8/9 ile uyumlu).
Etkilenen veriDB `Stok.GetMadenMaliyeti` (FN) satır 16-17 (`Select top 50 … From Stok.StokHaraketleri`), satır 38 (`FN.Bol(@ToplamMaliyet, (Select top 1 Alis From Sistem.Kurlar … Order By Tarih Desc))`).
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Küme temelli (cursor'suz) LIFO/FIFO hesaplama, sınır yok; hareket tarihindeki kur.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-23 · öncelik P2 · kanıt: `kb_src/db/modules_all.json` (mimari referans §9-8/9 ile uyumlu).
İlişkili kayıtlarERR-OBS-005, ERR-OBS-070, ERR-OBS-076, ERR-POT-033, ERR-POT-138, ERR-SIL-026, ERR-SIL-036, ERR-SIL-041, ERR-SIL-045, ERR-SIL-046
Wiki bağlantılarıTD-23
POTANSİYEL ERR-POT-024TD-24 — `DSX` önbelleği tutarlılığı S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB, BK — yeni kayıtlar (hesap, maden, kasa) ekranlara ancak tam yenilemede düşer (INFERRED, `[GAP]` bkz. database-access §7); yükleme hatası sessiz.
Kod dosyası`ERPPRO/Class/Module/Database.vb:78+562, 134+564, 219+566, 243+568, 292+570, 176+580, 152+584` (her yükleyici olayını kendisi yükseltir, `RetriveOfAllData` tekrar yükseltir → dinleyiciler iki kez çalışır); `:105,443,466,487,508,530,550` (yükleyiciler boş catch içinde); `ListOfHesap.Add` yalnız `Data
Kök neden`DSX` önbelleği tutarlılığı — VB, BK — yeni kayıtlar (hesap, maden, kasa) ekranlara ancak tam yenilemede düşer (INFERRED, `[GAP]` bkz. database-access §7); yükleme hatası sessiz.
Neden zinciriTeknik olay: VB, BK — yeni kayıtlar (hesap, maden, kasa) ekranlara ancak tam yenilemede düşer (INFERRED, `[GAP]` bkz. database-access §7); yükleme hatası sessiz. ↓ Kök neden: `DSX` önbelleği tutarlılığı ↓ Kanıt: database-access §7.
Etkilenen veri`ERPPRO/Class/Module/Database.vb:78+562, 134+564, 219+566, 243+568, 292+570, 176+580, 152+584` (her yükleyici olayını kendisi yükseltir, `RetriveOfAllData` tekrar yükseltir → dinleyiciler iki kez çalışır); `:105,443,466,487,508,530,550` (yükleyiciler boş catch içinde); `ListOfHesap.Add` yalnız `Data
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `RecordInserted/Updated/Deleted` olaylarına bağlı artımlı önbellek; olayı tek yerden yükseltmek; yükleme hatasını göstermek.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-24 · öncelik P2 · kanıt: database-access §7.
Wiki bağlantılarıTD-24
POTANSİYEL ERR-POT-025TD-25 — `KurListesi` timer thread güvenliği S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — nadir yarış/`InvalidOperationException` (koleksiyon değiştirildi) riski (INFERRED).
Kod dosyası`ERPPRO/Class/Dao/Sistem.KurListesi.vb:62,74` (`System.Threading.Timer`, 15 sn), `:95-123` (`RetriveFromDb` listeye `Add` ederken UI `Program.GetKur` ile `Find` yapar; kilit yok; `:111` okuyucu kapandıktan sonra bağlantı gereksiz yeniden açılıyor); aynı kalıp `Sistem.DovizPanosu.vb:46`.
Kök neden`KurListesi` timer thread güvenliği — VB — nadir yarış/`InvalidOperationException` (koleksiyon değiştirildi) riski (INFERRED).
Neden zinciriTeknik olay: VB — nadir yarış/`InvalidOperationException` (koleksiyon değiştirildi) riski (INFERRED). ↓ Kök neden: `KurListesi` timer thread güvenliği ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Class/Dao/Sistem.KurListesi.vb:62,74` (`System.Threading.Timer`, 15 sn), `:95-123` (`RetriveFromDb` listeye `Add` ederken UI `Program.GetKur` ile `Find` yapar; kilit yok; `:111` okuyucu kapandıktan sonra bağlantı gereksiz yeniden açılıyor); aynı kalıp `Sistem.DovizPanosu.vb:46`.
Olasılık / etki / güvenDÜŞÜK / S3 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Değişmez liste değişimi (`Interlocked.Exchange`) veya `SynchronizationContext` ile UI thread'e postalama.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-25 · öncelik P3 · kanıt: satırlar yukarıda.
Wiki bağlantılarıTD-25
POTANSİYEL ERR-POT-026TD-26 — Magic number karşılaştırmaları S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiBK — kod tablosu ile enum eşleşmesi kodda dağınık; anlam kaybı.
Kod dosyası`ERPPRO/Controls/Islem Ekranı/Ekran/FrmTransfer.vb:57,69,80` (`SetStatus(…, 3|1|2)`), `Class/Dao/Cari.Transferler.vb:152`, `Form/Provizyon/FrmProvizyonKabul.vb:52` (`Status=1`), `Controls/Grid/ProvizyonGrid.vb:261-277`, `Form/Genel/FrmBilancoSifirla.vb:93` (`IslemKodu = 999`), `Class/Ext/Cari.ListIt
Kök nedenMagic number karşılaştırmaları — BK — kod tablosu ile enum eşleşmesi kodda dağınık; anlam kaybı.
Neden zinciriTeknik olay: BK — kod tablosu ile enum eşleşmesi kodda dağınık; anlam kaybı. ↓ Kök neden: Magic number karşılaştırmaları ↓ Kanıt: hotspots §12.
Etkilenen veri`ERPPRO/Controls/Islem Ekranı/Ekran/FrmTransfer.vb:57,69,80` (`SetStatus(…, 3|1|2)`), `Class/Dao/Cari.Transferler.vb:152`, `Form/Provizyon/FrmProvizyonKabul.vb:52` (`Status=1`), `Controls/Grid/ProvizyonGrid.vb:261-277`, `Form/Genel/FrmBilancoSifirla.vb:93` (`IslemKodu = 999`), `Class/Ext/Cari.ListIt
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `tTransferStatus`, `tProvizyonStatus` enum'ları; SQL metinlerinde parametre olarak enum değeri.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-26 · öncelik P3 · kanıt: hotspots §12.
Wiki bağlantılarıTD-26
POTANSİYEL ERR-POT-027TD-27 — Combo indeksi doğrudan `IslemTuru` olarak kaydediliyor S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE19 — Raporlama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — `IslemKodu=BORC` kayıtlarında `IslemTuru` ALACAK/BORC yerine GIRIS/CIKIS; raporlar ve `GetKarsiIslemTuru` (`Database.vb:658-674`) bu değere göre yön çevirir.
Kod dosyası`ERPPRO/Controls/Islem Ekranı/Ekran/iFBorc.vb:6,56` (`IslemTuru = CmbIslemTuru.SelectedIndex`), `iFBorc.Designer.vb:233` (`Items = {"ALACAK","BORC"}`) — enum `Class/Ext/Cari.IslemEx.vb:48-55` (`GIRIS=0, CIKIS=1, ALACAK=2, BORC=3, ALIS=4, SATIS=5`) → 0/1 = GIRIS/CIKIS yazılır. Doğru offset uygulayanl
Kök nedenCombo indeksi doğrudan `IslemTuru` olarak kaydediliyor — VB — `IslemKodu=BORC` kayıtlarında `IslemTuru` ALACAK/BORC yerine GIRIS/CIKIS; raporlar ve `GetKarsiIslemTuru` (`Database.vb:658-674`) bu değere göre yön çevirir.
Neden zinciriTeknik olay: VB — `IslemKodu=BORC` kayıtlarında `IslemTuru` ALACAK/BORC yerine GIRIS/CIKIS; raporlar ve `GetKarsiIslemTuru` (`Database.vb:658-674`) bu değere göre ↓ Kök neden: Combo indeksi doğrudan `IslemTuru` olarak kaydediliyor ↓ Kanıt: satırlar yukarıda (iFBorc VERIFIED; `iFVirman`/`iFDoviz` AS-DOCUMENTED §9-16, `[GAP: bu iki ekran satır bazında yeniden
Etkilenen veri`ERPPRO/Controls/Islem Ekranı/Ekran/iFBorc.vb:6,56` (`IslemTuru = CmbIslemTuru.SelectedIndex`), `iFBorc.Designer.vb:233` (`Items = {"ALACAK","BORC"}`) — enum `Class/Ext/Cari.IslemEx.vb:48-55` (`GIRIS=0, CIKIS=1, ALACAK=2, BORC=3, ALIS=4, SATIS=5`) → 0/1 = GIRIS/CIKIS yazılır. Doğru offset uygulayanl
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Combo'ya enum değerini `ValueMember` olarak bağlamak; tek dönüştürücü.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Controls/Islem Ekranı/Ekran/iFBorc.vb:6,56` (`IslemTuru = CmbIslemTuru.SelectedIndex`), `iFBorc.Designer.vb:233` (`Items = {"ALACAK","BORC"}`) — enum `C
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-27 · öncelik P2 · kanıt: satırlar yukarıda (iFBorc VERIFIED; `iFVirman`/`iFDoviz` AS-DOCUMENTED §9-16, `[GAP: bu iki ekran satır bazında yeniden doğrulanmadı]`).
Wiki bağlantılarıTD-27
POTANSİYEL ERR-POT-028TD-28 — Sabit kodlanmış MASAK eşikleri S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB (mevzuat) — güncel eşiklerle uyumsuz (AS-DOCUMENTED §9-24: 185.000 TL / 5.000 USD, `masak-mevzuat-notlari.md`); her değişiklikte derleme.
Kod dosyası`ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.vb:279-280` (`> 7000` TL isimsiz hesap), `:349-350`, `:407` (`> 3000` USD uyarı).
Kök nedenSabit kodlanmış MASAK eşikleri — VB (mevzuat) — güncel eşiklerle uyumsuz (AS-DOCUMENTED §9-24: 185.000 TL / 5.000 USD, `masak-mevzuat-notlari.md`); her değişiklikte derleme.
Neden zinciriTeknik olay: VB (mevzuat) — güncel eşiklerle uyumsuz (AS-DOCUMENTED §9-24: 185.000 TL / 5.000 USD, `masak-mevzuat-notlari.md`); her değişiklikte derleme. ↓ Kök neden: Sabit kodlanmış MASAK eşikleri ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.vb:279-280` (`> 7000` TL isimsiz hesap), `:349-350`, `:407` (`> 3000` USD uyarı).
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Eşikleri `Sistem.GlobalSettings`/parametre tablosuna almak, yürürlük tarihiyle.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.vb:279-280` (`> 7000` TL isimsiz hesap), `:349-350`, `:407` (`> 3000` USD uyarı).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-28 · öncelik P2 · kanıt: satırlar yukarıda.
Wiki bağlantılarıTD-28
POTANSİYEL ERR-POT-029TD-29 — `Devir.DevirYap`: `TRUNCATE` + yeniden `INSERT`, transaction yok S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-036 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE05 — Transaction Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-036 Yıl sonu devir işlemi ve devir sonrası fark
Teknik belirtiVB — `TRUNCATE` sonrası `INSERT` hata verirse hareket tabloları boş kalır; tek güvence önce alınan yedek.
Kod dosyası`ERPPRO/Class/Module/Devir.vb:39-40` (`BACKUP/RESTORE` metinleri string birleştirme), `:76-87` (`Truncate Table Cari.Islemler, Cari.BakiyeIslem, Cari.History, Stok.StokHaraketleri, Cari.IslemDetaylari` + `INSERT … Select * from #ErpBalance/#ERPStok`), `:90-147` (adımlar ayrı `ExecuteNonQuery/Execute
Kök neden`Devir.DevirYap`: `TRUNCATE` + yeniden `INSERT`, transaction yok — VB — `TRUNCATE` sonrası `INSERT` hata verirse hareket tabloları boş kalır; tek güvence önce alınan yedek.
Neden zinciriTeknik olay: VB — `TRUNCATE` sonrası `INSERT` hata verirse hareket tabloları boş kalır; tek güvence önce alınan yedek. ↓ Kök neden: `Devir.DevirYap`: `TRUNCATE` + yeniden `INSERT`, transaction yok ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Class/Module/Devir.vb:39-40` (`BACKUP/RESTORE` metinleri string birleştirme), `:76-87` (`Truncate Table Cari.Islemler, Cari.BakiyeIslem, Cari.History, Stok.StokHaraketleri, Cari.IslemDetaylari` + `INSERT … Select * from #ErpBalance/#ERPStok`), `:90-147` (adımlar ayrı `ExecuteNonQuery/Execute
Olasılık / etki / güvenYÜKSEK / S1 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Devir betiğini `BEGIN TRAN … COMMIT` + `TRY/CATCH` içine almak; `TRUNCATE` yerine yeni dönem DB'si oluşturma; `sp_configure` değişikliğini kaldırmak.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Module/Devir.vb:39-40` (`BACKUP/RESTORE` metinleri string birleştirme), `:76-87` (`Truncate Table Cari.Islemler, Cari.BakiyeIslem, Cari.History, S
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-29 · öncelik P1 · kanıt: satırlar yukarıda.
Wiki bağlantılarıTD-29
POTANSİYEL ERR-POT-030TD-30 — `Repair.BalanceRepair` S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE09 — Konfigürasyon Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — çalıştırılırsa devir bakiyeleri/transfer hareketleri kaybolur ve fatura tipli (11/12) işlemlere bakiye yazar (AS-DOCUMENTED `ERPGOLD-mimari-referans.md §9-1`, `erpgoldv2-balancerepair-riski.md`).
Kod dosyasıDB `Repair.BalanceRepair` (P, 18.773 karakter; 2 `TRUNCATE`, cursor), `Repair.StokRepair`. Uygulamadan çağıran yok (`grep "BalanceRepair|StokRepair"` ERPPRO = 0).
Kök neden`Repair.BalanceRepair` — VB — çalıştırılırsa devir bakiyeleri/transfer hareketleri kaybolur ve fatura tipli (11/12) işlemlere bakiye yazar (AS-DOCUMENTED `ERPGOLD-mimari-referans.md §9-1`, `erpgoldv2-balancerepair-riski.md`).
Neden zinciriTeknik olay: VB — çalıştırılırsa devir bakiyeleri/transfer hareketleri kaybolur ve fatura tipli (11/12) işlemlere bakiye yazar (AS-DOCUMENTED `ERPGOLD-mimari-refer ↓ Kök neden: `Repair.BalanceRepair` ↓ Kanıt: varlık ve `TRUNCATE` sayısı `kb_src/db/modules_all.json` ile VERIFIED; etki analizi dokümandan.
Etkilenen veriDB `Repair.BalanceRepair` (P, 18.773 karakter; 2 `TRUNCATE`, cursor), `Repair.StokRepair`. Uygulamadan çağıran yok (`grep "BalanceRepair|StokRepair"` ERPPRO = 0).
Olasılık / etki / güvenYÜKSEK / S1 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Prosedürü devre dışı bırakmak/yeniden adlandırmak; "önce raporla sonra uygula" tipi, kapsamı daraltılmış onarım.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: DB `Repair.BalanceRepair` (P, 18.773 karakter; 2 `TRUNCATE`, cursor), `Repair.StokRepair`. Uygulamadan çağıran yok (`grep "BalanceRepair|StokRepair"` ERPPRO = 0
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-30 · öncelik P1 · kanıt: varlık ve `TRUNCATE` sayısı `kb_src/db/modules_all.json` ile VERIFIED; etki analizi dokümandan.
İlişkili kayıtlarERR-OBS-067, ERR-OBS-086, ERR-POT-003, ERR-POT-116, ERR-POT-129, ERR-POT-134, ERR-POT-135, ERR-SIL-046, ERR-SIL-067, ERR-SIL-068
Wiki bağlantılarıTD-30
POTANSİYEL ERR-POT-031TD-31 — `Cari.IslemINS` precision'sız `decimal` parametreler S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE08 — Yuvarlama / Hassasiyet Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — kullanılırsa milyem/fiyat/kur tam sayıya yuvarlanır (AS-DOCUMENTED `erpgoldv2-kod-katmani-bulgulari.md §3`; parametre tanımı VERIFIED).
Kod dosyasıDB `Cari.IslemINS` (P): 24 parametre çıplak `decimal` (`@Miktar, @AuMilyem, @Fiyat, @HasKur …` → `decimal(18,0)`), 12 parametre `nvarchar(max)`. Uygulamadan çağıran yok (grep 0).
Kök neden`Cari.IslemINS` precision'sız `decimal` parametreler — VB — kullanılırsa milyem/fiyat/kur tam sayıya yuvarlanır (AS-DOCUMENTED `erpgoldv2-kod-katmani-bulgulari.md §3`; parametre tanımı VERIFIED).
Neden zinciriTeknik olay: VB — kullanılırsa milyem/fiyat/kur tam sayıya yuvarlanır (AS-DOCUMENTED `erpgoldv2-kod-katmani-bulgulari.md §3`; parametre tanımı VERIFIED). ↓ Kök neden: `Cari.IslemINS` precision'sız `decimal` parametreler ↓ Kanıt: `kb_src/db/modules_all.json`.
Etkilenen veriDB `Cari.IslemINS` (P): 24 parametre çıplak `decimal` (`@Miktar, @AuMilyem, @Fiyat, @HasKur …` → `decimal(18,0)`), 12 parametre `nvarchar(max)`. Uygulamadan çağıran yok (grep 0).
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kaldırmak ya da tablo tipleriyle birebir `decimal(18,n)`.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-31 · öncelik P2 · kanıt: `kb_src/db/modules_all.json`.
Wiki bağlantılarıTD-31
POTANSİYEL ERR-POT-032TD-32 — `Cari.Islemler` tetikleyicileri demo kopyasında kapalı S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — iş kurallarının (şube pasif, evrak eksik, takoz stok) uygulama mı DB mi tarafından uygulandığı belirsiz; üretimde açıksa TD-03/TD-04 aktif.
Kod dosyasıDB `Cari.AcceptTransaction`, `UpdateTransaction`, `InsertTransaction`, `DeleteTransaction` — dördü DISABLED (AS-DOCUMENTED `erpgoldv2-kod-katmani-bulgulari.md §2`). Uygulama tarafında karşılığı: `Class/Dao/Islem/Cari.Islem.vb:506-531` (`Save` ön kontrolleri) ve `RaiseEvent InsertTransaction()` (`:70
Kök neden`Cari.Islemler` tetikleyicileri demo kopyasında kapalı — VB — iş kurallarının (şube pasif, evrak eksik, takoz stok) uygulama mı DB mi tarafından uygulandığı belirsiz; üretimde açıksa TD-03/TD-04 aktif.
Neden zinciriTeknik olay: VB — iş kurallarının (şube pasif, evrak eksik, takoz stok) uygulama mı DB mi tarafından uygulandığı belirsiz; üretimde açıksa TD-03/TD-04 aktif. ↓ Kök neden: `Cari.Islemler` tetikleyicileri demo kopyasında kapalı ↓ Kanıt: doküman; kod tarafında transaction-içi kural yok (TD-01).
Etkilenen veriDB `Cari.AcceptTransaction`, `UpdateTransaction`, `InsertTransaction`, `DeleteTransaction` — dördü DISABLED (AS-DOCUMENTED `erpgoldv2-kod-katmani-bulgulari.md §2`). Uygulama tarafında karşılığı: `Class/Dao/Islem/Cari.Islem.vb:506-531` (`Save` ön kontrolleri) ve `RaiseEvent InsertTransaction()` (`:70
Olasılık / etki / güvenYÜKSEK / S1 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Üretim DB'sinde tetikleyici durumu teyit `[GAP]`; kural motoru tek yerde.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-32 · öncelik P1 · kanıt: doküman; kod tarafında transaction-içi kural yok (TD-01).
Wiki bağlantılarıTD-03 · TD-04 · TD-32 · TD-01
POTANSİYEL ERR-POT-033TD-33 — Uyumluluk seviyesi 100 S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiPF — skaler UDF inlining, yeni kardinalite tahmini yok.
Kod dosyasıDB `ERPGOLDV2` (AS-DOCUMENTED `erpgoldv2-ilk-bulgular.md:4, §8`; mimari referans §9-30). `FN.Bol` skaler UDF 121 modülde; uygulama SQL'inde `Fn.Bol(` 10 satır (grep).
Kök nedenUyumluluk seviyesi 100 — PF — skaler UDF inlining, yeni kardinalite tahmini yok.
Neden zinciriTeknik olay: PF — skaler UDF inlining, yeni kardinalite tahmini yok. ↓ Kök neden: Uyumluluk seviyesi 100 ↓ Kanıt: doküman; kodda `FN.Bol` kullanımı VERIFIED (`Class/Ext/Siparis.ParcaEx.vb:85`, `Stok.GetMadenMaliyeti` satır 30,38).
Etkilenen veriDB `ERPGOLDV2` (AS-DOCUMENTED `erpgoldv2-ilk-bulgular.md:4, §8`; mimari referans §9-30). `FN.Bol` skaler UDF 121 modülde; uygulama SQL'inde `Fn.Bol(` 10 satır (grep).
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Test ortamında seviye 150+ ile regresyon; `FN.Bol` yerine `NULLIF` bölme.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-33 · öncelik P3 · kanıt: doküman; kodda `FN.Bol` kullanımı VERIFIED (`Class/Ext/Siparis.ParcaEx.vb:85`, `Stok.GetMadenMaliyeti` satır 30,38).
İlişkili kayıtlarERR-OBS-070, ERR-POT-023, ERR-POT-138, ERR-SIL-026, ERR-SIL-036, ERR-SIL-041, ERR-SIL-064
Wiki bağlantılarıTD-33
POTANSİYEL ERR-POT-034TD-34 — 45 kullanılmayan tablo S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE19 — Raporlama Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiBK — şema yanıltıcı; rapor yazanlar yanlış tabloya (`dbo.BakiyeIslem` vs `Cari.BakiyeIslem`) bağlanabilir.
Kod dosyası`kb_src/notes/gaps.json` `GAP-DB-01` (satır 0 + hiçbir SQL nesnesinin kullanmadığı 45 tablo: `Agent.Controller/FeedBack`, `AifaDev.GridLayouts/Layouts/ShortKeys`, `dbo.BakiyeIslem` (kopya), `DynamicForms.*` (deneme), `Sistem.Tracker` …). Kod tarafı: `Agent.Controller` için DAO ve önbellek yükleyici
İlgili SQL nesneleridbo.BakiyeIslem, Cari.BakiyeIslem
Kök neden45 kullanılmayan tablo — BK — şema yanıltıcı; rapor yazanlar yanlış tabloya (`dbo.BakiyeIslem` vs `Cari.BakiyeIslem`) bağlanabilir.
Neden zinciriTeknik olay: BK — şema yanıltıcı; rapor yazanlar yanlış tabloya (`dbo.BakiyeIslem` vs `Cari.BakiyeIslem`) bağlanabilir. ↓ Kök neden: 45 kullanılmayan tablo ↓ Kanıt: AS-DOCUMENTED (gaps.json); kod referansları VERIFIED.
Etkilenen veri`kb_src/notes/gaps.json` `GAP-DB-01` (satır 0 + hiçbir SQL nesnesinin kullanmadığı 45 tablo: `Agent.Controller/FeedBack`, `AifaDev.GridLayouts/Layouts/ShortKeys`, `dbo.BakiyeIslem` (kopya), `DynamicForms.*` (deneme), `Sistem.Tracker` …). Kod tarafı: `Agent.Controller` için DAO ve önbellek yükleyici
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Geliştirme ekibiyle "atıl" işareti, `DEPRECATED_` şemasına taşıma, sonra kaldırma.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-34 · öncelik P3 · kanıt: AS-DOCUMENTED (gaps.json); kod referansları VERIFIED.
Wiki bağlantılarıTD-34
POTANSİYEL ERR-POT-035TD-35 — ExLimit PIN üretimi zayıf S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiGV — GUID hex karakterleri (0-9, A-F) → 16×16 = 256 olası PIN, ASCII kodları tahmin edilebilir (mimari referans §9-22 ile uyumlu).
Kod dosyası`ERPPRO/Class/Dao/Islem/FrmExLimit.vb:50-53` (`Left(GetNewGUID, 2)` → her karakterin `Asc` değeri birleştirilir); `:48-49` "captcha" `Say1 + (Say1 - 1)` toplama sorusu.
Kök nedenExLimit PIN üretimi zayıf — GV — GUID hex karakterleri (0-9, A-F) → 16×16 = 256 olası PIN, ASCII kodları tahmin edilebilir (mimari referans §9-22 ile uyumlu).
Neden zinciriTeknik olay: GV — GUID hex karakterleri (0-9, A-F) → 16×16 = 256 olası PIN, ASCII kodları tahmin edilebilir (mimari referans §9-22 ile uyumlu). ↓ Kök neden: ExLimit PIN üretimi zayıf ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Class/Dao/Islem/FrmExLimit.vb:50-53` (`Left(GetNewGUID, 2)` → her karakterin `Asc` değeri birleştirilir); `:48-49` "captcha" `Say1 + (Say1 - 1)` toplama sorusu.
Olasılık / etki / güvenORTA / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `RNGCryptoServiceProvider` ile 6 haneli PIN, deneme sınırı, süre.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuKod incelemesi ile doğrula: `ERPPRO/Class/Dao/Islem/FrmExLimit.vb:50-53` (`Left(GetNewGUID, 2)` → her karakterin `Asc` değeri birleştirilir); `:48-49` "captcha" `Say1 + (Say1 - 1)` toplama
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-35 · öncelik P2 · kanıt: satırlar yukarıda.
Wiki bağlantılarıTD-35
POTANSİYEL ERR-POT-036TD-36 — `Sistem.Clients` hard delete S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — soft-delete kuralının (`IsDeleted`) dışına çıkan tek DAO silmesi; makine adı string birleştirme.
Kod dosyası`ERPPRO/Class/Dao/Sistem.Clients.vb:232` (`Delete From Sistem.Clients Where ClientName='" & ComputerName & "'`).
Kök neden`Sistem.Clients` hard delete — VB — soft-delete kuralının (`IsDeleted`) dışına çıkan tek DAO silmesi; makine adı string birleştirme.
Neden zinciriTeknik olay: VB — soft-delete kuralının (`IsDeleted`) dışına çıkan tek DAO silmesi; makine adı string birleştirme. ↓ Kök neden: `Sistem.Clients` hard delete ↓ Kanıt: satır yukarıda; diğer 87 dosyada `Update … Set IsDeleted='True'`.
Etkilenen veri`ERPPRO/Class/Dao/Sistem.Clients.vb:232` (`Delete From Sistem.Clients Where ClientName='" & ComputerName & "'`).
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Parametreli sorgu; oturum tablosu için ayrı yaşam döngüsü (süre dolumu).
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-36 · öncelik P3 · kanıt: satır yukarıda; diğer 87 dosyada `Update … Set IsDeleted='True'`.
Wiki bağlantılarıTD-36
POTANSİYEL ERR-POT-037TD-37 — `Program.AfterSave` ondalık değeri `ToString` ile SQL'e gömüyor S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE08 — Yuvarlama / Hassasiyet Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiVB — kültür ondalık ayırıcı `,` ise SQL hatası/yanlış değer; `Utils.Culture` (`Class/Module/Utils.vb:126-139`) `.` zorluyor, ancak yalnız o özellik çağrılan thread'de (INFERRED).
Kod dosyası`ERPPRO/Class/Module/Program.vb:11-14` (`Set Miktar=Adet * " & .OrtMiktar.ToString & "`), iki ayrı `UPDATE`, transaction yok.
Kök neden`Program.AfterSave` ondalık değeri `ToString` ile SQL'e gömüyor — VB — kültür ondalık ayırıcı `,` ise SQL hatası/yanlış değer; `Utils.Culture` (`Class/Module/Utils.vb:126-139`) `.` zorluyor, ancak yalnız o özellik çağrılan thread'de (INFERRED).
Neden zinciriTeknik olay: VB — kültür ondalık ayırıcı `,` ise SQL hatası/yanlış değer; `Utils.Culture` (`Class/Module/Utils.vb:126-139`) `.` zorluyor, ancak yalnız o özellik ça ↓ Kök neden: `Program.AfterSave` ondalık değeri `ToString` ile SQL'e gömüyor ↓ Kanıt: satırlar yukarıda.
Etkilenen veri`ERPPRO/Class/Module/Program.vb:11-14` (`Set Miktar=Adet * " & .OrtMiktar.ToString & "`), iki ayrı `UPDATE`, transaction yok.
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `SqlParameter` (decimal) kullanmak.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-37 · öncelik P3 · kanıt: satırlar yukarıda.
İlişkili kayıtlarERR-POT-021
Wiki bağlantılarıTD-37
POTANSİYEL ERR-POT-038TD-38 — Ölü kod ve artıklar S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=EVET
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Teknik belirtiBK — okuma yükü, yanlış yol seçimi.
Kod dosyası`ERPPRO/Class/Module/Utils.vb:198-…` (`cVBEvalProvider` — çağıran yok); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1800-1992` (`TableAdapterManager.UpdateAll` — çağıran yok); `CodeDesigner/CodeDesigner/UiDesigner/RibbonDesigner/Ribbon.sync-conflict-20180412-175728-MJL5L7R.vb` (vbproj dışında); `ERPPRO/app
Kök nedenÖlü kod ve artıklar — BK — okuma yükü, yanlış yol seçimi.
Neden zinciriTeknik olay: BK — okuma yükü, yanlış yol seçimi. ↓ Kök neden: Ölü kod ve artıklar ↓ Kanıt: grep sonuçları (0 çağıran).
Etkilenen veri`ERPPRO/Class/Module/Utils.vb:198-…` (`cVBEvalProvider` — çağıran yok); `ERPPRO/ERPGOLDV2DataSet.Designer.vb:1800-1992` (`TableAdapterManager.UpdateAll` — çağıran yok); `CodeDesigner/CodeDesigner/UiDesigner/RibbonDesigner/Ribbon.sync-conflict-20180412-175728-MJL5L7R.vb` (vbproj dışında); `ERPPRO/app
Olasılık / etki / güvenDÜŞÜK / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Silmek; derleme uyarısı "kullanılmayan üye" analizörü.
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-38 · öncelik P3 · kanıt: grep sonuçları (0 çağıran).
Wiki bağlantılarıTD-38
POTANSİYEL ERR-POT-039TD-39 — `Cari.Islemler.VaryantId` adı yanıltıcı — karşı işlem Id'si tutuyor S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök neden`Cari.Islemler.VaryantId` adı yanıltıcı — karşı işlem Id'si tutuyor
Neden zinciriTeknik olay: ↓ Kök neden: `Cari.Islemler.VaryantId` adı yanıltıcı — karşı işlem Id'si tutuyor ↓ Kanıt:
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-39 · öncelik P2 · kanıt:
Wiki bağlantılarıTD-39
POTANSİYEL ERR-POT-040TD-40 — `TxtTarih` kontrolü `Vade` kolonuna yazıyor (iFMaden, iFNakit, Banka Op. Skoru) S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök neden`TxtTarih` kontrolü `Vade` kolonuna yazıyor (iFMaden, iFNakit, Banka Op. Skoru)
Neden zinciriTeknik olay: ↓ Kök neden: `TxtTarih` kontrolü `Vade` kolonuna yazıyor (iFMaden, iFNakit, Banka Op. Skoru) ↓ Kanıt:
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-40 · öncelik P2 · kanıt:
Wiki bağlantılarıTD-40
POTANSİYEL ERR-POT-041TD-41 — `MüşteriŞemasıAIslemFiyatlari` tetikleyicisi: tek satır `Inserted`, sabit kimlikler, korumasız bölme S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök neden`MüşteriŞemasıAIslemFiyatlari` tetikleyicisi: tek satır `Inserted`, sabit kimlikler, korumasız bölme
Neden zinciriTeknik olay: ↓ Kök neden: `MüşteriŞemasıAIslemFiyatlari` tetikleyicisi: tek satır `Inserted`, sabit kimlikler, korumasız bölme ↓ Kanıt:
Etkilenen veriCari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar
Olasılık / etki / güvenYÜKSEK / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-41 · öncelik P1 · kanıt:
Wiki bağlantılarıTD-41
POTANSİYEL ERR-POT-042TD-42 — Devir yalnız 5 tabloyu boşaltıyor; `IslemId` taşıyan diğer tablolar birikiyor S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-036 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE17 — Eski Veri / Legacy Problemi
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-036 Yıl sonu devir işlemi ve devir sonrası fark
Kök nedenDevir yalnız 5 tabloyu boşaltıyor; `IslemId` taşıyan diğer tablolar birikiyor
Neden zinciriTeknik olay: ↓ Kök neden: Devir yalnız 5 tabloyu boşaltıyor; `IslemId` taşıyan diğer tablolar birikiyor ↓ Kanıt:
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-42 · öncelik P2 · kanıt:
Wiki bağlantılarıTD-42
POTANSİYEL ERR-POT-043TD-43 — Müşteri adı taşıyan şemalar çekirdek DB'de: `MüşteriŞemasıA`, `MüşteriŞemasıB`, `MüşteriŞemasıC`, `MüşteriŞemasıD` S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök nedenMüşteri adı taşıyan şemalar çekirdek DB'de: `MüşteriŞemasıA`, `MüşteriŞemasıB`, `MüşteriŞemasıC`, `MüşteriŞemasıD`
Neden zinciriTeknik olay: ↓ Kök neden: Müşteri adı taşıyan şemalar çekirdek DB'de: `MüşteriŞemasıA`, `MüşteriŞemasıB`, `MüşteriŞemasıC`, `MüşteriŞemasıD` ↓ Kanıt:
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-43 · öncelik P2 · kanıt:
Wiki bağlantılarıTD-43
POTANSİYEL ERR-POT-044TD-44 — Kod tabloları kod enum'unun gerisinde: `IslemTipi` 12–15, `IslemKodu` 14 S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE09 — Konfigürasyon Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök nedenKod tabloları kod enum'unun gerisinde: `IslemTipi` 12–15, `IslemKodu` 14
Neden zinciriTeknik olay: ↓ Kök neden: Kod tabloları kod enum'unun gerisinde: `IslemTipi` 12–15, `IslemKodu` 14 ↓ Kanıt:
Etkilenen veriKurulum/bağlantı ayarları (veri etkilenmez)
Olasılık / etki / güvenORTA / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-44 · öncelik P2 · kanıt:
Wiki bağlantılarıTD-44
POTANSİYEL ERR-POT-045TD-45 — 10 ekran canlı DB'de olmayan 8 tabloya yazıyor S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE14 — UI / İş Akışı Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök neden10 ekran canlı DB'de olmayan 8 tabloya yazıyor
Neden zinciriTeknik olay: ↓ Kök neden: 10 ekran canlı DB'de olmayan 8 tabloya yazıyor ↓ Kanıt:
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-45 · öncelik P2 · kanıt:
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-046TD-46 — ANA MENÜ'de arkasında kod olmayan 25 düğme S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE06 — Algoritma Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök nedenANA MENÜ'de arkasında kod olmayan 25 düğme
Neden zinciriTeknik olay: ↓ Kök neden: ANA MENÜ'de arkasında kod olmayan 25 düğme ↓ Kanıt:
Olasılık / etki / güvenDÜŞÜK / S3 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-46 · öncelik P3 · kanıt:
Wiki bağlantılarıTD-46
POTANSİYEL ERR-POT-047TD-47 — Rapor fonksiyonları üç şemaya dağılmış: `Report`, `Reports`, `ReportsV2` S3 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-004 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE09 — Konfigürasyon Hatası
SeverityS3 — ORTA
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-004 Rapor tasarımı / yeni rapor / sütun ekleme / bakiye ekstresi düzenleme (talep)
Kök nedenRapor fonksiyonları üç şemaya dağılmış: `Report`, `Reports`, `ReportsV2`
Neden zinciriTeknik olay: ↓ Kök neden: Rapor fonksiyonları üç şemaya dağılmış: `Report`, `Reports`, `ReportsV2` ↓ Kanıt:
Olasılık / etki / güvenDÜŞÜK / S3 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-47 · öncelik P3 · kanıt:
Wiki bağlantılarıTD-47
POTANSİYEL ERR-POT-048TD-48 — `AcceptTransaction` kurulumlar arasında ayrışmış (29.862 ↔ 31.152 krk) S1 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · PF-008 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE05 — Transaction Hatası
SeverityS1 — KRİTİK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Problem ailesiPF-008 ERP kurulumu (yeni kurulum, sıfır kurulum, kurulum sonrası destek)
Kök neden`AcceptTransaction` kurulumlar arasında ayrışmış (29.862 ↔ 31.152 krk)
Neden zinciriTeknik olay: ↓ Kök neden: `AcceptTransaction` kurulumlar arasında ayrışmış (29.862 ↔ 31.152 krk) ↓ Kanıt:
Etkilenen veriCari.Islemler + karşı hesap/fatura/RsAktar kayıtları (yarım işlem)
Olasılık / etki / güvenYÜKSEK / S1 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-48 · öncelik P1 · kanıt:
Wiki bağlantılarıTD-48
POTANSİYEL ERR-POT-049TD-49 — İş kuralı 55 ekranda DAO dışına gömülü (doğrudan INSERT/UPDATE) S2 · MOD-KOD-KALİTESİ · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-KOD-KALİTESİ
Alt modülTeknik borç
Kök nedenİş kuralı 55 ekranda DAO dışına gömülü (doğrudan INSERT/UPDATE)
Neden zinciriTeknik olay: ↓ Kök neden: İş kuralı 55 ekranda DAO dışına gömülü (doğrudan INSERT/UPDATE) ↓ Kanıt:
Etkilenen veriCari.BakiyeIslem / Stok.StokHaraketleri (türetilmiş bakiye ve stok kayıtları), Sistem.Kurlar
Olasılık / etki / güvenORTA / S2 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözüm[Ekip tarafından doldurulacak]
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiStatik kod analizi (KB-docs technical-debt)
Test senaryosuHealth Check INV-01/04/07/10/15 ile türetilmiş kayıt ve toplam eşitliği doğrula; belirtiyi test verisiyle yeniden üret
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakWIKI TD-49 · öncelik P2 · kanıt:
Wiki bağlantılarıTD-49
POTANSİYEL ERR-POT-050 — InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_Click S3 · MOD-RAPOR · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS3 — ORTA
ModülMOD-RAPOR
Alt modülKod
Kullanıcı belirtisiTeknik hata kutusu; XML üretilmez.
Teknik belirtiKullanıcı TxtDonem.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
Exception türüInvalidCastException (CDate)
Kod dosyasıERPPRO/BTRANS/Class/CreateBTransDoviz.vb
ClassCreateBTransDoviz
MethodBtnCreateXML_Click
Satır / bölge12
Tetikleme koşuluKullanıcı TxtDonem.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
Kök nedenTry/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryParse) yok. Form Load'da geçerli varsayılanlar atanıyor.
Neden zinciriTeknik olay: InvalidCastException (CDate) ↓ Yakın neden: Kullanıcı TxtDonem.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.202 ↓ Kök neden: Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryP ↓ Kullanıcı etkisi: Teknik hata kutusu; XML üretilmez.
Olasılık / etki / güvenORTA / S3 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Kullanıcı TxtDonem.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · CreateBTransDoviz.vb:12 `Dim ... As Date = CDate(TxtDonem.Text)` / :31 `Catch ex As Exception MsgBox(ex.Message)`
İlişkili kayıtlarERR-POT-051, ERR-POT-052
POTANSİYEL ERR-POT-051 — InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_Click S3 · MOD-RAPOR · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS3 — ORTA
ModülMOD-RAPOR
Alt modülKod
Kullanıcı belirtisiTeknik hata kutusu; XML üretilmez.
Teknik belirtiKullanıcı TxtBasTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
Exception türüInvalidCastException (CDate)
Kod dosyasıERPPRO/BTRANS/Class/CreateBTransDoviz.vb
ClassCreateBTransDoviz
MethodBtnCreateXML_Click
Satır / bölge13
Tetikleme koşuluKullanıcı TxtBasTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
Kök nedenTry/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryParse) yok. Form Load'da geçerli varsayılanlar atanıyor.
Neden zinciriTeknik olay: InvalidCastException (CDate) ↓ Yakın neden: Kullanıcı TxtBasTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13. ↓ Kök neden: Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryP ↓ Kullanıcı etkisi: Teknik hata kutusu; XML üretilmez.
Olasılık / etki / güvenORTA / S3 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Kullanıcı TxtBasTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · CreateBTransDoviz.vb:13 `Dim ... As Date = CDate(TxtBasTarih.Text)` / :31 `Catch ex As Exception MsgBox(ex.Message)`
İlişkili kayıtlarERR-POT-050, ERR-POT-052
POTANSİYEL ERR-POT-052 — InvalidCastException (CDate) — CreateBTransDoviz.BtnCreateXML_Click S3 · MOD-RAPOR · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS3 — ORTA
ModülMOD-RAPOR
Alt modülKod
Kullanıcı belirtisiTeknik hata kutusu; XML üretilmez.
Teknik belirtiKullanıcı TxtSonTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
Exception türüInvalidCastException (CDate)
Kod dosyasıERPPRO/BTRANS/Class/CreateBTransDoviz.vb
ClassCreateBTransDoviz
MethodBtnCreateXML_Click
Satır / bölge14
Tetikleme koşuluKullanıcı TxtSonTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
Kök nedenTry/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryParse) yok. Form Load'da geçerli varsayılanlar atanıyor.
Neden zinciriTeknik olay: InvalidCastException (CDate) ↓ Yakın neden: Kullanıcı TxtSonTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13. ↓ Kök neden: Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryP ↓ Kullanıcı etkisi: Teknik hata kutusu; XML üretilmez.
Olasılık / etki / güvenORTA / S3 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Kullanıcı TxtSonTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · CreateBTransDoviz.vb:14 `Dim ... As Date = CDate(TxtSonTarih.Text)` / :31 `Catch ex As Exception MsgBox(ex.Message)`
İlişkili kayıtlarERR-POT-050, ERR-POT-051
POTANSİYEL ERR-POT-053 — UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — Dosya.ShowFile S3 · MOD-CARI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS3 — ORTA
ModülMOD-CARI
Alt modülKod
Kullanıcı belirtisiTeminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).
Teknik belirtiSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.
Exception türüUnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk)
Kod dosyasıERPPRO/Class/Ext/Genel.DosyaEx.vb
ClassDosya
MethodShowFile
Satır / bölge81
Tetikleme koşuluSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.
Kök nedenFileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.
Neden zinciriTeknik olay: UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) ↓ Yakın neden: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. ↓ Kök neden: FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok. ↓ Kullanıcı etkisi: Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).
Olasılık / etki / güvenORTA / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' o
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · ERPPRO/Class/Ext/Genel.DosyaEx.vb:81 `My.Computer.FileSystem.GetTempFileName.Split(".")(0) & DocumentType` ardından `New System.IO.FileStream(TempFileName_, FileMode.Create)` (Try dışında)
POTANSİYEL ERR-POT-054 — UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — FrmCariKartEkle.TeminatlarButtonClick S3 · MOD-CARI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS3 — ORTA
ModülMOD-CARI
Alt modülKod
Kullanıcı belirtisiTeminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).
Teknik belirtiSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.
Exception türüUnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk)
Kod dosyasıERPPRO/Form/Tanımlamalar/Cari/FrmCariKartEkle.vb
ClassFrmCariKartEkle
MethodTeminatlarButtonClick
Satır / bölge234
Tetikleme koşuluSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.
Kök nedenFileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.
Neden zinciriTeknik olay: UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) ↓ Yakın neden: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. ↓ Kök neden: FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok. ↓ Kullanıcı etkisi: Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).
Olasılık / etki / güvenORTA / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' o
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · ERPPRO/Form/Tanımlamalar/Cari/FrmCariKartEkle.vb:234 `My.Computer.FileSystem.GetTempFileName.Split(".")(0) & DocumentType` ardından `New System.IO.FileStream(TempFileName_, FileMode.Create)` (Try dışında)
POTANSİYEL ERR-POT-055 — UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) — FrmTeminatEkle.ShowFile S3 · MOD-CARI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS3 — ORTA
ModülMOD-CARI
Alt modülKod
Kullanıcı belirtisiTeminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).
Teknik belirtiSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.
Exception türüUnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk)
Kod dosyasıERPPRO/Form/Tanımlamalar/Cari/FrmTeminatEkle.vb
ClassFrmTeminatEkle
MethodShowFile
Satır / bölge58
Tetikleme koşuluSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.
Kök nedenFileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.
Neden zinciriTeknik olay: UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) ↓ Yakın neden: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. ↓ Kök neden: FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok. ↓ Kullanıcı etkisi: Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).
Olasılık / etki / güvenORTA / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Split('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' o
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · ERPPRO/Form/Tanımlamalar/Cari/FrmTeminatEkle.vb:58 `My.Computer.FileSystem.GetTempFileName.Split(".")(0) & DocumentType` ardından `New System.IO.FileStream(TempFileName_, FileMode.Create)` (Try dışında)
POTANSİYEL ERR-POT-056 — InvalidCastException (CInt(DBNull)) — DynamicData.Insert S4 · MOD-SISTEM · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS4 — DÜŞÜK
ModülMOD-SISTEM
Alt modülKod
Kullanıcı belirtisiTeknik hata kutusu.
Teknik belirtiSCOPE_IDENTITY() NULL dönerse
Exception türüInvalidCastException (CInt(DBNull))
Kod dosyasıCodeDesigner/CodeDesigner/DynamicData/DynamicData.vb
ClassDynamicData
MethodInsert
Satır / bölge105
Tetikleme koşuluSCOPE_IDENTITY() NULL dönerse
Kök nedenTry/Catch → MsgBox(ex.Message) + Return False.
Neden zinciriTeknik olay: InvalidCastException (CInt(DBNull)) ↓ Yakın neden: SCOPE_IDENTITY() NULL dönerse ↓ Kök neden: Try/Catch → MsgBox(ex.Message) + Return False. ↓ Kullanıcı etkisi: Teknik hata kutusu.
Olasılık / etki / güvenÇOK DÜŞÜK / S4 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): DBNull kontrolü.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: SCOPE_IDENTITY() NULL dönerse
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=EVET · DynamicData.vb:105, 115-117
POTANSİYEL ERR-POT-057 — SqlException / InvalidCastException (yeniden fırlatılır) — ERPFatura.Save S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-007 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülThreadException-AutoErrorHandle
Problem ailesiPF-007 Fatura kesilemiyor / fatura basma / fatura problemi (genel)
Kullanıcı belirtisiE-fatura kaydında yakalanmamış hata (AutoErrorHandle'a bağlı olarak hata formu veya sessiz).
Teknik belirtiMERGE sorgusu SqlException atarsa (kısıt, tip, bağlantı) veya `output inserted.*` ilk kolonu int değilse; Catch → `Throw New Exception(ex.Message, ex)`.
Exception türüSqlException / InvalidCastException (yeniden fırlatılır)
Kod dosyasıDijitalFatura/Common/ERPFatura.vb
ClassERPFatura
MethodSave
Satır / bölge634
Tetikleme koşuluMERGE sorgusu SqlException atarsa (kısıt, tip, bağlantı) veya `output inserted.*` ilk kolonu int değilse; Catch → `Throw New Exception(ex.Message, ex)`.
Kök nedenİstisna sarılıp yeniden fırlatılır. Çağıran FrmEFaturaBas.FormSave (`If ERP_Fatura.Save = True`, satır 313) ve Extention.vb:62 Try/Catch içinde DEĞİL → Application.ThreadException.
Neden zinciriTeknik olay: SqlException / InvalidCastException (yeniden fırlatılır) ↓ Yakın neden: MERGE sorgusu SqlException atarsa (kısıt, tip, bağlantı) veya `output inserted.*` ilk kolonu int değilse; Catch → `Throw ↓ Kök neden: İstisna sarılıp yeniden fırlatılır. Çağıran FrmEFaturaBas.FormSave (`If ERP_Fatura.Save = True`, satır 313) ve Extention.vb:62 Try/Catch içinde DEĞİL → Applicat ↓ Kullanıcı etkisi: E-fatura kaydında yakalanmamış hata (AutoErrorHandle'a bağlı olarak hata formu veya sessiz).
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenDÜŞÜK / S2 / 75
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Çağıranlarda Try/Catch + kullanıcı mesajı; Save içinde SqlException'ı özel mesaja çevirmek.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: MERGE sorgusu SqlException atarsa (kısıt, tip, bağlantı) veya `output inserted.*` ilk kolonu int değilse; Catch → `Throw New Exception(ex.Message, ex)`.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · ERPFatura.vb:632-640; FrmEFaturaBas.vb:313
İlişkili kayıtlarERR-POT-061, ERR-SIL-018, ERR-SIL-019, ERR-SIL-020
POTANSİYEL ERR-POT-058 — NullReferenceException (Dt Nothing) — Lisans.FirstDate S2 · MOD-SISTEM · Gözlemlendi: HAYIR · PF-002 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-SISTEM
Alt modülInternalDb-DataTable-Nothing
Problem ailesiPF-002 Lisans girişi / yıllık lisans yenileme (rutin)
Kullanıcı belirtisiLisans kontrolünde çökme/hata formu (bağlantı sorununda).
Teknik belirtiRows(0): GROUP BY'sız aggregate sorgu her zaman 1 satır döndürür → IndexOutOfRange olmaz. Ancak SQL/bağlantı hatasında InternalDb.DataTable Nothing döner → `Dt.Rows` NRE.
Exception türüNullReferenceException (Dt Nothing)
Kod dosyasıERPPRO/Class/Lisans/Lisans.vb
ClassLisans
MethodFirstDate
Satır / bölge54
Tetikleme koşuluRows(0): GROUP BY'sız aggregate sorgu her zaman 1 satır döndürür → IndexOutOfRange olmaz. Ancak SQL/bağlantı hatasında InternalDb.DataTable Nothing döner → `Dt.Rows` NRE.
Kök nedenNothing kontrolü yok. Çağrı zinciri: Utils.CallLisansControl ← Program.Init (Try/Catch → ShowDebugOutput) ve FrmMainForm.FormInit (IsLicensed, Try yok).
Neden zinciriTeknik olay: NullReferenceException (Dt Nothing) ↓ Yakın neden: Rows(0): GROUP BY'sız aggregate sorgu her zaman 1 satır döndürür → IndexOutOfRange olmaz. Ancak SQL/bağlantı hatasında I ↓ Kök neden: Nothing kontrolü yok. Çağrı zinciri: Utils.CallLisansControl ← Program.Init (Try/Catch → ShowDebugOutput) ve FrmMainForm.FormInit (IsLicensed, Try yok). ↓ Kullanıcı etkisi: Lisans kontrolünde çökme/hata formu (bağlantı sorununda).
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenDÜŞÜK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `If Dt IsNot Nothing AndAlso Dt.Rows.Count > 0`.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Rows(0): GROUP BY'sız aggregate sorgu her zaman 1 satır döndürür → IndexOutOfRange olmaz. Ancak SQL/bağlantı hatasında InternalDb.DataTable Nothing döner → `Dt.Rows` NRE.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · Lisans.vb:53-55; InternalDb.vb:113-124 DataTable → Nothing
İlişkili kayıtlarERR-POT-059
POTANSİYEL ERR-POT-059 — NullReferenceException (Dt Nothing) — Lisans.FirstDate S2 · MOD-SISTEM · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-SISTEM
Alt modülInternalDb-DataTable-Nothing
Kullanıcı belirtisiAynı.
Teknik belirtiAynı.
Exception türüNullReferenceException (Dt Nothing)
Kod dosyasıERPPRO/Class/Lisans/Lisans.vb
ClassLisans
MethodFirstDate
Satır / bölge55
Tetikleme koşuluAynı.
Kök nedenAynı.
Neden zinciriTeknik olay: NullReferenceException (Dt Nothing) ↓ Yakın neden: Aynı. ↓ Kök neden: Aynı. ↓ Kullanıcı etkisi: Aynı.
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenDÜŞÜK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Aynı.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Aynı.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · Lisans.vb:55
İlişkili kayıtlarERR-POT-058
POTANSİYEL ERR-POT-060 — ArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitif — Parameters.CreateDataTable S4 · MOD-SISTEM · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS4 — DÜŞÜK
ModülMOD-SISTEM
Alt modülKod
Kullanıcı belirtisiAgent/koşul editörü açılırken yakalanmamış hata.
Teknik belirtiRows(0) satır 71 `Tb.Rows.Add()` ile garanti. Gerçek risk: p.Value Is Nothing olan parametre (AddObject(New Cari.Islem) ile String özellikleri Nothing gelir) DataRow'a Nothing yazılınca ArgumentException.
Exception türüArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitif
Kod dosyasıERPPRO/Designer/Parameters/Parameter.vb
ClassParameters
MethodCreateDataTable
Satır / bölge73
Tetikleme koşuluRows(0) satır 71 `Tb.Rows.Add()` ile garanti. Gerçek risk: p.Value Is Nothing olan parametre (AddObject(New Cari.Islem) ile String özellikleri Nothing gelir) DataRow'a Nothing yazılınca ArgumentException.
Kök nedenSatır 65-69 Nothing için String kolonu açar ama satır 73'te DBNull'a çevirmez. Çağıran FrmControllerEkle.vb:39 Try dışında.
Neden zinciriTeknik olay: ArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitif ↓ Yakın neden: Rows(0) satır 71 `Tb.Rows.Add()` ile garanti. Gerçek risk: p.Value Is Nothing olan parametre (AddObject(New Cari.Islem) ↓ Kök neden: Satır 65-69 Nothing için String kolonu açar ama satır 73'te DBNull'a çevirmez. Çağıran FrmControllerEkle.vb:39 Try dışında. ↓ Kullanıcı etkisi: Agent/koşul editörü açılırken yakalanmamış hata.
Olasılık / etki / güvenORTA / S4 / 70
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `Tb.Rows(0).Item(p.Name) = If(p.Value, DBNull.Value)`.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Rows(0) satır 71 `Tb.Rows.Add()` ile garanti. Gerçek risk: p.Value Is Nothing olan parametre (AddObject(New Cari.Islem) ile String özellikleri Nothing gelir) DataRow'a Nothing yazılınca ArgumentExcept
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · Parameter.vb:64-74; FrmControllerEkle.vb:36-39
POTANSİYEL ERR-POT-061 — DivideByZeroException (Decimal bölme) — ERPFatura.ValidateOverUsdLimit S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülThreadException-AutoErrorHandle
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisiE-döviz belgesi gönderirken 'Attempted to divide by zero' yakalanmamış hata (AutoErrorHandle=1: hata formu; 0: sessiz, belge gönderilmez).
Teknik belirtiDolarKuru (Decimal) = 0 ise. Kaynaklar: FrmEFaturaBas.vb:295-299 → USD belgede DovizTLKuru (Fiyat 0 ise 0); diğerlerinde `IIf(Transaction.UsdKur=0, Program.GetKur("USD"), UsdKur)` → GetKur, günün USD kuru 0 girilmişse K.Alis=0 döndürür (Program.vb:260-268); DB'den yüklemede DolarKuru NULL/0 kayıt.
Exception türüDivideByZeroException (Decimal bölme)
Kod dosyasıDijitalFatura/Common/ERPFatura.vb
ClassERPFatura
MethodValidateOverUsdLimit
Satır / bölge958
Tetikleme koşuluDolarKuru (Decimal) = 0 ise. Kaynaklar: FrmEFaturaBas.vb:295-299 → USD belgede DovizTLKuru (Fiyat 0 ise 0); diğerlerinde `IIf(Transaction.UsdKur=0, Program.GetKur("USD"), UsdKur)` → GetKur, günün USD kuru 0 girilmişse K.Alis=0 döndürür (Program.vb:260-268); DB'den yüklemede DolarKuru NULL/0 kayıt.
Kök nedenSıfır kontrolü yok. SendToEntegrator (satır 779) çağrıları FrmEFaturaBas.vb:338 ve FrmEFaturaListesi.vb:39'da Try/Catch DIŞINDA → Application.ThreadException.
Neden zinciriTeknik olay: DivideByZeroException (Decimal bölme) ↓ Yakın neden: DolarKuru (Decimal) = 0 ise. Kaynaklar: FrmEFaturaBas.vb:295-299 → USD belgede DovizTLKuru (Fiyat 0 ise 0); diğerlerinde ↓ Kök neden: Sıfır kontrolü yok. SendToEntegrator (satır 779) çağrıları FrmEFaturaBas.vb:338 ve FrmEFaturaListesi.vb:39'da Try/Catch DIŞINDA → Application.ThreadException. ↓ Kullanıcı etkisi: E-döviz belgesi gönderirken 'Attempted to divide by zero' yakalanmamış hata (AutoErrorHandle=1: hata formu; 0: sessiz, b
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `If DolarKuru = 0 Then ErrorText = "USD kuru tanımsız" : Return False`; FormSave'de DolarKuru=0 doğrulaması.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: DolarKuru (Decimal) = 0 ise. Kaynaklar: FrmEFaturaBas.vb:295-299 → USD belgede DovizTLKuru (Fiyat 0 ise 0); diğerlerinde `IIf(Transaction.UsdKur=0, Program.GetKur("USD"), UsdKur)` → GetKur, günün USD
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · ERPFatura.vb:958 `Dim dolarKarsiligi = DovizMiktar * DovizTLKuru / DolarKuru` (DolarKuru As Decimal, :249)
İlişkili kayıtlarERR-POT-057, ERR-SIL-018, ERR-SIL-019, ERR-SIL-020
POTANSİYEL ERR-POT-062 — OverflowException (Infinity → Decimal) — Ice.Get_eDoviz_Belge S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-007 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülKod
Problem ailesiPF-007 Fatura kesilemiyor / fatura basma / fatura problemi (genel)
Kullanıcı belirtisi'Entegrator faturayı Kabul Etmedi. Hata oluştu!Value was either too large or too small for a Decimal.' mesajı; belge gönderilmez, log e-postası atılır.
Teknik belirtiEDocument.Dolar_TL_Kuru (Double) = 0 → Double bölme Infinity → CDec(Infinity) OverflowException ('Value was either too large or too small for a Decimal').
Exception türüOverflowException (Infinity → Decimal)
Kod dosyasıDijitalFatura/Entegrators/Ice.vb
ClassIce
MethodGet_eDoviz_Belge
Satır / bölge368
Tetikleme koşuluEDocument.Dolar_TL_Kuru (Double) = 0 → Double bölme Infinity → CDec(Infinity) OverflowException ('Value was either too large or too small for a Decimal').
Kök nedenSıfır kontrolü yok; SendInvoice (Ice.vb:116-194) Try/Catch ile yakalar → DeleteSettings(Auth) + EDovizResponseResult(Message='Hata oluştu!...').
Neden zinciriTeknik olay: OverflowException (Infinity → Decimal) ↓ Yakın neden: EDocument.Dolar_TL_Kuru (Double) = 0 → Double bölme Infinity → CDec(Infinity) OverflowException ('Value was either too l ↓ Kök neden: Sıfır kontrolü yok; SendInvoice (Ice.vb:116-194) Try/Catch ile yakalar → DeleteSettings(Auth) + EDovizResponseResult(Message='Hata oluştu!...'). ↓ Kullanıcı etkisi: 'Entegrator faturayı Kabul Etmedi. Hata oluştu!Value was either too large or too small for a Decimal.' mesajı; belge gön
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Gönderim öncesi Dolar_TL_Kuru/Doviz_TL_Kuru/DovizMiktar > 0 doğrulaması ve anlaşılır Türkçe mesaj.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: EDocument.Dolar_TL_Kuru (Double) = 0 → Double bölme Infinity → CDec(Infinity) OverflowException ('Value was either too large or too small for a Decimal').
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · Ice.vb:368 `CDec(EDocument.Doviz_TL_Kuru / EDocument.Dolar_TL_Kuru)`
İlişkili kayıtlarERR-POT-063, ERR-POT-064
POTANSİYEL ERR-POT-063 — OverflowException (Infinity → Decimal) — Ice.Get_eDoviz_Belge S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-018 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülKod
Problem ailesiPF-018 e-Belge entegratör güncellemesi / entegratör reddi (Uyumsoft, ICE, Mysoft, QR/dijital fatura)
Kullanıcı belirtisiEntegratör hata mesajı.
Teknik belirtiEDocument.DovizMiktar (Double) = 0 → Decimal/Double → Infinity → `Dim Fiyat As Decimal` atamasında OverflowException. Cari.Islem.Save Miktar=0'ı reddettiği için (Cari.Islem.vb:513) düşük olasılık.
Exception türüOverflowException (Infinity → Decimal)
Kod dosyasıDijitalFatura/Entegrators/Ice.vb
ClassIce
MethodGet_eDoviz_Belge
Satır / bölge376
Tetikleme koşuluEDocument.DovizMiktar (Double) = 0 → Decimal/Double → Infinity → `Dim Fiyat As Decimal` atamasında OverflowException. Cari.Islem.Save Miktar=0'ı reddettiği için (Cari.Islem.vb:513) düşük olasılık.
Kök nedenSendInvoice Try/Catch.
Neden zinciriTeknik olay: OverflowException (Infinity → Decimal) ↓ Yakın neden: EDocument.DovizMiktar (Double) = 0 → Decimal/Double → Infinity → `Dim Fiyat As Decimal` atamasında OverflowException. Ca ↓ Kök neden: SendInvoice Try/Catch. ↓ Kullanıcı etkisi: Entegratör hata mesajı.
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenDÜŞÜK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Miktar>0 doğrulaması.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: EDocument.DovizMiktar (Double) = 0 → Decimal/Double → Infinity → `Dim Fiyat As Decimal` atamasında OverflowException. Cari.Islem.Save Miktar=0'ı reddettiği için (Cari.Islem.vb:513) düşük olasılık.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · Ice.vb:374-377
İlişkili kayıtlarERR-POT-062, ERR-POT-064
POTANSİYEL ERR-POT-064 — DivideByZeroException (Decimal) — Ice.Get_eDoviz_Belge S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-018 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülKod
Problem ailesiPF-018 e-Belge entegratör güncellemesi / entegratör reddi (Uyumsoft, ICE, Mysoft, QR/dijital fatura)
Kullanıcı belirtisiEntegratör hata mesajı ('Attempted to divide by zero').
Teknik belirtitlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Vergi=Tutar ise 0.
Exception türüDivideByZeroException (Decimal)
Kod dosyasıDijitalFatura/Entegrators/Ice.vb
ClassIce
MethodGet_eDoviz_Belge
Satır / bölge449
Tetikleme koşulutlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Vergi=Tutar ise 0.
Kök nedenSendInvoice Try/Catch.
Neden zinciriTeknik olay: DivideByZeroException (Decimal) ↓ Yakın neden: tlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Ver ↓ Kök neden: SendInvoice Try/Catch. ↓ Kullanıcı etkisi: Entegratör hata mesajı ('Attempted to divide by zero').
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenDÜŞÜK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kur sıfır kontrolü.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: tlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Vergi=Tutar ise 0.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · Ice.vb:449 `.TL_Karsilik_Kuru = 1 / tlKarsilikKuru` (Decimal, Reference.vb:12817)
İlişkili kayıtlarERR-POT-062, ERR-POT-063
POTANSİYEL ERR-POT-065 — OverflowException (Infinity → Decimal) — MySoft.Get_eDoviz_Belge S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-018 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülKod
Problem ailesiPF-018 e-Belge entegratör güncellemesi / entegratör reddi (Uyumsoft, ICE, Mysoft, QR/dijital fatura)
Kullanıcı belirtisiEntegratör hata mesajı.
Teknik belirtiDolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException.
Exception türüOverflowException (Infinity → Decimal)
Kod dosyasıDijitalFatura/Entegrators/MySoft.vb
ClassMySoft
MethodGet_eDoviz_Belge
Satır / bölge557
Tetikleme koşuluDolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException.
Kök nedenSendInvoice (MySoft.vb:108-174) Try/Catch.
Neden zinciriTeknik olay: OverflowException (Infinity → Decimal) ↓ Yakın neden: Dolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException. ↓ Kök neden: SendInvoice (MySoft.vb:108-174) Try/Catch. ↓ Kullanıcı etkisi: Entegratör hata mesajı.
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kur > 0 doğrulaması.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Dolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · MySoft.vb:554 `Dim CalculationRate As Decimal = 0` / :557
İlişkili kayıtlarERR-SIL-022, ERR-SIL-023
POTANSİYEL ERR-POT-066 — FormatException (Convert.ToDecimal("∞")) — Uyumsoft.Get_eDoviz_Belge S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-018 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülKod
Problem ailesiPF-018 e-Belge entegratör güncellemesi / entegratör reddi (Uyumsoft, ICE, Mysoft, QR/dijital fatura)
Kullanıcı belirtisiEntegratör hata mesajı ('Input string was not in a correct format').
Teknik belirtiDolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException.
Exception türüFormatException (Convert.ToDecimal("∞"))
Kod dosyasıDijitalFatura/Entegrators/Uyumsoft.vb
ClassUyumsoft
MethodGet_eDoviz_Belge
Satır / bölge844
Tetikleme koşuluDolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException.
Kök nedenSendInvoice (Uyumsoft.vb:141-194) Try/Catch.
Neden zinciriTeknik olay: FormatException (Convert.ToDecimal("∞")) ↓ Yakın neden: Dolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException. ↓ Kök neden: SendInvoice (Uyumsoft.vb:141-194) Try/Catch. ↓ Kullanıcı etkisi: Entegratör hata mesajı ('Input string was not in a correct format').
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenORTA / S2 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kur > 0 doğrulaması.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Dolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · Uyumsoft.vb:844
İlişkili kayıtlarERR-POT-067
POTANSİYEL ERR-POT-067 — FormatException (Convert.ToDecimal("∞")) — Uyumsoft.Get_eDoviz_Belge S2 · MOD-EFATURA · Gözlemlendi: HAYIR · PF-018 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS2 — YÜKSEK
ModülMOD-EFATURA
Alt modülKod
Problem ailesiPF-018 e-Belge entegratör güncellemesi / entegratör reddi (Uyumsoft, ICE, Mysoft, QR/dijital fatura)
Kullanıcı belirtisiEntegratör hata mesajı.
Teknik belirtiSATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException.
Exception türüFormatException (Convert.ToDecimal("∞"))
Kod dosyasıDijitalFatura/Entegrators/Uyumsoft.vb
ClassUyumsoft
MethodGet_eDoviz_Belge
Satır / bölge863
Tetikleme koşuluSATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException.
Kök nedenSendInvoice Try/Catch.
Neden zinciriTeknik olay: FormatException (Convert.ToDecimal("∞")) ↓ Yakın neden: SATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException. ↓ Kök neden: SendInvoice Try/Catch. ↓ Kullanıcı etkisi: Entegratör hata mesajı.
Etkilenen veriBelirtilen SQL nesnesi / ekran verisi
Olasılık / etki / güvenDÜŞÜK / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kur > 0 doğrulaması.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: SATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · Uyumsoft.vb:863
İlişkili kayıtlarERR-POT-066
POTANSİYEL ERR-POT-068 — SqlException (tarih boş) — CDate yanlış pozitif — FrmSeriIslem.ListRefresh S4 · MOD-CARI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS4 — DÜŞÜK
ModülMOD-CARI
Alt modülKod
Kullanıcı belirtisiTarih temizlenip listelenirse SQL hata kutusu, liste boş.
Teknik belirtiTxtBTarih/TxtSTarih DateEdit temizlenirse EditValue Nothing → CDate(Nothing) = #01.01.0001# (istisna yok) → SQL'e '0001-01-01' gider; parametre DATETIME ise SqlException (InternalDb MsgBox).
Exception türüSqlException (tarih boş) — CDate yanlış pozitif
Kod dosyasıERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmSeriIslem.vb
ClassFrmSeriIslem
MethodListRefresh
Satır / bölge157
Tetikleme koşuluTxtBTarih/TxtSTarih DateEdit temizlenirse EditValue Nothing → CDate(Nothing) = #01.01.0001# (istisna yok) → SQL'e '0001-01-01' gider; parametre DATETIME ise SqlException (InternalDb MsgBox).
Kök nedenMetot Try/Catch (boş) içinde; InternalDb.DataTable hatayı MsgBox ile gösterir. Tarih boş kontrolü yok.
Neden zinciriTeknik olay: SqlException (tarih boş) — CDate yanlış pozitif ↓ Yakın neden: TxtBTarih/TxtSTarih DateEdit temizlenirse EditValue Nothing → CDate(Nothing) = #01.01.0001# (istisna yok) → SQL'e '0001- ↓ Kök neden: Metot Try/Catch (boş) içinde; InternalDb.DataTable hatayı MsgBox ile gösterir. Tarih boş kontrolü yok. ↓ Kullanıcı etkisi: Tarih temizlenip listelenirse SQL hata kutusu, liste boş.
Olasılık / etki / güvenDÜŞÜK / S4 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): TxtBTarih.EditValue Is Nothing ise varsayılan tarih atamak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: TxtBTarih/TxtSTarih DateEdit temizlenirse EditValue Nothing → CDate(Nothing) = #01.01.0001# (istisna yok) → SQL'e '0001-01-01' gider; parametre DATETIME ise SqlException (InternalDb MsgBox).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · FrmSeriIslem.vb:157, 165-166
POTANSİYEL ERR-POT-069 — SqlException (tarih boş) — CDate yanlış pozitif — iScreen.ListRefresh S4 · MOD-CARI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS4 — DÜŞÜK
ModülMOD-CARI
Alt modülKod
Kullanıcı belirtisiAynı.
Teknik belirtiAynı desen (BarEditItem DateEdit).
Exception türüSqlException (tarih boş) — CDate yanlış pozitif
Kod dosyasıERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb
ClassiScreen
MethodListRefresh
Satır / bölge977
Tetikleme koşuluAynı desen (BarEditItem DateEdit).
Kök nedenTry/Catch (boş, iScreen.vb:960/993); InternalDb MsgBox.
Neden zinciriTeknik olay: SqlException (tarih boş) — CDate yanlış pozitif ↓ Yakın neden: Aynı desen (BarEditItem DateEdit). ↓ Kök neden: Try/Catch (boş, iScreen.vb:960/993); InternalDb MsgBox. ↓ Kullanıcı etkisi: Aynı.
Olasılık / etki / güvenDÜŞÜK / S4 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Aynı.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: Aynı desen (BarEditItem DateEdit).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=KISMEN · iScreen.vb:977
İlişkili kayıtlarERR-SIL-030
POTANSİYEL ERR-POT-070 — InvalidCastException (CInt(DBNull)/CInt("")) — FrmSiparisGirisi.SaveData S3 · MOD-SIPARIS · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE01 — Uygulama / Kod Exception
SeverityS3 — ORTA
ModülMOD-SIPARIS
Alt modülKod
Kullanıcı belirtisiSipariş kaydında yakalanmamış hata (teorik).
Teknik belirtiCmbHesap (GridLookupEdit).EditValue DBNull veya boş string ise; Nothing → CInt(Nothing)=0 sorunsuz. Veri kaynağı Integer Id olduğundan düşük olasılık.
Exception türüInvalidCastException (CInt(DBNull)/CInt(""))
Kod dosyasıERPPRO/Form/Siparis/FrmSiparisGirisi.vb
ClassFrmSiparisGirisi
MethodSaveData
Satır / bölge70
Tetikleme koşuluCmbHesap (GridLookupEdit).EditValue DBNull veya boş string ise; Nothing → CInt(Nothing)=0 sorunsuz. Veri kaynağı Integer Id olduğundan düşük olasılık.
Kök nedenKontrol yok; SaveData Try/Catch dışında.
Neden zinciriTeknik olay: InvalidCastException (CInt(DBNull)/CInt("")) ↓ Yakın neden: CmbHesap (GridLookupEdit).EditValue DBNull veya boş string ise; Nothing → CInt(Nothing)=0 sorunsuz. Veri kaynağı Integer ↓ Kök neden: Kontrol yok; SaveData Try/Catch dışında. ↓ Kullanıcı etkisi: Sipariş kaydında yakalanmamış hata (teorik).
Olasılık / etki / güvenÇOK DÜŞÜK / S3 / 50
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): `Val("" & CmbHesap.EditValue)` kullanmak.
ÖnlemeGuard (Nothing/DBNull/sıfır) kontrolü + hata loglama
Tespit yöntemiStatik kod analizi + guard/data-flow doğrulaması
Test senaryosuKoşul: CmbHesap (GridLookupEdit).EditValue DBNull veya boş string ise; Nothing → CInt(Nothing)=0 sorunsuz. Veri kaynağı Integer Id olduğundan düşük olasılık.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakKod taraması (scan_exc.py) + doğrulama · Guard=HAYIR · FrmSiparisGirisi.vb:70
POTANSİYEL ERR-POT-071SQLR-001 Invalid object name: Cari.Odemeler S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Cari.Odemeler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.Odemeler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmOdemeListesi (ANA MENÜ FrmMainForm.vb:63 ve işlem ekranı iScreen.vb:1237), FrmOdemeYap, FrmOdemeGirisi
Kod dosyasıERPPRO/Class/Dao/Cari.Odeme.vb:205; ERPPRO/Class/Dao/Cari.Odeme.vb:252; ERPPRO/Class/Dao/Cari.Odeme.vb:295; ERPPRO/Class/Dao/Cari.Odeme.vb:309; ERPPRO/Class/Dao/Cari.Odeme.vb:32; ERPPRO/Class/Dao/Cari.Odeme.vb:324
SQL ObjectCari.Odemeler
TabloCari.Odemeler
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.Odemeler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Cari.Odemeler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.Odemeler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kat ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Cari.Odemeler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını göst
Etkilenen veriCari.Odemeler
Olasılık / etki / güvenYüksek — menüden ve işlem ekranından açılabiliyor / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Cari.Odemeler') AS ObjId; -- NULL ise nesne yok
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-001 · DB1=HAYIR DB2=HAYIR (TD-45: iki DB'de de yok) BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Cari.Odemeler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
İlişkili kayıtlarERR-POT-121
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-072SQLR-002 Invalid object name: Genel.IptalOnay S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Genel.IptalOnay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Genel.IptalOnay' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmIptalOnayListesi (ANA MENÜ FrmMainForm.vb)
Kod dosyasıERPPRO/Class/Dao/IptalOnay.vb:130; ERPPRO/Class/Dao/IptalOnay.vb:172; ERPPRO/Class/Dao/IptalOnay.vb:209; ERPPRO/Class/Dao/IptalOnay.vb:223; ERPPRO/Class/Dao/IptalOnay.vb:238; ERPPRO/Class/Dao/IptalOnay.vb:32
SQL ObjectGenel.IptalOnay
TabloGenel.IptalOnay
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Genel.IptalOnay' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Genel.IptalOnay] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Genel.IptalOnay' nesnesine Select/Insert/Update gönderiyor; nesne DB1 k ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Genel.IptalOnay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gö
Etkilenen veriGenel.IptalOnay
Olasılık / etki / güvenOrta — menüden açılabiliyor / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Genel.IptalOnay') AS ObjId; -- NULL ise nesne yok
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-002 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Genel.IptalOnay] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-073SQLR-003 Invalid object name: Siparis.FiyatListesi S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.FiyatListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.FiyatListesi' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmModelFiyatEkle (Siparis.FiyatListesiEx), FrmSipModelEkle (FrmSiparisGirisi), FrmCariHesapEkle
Kod dosyasıERPPRO/Class/Dao/Siparis.FiyatListesi.vb:125; ERPPRO/Class/Dao/Siparis.FiyatListesi.vb:150; ERPPRO/Class/Dao/Siparis.FiyatListesi.vb:177; ERPPRO/Class/Dao/Siparis.FiyatListesi.vb:204; ERPPRO/Class/Dao/Siparis.FiyatListesi.vb:218; ERPPRO/Class/Dao/Siparis.FiyatListesi.vb:233; ERPPRO/Class/Dao/Siparis.FiyatListesi.vb:31; ERPPRO/Class/Dao/Siparis.FiyatListesi.vb:54
SQL ObjectSiparis.FiyatListesi
TabloSiparis.FiyatListesi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.FiyatListesi' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.FiyatListesi] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.FiyatListesi' nesnesine Select/Insert/Update gönderiyor; nesne ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.FiyatListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajı
Etkilenen veriSiparis.FiyatListesi
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.FiyatListesi') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-003 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.FiyatListesi] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-074SQLR-004 Invalid object name: Uretim.Eritme S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.Eritme'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Eritme' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranEditEritme (Uretim.Eritmeex) — Üretim eritme ekranı
Kod dosyasıERPPRO/Class/Dao/Uretim.Eritme.vb:216; ERPPRO/Class/Dao/Uretim.Eritme.vb:269; ERPPRO/Class/Dao/Uretim.Eritme.vb:31; ERPPRO/Class/Dao/Uretim.Eritme.vb:321; ERPPRO/Class/Dao/Uretim.Eritme.vb:335; ERPPRO/Class/Dao/Uretim.Eritme.vb:350
SQL ObjectUretim.Eritme
TabloUretim.Eritme
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Eritme' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.Eritme] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Eritme' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kat ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.Eritme'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını göst
Etkilenen veriUretim.Eritme
Olasılık / etki / güvenDüşük-Orta (üretim modülü) / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.Eritme') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-004 · DB1=HAYIR DB2=HAYIR (TD-45: iki DB'de de yok) BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.Eritme] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-075SQLR-005 Invalid object name: Uretim.Formul S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.Formul'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Formul' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranEditFormulEkle (Uretim.FormulEx), EditEritme
Kod dosyasıERPPRO/Class/Dao/Uretim.Formul.vb:109; ERPPRO/Class/Dao/Uretim.Formul.vb:148; ERPPRO/Class/Dao/Uretim.Formul.vb:188; ERPPRO/Class/Dao/Uretim.Formul.vb:202; ERPPRO/Class/Dao/Uretim.Formul.vb:217; ERPPRO/Class/Dao/Uretim.Formul.vb:32; ERPPRO/Uretim/EditEritme.vb:53
SQL ObjectUretim.Formul
TabloUretim.Formul
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Formul' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.Formul] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Formul' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kat ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.Formul'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını göst
Etkilenen veriUretim.Formul
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.Formul') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-005 · DB1=HAYIR DB2=HAYIR (TD-45: iki DB'de de yok) BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.Formul] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-076SQLR-006 Invalid object name: Uretim.FormulDetay S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.FormulDetay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.FormulDetay' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranEditFormulEkle
Kod dosyasıERPPRO/Class/Dao/Uretim.FormulDetay.vb:117; ERPPRO/Class/Dao/Uretim.FormulDetay.vb:146; ERPPRO/Class/Dao/Uretim.FormulDetay.vb:160; ERPPRO/Class/Dao/Uretim.FormulDetay.vb:175; ERPPRO/Class/Dao/Uretim.FormulDetay.vb:32; ERPPRO/Class/Dao/Uretim.FormulDetay.vb:88; ERPPRO/Uretim/EditFormulEkle.vb:103
SQL ObjectUretim.FormulDetay
TabloUretim.FormulDetay
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.FormulDetay' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.FormulDetay] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.FormulDetay' nesnesine Select/Insert/Update gönderiyor; nesne DB ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.FormulDetay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını
Etkilenen veriUretim.FormulDetay
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.FormulDetay') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-006 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.FormulDetay] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-077SQLR-007 Invalid object name: Uretim.ModelPartiBilgileri S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.ModelPartiBilgileri'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.ModelPartiBilgileri' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranEditModelPartiBilgileri, FrmPartiEkle
Kod dosyasıERPPRO/Class/Dao/Uretim.ModelPartiBilgileri.vb:122; ERPPRO/Class/Dao/Uretim.ModelPartiBilgileri.vb:155; ERPPRO/Class/Dao/Uretim.ModelPartiBilgileri.vb:188; ERPPRO/Class/Dao/Uretim.ModelPartiBilgileri.vb:202; ERPPRO/Class/Dao/Uretim.ModelPartiBilgileri.vb:217; ERPPRO/Class/Dao/Uretim.ModelPartiBilgileri.vb:30; ERPPRO/Uretim/FrmPartiEkle.vb:17
SQL ObjectUretim.ModelPartiBilgileri
TabloUretim.ModelPartiBilgileri
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.ModelPartiBilgileri' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.ModelPartiBilgileri] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.ModelPartiBilgileri' nesnesine Select/Insert/Update gönderiyor; ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.ModelPartiBilgileri'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL
Etkilenen veriUretim.ModelPartiBilgileri
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.ModelPartiBilgileri') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-007 · DB1=HAYIR DB2=HAYIR (TD-45: iki DB'de de yok) BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.ModelPartiBilgileri] (7 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-078SQLR-008 Invalid object name: Uretim.Partiler S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.Partiler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Partiler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmUretimIslemleri (ANA MENÜ), FrmPartiEkle
Kod dosyasıERPPRO/Class/Dao/Uretim.Partiler.vb:156; ERPPRO/Class/Dao/Uretim.Partiler.vb:187; ERPPRO/Class/Dao/Uretim.Partiler.vb:218; ERPPRO/Class/Dao/Uretim.Partiler.vb:232; ERPPRO/Class/Dao/Uretim.Partiler.vb:247; ERPPRO/Class/Dao/Uretim.Partiler.vb:30
SQL ObjectUretim.Partiler
TabloUretim.Partiler
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Partiler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.Partiler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.Partiler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 k ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.Partiler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gö
Etkilenen veriUretim.Partiler
Olasılık / etki / güvenOrta / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.Partiler') AS ObjId; -- NULL ise nesne yok
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-008 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.Partiler] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-079SQLR-009 Invalid object name: Siparis.GetFiyatListesi S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.GetFiyatListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetFiyatListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmModelFiyatEkle / Siparis.FiyatListesiEx.vb:31
Kod dosyasıERPPRO/Class/Ext/Siparis.FiyatListesiEx.vb:31
SQL ObjectSiparis.GetFiyatListesi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetFiyatListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.GetFiyatListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetFiyatListesi' nesnesine Select gönderiyor; nesne DB1 kataloğ ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.GetFiyatListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mes
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.GetFiyatListesi') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-009 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.GetFiyatListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-080SQLR-010 Invalid object name: Uretim.GetEritmeListesi S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.GetEritmeListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetEritmeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranUretim.Eritmeex.vb:17 liste
Kod dosyasıERPPRO/Class/Ext/Uretim.Eritmeex.vb:17
SQL ObjectUretim.GetEritmeListesi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetEritmeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.GetEritmeListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetEritmeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğ ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.GetEritmeListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mes
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.GetEritmeListesi') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-010 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.GetEritmeListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-081SQLR-011 Invalid object name: Uretim.GetFormuls S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.GetFormuls'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormuls' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranUretim.FormulEx.vb:31
Kod dosyasıERPPRO/Class/Ext/Uretim.FormulEx.vb:31
SQL ObjectUretim.GetFormuls
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormuls' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.GetFormuls] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormuls' nesnesine Select gönderiyor; nesne DB1 kataloğunda y ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.GetFormuls'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.GetFormuls') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-011 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.GetFormuls] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-082SQLR-012 Invalid object name: Uretim.GetModelPartiBilgiListesi S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.GetModelPartiBilgiListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetModelPartiBilgiListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranUretim.ModelPartiBilgileri.vb:15 (Ext)
Kod dosyasıERPPRO/Class/Ext/Uretim.ModelPartiBilgileri.vb:15
SQL ObjectUretim.GetModelPartiBilgiListesi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetModelPartiBilgiListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.GetModelPartiBilgiListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetModelPartiBilgiListesi' nesnesine Select gönderiyor; nesne DB ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.GetModelPartiBilgiListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ha
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.GetModelPartiBilgiListesi') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-012 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.GetModelPartiBilgiListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-083SQLR-013 Invalid object name: Uretim.GetPartiler S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.GetPartiler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranUretimPartilerEx.vb:15 → FrmUretimIslemleri
Kod dosyasıERPPRO/Class/Ext/UretimPartilerEx.vb:15
SQL ObjectUretim.GetPartiler
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.GetPartiler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiler' nesnesine Select gönderiyor; nesne DB1 kataloğunda ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.GetPartiler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.GetPartiler') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-013 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.GetPartiler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-084SQLR-014 Invalid object name: Cari.GETOdemeKasaOzeti S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-063 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-063 Kasa bakiyesi / kasa stoğu tutmuyor
Kullanıcı belirtisiMsgBox: "Invalid object name 'Cari.GETOdemeKasaOzeti'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeKasaOzeti' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmOdemeKasa.vb:8 (ödeme kasası özeti)
Kod dosyasıERPPRO/Controls/Islem Ekranı/Ekran/FrmOdemeKasa.vb:8
SQL ObjectCari.GETOdemeKasaOzeti
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeKasaOzeti' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Cari.GETOdemeKasaOzeti] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeKasaOzeti' nesnesine Select gönderiyor; nesne DB1 kataloğu ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Cari.GETOdemeKasaOzeti'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesa
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Cari.GETOdemeKasaOzeti') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-014 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Cari.GETOdemeKasaOzeti] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-085SQLR-015 Invalid object name: Cari.GETOdemeListesi S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Cari.GETOdemeListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmOdemeListesi.vb:9,11 (ANA MENÜ FrmMainForm.vb:63; iScreen.vb:1237)
Kod dosyasıERPPRO/Controls/Islem Ekranı/Ekran/FrmOdemeListesi.vb:11; ERPPRO/Controls/Islem Ekranı/Ekran/FrmOdemeListesi.vb:9
SQL ObjectCari.GETOdemeListesi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Cari.GETOdemeListesi] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GETOdemeListesi' nesnesine Select gönderiyor; nesne DB1 kataloğund ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Cari.GETOdemeListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajı
Etkilenen veriİlgili ekranın okuduğu/yazdığı SQL nesnesi
Olasılık / etki / güvenYüksek / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Cari.GETOdemeListesi') AS ObjId; -- NULL ise nesne yok
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-015 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Cari.GETOdemeListesi] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-086SQLR-016 Invalid object name: Organizasyon.Gorevler S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Organizasyon.Gorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.Gorevler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmGorevEkle (ANA MENÜ), SchedulerView
Kod dosyasıERPPRO/Class/Dao/Organizasyon.Gorev.vb:224; ERPPRO/Class/Dao/Organizasyon.Gorev.vb:297; ERPPRO/Class/Dao/Organizasyon.Gorev.vb:32; ERPPRO/Class/Dao/Organizasyon.Gorev.vb:377; ERPPRO/Class/Dao/Organizasyon.Gorev.vb:391; ERPPRO/Class/Dao/Organizasyon.Gorev.vb:406; ERPPRO/Organizasyon/FrmGorevEkle.vb:138; ERPPRO/Organizasyon/FrmGorevEkle.vb:39
SQL ObjectOrganizasyon.Gorevler
TabloOrganizasyon.Gorevler
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.Gorevler' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Organizasyon.Gorevler] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.Gorevler' nesnesine Select/Insert/Update gönderiyor; nesne ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Organizasyon.Gorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesaj
Etkilenen veriOrganizasyon.Gorevler
Olasılık / etki / güvenOrta / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Organizasyon.Gorevler') AS ObjId; -- NULL ise nesne yok
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-016 · DB1=HAYIR DB2=HAYIR (TD-45: iki DB'de de yok) BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Organizasyon.Gorevler] (8 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
İlişkili kayıtlarERR-POT-087
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-087SQLR-017 Invalid object name: Organizasyon.GorevDagitim S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Organizasyon.GorevDagitim'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GorevDagitim' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmGorevEkle.vb:44, SchedulerView.vb:155
Kod dosyasıERPPRO/Class/Dao/Organizasyon.Gorev.vb:363; ERPPRO/Class/Dao/Organizasyon.Gorev.vb:365; ERPPRO/Organizasyon/FrmGorevEkle.vb:44; ERPPRO/Organizasyon/Task/SchedulerView.vb:155; ERPPRO/Organizasyon/Task/SchedulerView.vb:160; ERPPRO/Organizasyon/Task/SchedulerView.vb:165
SQL ObjectOrganizasyon.GorevDagitim
TabloOrganizasyon.GorevDagitim
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GorevDagitim' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Organizasyon.GorevDagitim] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GorevDagitim' nesnesine Select gönderiyor; nesne DB1 katal ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Organizasyon.GorevDagitim'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL m
Etkilenen veriOrganizasyon.GorevDagitim
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Organizasyon.GorevDagitim') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-017 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Organizasyon.GorevDagitim] (6 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
İlişkili kayıtlarERR-POT-086
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-088SQLR-018 Invalid object name: Sistem.iException S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Sistem.iException'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Sistem.iException' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranYalnız DAO (Sistem.iException.vb) — çağıran ekran bulunamadı
Kod dosyasıERPPRO/Class/Dao/Sistem.iException.vb:30; ERPPRO/Class/Dao/Sistem.iException.vb:98
SQL ObjectSistem.iException
TabloSistem.iException
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Sistem.iException' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Sistem.iException] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Sistem.iException' nesnesine Select/Insert/Update gönderiyor; nesne DB1 ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Sistem.iException'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını
Etkilenen veriSistem.iException
Olasılık / etki / güvenÇok düşük (çağıran ekran bulunamadı — ölü kod) / S4 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Sistem.iException') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-018 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Sistem.iException] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-089SQLR-019 Invalid object name: Siparis.PaketHesaplari S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-060 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-060 Cari hesap / kart tanımlama, hesap türü, adres-unvan değişikliği
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.PaketHesaplari'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.PaketHesaplari' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmAddAccount, FrmPaketEkle (Siparis.PaketEx)
Kod dosyasıERPPRO/Form/Siparis/FrmAddAccount.vb:30; ERPPRO/Form/Siparis/FrmAddAccount.vb:34; ERPPRO/Form/Siparis/FrmPaketEkle.vb:67
SQL ObjectSiparis.PaketHesaplari
TabloSiparis.PaketHesaplari
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.PaketHesaplari' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.PaketHesaplari] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.PaketHesaplari' nesnesine Select/Insert/Update gönderiyor; nesn ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.PaketHesaplari'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesa
Etkilenen veriSiparis.PaketHesaplari
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.PaketHesaplari') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-019 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.PaketHesaplari] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-090SQLR-020 Invalid object name: Siparis.ModelAyarBlackList S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.ModelAyarBlackList'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.ModelAyarBlackList' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmModelKartıEkle.vb:27, FrmSipModelEkle.vb:75
Kod dosyasıERPPRO/Form/Siparis/FrmModelKartıEkle.vb:27; ERPPRO/Form/Siparis/FrmSipModelEkle.vb:75
SQL ObjectSiparis.ModelAyarBlackList
TabloSiparis.ModelAyarBlackList
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.ModelAyarBlackList' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.ModelAyarBlackList] (2 referans); Sistem.ERPSCHEMA satırı: VAR (5 satır); TD-45. NOT: ana şema (ERPSCHEMA) bu tabloyu 5 satırla tanımlıyor → DBUpdate çalıştırılınca oluşturulabilir.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.ModelAyarBlackList' nesnesine Select gönderiyor; nesne DB1 kata ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.ModelAyarBlackList'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL
Etkilenen veriSiparis.ModelAyarBlackList
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.ModelAyarBlackList') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-020 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.ModelAyarBlackList] (2 referans); Sistem.ERPSCHEMA satırı: VAR (5 satır); TD-45. NOT: ana şema (ERPSCHEMA) bu tabloyu 5 satırla tanımlıyor → DBUpdate çalış
İlişkili kayıtlarERR-POT-091
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-091SQLR-021 Invalid object name: Siparis.modelayarBlacklist S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.modelayarBlacklist'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.modelayarBlacklist' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmModelKartıEkle.vb:168,176
Kod dosyasıERPPRO/Form/Siparis/FrmModelKartıEkle.vb:168; ERPPRO/Form/Siparis/FrmModelKartıEkle.vb:176
SQL ObjectSiparis.modelayarBlacklist
TabloSiparis.modelayarBlacklist
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.modelayarBlacklist' nesnesine Select/Insert/Update gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.modelayarBlacklist] (2 referans); Sistem.ERPSCHEMA satırı: VAR (5 satır); TD-45. NOT: ana şema (ERPSCHEMA) bu tabloyu 5 satırla tanımlıyor → DBUpdate çalıştırılınca oluşturulabilir.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.modelayarBlacklist' nesnesine Select/Insert/Update gönderiyor; ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.modelayarBlacklist'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL
Etkilenen veriSiparis.modelayarBlacklist
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.modelayarBlacklist') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-021 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.modelayarBlacklist] (2 referans); Sistem.ERPSCHEMA satırı: VAR (5 satır); TD-45. NOT: ana şema (ERPSCHEMA) bu tabloyu 5 satırla tanımlıyor → DBUpdate çalış
İlişkili kayıtlarERR-POT-090
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-092SQLR-022 Invalid object name: Siparis.GetPaketHesapListesi S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-060 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-060 Cari hesap / kart tanımlama, hesap türü, adres-unvan değişikliği
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.GetPaketHesapListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetPaketHesapListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmPaketEkle.vb:53
Kod dosyasıERPPRO/Form/Siparis/FrmPaketEkle.vb:53
SQL ObjectSiparis.GetPaketHesapListesi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetPaketHesapListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.GetPaketHesapListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetPaketHesapListesi' nesnesine Select gönderiyor; nesne DB1 ka ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.GetPaketHesapListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQ
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.GetPaketHesapListesi') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-022 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.GetPaketHesapListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-093SQLR-023 Invalid object name: Siparis.GetUyumluPaketler S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.GetUyumluPaketler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetUyumluPaketler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmSipModelEkle.vb:115
Kod dosyasıERPPRO/Form/Siparis/FrmSipModelEkle.vb:115
SQL ObjectSiparis.GetUyumluPaketler
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetUyumluPaketler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.GetUyumluPaketler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetUyumluPaketler' nesnesine Select gönderiyor; nesne DB1 katal ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.GetUyumluPaketler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL m
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.GetUyumluPaketler') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-023 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.GetUyumluPaketler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
İlişkili kayıtlarERR-POT-094
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-094SQLR-024 Invalid object name: Siparis.GetLastPrice S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Siparis.GetLastPrice'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetLastPrice' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmSipModelEkle.vb:355
Kod dosyasıERPPRO/Form/Siparis/FrmSipModelEkle.vb:355
SQL ObjectSiparis.GetLastPrice
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetLastPrice' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Siparis.GetLastPrice] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Siparis.GetLastPrice' nesnesine Select gönderiyor; nesne DB1 kataloğund ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Siparis.GetLastPrice'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajı
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Siparis.GetLastPrice') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-024 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Siparis.GetLastPrice] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
İlişkili kayıtlarERR-POT-093
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-095SQLR-025 Invalid object name: Uretim.GetFormulDetay S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.GetFormulDetay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormulDetay' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranEditEritme.vb:45, EditFormulEkle.vb:43
Kod dosyasıERPPRO/Uretim/EditEritme.vb:45; ERPPRO/Uretim/EditFormulEkle.vb:43
SQL ObjectUretim.GetFormulDetay
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormulDetay' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.GetFormulDetay] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetFormulDetay' nesnesine Select gönderiyor; nesne DB1 kataloğun ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.GetFormulDetay'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesaj
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.GetFormulDetay') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-025 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.GetFormulDetay] (2 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-096SQLR-026 Invalid object name: Uretim.GetPartiModelListesi S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Uretim.GetPartiModelListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiModelListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmPartiEkle.vb:113
Kod dosyasıERPPRO/Uretim/FrmPartiEkle.vb:113
SQL ObjectUretim.GetPartiModelListesi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiModelListesi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Uretim.GetPartiModelListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Uretim.GetPartiModelListesi' nesnesine Select gönderiyor; nesne DB1 kat ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Uretim.GetPartiModelListesi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL
Olasılık / etki / güvenDüşük-Orta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Uretim.GetPartiModelListesi') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-026 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Uretim.GetPartiModelListesi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-097SQLR-027 Invalid object name: Cari.GetRiskRaporu S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-004 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-004 Rapor tasarımı / yeni rapor / sütun ekleme / bakiye ekstresi düzenleme (talep)
Kullanıcı belirtisiMsgBox: "Invalid object name 'Cari.GetRiskRaporu'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GetRiskRaporu' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmRiskRaporu (ANA MENÜ FrmMainForm.vb:365)
Kod dosyasıERPPRO/Form/Tanımlamalar/Cari/FrmRiskRaporu.vb:14
SQL ObjectCari.GetRiskRaporu
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GetRiskRaporu' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Cari.GetRiskRaporu] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Cari.GetRiskRaporu' nesnesine Select gönderiyor; nesne DB1 kataloğunda ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Cari.GetRiskRaporu'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını
Etkilenen veriİlgili ekranın okuduğu/yazdığı SQL nesnesi
Olasılık / etki / güvenOrta — menüden açılabiliyor / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Cari.GetRiskRaporu') AS ObjId; -- NULL ise nesne yok
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-027 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Cari.GetRiskRaporu] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-098SQLR-028 Invalid object name: Stok.GetTakozIsciligi S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-034 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-034 Stok tutmuyor / stok düzeltme / eksi stok / stok girişi
Kullanıcı belirtisiMsgBox: "Invalid object name 'Stok.GetTakozIsciligi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Stok.GetTakozIsciligi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranDatabase.vb:625 GetTakozIsciligi ← OldFis/Printing.vb (takoz fişi yazdırma)
Kod dosyasıERPPRO/Class/Module/Database.vb:625
SQL ObjectStok.GetTakozIsciligi
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Stok.GetTakozIsciligi' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Stok.GetTakozIsciligi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Stok.GetTakozIsciligi' nesnesine Select gönderiyor; nesne DB1 kataloğun ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Stok.GetTakozIsciligi'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesaj
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Stok.GetTakozIsciligi') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-028 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Stok.GetTakozIsciligi] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-099SQLR-029 Invalid object name: Organizasyon.GelenGorevler S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Organizasyon.GelenGorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GelenGorevler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranFrmGorevEkle.vb:105-106, SchedulerView.vb:48
Kod dosyasıERPPRO/Organizasyon/FrmGorevEkle.vb:105; ERPPRO/Organizasyon/FrmGorevEkle.vb:106; ERPPRO/Organizasyon/Task/SchedulerView.vb:48
SQL ObjectOrganizasyon.GelenGorevler
TabloOrganizasyon.GelenGorevler
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GelenGorevler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Organizasyon.GelenGorevler] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GelenGorevler' nesnesine Select gönderiyor; nesne DB1 kata ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Organizasyon.GelenGorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL
Etkilenen veriOrganizasyon.GelenGorevler
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Organizasyon.GelenGorevler') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-029 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Organizasyon.GelenGorevler] (3 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-100SQLR-030 Invalid object name: Organizasyon.GidenGorevler S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiMsgBox: "Invalid object name 'Organizasyon.GidenGorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL mesajını gösterir; DAO kalıbında boş Catch → sessiz False).
Teknik belirtiİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GidenGorevler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
SQL hata no208
SQL hata mesajıInvalid object name
EkranSchedulerView.vb:50
Kod dosyasıERPPRO/Organizasyon/Task/SchedulerView.vb:50
SQL ObjectOrganizasyon.GidenGorevler
TabloOrganizasyon.GidenGorevler
Tetikleme koşuluİlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GidenGorevler' nesnesine Select gönderiyor; nesne DB1 kataloğunda yok.
Kök nedenbasedb/out/code_refs2.json code_only[Organizasyon.GidenGorevler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: İlgili ekran açıldığında/kayıt yapıldığında kod 'Organizasyon.GidenGorevler' nesnesine Select gönderiyor; nesne DB1 kata ↓ Kullanıcı etkisi: MsgBox: "Invalid object name 'Organizasyon.GidenGorevler'." — ekran boş kalır ya da kayıt yapılamaz (InternalDb ham SQL
Etkilenen veriOrganizasyon.GidenGorevler
Olasılık / etki / güvenDüşük / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Ekran/DAO'nun canlı olup olmadığı iş birimiyle netleştirilmeli; ya nesne şemaya (DBUpdate/ERPSCHEMA) eklenmeli ya da ekran menüden kaldırılmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Organizasyon.GidenGorevler') AS ObjId; -- NULL ise nesne yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-030 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · basedb/out/code_refs2.json code_only[Organizasyon.GidenGorevler] (1 referans); Sistem.ERPSCHEMA satırı: YOK; TD-45.
Wiki bağlantılarıTD-45
POTANSİYEL ERR-POT-101SQLR-031 Invalid object name: Genel.Dosyalar (VIEW) S1 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-010 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS1 — KRİTİK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-010 Programa giriş yapılamıyor / program açılmıyor (giriş hatası)
Kullanıcı belirtisiİşlem kaydında "Invalid object name 'DOCUMENTS.Genel.Dosyalar'" ya da "Database 'DOCUMENTS' does not exist"; her işlem girişi geri alınır. Doküman ekranlarında aynı hata.
Teknik belirtiGenel.Dosyalar bir VIEW: 'Select * from DOCUMENTS.Genel.Dosyalar'. DOCUMENTS veritabanı sunucuda yoksa (DB1 sys.databases: master,tempdb,model,msdb,ERPGOLDV2 — DOCUMENTS YOK) view'ı okuyan her sorgu 208/916 ile düşer. AcceptTransaction her Cari.Islemler INSERT/UPDATE'inde Cari.GetGerekliEvraklar(@SubeId,@HesapId,'True') → Genel.Dosyalar'ı okur.
SQL hata no208
SQL hata mesajıInvalid object name
EkranCari.AcceptTransaction (Cari.Islemler INSERT/UPDATE tetikleyicisi) → Cari.GetGerekliEvraklar; Genel.EvrakListesi; Sistem.Reset; DAO Genel.Dosya.vb (AddDokuman, evrak ekranları)
Kod dosyasıdbclean/analysis_db.json crossdb[1449824277]; ERPPRO/Class/Dao/Genel.Dosya.vb:113,186,252; ERPPRO/Class/Ext/Genel.DosyaEx.vb:23,52
İlgili SQL nesneleriGenel.Dosyalar, Cari.Islemler, Cari.GetGerekliEvraklar
SQL ObjectGenel.Dosyalar (VIEW)
TabloDOCUMENTS.Genel.Dosyalar
Tetikleme koşuluGenel.Dosyalar bir VIEW: 'Select * from DOCUMENTS.Genel.Dosyalar'. DOCUMENTS veritabanı sunucuda yoksa (DB1 sys.databases: master,tempdb,model,msdb,ERPGOLDV2 — DOCUMENTS YOK) view'ı okuyan her sorgu 208/916 ile düşer. AcceptTransaction her Cari.Islemler INSERT/UPDATE'inde Cari.GetGerekliEvraklar(@SubeId,@HesapId,'True') → Genel.Dosyalar'ı okur.
Kök nedenmodules.json Genel.Dosyalar: 'CREATE View Genel.Dosyalar as Select * from DOCUMENTS.Genel.Dosyalar'; deps.json: Cari.GetGerekliEvraklarGenel.Dosyalar; AcceptTransaction satır ~112: 'SELECT COUNT(*) FROM Cari.GetGerekliEvraklar(@SubeId,@HesapId,'True')'; misc.json database listesi.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: Genel.Dosyalar bir VIEW: 'Select * from DOCUMENTS.Genel.Dosyalar'. DOCUMENTS veritabanı sunucuda yoksa (DB1 sys.database ↓ Kullanıcı etkisi: İşlem kaydında "Invalid object name 'DOCUMENTS.Genel.Dosyalar'" ya da "Database 'DOCUMENTS' does not exist"; her işlem g
Etkilenen veriDOCUMENTS.Genel.Dosyalar
Olasılık / etki / güvenDB1'de çok yüksek (DOCUMENTS DB yok, tetikleyici etkin); DB2'de düşük (Genel.Dosyalar gerçek tablo) / S1 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): BASE'de Genel.Dosyalar'ın tablo mu view mi olacağı kararı; cross-DB bağımlılığın kaldırılması. AcceptTransaction'daki evrak kontrolünün DOCUMENTS'e bağımlı olmaması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT name FROM sys.databases WHERE name='DOCUMENTS'; SELECT OBJECT_DEFINITION(OBJECT_ID('Genel.Dosyalar')); SELECT TOP 1 * FROM Genel.Dosyalar; -- hata verirse kırık
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-031 · DB1=EVET (view) / DOCUMENTS DB: HAYIR DB2=EVET (tablo, KUY_ONLY) BASE=EVET (BASE-CORE) · Guard=HAYIR · modules.json Genel.Dosyalar: 'CREATE View Genel.Dosyalar as Select * from DOCUMENTS.Genel.Dosyalar'; deps.json: Cari.GetGerekliEvraklarGenel.Dosyalar; AcceptTransaction satır ~112: 'SELECT COUNT(
İlişkili kayıtlarERR-POT-138, ERR-POT-139, ERR-SIL-031
POTANSİYEL ERR-POT-102SQLR-032 Invalid object name: LiveUpdate.Version / LiveUpdate.SetVersion / LiveUpdate.Lock / LiveUpdate.UnLock S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiSürüm kontrolü sırasında 'Invalid object name LiveUpdate.VersionHistory_' — yalnız kilit senaryosunda.
Teknik belirtiProsedürler 'LiveUpdate.VersionHistory_' (kilitli ad) tablosuna başvuruyor; tablo DB1'de yok. Ancak her dal OBJECT_ID('LiveUpdate.VersionHistory') IS NOT NULL kontrolü ile korunuyor (deferred name resolution). Yalnız Lock çağrılmış ve VersionHistory→VersionHistory_ yeniden adlandırılmışken tetiklenir.
SQL hata no208
SQL hata mesajıInvalid object name
EkranConfigurationForm.vb:270 (LiveUpdate sürüm kontrolü)
Kod dosyasıERPPRO/Configuration/ConfigurationForm.vb:270
İlgili SQL nesneleriLiveUpdate.Version, LiveUpdate.SetVersion, LiveUpdate.Lock, LiveUpdate.UnLock, LiveUpdate.VersionHistory
SQL ObjectLiveUpdate.Version / LiveUpdate.SetVersion / LiveUpdate.Lock / LiveUpdate.UnLock
TabloLiveUpdate.VersionHistory_
Tetikleme koşuluProsedürler 'LiveUpdate.VersionHistory_' (kilitli ad) tablosuna başvuruyor; tablo DB1'de yok. Ancak her dal OBJECT_ID('LiveUpdate.VersionHistory') IS NOT NULL kontrolü ile korunuyor (deferred name resolution). Yalnız Lock çağrılmış ve VersionHistory→VersionHistory_ yeniden adlandırılmışken tetiklenir.
Kök nedenanalysis_db.json unresolved[148911602,484912799]='LiveUpdate.VersionHistory_'; analysis.json unresolved_in_base.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: Prosedürler 'LiveUpdate.VersionHistory_' (kilitli ad) tablosuna başvuruyor; tablo DB1'de yok. Ancak her dal OBJECT_ID('L ↓ Kullanıcı etkisi: Sürüm kontrolü sırasında 'Invalid object name LiveUpdate.VersionHistory_' — yalnız kilit senaryosunda.
Etkilenen veriLiveUpdate.VersionHistory_
Olasılık / etki / güvenDüşük / S4 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Lock/UnLock'un sp_rename ile tablo adı değiştirme yaklaşımı yerine bir kilit kolonu; unresolved referansın BASE build'inde bilinçli bırakılması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('LiveUpdate.VersionHistory'), OBJECT_ID('LiveUpdate.VersionHistory_');
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-032 · DB1=EVET (proc) / VersionHistory_: HAYIR DB2=BİLİNMİYOR BASE=EVET (Version BASE-CORE; Lock/UnLock/SetVersion UNKNOWN) · Guard=EVET (OBJECT_ID kontrolü) · analysis_db.json unresolved[148911602,484912799]='LiveUpdate.VersionHistory_'; analysis.json unresolved_in_base.
İlişkili kayıtlarERR-SIL-031
POTANSİYEL ERR-POT-103SQLR-033 Invalid object name: Sistem.FromERP S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-060 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-060 Cari hesap / kart tanımlama, hesap türü, adres-unvan değişikliği
Kullanıcı belirtisiHesap aktarımı ekranında 'Invalid object name …dbo.Firmalar' ya da 'Column name or number of supplied values does not match table definition'.
Teknik belirtiProc, kullanıcı combosundan gelen @Database adıyla '<db>.dbo.Firmalar' / 'dbo.Birimler_' tablolarına dinamik SQL (exec(@HesapQuery)) üretir. Kaynak DB/tablo yoksa 208. Ayrıca 'Insert Into Cari.Hesaplar Select …' KOLON LİSTESİZ 41 değer üretiyor; Cari.Hesaplar DB1'de 57 kolon ve ilk kolon Id IDENTITY → 213 'Column name or number of supplied values does not match table definition' (ya da 544).
SQL hata no208 (ya da 213 kolon sayısı)
SQL hata mesajıInvalid object name
EkranFrmHesapAktar (ANA MENÜ) → 'Sistem.FromERP <Sirket>,<Sube>,<MasterKart>'
Kod dosyasıERPPRO/Form/Tanımlamalar/Sistem/FrmHesapAktar.vb:22
İlgili SQL nesneleriSistem.FromERP, dbo.BakiyeIslem, Cari.Hesaplar
SQL ObjectSistem.FromERP
Tablo<@Database>.dbo.Firmalar, <@Database>.dbo.Birimler_, <@Database>.dbo.BakiyeIslem; hedef Cari.Hesaplar
Tetikleme koşuluProc, kullanıcı combosundan gelen @Database adıyla '<db>.dbo.Firmalar' / 'dbo.Birimler_' tablolarına dinamik SQL (exec(@HesapQuery)) üretir. Kaynak DB/tablo yoksa 208. Ayrıca 'Insert Into Cari.Hesaplar Select …' KOLON LİSTESİZ 41 değer üretiyor; Cari.Hesaplar DB1'de 57 kolon ve ilk kolon Id IDENTITY → 213 'Column name or number of supplied values does not match table definition' (ya da 544).
Kök nedenmodules.json Sistem.FromERP: '@HesapQuery = Insert Into Cari.Hesaplar Select Id as OldFirmaId,… from ' + @DataBase + '.dbo.Firmalar'; columns.json Cari.Hesaplar 57 kolon, Id identity; analysis.json unresolved_in_base['Sistem.FromERP'].
Neden zinciriTeknik olay: SQL 208 (ya da 213 kolon sayısı) Invalid object name ↓ Yakın neden: Proc, kullanıcı combosundan gelen @Database adıyla '<db>.dbo.Firmalar' / 'dbo.Birimler_' tablolarına dinamik SQL (exec(@ ↓ Kullanıcı etkisi: Hesap aktarımı ekranında 'Invalid object name …dbo.Firmalar' ya da 'Column name or number of supplied values does not ma
Etkilenen veri<@Database>.dbo.Firmalar, <@Database>.dbo.Birimler_, <@Database>.dbo.BakiyeIslem; hedef Cari.Hesaplar
Olasılık / etki / güvenYüksek (ekran her çalıştırıldığında 213 kaçınılmaz) / S2 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Eski ERP'den aktarım prosedürü BASE kapsamından çıkarılmalı ya da kolon listesiyle yeniden yazılmalı; @Database için QUOTENAME/whitelist. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COUNT(*) FROM sys.columns WHERE object_id=OBJECT_ID('Cari.Hesaplar'); -- 57; proc metnindeki select listesi 41 değer
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-033 · DB1=EVET (proc) DB2=BİLİNMİYOR BASE=EVET (BASE-CORE, unresolved: dbo.firmalar, dbo.birimler_) · Guard=HAYIR · modules.json Sistem.FromERP: '@HesapQuery = Insert Into Cari.Hesaplar Select Id as OldFirmaId,… from ' + @DataBase + '.dbo.Firmalar'; columns.json Cari.Hesaplar 57 kolon, Id identity; analysis.json un
İlişkili kayıtlarERR-POT-133, ERR-POT-139
POTANSİYEL ERR-POT-104SQLR-034 Invalid object name: dbo.sp_DevirIslemiYap S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-036 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-036 Yıl sonu devir işlemi ve devir sonrası fark
Kullanıcı belirtisiÇalıştırılırsa 'Invalid object name Cari.IslemlerDetalari' vb.; devir yarım kalır (TRUNCATE sonrası).
Teknik belirtiProc ERPGLOBAL veritabanına (cross-DB) ve çözümlenemeyen 4 nesneye (Cari.bilancolar, Cari.islemlerdetalari [yazım hatası], Sistem.bakiyeislem, dbo.company) başvuruyor; IDENTITY_INSERT Cari.Islemler ON ve tetikleyici disable/enable dinamik SQL içeriyor.
SQL hata no208
SQL hata mesajıInvalid object name
EkranKoddan çağıran yok (grep 0); yalnız DB içi/manuel
İlgili SQL nesneleridbo.sp_DevirIslemiYap, Cari.Islemler
SQL Objectdbo.sp_DevirIslemiYap
TabloERPGLOBAL.dbo.Company; Cari.Bilancolar; Cari.IslemlerDetalari; Sistem.BakiyeIslem
Tetikleme koşuluProc ERPGLOBAL veritabanına (cross-DB) ve çözümlenemeyen 4 nesneye (Cari.bilancolar, Cari.islemlerdetalari [yazım hatası], Sistem.bakiyeislem, dbo.company) başvuruyor; IDENTITY_INSERT Cari.Islemler ON ve tetikleyici disable/enable dinamik SQL içeriyor.
Kök nedenanalysis.json rows['dbo.sp_DevirIslemiYap'].unresolved=['Cari.bilancolar','Cari.islemlerdetalari','Sistem.bakiyeislem','dbo.company']; analysis_db.json crossdb[1583396760]='ERPGLOBAL.Dbo.Company'; modül metninde 'SET IDENTITY_INSERT Cari.Islemler ON'.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: Proc ERPGLOBAL veritabanına (cross-DB) ve çözümlenemeyen 4 nesneye (Cari.bilancolar, Cari.islemlerdetalari [yazım hatası ↓ Kullanıcı etkisi: Çalıştırılırsa 'Invalid object name Cari.IslemlerDetalari' vb.; devir yarım kalır (TRUNCATE sonrası).
Etkilenen veriERPGLOBAL.dbo.Company; Cari.Bilancolar; Cari.IslemlerDetalari; Sistem.BakiyeIslem
Olasılık / etki / güvenDüşük (çağıran yok) / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): BASE dışı bırakılmalı; devir mantığı tek yerde (Devir.vb vs sp_DevirIslemiYap vs Sistem.Devir çakışıyor). (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT referenced_schema_name, referenced_entity_name FROM sys.sql_expression_dependencies WHERE referencing_id=OBJECT_ID('dbo.sp_DevirIslemiYap') AND referenced_id IS NULL;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-034 · DB1=EVET (proc) DB2=BİLİNMİYOR BASE=HAYIR (UNKNOWN/EXCLUDE) · Guard=KISMEN (ERPGLOBAL için IF NOT EXISTS CREATE DATABASE) · analysis.json rows['dbo.sp_DevirIslemiYap'].unresolved=['Cari.bilancolar','Cari.islemlerdetalari','Sistem.bakiyeislem','dbo.company']; analysis_db.json crossdb[1583396760]='ERPGLOBAL.Dbo.Company'; mod
POTANSİYEL ERR-POT-105SQLR-035 Invalid object name: Sistem.MT4OrdersSync / Sistem.MT4TicketsSync / Sistem.Reset S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiÇalıştırılırsa 'Invalid object name Sistem.MT4Orders'.
Teknik belirtiProsedürler Sistem.MT4Orders / Sistem.MT4tickets tablolarına başvuruyor; DB1'de yok (Sistem.ERPSCHEMA kataloğunda 'Sistem.GetMT4Orders' 17 satır, 'Sistem.MT4EXPO' 3 satır var → ana şemada MT4 nesneleri mevcut, V2'de kurulmamış).
SQL hata no208
SQL hata mesajıInvalid object name
EkranKoddan çağıran yok
İlgili SQL nesneleriSistem.MT4OrdersSync, Sistem.MT4TicketsSync, Sistem.Reset, Sistem.ERPSCHEMA
SQL ObjectSistem.MT4OrdersSync / Sistem.MT4TicketsSync / Sistem.Reset
TabloSistem.MT4Orders, Sistem.MT4Tickets
Tetikleme koşuluProsedürler Sistem.MT4Orders / Sistem.MT4tickets tablolarına başvuruyor; DB1'de yok (Sistem.ERPSCHEMA kataloğunda 'Sistem.GetMT4Orders' 17 satır, 'Sistem.MT4EXPO' 3 satır var → ana şemada MT4 nesneleri mevcut, V2'de kurulmamış).
Kök nedenanalysis_db.json unresolved[1145823194]=['Sistem.MT4Orders'], [1161823251]=['Sistem.MT4tickets'], [1193823365]=['Sistem.MT4Tickets']; dbsql.json Sistem.ERPSCHEMA: Sistem.GetMT4Orders×17, Sistem.MT4EXPO×3.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: Prosedürler Sistem.MT4Orders / Sistem.MT4tickets tablolarına başvuruyor; DB1'de yok (Sistem.ERPSCHEMA kataloğunda 'Siste ↓ Kullanıcı etkisi: Çalıştırılırsa 'Invalid object name Sistem.MT4Orders'.
Etkilenen veriSistem.MT4Orders, Sistem.MT4Tickets
Olasılık / etki / güvenDüşük (çağıran yok; MT4 modülü DB1'de kullanılmıyor) / S4 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): MT4/FX nesne kümesi BASE dışında ayrı bir eklenti paketi olarak ele alınmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_ID('Sistem.MT4Orders'), OBJECT_ID('Sistem.MT4Tickets');
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-035 · DB1=EVET (proc) / tablolar HAYIR DB2=BİLİNMİYOR BASE=HAYIR (UNKNOWN) · Guard=HAYIR · analysis_db.json unresolved[1145823194]=['Sistem.MT4Orders'], [1161823251]=['Sistem.MT4tickets'], [1193823365]=['Sistem.MT4Tickets']; dbsql.json Sistem.ERPSCHEMA: Sistem.GetMT4Orders×17, Sistem.MT4EXP
POTANSİYEL ERR-POT-106SQLR-036 Invalid object name: AifaDev.Reports #16, #19, #29, #30 (DB içinde saklanan rapor SQL'i) S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-004 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Problem ailesiPF-004 Rapor tasarımı / yeni rapor / sütun ekleme / bakiye ekstresi düzenleme (talep)
Kullanıcı belirtisiRapor çalıştırılınca "Invalid object name 'MüşteriŞemasıD.GetEnvanter'" vb.
Teknik belirtiKullanıcı bu raporları çalıştırdığında saklanan SQL DB1'de olmayan fonksiyon/view'ları çağırıyor (MüşteriŞemasıD özel nesneleri ya da yeniden adlandırılmış rapor).
SQL hata no208
SQL hata mesajıInvalid object name
EkranRapor Yöneticisi (Designer/ReportManager) — 'Bakiye Kontrol Raporu', 'Envanter Raporu', 'SilinmisIslemRaporu', 'Bakiye Extresi (Detay)'
Kod dosyasıdbclean/dbsql.json src=AifaDev.Reports id=16,19,29,30
İlgili SQL nesneleriAifaDev.Reports
SQL ObjectAifaDev.Reports #16, #19, #29, #30 (DB içinde saklanan rapor SQL'i)
TabloMüşteriŞemasıD.GetCariBakiyeHaraketleri; MüşteriŞemasıD.GetEnvanter; Reports.IptalIslemRaporu; Cari.HesapExtresiDetails
Tetikleme koşuluKullanıcı bu raporları çalıştırdığında saklanan SQL DB1'de olmayan fonksiyon/view'ları çağırıyor (MüşteriŞemasıD özel nesneleri ya da yeniden adlandırılmış rapor).
Kök nedendbsql.json AifaDev.Reports#16 'Select * From MüşteriŞemasıD.GetCariBakiyeHaraketleri(@HesapId,@Tarih,@BirimId)', #19 'MüşteriŞemasıD.GetEnvanter(@Tarih)', #29 'Reports.IptalIslemRaporu(...)', #30 'Cari.HesapExtresiDetails'; objects.json'da bu adlar yok.
Neden zinciriTeknik olay: SQL 208 Invalid object name ↓ Yakın neden: Kullanıcı bu raporları çalıştırdığında saklanan SQL DB1'de olmayan fonksiyon/view'ları çağırıyor (MüşteriŞemasıD özel ne ↓ Kullanıcı etkisi: Rapor çalıştırılınca "Invalid object name 'MüşteriŞemasıD.GetEnvanter'" vb.
Etkilenen veriMüşteriŞemasıD.GetCariBakiyeHaraketleri; MüşteriŞemasıD.GetEnvanter; Reports.IptalIslemRaporu; Cari.HesapExtresiDetails
Olasılık / etki / güvenOrta (rapor listesinde görünür) / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): AifaDev.Reports satırları katalogla doğrulanıp kırık raporlar pasife alınmalı; BASE seed'ine yalnız çözümlenen raporlar. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT Id,ReportName FROM AifaDev.Reports WHERE Query LIKE '%GetEnvanter%' OR Query LIKE '%GetCariBakiyeHaraketleri%' OR Query LIKE '%IptalIslemRaporu%' OR Query LIKE '%HesapExtresiDetails%';
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-036 · DB1=HAYIR DB2=BİLİNMİYOR BASE=HAYIR · Guard=HAYIR · dbsql.json AifaDev.Reports#16 'Select * From MüşteriŞemasıD.GetCariBakiyeHaraketleri(@HesapId,@Tarih,@BirimId)', #19 'MüşteriŞemasıD.GetEnvanter(@Tarih)', #29 'Reports.IptalIslemRaporu(...)', #30 'Car
POTANSİYEL ERR-POT-107SQLR-037 Could not find stored procedure: Reports.GetPozisyonDetay S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-004 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülCould not find stored procedure
Problem ailesiPF-004 Rapor tasarımı / yeni rapor / sütun ekleme / bakiye ekstresi düzenleme (talep)
Kullanıcı belirtisi"An insufficient number of arguments were supplied for the procedure or function Reports.GetPozisyonDetay." — Pozisyon Durum raporu boş.
Teknik belirtiFonksiyon (@SubeId,@BasTarih,@SonTarih) 3 parametre bekliyor; kod ve PopupGrid 2 argümanla çağırıyor: Reports.GetPozisyonDetay('tarih1','tarih2').
SQL hata no313 (An insufficient number of arguments were supplied)
SQL hata mesajıCould not find stored procedure
EkranFrmPozisyonDurumRaporu (ANA MENÜ FrmMainForm.vb:162); Design.PopupGrid #5
Kod dosyasıERPPRO/Form/RefreshGrid/FrmPozisyonDurum.vb:15; dbclean/dbsql.json Design.PopupGrid id=5
İlgili SQL nesneleriReports.GetPozisyonDetay
SQL ObjectReports.GetPozisyonDetay
Tetikleme koşuluFonksiyon (@SubeId,@BasTarih,@SonTarih) 3 parametre bekliyor; kod ve PopupGrid 2 argümanla çağırıyor: Reports.GetPozisyonDetay('tarih1','tarih2').
Kök nedenparameters.json Reports.GetPozisyonDetay: @SubeId,@BasTarih,@SonTarih; FrmPozisyonDurum.vb:15 'Reports.GetPozisyonDetay(''" & DateEdit1… & "'',''" & DateEdit2 …'; PopupGrid#5 'Reports.GetPozisyonDetay(getdate(),Getdate())'.
Neden zinciriTeknik olay: SQL 313 (An insufficient number of arguments were supplied) Could not find stored procedure ↓ Yakın neden: Fonksiyon (@SubeId,@BasTarih,@SonTarih) 3 parametre bekliyor; kod ve PopupGrid 2 argümanla çağırıyor: Reports.GetPozisyo ↓ Kullanıcı etkisi: "An insufficient number of arguments were supplied for the procedure or function Reports.GetPozisyonDetay." — Pozisyon D
Olasılık / etki / güvenYüksek (ekran açıldığında her seferinde) / S3 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Fonksiyon imzası ile çağrılar eşitlenmeli (DB2'deki imza doğrulanmalı — sürüm kayması işareti). (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT p.name FROM sys.parameters p WHERE p.object_id=OBJECT_ID('Reports.GetPozisyonDetay'); -- 3 satır beklenir
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-037 · DB1=EVET DB2=BİLİNMİYOR (DB2'de imza farklı olabilir) BASE=EVET (BASE-CORE) · Guard=HAYIR · parameters.json Reports.GetPozisyonDetay: @SubeId,@BasTarih,@SonTarih; FrmPozisyonDurum.vb:15 'Reports.GetPozisyonDetay(''" & DateEdit1… & "'',''" & DateEdit2 …'; PopupGrid#5 'Reports.GetPozisyonDetay
POTANSİYEL ERR-POT-108SQLR-038 Could not find stored procedure: Reports.ResmiPozisyon S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-040 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülCould not find stored procedure
Problem ailesiPF-040 Pozisyon yanlış / aynı birim iki kez / pozisyon güncellenmiyor
Kullanıcı belirtisi"An insufficient number of arguments were supplied for the procedure or function Reports.ResmiPozisyon."
Teknik belirtiFonksiyon @Tarih parametresi bekliyor; 29 rapor tanımı 'Reports.ResmiPozisyon ()' parametresiz çağırıyor (yalnız #67 doğru).
SQL hata no313
SQL hata mesajıCould not find stored procedure
EkranRapor Yöneticisi — 'Resmi Pozisyon Raporu' (AifaDev.Reports #38–#66, 29 kopya satır)
Kod dosyasıdbclean/dbsql.json src=AifaDev.Reports id=38..66
İlgili SQL nesneleriReports.ResmiPozisyon, AifaDev.Reports
SQL ObjectReports.ResmiPozisyon
Tetikleme koşuluFonksiyon @Tarih parametresi bekliyor; 29 rapor tanımı 'Reports.ResmiPozisyon ()' parametresiz çağırıyor (yalnız #67 doğru).
Kök nedendbsql.json AifaDev.Reports #38–#66 'Select * from Reports.ResmiPozisyon ()'; parameters.json Reports.ResmiPozisyon: @Tarih.
Neden zinciriTeknik olay: SQL 313 Could not find stored procedure ↓ Yakın neden: Fonksiyon @Tarih parametresi bekliyor; 29 rapor tanımı 'Reports.ResmiPozisyon ()' parametresiz çağırıyor (yalnız #67 doğ ↓ Kullanıcı etkisi: "An insufficient number of arguments were supplied for the procedure or function Reports.ResmiPozisyon."
Olasılık / etki / güvenYüksek (rapor seçilirse) / S3 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Tekrarlı 29 rapor satırının temizlenmesi; seed'e yalnız #67. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT Id FROM AifaDev.Reports WHERE Query LIKE '%ResmiPozisyon ()%';
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-038 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET (BASE-CORE) · Guard=HAYIR · dbsql.json AifaDev.Reports #38–#66 'Select * from Reports.ResmiPozisyon ()'; parameters.json Reports.ResmiPozisyon: @Tarih.
POTANSİYEL ERR-POT-109SQLR-039 Invalid object name: AifaDev.ExQueryBuilder (TRIGGER on AifaDev.RepositoryItems) S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid object name
Kullanıcı belirtisiDinamik form alanı eklerken "Cannot find the object 'Query.XXX' because it does not exist or you do not have permissions."
Teknik belirtiTetikleyici yeni bir Owner için view oluşturmak istediğinde her iki dalda da 'Alter View Query.<Owner>' üretiyor ('if OBJECT_ID(@ViewName) is null → Alter View' — CREATE yok). View henüz yoksa ALTER VIEW hata verir → tetikleyici hatası RepositoryItems INSERT'ini geri alır. Ayrıca schema Query yoksa exec('Add Schema Query') → 102 syntax error.
SQL hata no4902 (Cannot find the object … ALTER VIEW)
SQL hata mesajıInvalid object name
EkranDataLayout/Repository.vb:21,45 (DynamicForms / depo alan tanımı ekranı)
Kod dosyasıERPPRO/DataLayout/Repository.vb:21,45
İlgili SQL nesneleriAifaDev.ExQueryBuilder, AifaDev.RepositoryItems
SQL ObjectAifaDev.ExQueryBuilder (TRIGGER on AifaDev.RepositoryItems)
TabloQuery.<Owner> (dinamik view)
Tetikleme koşuluTetikleyici yeni bir Owner için view oluşturmak istediğinde her iki dalda da 'Alter View Query.<Owner>' üretiyor ('if OBJECT_ID(@ViewName) is null → Alter View' — CREATE yok). View henüz yoksa ALTER VIEW hata verir → tetikleyici hatası RepositoryItems INSERT'ini geri alır. Ayrıca schema Query yoksa exec('Add Schema Query') → 102 syntax error.
Kök nedenmodules.json AifaDev.ExQueryBuilder: "if OBJECT_ID (@ViewName) is null BEGIN SET @Query = 'Alter View ' … END ELSE BEGIN SET @Query = 'Alter View ' …"; "exec ('Add Schema Query')".
Neden zinciriTeknik olay: SQL 4902 (Cannot find the object … ALTER VIEW) Invalid object name ↓ Yakın neden: Tetikleyici yeni bir Owner için view oluşturmak istediğinde her iki dalda da 'Alter View Query.<Owner>' üretiyor ('if OB ↓ Kullanıcı etkisi: Dinamik form alanı eklerken "Cannot find the object 'Query.XXX' because it does not exist or you do not have permissions
Etkilenen veriQuery.<Owner> (dinamik view)
Olasılık / etki / güvenYüksek — ilk kez tanımlanan her Owner için / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): OBJECT_ID kontrolünde CREATE/ALTER ayrımı; 'Add Schema' → 'CREATE SCHEMA'. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT DISTINCT [Owner] FROM AifaDev.RepositoryItems WHERE IsDeleted=0 AND OBJECT_ID('Query.'+[Owner]) IS NULL; -- view'ı olmayan owner'lar
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-039 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET (BASE-DEPENDENCY) · Guard=HAYIR · modules.json AifaDev.ExQueryBuilder: "if OBJECT_ID (@ViewName) is null BEGIN SET @Query = 'Alter View ' … END ELSE BEGIN SET @Query = 'Alter View ' …"; "exec ('Add Schema Query')".
POTANSİYEL ERR-POT-110SQLR-040 Invalid column name: Cari.Transferler S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisi"Invalid column name 'Aciklama'." — kayıt/liste başarısız.
Teknik belirtiKod Cari.Transferler üzerinde 'Aciklama' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
SQL hata no207
SQL hata mesajıInvalid column name
EkranFrmTransferEkle → FrmTransfer (ANA MENÜ FrmMainForm; GiseEkrani) — kasa/şube transferi kaydı
Kod dosyasıERPPRO/Class/Dao/Cari.Transferler.vb:172 (Insert), :222 (Update)
İlgili SQL nesneleriCari.Transferler
SQL ObjectCari.Transferler
TabloCari.Transferler
KolonAciklama
Tetikleme koşuluKod Cari.Transferler üzerinde 'Aciklama' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
Kök nedensql_frags (ERPPRO/Class/Dao/Cari.Transferler.vb:172 (Insert), :222 (Update)); columns.json Cari.Transferler kolon listesinde 'Aciklama' yok. DB2'de Cari.Transferler 32.531 satır — kolon orada olabilir (BİLİNMİYOR).
Neden zinciriTeknik olay: SQL 207 Invalid column name ↓ Yakın neden: Kod Cari.Transferler üzerinde 'Aciklama' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. ↓ Kullanıcı etkisi: "Invalid column name 'Aciklama'." — kayıt/liste başarısız.
Etkilenen veriCari.Transferler
Olasılık / etki / güvenYüksek (her transfer kaydında) / S2 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COL_LENGTH('Cari.Transferler','Aciklama'); -- NULL ise kolon yok
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-040 · DB1=HAYIR (kolon) DB2=BİLİNMİYOR BASE=HAYIR (basedb/out/columns.json'da yok) · Guard=HAYIR · sql_frags (ERPPRO/Class/Dao/Cari.Transferler.vb:172 (Insert), :222 (Update)); columns.json Cari.Transferler kolon listesinde 'Aciklama' yok. DB2'de Cari.Transferler 32.531 satır — kolon orada olabilir
POTANSİYEL ERR-POT-111SQLR-041 Invalid column name: Siparis.Paket S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisi"Invalid column name 'IsPublic'." — kayıt/liste başarısız.
Teknik belirtiKod Siparis.Paket üzerinde 'IsPublic' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
SQL hata no207
SQL hata mesajıInvalid column name
EkranFrmPaketEkle (Siparis.PaketEx)
Kod dosyasıERPPRO/Class/Dao/Siparis.Paket.vb:93 (Insert), :126 (Update)
İlgili SQL nesneleriSiparis.Paket
SQL ObjectSiparis.Paket
TabloSiparis.Paket
KolonIsPublic
Tetikleme koşuluKod Siparis.Paket üzerinde 'IsPublic' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
Kök nedensql_frags (ERPPRO/Class/Dao/Siparis.Paket.vb:93 (Insert), :126 (Update)); columns.json Siparis.Paket kolon listesinde 'IsPublic' yok.
Neden zinciriTeknik olay: SQL 207 Invalid column name ↓ Yakın neden: Kod Siparis.Paket üzerinde 'IsPublic' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. ↓ Kullanıcı etkisi: "Invalid column name 'IsPublic'." — kayıt/liste başarısız.
Etkilenen veriSiparis.Paket
Olasılık / etki / güvenOrta / S3 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COL_LENGTH('Siparis.Paket','IsPublic'); -- NULL ise kolon yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-041 · DB1=HAYIR (kolon) DB2=BİLİNMİYOR BASE=HAYIR (basedb/out/columns.json'da yok) · Guard=HAYIR · sql_frags (ERPPRO/Class/Dao/Siparis.Paket.vb:93 (Insert), :126 (Update)); columns.json Siparis.Paket kolon listesinde 'IsPublic' yok.
POTANSİYEL ERR-POT-112SQLR-042 Invalid column name: Siparis.TakimKartlari S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisi"Invalid column name 'Grup'." — kayıt/liste başarısız.
Teknik belirtiKod Siparis.TakimKartlari üzerinde 'Grup' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
SQL hata no207
SQL hata mesajıInvalid column name
EkranTakım kartı ekleme (FrmTakimKarti — çağıran bulunamadı)
Kod dosyasıERPPRO/Class/Dao/Siparis.TakimKarti.vb:112 (Insert), :163 (Update)
İlgili SQL nesneleriSiparis.TakimKartlari
SQL ObjectSiparis.TakimKartlari
TabloSiparis.TakimKartlari
KolonGrup
Tetikleme koşuluKod Siparis.TakimKartlari üzerinde 'Grup' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
Kök nedensql_frags (ERPPRO/Class/Dao/Siparis.TakimKarti.vb:112 (Insert), :163 (Update)); columns.json Siparis.TakimKartlari kolon listesinde 'Grup' yok. Sistem.ERPSCHEMA'da 'Siparis.TakimKartlari' için 1 satır var → ana şemada V2'de olmayan bir kolon (muhtemelen Grup) = 'Alter … Add' adayı.
Neden zinciriTeknik olay: SQL 207 Invalid column name ↓ Yakın neden: Kod Siparis.TakimKartlari üzerinde 'Grup' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. ↓ Kullanıcı etkisi: "Invalid column name 'Grup'." — kayıt/liste başarısız.
Etkilenen veriSiparis.TakimKartlari
Olasılık / etki / güvenDüşük / S3 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COL_LENGTH('Siparis.TakimKartlari','Grup'); -- NULL ise kolon yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-042 · DB1=HAYIR (kolon) DB2=BİLİNMİYOR BASE=HAYIR (basedb/out/columns.json'da yok) · Guard=HAYIR · sql_frags (ERPPRO/Class/Dao/Siparis.TakimKarti.vb:112 (Insert), :163 (Update)); columns.json Siparis.TakimKartlari kolon listesinde 'Grup' yok. Sistem.ERPSCHEMA'da 'Siparis.TakimKartlari' için 1 satır
POTANSİYEL ERR-POT-113SQLR-043 Invalid column name: Sistem.CariIslemTipi S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisi"Invalid column name 'IsDeleted'." — kayıt/liste başarısız.
Teknik belirtiKod Sistem.CariIslemTipi üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
SQL hata no207
SQL hata mesajıInvalid column name
EkranFiltreli ctor; TOList() ayrı ve doğru ('Select * from Sistem.CariIslemTipi')
Kod dosyasıERPPRO/Class/Dao/Sistem.CariIslemTipi.vb:11 (Sub New(Filter): Select * … Where IsDeleted='False')
İlgili SQL nesneleriSistem.CariIslemTipi
SQL ObjectSistem.CariIslemTipi
TabloSistem.CariIslemTipi
KolonIsDeleted
Tetikleme koşuluKod Sistem.CariIslemTipi üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
Kök nedensql_frags (ERPPRO/Class/Dao/Sistem.CariIslemTipi.vb:11 (Sub New(Filter): Select * … Where IsDeleted='False')); columns.json Sistem.CariIslemTipi kolon listesinde 'IsDeleted' yok. Tablo kolonları: Id, IslemTipi, Kod.
Neden zinciriTeknik olay: SQL 207 Invalid column name ↓ Yakın neden: Kod Sistem.CariIslemTipi üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. ↓ Kullanıcı etkisi: "Invalid column name 'IsDeleted'." — kayıt/liste başarısız.
Etkilenen veriSistem.CariIslemTipi
Olasılık / etki / güvenDüşük / S4 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COL_LENGTH('Sistem.CariIslemTipi','IsDeleted'); -- NULL ise kolon yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-043 · DB1=HAYIR (kolon) DB2=BİLİNMİYOR BASE=HAYIR (basedb/out/columns.json'da yok) · Guard=HAYIR · sql_frags (ERPPRO/Class/Dao/Sistem.CariIslemTipi.vb:11 (Sub New(Filter): Select * … Where IsDeleted='False')); columns.json Sistem.CariIslemTipi kolon listesinde 'IsDeleted' yok. Tablo kolonları: Id,
POTANSİYEL ERR-POT-114SQLR-044 Invalid column name: Cari.Provizyon S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisi"Invalid column name 'IsDeleted'." — kayıt/liste başarısız.
Teknik belirtiKod Cari.Provizyon üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
SQL hata no207
SQL hata mesajıInvalid column name
EkranProvizyon listesi/silme (Ext)
Kod dosyasıERPPRO/Class/Ext/Cari.Provizyon.vb:57 (TOList), :151, :171 (Delete)
İlgili SQL nesneleriCari.Provizyon
SQL ObjectCari.Provizyon
TabloCari.Provizyon
KolonIsDeleted
Tetikleme koşuluKod Cari.Provizyon üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
Kök nedensql_frags (ERPPRO/Class/Ext/Cari.Provizyon.vb:57 (TOList), :151, :171 (Delete)); columns.json Cari.Provizyon kolon listesinde 'IsDeleted' yok. Tabloda IsDeleted yok (Status/StatusId var).
Neden zinciriTeknik olay: SQL 207 Invalid column name ↓ Yakın neden: Kod Cari.Provizyon üzerinde 'IsDeleted' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. ↓ Kullanıcı etkisi: "Invalid column name 'IsDeleted'." — kayıt/liste başarısız.
Etkilenen veriCari.Provizyon
Olasılık / etki / güvenOrta / S3 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COL_LENGTH('Cari.Provizyon','IsDeleted'); -- NULL ise kolon yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-044 · DB1=HAYIR (kolon) DB2=BİLİNMİYOR BASE=HAYIR (basedb/out/columns.json'da yok) · Guard=HAYIR · sql_frags (ERPPRO/Class/Ext/Cari.Provizyon.vb:57 (TOList), :151, :171 (Delete)); columns.json Cari.Provizyon kolon listesinde 'IsDeleted' yok. Tabloda IsDeleted yok (Status/StatusId var).
POTANSİYEL ERR-POT-115SQLR-045 Invalid column name: Sistem.Users S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisi"Invalid column name 'SubeId'." — kayıt/liste başarısız.
Teknik belirtiKod Sistem.Users üzerinde 'SubeId' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
SQL hata no207
SQL hata mesajıInvalid column name
EkranFrmChangeAccount (çağıran bulunamadı — ölü ekran adayı)
Kod dosyasıERPPRO/Form/Genel/FrmChangeAccount.vb:9
İlgili SQL nesneleriSistem.Users
SQL ObjectSistem.Users
TabloSistem.Users
KolonSubeId
Tetikleme koşuluKod Sistem.Users üzerinde 'SubeId' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok.
Kök nedensql_frags (ERPPRO/Form/Genel/FrmChangeAccount.vb:9); columns.json Sistem.Users kolon listesinde 'SubeId' yok. Şube bilgisi Sistem.UserDetails.SubeId'de.
Neden zinciriTeknik olay: SQL 207 Invalid column name ↓ Yakın neden: Kod Sistem.Users üzerinde 'SubeId' kolonunu kullanıyor; kolon DB1 kataloğunda (kb_src/db/columns.json) yok. ↓ Kullanıcı etkisi: "Invalid column name 'SubeId'." — kayıt/liste başarısız.
Etkilenen veriSistem.Users
Olasılık / etki / güvenDüşük / S4 / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kolonun ana şemada (ERPSCHEMA/DBUpdate) tanımlı olup olmadığı doğrulanmalı; BASE kolon setine eklenmesi ya da koddan çıkarılması kararı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COL_LENGTH('Sistem.Users','SubeId'); -- NULL ise kolon yok
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-045 · DB1=HAYIR (kolon) DB2=BİLİNMİYOR BASE=HAYIR (basedb/out/columns.json'da yok) · Guard=HAYIR · sql_frags (ERPPRO/Form/Genel/FrmChangeAccount.vb:9); columns.json Sistem.Users kolon listesinde 'SubeId' yok. Şube bilgisi Sistem.UserDetails.SubeId'de.
POTANSİYEL ERR-POT-116SQLR-046 Invalid column name: Cari.IslemDetaylari / Cari.Islemler (kurulum farkı) S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-009 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-009 ETTN atama / boş ETTN / ETTN güncellemesi
Kullanıcı belirtisiDB2'de perakende/işlem listesinde "Invalid column name 'ETTN'"; e-belge akışı kuyumcuda tanımsız.
Teknik belirtiDB2 (KUYUMCU) kurulumunda Cari.IslemDetaylari 12 kolon (ETTN yok), DB1'de 49 kolon; Cari.Islemler.IsArbitiraj yalnız DB1'de. Aynı exe DB2'ye bağlanınca bu kolonları kullanan sorgular 207 verir; DB1 tetikleyicileri (D.ETTN) DB2'ye taşınırsa tetikleyici derlenmez/çalışmaz.
SQL hata no207
SQL hata mesajıInvalid column name
EkranParakende.vb:13,57 (perakende ekranı: 'Select …,UsdKur,ETTN From Cari.Islemler I Left Join Cari.IslemDetaylari D'); ERPFatura.Save (MERGE 41 kolon); Cari.AcceptTransaction & Cari.UpdateTransaction (D.ETTN)
Kod dosyasıERPPRO/Controls/Islem Ekranı/Parakende/Parakende.vb:13,57; ERPPRO/Class/Dao/Islem/ERPFatura.vb:330; DijitalFatura/Common/ERPFatura.vb:451
İlgili SQL nesneleriCari.IslemDetaylari, Cari.Islemler
SQL ObjectCari.IslemDetaylari / Cari.Islemler (kurulum farkı)
TabloCari.IslemDetaylari; Cari.Islemler
KolonETTN (+36 döviz mevzuatı kolonu); IsArbitiraj
Tetikleme koşuluDB2 (KUYUMCU) kurulumunda Cari.IslemDetaylari 12 kolon (ETTN yok), DB1'de 49 kolon; Cari.Islemler.IsArbitiraj yalnız DB1'de. Aynı exe DB2'ye bağlanınca bu kolonları kullanan sorgular 207 verir; DB1 tetikleyicileri (D.ETTN) DB2'ye taşınırsa tetikleyici derlenmez/çalışmaz.
Kök nedenkitap/b8_kuyumcu.md 'Cari.IslemDetaylari: döviz 49 / kuyumcu 12 kolon; ETTN kuyumcuda yoktur; IsArbitiraj yalnız döviz'; Parakende.vb:13 sorgu metni; AcceptTransaction cursor listesi 'D.ETTN'.
Neden zinciriTeknik olay: SQL 207 Invalid column name ↓ Yakın neden: DB2 (KUYUMCU) kurulumunda Cari.IslemDetaylari 12 kolon (ETTN yok), DB1'de 49 kolon; Cari.Islemler.IsArbitiraj yalnız DB1 ↓ Kullanıcı etkisi: DB2'de perakende/işlem listesinde "Invalid column name 'ETTN'"; e-belge akışı kuyumcuda tanımsız.
Etkilenen veriCari.IslemDetaylari; Cari.Islemler
Olasılık / etki / güvenDB2'de yüksek (perakende ekranı açılırsa) / S2 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kurulum profiline göre kolon seti (BASE + DÖVİZ eklentisi) ayrımı; kodda ETTN/IsArbitiraj kullanan sorguların profil bayrağıyla korunması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COL_LENGTH('Cari.IslemDetaylari','ETTN') AS ETTN, COL_LENGTH('Cari.Islemler','IsArbitiraj') AS IsArbitiraj;
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-046 · DB1=EVET DB2=HAYIR (kitap/b8_kuyumcu §: ETTN kuyumcuda yok; 12 kolon) BASE=EVET (V2 kolon seti) · Guard=HAYIR · kitap/b8_kuyumcu.md 'Cari.IslemDetaylari: döviz 49 / kuyumcu 12 kolon; ETTN kuyumcuda yoktur; IsArbitiraj yalnız döviz'; Parakende.vb:13 sorgu metni; AcceptTransaction cursor listesi 'D.ETTN'.
İlişkili kayıtlarERR-OBS-086, ERR-POT-003, ERR-POT-030, ERR-POT-134, ERR-POT-135, ERR-SIL-046
POTANSİYEL ERR-POT-117SQLR-047 Invalid column name: Sistem.ERPSCHEMA 'Alter … Add' satırları S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-008 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-008 ERP kurulumu (yeni kurulum, sıfır kurulum, kurulum sonrası destek)
Kullanıcı belirtisiDBUpdate uygulanmamış kurulumda ilgili ekranlarda 'Invalid column name …'.
Teknik belirtiERPSCHEMA = ftp schema.csv (ana şema, 2022-12-16) − sys.columns farkı. Nesnesi V2'de VAR olan 13 nesnenin toplam 24 satırı 'Alter … Add' kolonu demektir: ana şemada olup DB1'de olmayan kolonlar. Bu kolonları kullanan kod (ör. Siparis.TakimKartlari.Grup) DB1'de 207 verir; DBUpdate çalıştırılmamış kurulumlarda aynı risk.
SQL hata no207 (kurulum bazlı)
SQL hata mesajıInvalid column name
EkranDBUpdate ekranı (Class/SCHEMA/DBUpdate.vb) bu satırları 'Alter Table … Add' olarak uygular
Kod dosyasıERPPRO/Class/SCHEMA/DBUpdate.vb:13-22; dbclean/dbsql.json src=Sistem.ERPSCHEMA (238 satır, 30 nesne)
İlgili SQL nesneleriSistem.ERPSCHEMA, Cari.Hesaplar, Cari.Islemler, Cari.IslemListesi, Cari.HesapListesi, Cari.GetHesapListesi, Siparis.TakimKartlari, Muhasebe.BTRANSDoviz, Muhasebe.MerkezBankasiRaporu, Query.Hesaplar, Pozisyon.GetAllPozisyon, Siparis.GetParcaKartlari, Siparis.GetTakimDetay, Cari.GetFiyatListesi
SQL ObjectSistem.ERPSCHEMA 'Alter … Add' satırları
TabloCari.Hesaplar (1), Cari.Islemler (1), Cari.IslemListesi (6), Cari.HesapListesi (1), Cari.GetHesapListesi (1), Siparis.TakimKartlari (1), Muhasebe.BTRANSDoviz (1), Muhasebe.MerkezBankasiRaporu (5), Query.Hesaplar (3), Pozisyon.GetAllPozisyon (1), Siparis.GetParcaKartlari (1), Siparis.GetTakimDetay (1), Cari.GetFiyatListesi (1)
Kolon(kolon adları dbsql.json'a alınmamış — ColumnName kolonu boş)
Tetikleme koşuluERPSCHEMA = ftp schema.csv (ana şema, 2022-12-16) − sys.columns farkı. Nesnesi V2'de VAR olan 13 nesnenin toplam 24 satırı 'Alter … Add' kolonu demektir: ana şemada olup DB1'de olmayan kolonlar. Bu kolonları kullanan kod (ör. Siparis.TakimKartlari.Grup) DB1'de 207 verir; DBUpdate çalıştırılmamış kurulumlarda aynı risk.
Kök nedendbsql.json Sistem.ERPSCHEMA satır sayıları (Cari.Hesaplar 1, Cari.Islemler 1, Cari.IslemListesi 6, Siparis.TakimKartlari 1 …); DBUpdate.vb Method computed: object_id(TableName) null→'Create' else 'Alter'.
Neden zinciriTeknik olay: SQL 207 (kurulum bazlı) Invalid column name ↓ Yakın neden: ERPSCHEMA = ftp schema.csv (ana şema, 2022-12-16) − sys.columns farkı. Nesnesi V2'de VAR olan 13 nesnenin toplam 24 satı ↓ Kullanıcı etkisi: DBUpdate uygulanmamış kurulumda ilgili ekranlarda 'Invalid column name …'.
Etkilenen veriCari.Hesaplar (1), Cari.Islemler (1), Cari.IslemListesi (6), Cari.HesapListesi (1), Cari.GetHesapListesi (1), Siparis.TakimKartlari (1), Muhasebe.BTRANSDoviz (1), Muhasebe.MerkezBankasiRaporu (5), Query.Hesaplar (3), Pozisyon.GetAllPozisyon (1), Siparis.GetParcaKartlari (1), Siparis.GetTakimDetay (1), Cari.GetFiyatListesi (1)
Olasılık / etki / güvenOrta / S3 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): ERPSCHEMA ColumnName/DataType içeriği okunup (bu turda alınmadı — GAP) BASE kolon seti ile eşleştirilmeli. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT TableName, ColumnName, DataType, Method FROM Sistem.ERPSCHEMA WHERE OBJECT_ID(TableName) IS NOT NULL ORDER BY TableName;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-047 · DB1=HAYIR (kolonlar) DB2=BİLİNMİYOR BASE=HAYIR · Guard=KISMEN (DBUpdate çalıştırılırsa kolonlar eklenir) · dbsql.json Sistem.ERPSCHEMA satır sayıları (Cari.Hesaplar 1, Cari.Islemler 1, Cari.IslemListesi 6, Siparis.TakimKartlari 1 …); DBUpdate.vb Method computed: object_id(TableName) null→'Create' else 'Alt
POTANSİYEL ERR-POT-118SQLR-048 Invalid column name: (kod) ERPFatura.Save → Cari.IslemDetaylari S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-007 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülInvalid column name
Problem ailesiPF-007 Fatura kesilemiyor / fatura basma / fatura problemi (genel)
Kullanıcı belirtisiFatura/belge detayı kaydedilmez; kullanıcıya hata gösterilmez (ekran 'kaydedilemedi' ya da hiçbir şey).
Teknik belirtiSQL metni "Insert Into Cari.IslemDetaylari(MERGE Cari.IslemDetaylari WITH (SERIALIZABLE) AS T USING (VALUES(…)) … output inserted.IslemId" — 'Insert Into …(' öneki artık; MERGE parantez içinde → derlenmez. Catch boş → Save() sessizce False.
SQL hata no102 (Incorrect syntax near 'MERGE')
SQL hata mesajıInvalid column name
EkranOldFis/Printing.Fatura.vb:182 (detay.Save), FrmSeriFaturaBas.vb:98, FrmDovFaturaEkranı.vb:203 — fatura/işlem detayı kaydı
Kod dosyasıERPPRO/Class/Dao/Islem/ERPFatura.vb:330
İlgili SQL nesneleriCari.IslemDetaylari
SQL Object(kod) ERPFatura.Save → Cari.IslemDetaylari
TabloCari.IslemDetaylari
Tetikleme koşuluSQL metni "Insert Into Cari.IslemDetaylari(MERGE Cari.IslemDetaylari WITH (SERIALIZABLE) AS T USING (VALUES(…)) … output inserted.IslemId" — 'Insert Into …(' öneki artık; MERGE parantez içinde → derlenmez. Catch boş → Save() sessizce False.
Kök nedenQA-SQL-QUERY-MAP.md satır 354; ERPFatura.vb:330 metni; :486 'Catch ex As Exception' boş.
Neden zinciriTeknik olay: SQL 102 (Incorrect syntax near 'MERGE') Invalid column name ↓ Yakın neden: SQL metni "Insert Into Cari.IslemDetaylari(MERGE Cari.IslemDetaylari WITH (SERIALIZABLE) AS T USING (VALUES(…)) … output ↓ Kullanıcı etkisi: Fatura/belge detayı kaydedilmez; kullanıcıya hata gösterilmez (ekran 'kaydedilemedi' ya da hiçbir şey).
Etkilenen veriCari.IslemDetaylari
Olasılık / etki / güvenYüksek (bu yol her çağrıldığında) / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Bu DAO'nun canlı yol olup olmadığı (Cari.IFatura/SQLBase MERGE üretimi ana yol) netleştirilip artık önek kaldırılmalı; boş Catch loglanmalı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Test senaryosuBelirtiyi yeniden üret: Fatura/belge detayı kaydedilmez; kullanıcıya hata gösterilmez (ekran 'kaydedilemedi' ya da hiçbir şey).
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-048 · DB1=EVET (tablo) DB2=EVET (12 kolonlu; MERGE kolonlarının çoğu yok → ek 207) BASE=EVET · Guard=HAYIR · QA-SQL-QUERY-MAP.md satır 354; ERPFatura.vb:330 metni; :486 'Catch ex As Exception' boş.
POTANSİYEL ERR-POT-119SQLR-050 Divide by zero: Bilanco.GetIKar; Bilanco.GetIBilanco S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülDivide by zero
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisiBilanço kâr raporunda 'Divide by zero error encountered.'
Teknik belirti9 ayrı 'Sum(… )/Kur1.Alis' ifadesi; Kur1 = Sistem.GetKurListesi(@Tarih) BirimId=1 satırı. HAS kuru o gün 0 girilmişse 8134; kur hiç yoksa (fallback yoksa) NULL → sonuç NULL (sessiz).
SQL hata no8134
SQL hata mesajıDivide by zero
EkranKoddan/raporlardan çağıran bulunamadı (deps: yok)
İlgili SQL nesneleriBilanco.GetIKar, Bilanco.GetIBilanco, Cari.BakiyeIslem, Stok.StokHaraketleri, Sistem.Kurlar, Sistem.GetKurListesi
SQL ObjectBilanco.GetIKar; Bilanco.GetIBilanco
TabloCari.BakiyeIslem; Stok.StokHaraketleri
KolonKur1.Alis (Sistem.GetKurListesi BirimId=1 = HAS kuru)
Tetikleme koşulu9 ayrı 'Sum(… )/Kur1.Alis' ifadesi; Kur1 = Sistem.GetKurListesi(@Tarih) BirimId=1 satırı. HAS kuru o gün 0 girilmişse 8134; kur hiç yoksa (fallback yoksa) NULL → sonuç NULL (sessiz).
Kök nedendiv.py çıktısı: Bilanco.GetIKar 5×, Bilanco.GetIBilanco 4× '/Kur1.Alis' NULLIF yok.
Neden zinciriTeknik olay: SQL 8134 Divide by zero ↓ Yakın neden: 9 ayrı 'Sum(… )/Kur1.Alis' ifadesi; Kur1 = Sistem.GetKurListesi(@Tarih) BirimId=1 satırı. HAS kuru o gün 0 girilmişse 81 ↓ Kullanıcı etkisi: Bilanço kâr raporunda 'Divide by zero error encountered.'
Etkilenen veriCari.BakiyeIslem; Stok.StokHaraketleri
Olasılık / etki / güvenDüşük (çağıran yok; HAS kuru 0 olağan dışı) / S3 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): NULLIF(Kur1.Alis,0) ve kur yokluğu için açık uyarı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT Tarih FROM Sistem.Kurlar WHERE BirimId=1 AND ISNULL(Alis,0)=0;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-050 · DB1=EVET DB2=BİLİNMİYOR BASE=HAYIR (UNKNOWN) · Guard=HAYIR · div.py çıktısı: Bilanco.GetIKar 5×, Bilanco.GetIBilanco 4× '/Kur1.Alis' NULLIF yok.
POTANSİYEL ERR-POT-120SQLR-051 Divide by zero: MüşteriŞemasıA.IslemFiyatlar tetikleyicisi (DB2 Cari.Islemler 5. tetikleyici) S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-070 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE07 — Finansal Hesaplama Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülDivide by zero
Problem ailesiPF-070 Rapor hata veriyor / yanlış-boş geliyor (divide by zero, invalid column, süzgeç)
Kullanıcı belirtisiDB2'de işlem kaydında 'Divide by zero error encountered' → işlem kaydedilemez.
Teknik belirti'I.Maliyet/I.UsdKur' ve 'I.Maliyet/I.HasKur' korumasız; kur 0 gelirse tetikleyici hata verir ve kullanıcının işlemi geri alınır. Ayrıca 'Select @x=… From Inserted' tek satır varsayımı (çok satırlı INSERT'te veri kaybı — sessiz) ve sabit kimlikler (Kodu='995', BirimId IN (84,85,86)).
SQL hata no8134
SQL hata mesajıDivide by zero
EkranDB2'de her Cari.Islemler INSERT/UPDATE
İlgili SQL nesneleriCari.Islemler
SQL ObjectMüşteriŞemasıA.IslemFiyatlar tetikleyicisi (DB2 Cari.Islemler 5. tetikleyici)
TabloCari.Islemler → MüşteriŞemasıA.IslemFiyatlar
KolonUsdKur, HasKur
Tetikleme koşulu'I.Maliyet/I.UsdKur' ve 'I.Maliyet/I.HasKur' korumasız; kur 0 gelirse tetikleyici hata verir ve kullanıcının işlemi geri alınır. Ayrıca 'Select @x=… From Inserted' tek satır varsayımı (çok satırlı INSERT'te veri kaybı — sessiz) ve sabit kimlikler (Kodu='995', BirimId IN (84,85,86)).
Kök nedenTD-41; kitap/b8_kuyumcu.md 'Sıfıra bölme riski: I.Maliyet/I.UsdKur, I.Maliyet/I.HasKur korumasız'. Tetikleyici metni bu turda elde yok (DB2 modülleri GAP-BASE-DB2-MODULES).
Neden zinciriTeknik olay: SQL 8134 Divide by zero ↓ Yakın neden: 'I.Maliyet/I.UsdKur' ve 'I.Maliyet/I.HasKur' korumasız; kur 0 gelirse tetikleyici hata verir ve kullanıcının işlemi geri ↓ Kullanıcı etkisi: DB2'de işlem kaydında 'Divide by zero error encountered' → işlem kaydedilemez.
Etkilenen veriCari.Islemler → MüşteriŞemasıA.IslemFiyatlar
Olasılık / etki / güvenOrta (DB2) / S2 / 70
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Müşteri özel tetikleyicinin eklenti noktasına alınması; NULLIF; set-tabanlı yazım. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COUNT(*) FROM Cari.Islemler WHERE IsDeleted=0 AND (ISNULL(UsdKur,0)=0 OR ISNULL(HasKur,0)=0) AND Tarih>=DATEADD(month,-3,GETDATE());
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-051 · DB1=HAYIR DB2=EVET (3.738 krk; TD-41) BASE=HAYIR (müşteri özel) · Guard=HAYIR · TD-41; kitap/b8_kuyumcu.md 'Sıfıra bölme riski: I.Maliyet/I.UsdKur, I.Maliyet/I.HasKur korumasız'. Tetikleyici metni bu turda elde yok (DB2 modülleri GAP-BASE-DB2-MODULES).
Wiki bağlantılarıTD-41
POTANSİYEL ERR-POT-121SQLR-054 Conversion failed: (kod) Cari.Odeme.vb:136 → Cari.Islemler S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülConversion failed
Kullanıcı belirtisiÖdeme listesinde 'Conversion failed when converting the nvarchar value 'xyz' to data type int.'
Teknik belirti'Where … StokId=… And Convert(int,Tag)=…' — Tag serbest metin (nvarchar(MAX)); filtre sırası garanti değil, sayısal olmayan Tag satırı taranırsa 245 'Conversion failed when converting the nvarchar value … to data type int'.
SQL hata no245
SQL hata mesajıConversion failed
EkranÖdeme ekranı (FrmOdemeListesi/FrmOdemeYap) — 'Convert(int,Tag) = <Id>'
Kod dosyasıERPPRO/Class/Dao/Cari.Odeme.vb:136
İlgili SQL nesneleriCari.Islemler
SQL Object(kod) Cari.Odeme.vb:136 → Cari.Islemler
TabloCari.Islemler
KolonTag (nvarchar(max))
Tetikleme koşulu'Where … StokId=… And Convert(int,Tag)=…' — Tag serbest metin (nvarchar(MAX)); filtre sırası garanti değil, sayısal olmayan Tag satırı taranırsa 245 'Conversion failed when converting the nvarchar value … to data type int'.
Kök nedenCari.Odeme.vb:136 'select Sum(Miktar) … And Convert(int,Tag) =''" & Id & "''' (Cari.Odemeler ekranı zaten 208 ile düşer).
Neden zinciriTeknik olay: SQL 245 Conversion failed ↓ Yakın neden: 'Where … StokId=… And Convert(int,Tag)=…' — Tag serbest metin (nvarchar(MAX)); filtre sırası garanti değil, sayısal olma ↓ Kullanıcı etkisi: Ödeme listesinde 'Conversion failed when converting the nvarchar value 'xyz' to data type int.'
Etkilenen veriCari.Islemler
Olasılık / etki / güvenOrta (Tag başka amaçla dolduysa) / S3 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): TRY_CONVERT ya da Tag yerine tipli bir referans kolonu. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COUNT(*) FROM Cari.Islemler WHERE Tag IS NOT NULL AND TRY_CONVERT(int,Tag) IS NULL;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-054 · DB1=EVET (kolon) DB2=BİLİNMİYOR BASE=EVET · Guard=HAYIR · Cari.Odeme.vb:136 'select Sum(Miktar) … And Convert(int,Tag) =''" & Id & "''' (Cari.Odemeler ekranı zaten 208 ile düşer).
İlişkili kayıtlarERR-POT-071
POTANSİYEL ERR-POT-122SQLR-055 Conversion failed: Query.GENELSTOKLAR (VIEW); AifaDev.ExQueryBuilder üretimi Query.* view'ları S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-004 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülConversion failed
Problem ailesiPF-004 Rapor tasarımı / yeni rapor / sütun ekleme / bakiye ekstresi düzenleme (talep)
Kullanıcı belirtisiDinamik form listesi/raporunda 'Conversion failed …' ya da 'Error converting data type nvarchar to numeric'.
Teknik belirtiPivot edilen serbest metin Value kolonu 'Convert(int, F.Kimden)', 'Convert(Decimal(18,5), F.[x])', 'Convert(Date, F.[x],104)' ile tiplendiriliyor; kullanıcı sayısal olmayan değer girdiyse view okunurken 245/8114/241.
SQL hata no245 / 8114
SQL hata mesajıConversion failed
EkranDynamicForms / Query.* view'larını kullanan raporlar
İlgili SQL nesneleriQuery.GENELSTOKLAR, AifaDev.ExQueryBuilder, AifaDev.RepositoryData, AifaDev.RepositoryItems
SQL ObjectQuery.GENELSTOKLAR (VIEW); AifaDev.ExQueryBuilder üretimi Query.* view'ları
TabloAifaDev.RepositoryData
KolonValue (nvarchar) → Convert(int/decimal/date,…)
Tetikleme koşuluPivot edilen serbest metin Value kolonu 'Convert(int, F.Kimden)', 'Convert(Decimal(18,5), F.[x])', 'Convert(Date, F.[x],104)' ile tiplendiriliyor; kullanıcı sayısal olmayan değer girdiyse view okunurken 245/8114/241.
Kök nedenmodules.json Query.GENELSTOKLAR 'Convert(int, F.Kimden)'; ExQueryBuilder DataType→Convert eşlemesi.
Neden zinciriTeknik olay: SQL 245 / 8114 Conversion failed ↓ Yakın neden: Pivot edilen serbest metin Value kolonu 'Convert(int, F.Kimden)', 'Convert(Decimal(18,5), F.[x])', 'Convert(Date, F.[x], ↓ Kullanıcı etkisi: Dinamik form listesi/raporunda 'Conversion failed …' ya da 'Error converting data type nvarchar to numeric'.
Etkilenen veriAifaDev.RepositoryData
Olasılık / etki / güvenOrta / S4 / 75
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): TRY_CONVERT; giriş doğrulaması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT D.* FROM AifaDev.RepositoryData D JOIN AifaDev.RepositoryItems I ON I.Id=D.ItemId WHERE I.DataType IN (2,4,5) AND TRY_CONVERT(decimal(18,5),D.Value) IS NULL AND D.Value IS NOT NULL;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-055 · DB1=EVET DB2=BİLİNMİYOR BASE=HAYIR (Query.* UNKNOWN) · Guard=KISMEN (Date için Year()>1900 kontrolü var ama Convert önce çalışır) · modules.json Query.GENELSTOKLAR 'Convert(int, F.Kimden)'; ExQueryBuilder DataType→Convert eşlemesi.
POTANSİYEL ERR-POT-123SQLR-056 Conversion failed: (kod) tırnaklı birleştirme ile tipsiz literal karşılaştırması S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülConversion failed
Kullanıcı belirtisi'Error converting data type varchar to numeric' / 'Conversion failed when converting date and/or time' / 'Incorrect syntax near ='.
Teknik belirtiint/decimal/date kolonlar tırnaklı string literal ile karşılaştırılıyor → örtük dönüşüm. Değişken boş ('') → int için 0 (sessiz yanlış eşleşme), decimal/date için 8114/241; ondalık ayıracı virgül olan kültürde (1,5) 8114 'Error converting data type varchar to numeric'; Nothing → 'Id=' syntax error 102.
SQL hata no245 / 8114 / 241
SQL hata mesajıConversion failed
Ekran553 SQL cümlesi: "Where Id='" & x & "'" kalıbı (SQLBase.vb:138-161 jenerik; Dao/*.vb)
Kod dosyasıERPPRO/Class/Dao/_SQLBase/SQLBase.vb:138,140,161; dyn_out.json concat_quoted (553)
İlgili SQL nesneleriCari.Islemler, Cari.Hesaplar
SQL Object(kod) tırnaklı birleştirme ile tipsiz literal karşılaştırması
TabloCari.Islemler, Cari.Hesaplar, Stok.*, Siparis.* …
KolonId, HesapId, StokId, Tarih, Miktar…
Tetikleme koşuluint/decimal/date kolonlar tırnaklı string literal ile karşılaştırılıyor → örtük dönüşüm. Değişken boş ('') → int için 0 (sessiz yanlış eşleşme), decimal/date için 8114/241; ondalık ayıracı virgül olan kültürde (1,5) 8114 'Error converting data type varchar to numeric'; Nothing → 'Id=' syntax error 102.
Kök nedendyn.py istatistiği: 1294 cümle; 914 '&' ile birleştirme; 553 tırnaklı ('" & x & "'); 252 parametreli; 133 sabit. TD-37 (ondalık ToString).
Neden zinciriTeknik olay: SQL 245 / 8114 / 241 Conversion failed ↓ Yakın neden: int/decimal/date kolonlar tırnaklı string literal ile karşılaştırılıyor → örtük dönüşüm. Değişken boş ('') → int için 0 ↓ Kullanıcı etkisi: 'Error converting data type varchar to numeric' / 'Conversion failed when converting date and/or time' / 'Incorrect synt
Etkilenen veriCari.Islemler, Cari.Hesaplar, Stok.*, Siparis.* …
Olasılık / etki / güvenOrta / S3 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Parametreli sorgu (SqlParameter) — TD-09/TD-37 ile birlikte. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-056 · DB1=EVET DB2=EVET BASE=— · Guard=HAYIR · dyn.py istatistiği: 1294 cümle; 914 '&' ile birleştirme; 553 tırnaklı ('" & x & "'); 252 parametreli; 133 sabit. TD-37 (ondalık ToString).
Wiki bağlantılarıTD-37 · TD-09
POTANSİYEL ERR-POT-124SQLR-057 Arithmetic overflow: Cari.AcceptTransaction; Cari.History (Fiyat decimal(18,5) ← Islemler.Fiyat decimal(18,8)); Stok.StokHaraketleri.NetBakiye decimal(37,10) S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE08 — Yuvarlama / Hassasiyet Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülArithmetic overflow
Kullanıcı belirtisiOverflow: 'Arithmetic overflow error converting numeric to data type numeric' (nadir). Yuvarlama: History'de Fiyat 5 hane.
Teknik belirtidecimal(18,5)*decimal(18,5) çarpımı (37,10) → decimal(18,2)'ye dönüşümde |değer| ≥ 10^16 olursa 8115. Pratikte Tutar×Kur bu eşiğe ulaşmaz; Islemler.Fiyat(18,8)→History.Fiyat(18,5) yalnız yuvarlama (sessiz hassasiyet kaybı). Cari.IslemINS çıplak decimal parametreleri (18,0) → yuvarlama (TD-31, çağıran yok).
SQL hata no8115
SQL hata mesajıArithmetic overflow
Ekranİşlem kaydı tetikleyicisi
İlgili SQL nesneleriCari.AcceptTransaction, Cari.History, Stok.StokHaraketleri, Cari.Islemler, Cari.BakiyeIslem, Cari.IslemINS
SQL ObjectCari.AcceptTransaction; Cari.History (Fiyat decimal(18,5) ← Islemler.Fiyat decimal(18,8)); Stok.StokHaraketleri.NetBakiye decimal(37,10)
TabloCari.Islemler; Cari.History; Cari.BakiyeIslem; Stok.StokHaraketleri
KolonTutar(18,5)*Kur(18,5)→Convert(Decimal(18,2)); Fiyat
Tetikleme koşuludecimal(18,5)*decimal(18,5) çarpımı (37,10) → decimal(18,2)'ye dönüşümde |değer| ≥ 10^16 olursa 8115. Pratikte Tutar×Kur bu eşiğe ulaşmaz; Islemler.Fiyat(18,8)→History.Fiyat(18,5) yalnız yuvarlama (sessiz hassasiyet kaybı). Cari.IslemINS çıplak decimal parametreleri (18,0) → yuvarlama (TD-31, çağıran yok).
Kök nedencolumns.json: Islemler.Fiyat decimal(18,8) vs History.Fiyat decimal(18,5); AcceptTransaction 'Convert(Decimal(18,2), @StokIsc * @StokIscKur)'.
Neden zinciriTeknik olay: SQL 8115 Arithmetic overflow ↓ Yakın neden: decimal(18,5)*decimal(18,5) çarpımı (37,10) → decimal(18,2)'ye dönüşümde |değer| ≥ 10^16 olursa 8115. Pratikte Tutar×Kur ↓ Kullanıcı etkisi: Overflow: 'Arithmetic overflow error converting numeric to data type numeric' (nadir). Yuvarlama: History'de Fiyat 5 han
Etkilenen veriCari.Islemler; Cari.History; Cari.BakiyeIslem; Stok.StokHaraketleri
Olasılık / etki / güvenÇok düşük (overflow) / Kesin (History.Fiyat yuvarlama) / S4 / 70
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): History ve Islemler kolon tiplerinin eşitlenmesi; ara hesaplarda decimal(28,10). (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT MAX(ABS(Tutar*ISNULL(HasKur,0))) FROM Cari.Islemler;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-057 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=HAYIR · columns.json: Islemler.Fiyat decimal(18,8) vs History.Fiyat decimal(18,5); AcceptTransaction 'Convert(Decimal(18,2), @StokIsc * @StokIscKur)'.
POTANSİYEL ERR-POT-125SQLR-059 String or binary data would be truncated: (kod DAO Insert/Update) kısa nvarchar kolonlar S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülString or binary data would be truncated
Kullanıcı belirtisi'String or binary data would be truncated.' ya da kayıt sessizce yapılmaz.
Teknik belirtiAddWithValue ile UI'dan gelen metin kolon uzunluğunu aşınca 8152 (SQL2019+ 2628, kolon adı verir). Kod tarafında MaxLength kontrolü DAO'da yok (IsValidate yalnız 4 tipte — TD-18). 300 kısa (≤50) kolon INSERT listelerinde; 'Aciklama' adlı 50 karakterlik 7 kolon en riskli.
SQL hata no8152 / 2628
SQL hata mesajıString or binary data would be truncated
EkranKasa/Şirket/Birim/Mizan tanım ekranları; Döviz fatura; Banka altın operasyonu; Sipariş model/reçete/parça; Cari hesap kartı (Email 50)
Kod dosyasıERPPRO/Class/Dao/Sistem.Kasa.vb:115; Sistem.Sirket.vb:100; Sistem.Birim.vb:155; Sistem.Mizan.vb:118; Sistem.TakozScala.vb:150; Dov.Fatura.vb:200; Finans.BankaAltinOperasyonu.vb:158; Stok.Model.vb:325; Cari.Hesap.vb:329
İlgili SQL nesneleriSistem.Kasalar, Sistem.Sirketler, Sistem.Birimler, Sistem.Mizan, Sistem.TakozScala, Cari.Faturalar, Personel.Personeller, Dov.Fatura, Finans.BankaAltinOperasyonlari, Siparis.Paket, Stok.Model, Stok.Emtia, Cari.Hesaplar
SQL Object(kod DAO Insert/Update) kısa nvarchar kolonlar
TabloSistem.Kasalar.Kodu nvarchar(10); Sistem.Sirketler.Kodu(10)/Aciklama(50); Sistem.Birimler.Kodu(15); Sistem.Mizan.Kodu(15); Sistem.TakozScala.Kodu nvarchar(1); Cari.Faturalar.FaturaSeri(10); Personel.Personeller.KimlikNo(10); Dov.Fatura.Aciklama(50); Finans.BankaAltinOperasyonlari.Aciklama(50); Siparis.Paket/Receteler/ParcaKartlari/Stok.Model/Stok.Emtia.Aciklama(50); Cari.Hesaplar Email/Telefon1/Telefon2/Gsm/VergiDairesi(50)
Kolon(yukarıda)
Tetikleme koşuluAddWithValue ile UI'dan gelen metin kolon uzunluğunu aşınca 8152 (SQL2019+ 2628, kolon adı verir). Kod tarafında MaxLength kontrolü DAO'da yok (IsValidate yalnız 4 tipte — TD-18). 300 kısa (≤50) kolon INSERT listelerinde; 'Aciklama' adlı 50 karakterlik 7 kolon en riskli.
Kök nedenTruncation taraması (300 kolon ≤50 karakter, kod INSERT listelerinde); columns.json uz değerleri (nvarchar byte/2).
Neden zinciriTeknik olay: SQL 8152 / 2628 String or binary data would be truncated ↓ Yakın neden: AddWithValue ile UI'dan gelen metin kolon uzunluğunu aşınca 8152 (SQL2019+ 2628, kolon adı verir). Kod tarafında MaxLeng ↓ Kullanıcı etkisi: 'String or binary data would be truncated.' ya da kayıt sessizce yapılmaz.
Etkilenen veriSistem.Kasalar.Kodu nvarchar(10); Sistem.Sirketler.Kodu(10)/Aciklama(50); Sistem.Birimler.Kodu(15); Sistem.Mizan.Kodu(15); Sistem.TakozScala.Kodu nvarchar(1); Cari.Faturalar.FaturaSeri(10); Personel.Personeller.KimlikNo(10); Dov.Fatura.Aciklama(50); Finans.BankaAltinOperasyonlari.Aciklama(50); Siparis.Paket/Receteler/ParcaKartlari/Stok.Model/Stok.Emtia.Aciklama(50); Cari.Hesaplar Email/Telefon1/Telefon2/Gsm/VergiDairesi(50)
Olasılık / etki / güvenOrta / S3 / 75
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): UI MaxLength = kolon uzunluğu eşlemesi; Aciklama kolonlarının uzunluk standardı (TD standardizasyon). (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT s.name,t.name,c.name,c.max_length/2 AS chars FROM sys.columns c JOIN sys.tables t ON t.object_id=c.object_id JOIN sys.schemas s ON s.schema_id=t.schema_id WHERE c.system_type_id=231 AND c.max_length BETWEEN 1 AND 100 AND c.name IN ('Aciklama','Kodu','Email') ORDER BY chars;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-059 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=HAYIR (UI MaxLength bilinmiyor) · Truncation taraması (300 kolon ≤50 karakter, kod INSERT listelerinde); columns.json uz değerleri (nvarchar byte/2).
POTANSİYEL ERR-POT-126SQLR-061 Cannot insert NULL: Cari.Islemler.FiyatTipi (tfiyattipi NOT NULL, default yok); Cari.History.FiyatTipi; Cari.BakiyeIslem.HesapType (NOT NULL) S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-060 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE03 — Veri Bütünlüğü Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülCannot insert NULL
Problem ailesiPF-060 Cari hesap / kart tanımlama, hesap türü, adres-unvan değişikliği
Kullanıcı belirtisi"Cannot insert the value NULL into column 'FiyatTipi'/'HesapType'" — işlem kaydedilemez.
Teknik belirtiCari.Islemler'de NOT NULL & default'suz tek kolon FiyatTipi. Kod INSERT'i @FiyatTipi gönderiyor; ancak nesne özelliği Nothing ise AddWithValue null → 515. Modül INSERT'leri (FromERP, FaturaYaz, RSAktar, FisKaydet) FiyatTipi'ni açıkça veriyor. BakiyeIslem.HesapType NOT NULL: AcceptTransaction @HesapType ← Inserted.HesapType (nullable int) → NULL gelirse 515 ve işlem geri alınır.
SQL hata no515
SQL hata mesajıCannot insert NULL
EkranCari.Islem.vb:568 Insert (FiyatTipi parametrede var); Sistem.FromERP; POS.FisKaydet; MT4/FX sync; sp_DevirIslemiYap
Kod dosyasıERPPRO/Class/Dao/Islem/Cari.Islem.vb:568
İlgili SQL nesneleriCari.Islemler, Cari.History, Cari.BakiyeIslem
SQL ObjectCari.Islemler.FiyatTipi (tfiyattipi NOT NULL, default yok); Cari.History.FiyatTipi; Cari.BakiyeIslem.HesapType (NOT NULL)
TabloCari.Islemler; Cari.History; Cari.BakiyeIslem
KolonFiyatTipi; HesapType
Tetikleme koşuluCari.Islemler'de NOT NULL & default'suz tek kolon FiyatTipi. Kod INSERT'i @FiyatTipi gönderiyor; ancak nesne özelliği Nothing ise AddWithValue null → 515. Modül INSERT'leri (FromERP, FaturaYaz, RSAktar, FisKaydet) FiyatTipi'ni açıkça veriyor. BakiyeIslem.HesapType NOT NULL: AcceptTransaction @HesapType ← Inserted.HesapType (nullable int) → NULL gelirse 515 ve işlem geri alınır.
Kök nedencolumns.json Islemler NOT NULL no-default: [FiyatTipi tfiyattipi]; BakiyeIslem.HesapType null=False; frags.py NOT NULL taraması (kod INSERT'lerinde yalnız ERPFatura MERGE (IslemId) ve Sistem.Clients (dinamik kolon listesi) eksik).
Neden zinciriTeknik olay: SQL 515 Cannot insert NULL ↓ Yakın neden: Cari.Islemler'de NOT NULL & default'suz tek kolon FiyatTipi. Kod INSERT'i @FiyatTipi gönderiyor; ancak nesne özelliği No ↓ Kullanıcı etkisi: "Cannot insert the value NULL into column 'FiyatTipi'/'HesapType'" — işlem kaydedilemez.
Etkilenen veriCari.Islemler; Cari.History; Cari.BakiyeIslem
Olasılık / etki / güvenDüşük-Orta / S3 / 75
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kolonlara DEFAULT; DAO'da null koruması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COUNT(*) FROM Cari.Islemler WHERE HesapType IS NULL;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-061 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=KISMEN · columns.json Islemler NOT NULL no-default: [FiyatTipi tfiyattipi]; BakiyeIslem.HesapType null=False; frags.py NOT NULL taraması (kod INSERT'lerinde yalnız ERPFatura MERGE (IslemId) ve Sistem.Clients (
İlişkili kayıtlarERR-POT-134
POTANSİYEL ERR-POT-127SQLR-062 Cannot insert NULL: (kod) Sistem.Clients dinamik INSERT S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE03 — Veri Bütünlüğü Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülCannot insert NULL
Kullanıcı belirtisiİstemci kaydı yapılamaz (Cannot insert the value NULL into column 'ClientName').
Teknik belirtiKolon listesi dolu özelliklerden derleniyor; ClientName boşsa listeye girmez → 515.
SQL hata no515
SQL hata mesajıCannot insert NULL
EkranSistem.Clients.vb:161 — kolon listesi çalışma zamanında üretiliyor (InsertQuery/ValuesQuery)
Kod dosyasıERPPRO/Class/Dao/Sistem.Clients.vb:161
İlgili SQL nesneleriSistem.Clients
SQL Object(kod) Sistem.Clients dinamik INSERT
TabloSistem.Clients
KolonClientName (NOT NULL)
Tetikleme koşuluKolon listesi dolu özelliklerden derleniyor; ClientName boşsa listeye girmez → 515.
Kök nedenfrags.py: Sistem.Clients INSERT listesinde clientname yok (dinamik).
Neden zinciriTeknik olay: SQL 515 Cannot insert NULL ↓ Yakın neden: Kolon listesi dolu özelliklerden derleniyor; ClientName boşsa listeye girmez → 515. ↓ Kullanıcı etkisi: İstemci kaydı yapılamaz (Cannot insert the value NULL into column 'ClientName').
Etkilenen veriSistem.Clients
Olasılık / etki / güvenDüşük / S4 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Zorunlu alan kontrolü. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-062 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=HAYIR · frags.py: Sistem.Clients INSERT listesinde clientname yok (dinamik).
POTANSİYEL ERR-POT-128SQLR-064 Duplicate key: Cari.AcceptTransaction → MERGE INTO Sistem.Activity S1 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE15 — Duplicate / Çift İşlem
SeverityS1 — KRİTİK
ModülMOD-VERİTABANI
Alt modülDuplicate key
Kullanıcı belirtisiİşlem kaydında 'The MERGE statement attempted to UPDATE or DELETE the same row more than once…' — o şubede hiç işlem yapılamaz.
Teknik belirtiMERGE … ON Target.ActivitySubeId=Source.ActivitySubeId; HOLDLOCK yok, tabloda PK/unique yok. İki eşzamanlı işlem aynı şube için NOT MATCHED dalına girip iki satır ekleyebilir; sonraki her MERGE 8672 'The MERGE statement attempted to UPDATE or DELETE the same row more than once' → o şubede TÜM işlem kayıtları başarısız olur.
SQL hata no8672 (MERGE aynı satırı birden fazla kez güncelliyor)
SQL hata mesajıDuplicate key
EkranHer Cari.Islemler INSERT/UPDATE
İlgili SQL nesneleriCari.AcceptTransaction, Sistem.Activity
SQL ObjectCari.AcceptTransaction → MERGE INTO Sistem.Activity
TabloSistem.Activity (PK yok, 4 satır)
KolonActivitySubeId
Tetikleme koşuluMERGE … ON Target.ActivitySubeId=Source.ActivitySubeId; HOLDLOCK yok, tabloda PK/unique yok. İki eşzamanlı işlem aynı şube için NOT MATCHED dalına girip iki satır ekleyebilir; sonraki her MERGE 8672 'The MERGE statement attempted to UPDATE or DELETE the same row more than once' → o şubede TÜM işlem kayıtları başarısız olur.
Kök nedenAcceptTransaction: 'MERGE INTO Sistem.Activity AS Target USING (SELECT @subeId …) ON Target.ActivitySubeId=Source.ActivitySubeId …'; tables.json/indexes.json: Sistem.Activity indeks yok (PK'sız 36 tablo listesinde).
Neden zinciriTeknik olay: SQL 8672 (MERGE aynı satırı birden fazla kez güncelliyor) Duplicate key ↓ Yakın neden: MERGE … ON Target.ActivitySubeId=Source.ActivitySubeId; HOLDLOCK yok, tabloda PK/unique yok. İki eşzamanlı işlem aynı şu ↓ Kullanıcı etkisi: İşlem kaydında 'The MERGE statement attempted to UPDATE or DELETE the same row more than once…' — o şubede hiç işlem yap
Etkilenen veriSistem.Activity (PK yok, 4 satır)
Olasılık / etki / güvenDüşük-Orta (yarış koşulu bir kez oluşunca kalıcı) / S1 (kalıcı tam blokaj) / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Sistem.Activity'ye PK/unique(ActivitySubeId) ve MERGE'e HOLDLOCK; ya da UPDATE/INSERT ayrımı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT ActivitySubeId,COUNT(*) FROM Sistem.Activity GROUP BY ActivitySubeId HAVING COUNT(*)>1;
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-064 · DB1=EVET DB2=BİLİNMİYOR (DB2 tetikleyicisi farklı sürüm) BASE=EVET · Guard=HAYIR · AcceptTransaction: 'MERGE INTO Sistem.Activity AS Target USING (SELECT @subeId …) ON Target.ActivitySubeId=Source.ActivitySubeId …'; tables.json/indexes.json: Sistem.Activity indeks yok (PK'sız 36
POTANSİYEL ERR-POT-129SQLR-067 Subquery returned more than 1 value: Cari.AcceptTransaction; Uretim.TrBakiyeHesapla; Repair.BalanceRepair S1 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS1 — KRİTİK
ModülMOD-VERİTABANI
Alt modülSubquery returned more than 1 value
Kullanıcı belirtisi"Subquery returned more than 1 value…" — hiçbir işlem kaydedilemez.
Teknik belirti'Declare @HasBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select HasSymbol From Sistem.Settings))' — Settings'e ikinci satır girilirse ya da aynı Kodu ile iki aktif birim varsa 512; tetikleyici içinde → işlem geri alınır. TOP 1/agg yok.
SQL hata no512
SQL hata mesajıSubquery returned more than 1 value
EkranHer Cari.Islemler ve Uretim.UretimIslemleri INSERT/UPDATE
İlgili SQL nesneleriCari.AcceptTransaction, Uretim.TrBakiyeHesapla, Repair.BalanceRepair, Sistem.Settings, Sistem.Birimler
SQL ObjectCari.AcceptTransaction; Uretim.TrBakiyeHesapla; Repair.BalanceRepair
TabloSistem.Settings (PK yok, 1 satır); Sistem.Birimler (Kodu benzersiz değil)
KolonHasSymbol/GumSymbol/PltSymbol/PldSymbol; Birimler.Kodu
Tetikleme koşulu'Declare @HasBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select HasSymbol From Sistem.Settings))' — Settings'e ikinci satır girilirse ya da aynı Kodu ile iki aktif birim varsa 512; tetikleyici içinde → işlem geri alınır. TOP 1/agg yok.
Kök nedensubq.py: AcceptTransaction/TrBakiyeHesapla/BalanceRepair 8'er skaler alt sorgu; tables.json Sistem.Settings rows=1, indeks yok; Birimler yalnız PK_Birimler(Id).
Neden zinciriTeknik olay: SQL 512 Subquery returned more than 1 value ↓ Yakın neden: 'Declare @HasBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select HasSymbol From Sis ↓ Kullanıcı etkisi: "Subquery returned more than 1 value…" — hiçbir işlem kaydedilemez.
Etkilenen veriSistem.Settings (PK yok, 1 satır); Sistem.Birimler (Kodu benzersiz değil)
Olasılık / etki / güvenDüşük-Orta (Birimler.Kodu mükerrer girişi engellenmiyor) / S1 (tüm işlem girişi durur) / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Settings'e tek satır kısıtı; Birimler(Kodu) filtered unique; TOP 1. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT COUNT(*) FROM Sistem.Settings; SELECT Kodu,COUNT(*) FROM Sistem.Birimler WHERE IsDeleted=0 GROUP BY Kodu HAVING COUNT(*)>1;
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-067 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=HAYIR · subq.py: AcceptTransaction/TrBakiyeHesapla/BalanceRepair 8'er skaler alt sorgu; tables.json Sistem.Settings rows=1, indeks yok; Birimler yalnız PK_Birimler(Id).
İlişkili kayıtlarERR-OBS-067, ERR-POT-030, ERR-SIL-067
POTANSİYEL ERR-POT-130SQLR-068 Subquery returned more than 1 value: Cari.HesapInsert; Cari.HesapUpdate (Cari.Hesaplar tetikleyicileri) S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-013 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülSubquery returned more than 1 value
Problem ailesiPF-013 Kullanıcı tanımlama / düzenleme / isim değişikliği / kullanıcı açma
Kullanıcı belirtisiToplu hesap aktarımında 'Subquery returned more than 1 value'; bazı kullanıcı gruplarında (4,6) hesap düzenlemede 'Yetkiniz yoktur!'; 'Aynı Vergi No ya sahip başka bir hesap mevcuttur!'.
Teknik belirti'SubeId = (select SubeId from inserted)', 'Id <> (select Id from deleted)', 'SET @UserID=(select UserId from inserted)' — birden fazla satır etkilendiğinde 512. Ek: HesapUpdate 'GroupId not in (4,6)' değilse her Hesaplar UPDATE'inde RAISERROR 'Yetkiniz yoktur!' + ROLLBACK (IF NOT Update(LastDate)). HesapInsert 'HAVING COUNT(*)>1' aynı VergiNo/TCNo'ya sahip ≥2 aktif hesap varsa (grup şirketleri) yeni hesap eklenemez.
SQL hata no512
SQL hata mesajıSubquery returned more than 1 value
EkranÇok satırlı INSERT/UPDATE: Sistem.FromERP (toplu hesap aktarımı), dbo.sp_DevirIslemiYap, toplu UPDATE'ler
İlgili SQL nesneleriCari.HesapInsert, Cari.HesapUpdate, Cari.Hesaplar
SQL ObjectCari.HesapInsert; Cari.HesapUpdate (Cari.Hesaplar tetikleyicileri)
TabloCari.Hesaplar
KolonSubeId, Id, UserId
Tetikleme koşulu'SubeId = (select SubeId from inserted)', 'Id <> (select Id from deleted)', 'SET @UserID=(select UserId from inserted)' — birden fazla satır etkilendiğinde 512. Ek: HesapUpdate 'GroupId not in (4,6)' değilse her Hesaplar UPDATE'inde RAISERROR 'Yetkiniz yoktur!' + ROLLBACK (IF NOT Update(LastDate)). HesapInsert 'HAVING COUNT(*)>1' aynı VergiNo/TCNo'ya sahip ≥2 aktif hesap varsa (grup şirketleri) yeni hesap eklenemez.
Kök nedenmodules.json Cari.HesapInsert / Cari.HesapUpdate metinleri.
Neden zinciriTeknik olay: SQL 512 Subquery returned more than 1 value ↓ Yakın neden: 'SubeId = (select SubeId from inserted)', 'Id <> (select Id from deleted)', 'SET @UserID=(select UserId from inserted)' ↓ Kullanıcı etkisi: Toplu hesap aktarımında 'Subquery returned more than 1 value'; bazı kullanıcı gruplarında (4,6) hesap düzenlemede 'Yetki
Etkilenen veriCari.Hesaplar
Olasılık / etki / güvenOrta / S3 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Set-tabanlı tetikleyici (inserted JOIN); yetki kuralının uygulama katmanına taşınması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT VergiNo,SubeId,COUNT(*) FROM Cari.Hesaplar WHERE IsDeleted=0 AND VergiNo IS NOT NULL GROUP BY VergiNo,SubeId HAVING COUNT(*)>1;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-068 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET (BASE-DEPENDENCY) · Guard=HAYIR · modules.json Cari.HesapInsert / Cari.HesapUpdate metinleri.
POTANSİYEL ERR-POT-131SQLR-069 Subquery returned more than 1 value: Sistem.GetIslemKodu; FN.GetKur; Cari.IslemDetayiEkle; POS.Sabit S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülSubquery returned more than 1 value
Kullanıcı belirtisiNadir 'Subquery returned more than 1 value' (RSReferans); kur değeri beklenenden farklı (sessiz).
Teknik belirtiGetIslemKodu: 'Where I.Id=@tpIslemId' PK ile tek satır → güvenli (Left Join tu on tu.Id=@tpTurId PK). FN.GetKur: 'Select top 1 Alis … Where BirimId=@BirimId' ORDER BY yok → mükerrer kurda rastgele (sessiz). IslemDetayiEkle: '(Select TargetID from Cari.RSReferans Where SenderID=@IslemId)' PK yok → 512 mümkün.
SQL hata no512 / (sessiz TOP 1)
SQL hata mesajıSubquery returned more than 1 value
Ekranİşlem listeleri (GetIslemKodu her satırda); AcceptTransaction pırlanta maliyeti (FN.GetKur); FrmSeriFaturaBas (IslemDetayiEkle)
İlgili SQL nesneleriSistem.GetIslemKodu, FN.GetKur, Cari.IslemDetayiEkle, POS.Sabit, Sistem.CariIslemKodu, Sistem.GetKurListesi, Cari.RSReferans, POS.Sabitler
SQL ObjectSistem.GetIslemKodu; FN.GetKur; Cari.IslemDetayiEkle; POS.Sabit
TabloSistem.CariIslemKodu/Turu/Tipi (PK Id); Sistem.GetKurListesi; Cari.RSReferans (PK yok); POS.Sabitler
Tetikleme koşuluGetIslemKodu: 'Where I.Id=@tpIslemId' PK ile tek satır → güvenli (Left Join tu on tu.Id=@tpTurId PK). FN.GetKur: 'Select top 1 Alis … Where BirimId=@BirimId' ORDER BY yok → mükerrer kurda rastgele (sessiz). IslemDetayiEkle: '(Select TargetID from Cari.RSReferans Where SenderID=@IslemId)' PK yok → 512 mümkün.
Kök nedenmodules.json FN.GetKur, Sistem.GetIslemKodu, Cari.IslemDetayiEkle; indexes.json PK listesi.
Neden zinciriTeknik olay: SQL 512 / (sessiz TOP 1) Subquery returned more than 1 value ↓ Yakın neden: GetIslemKodu: 'Where I.Id=@tpIslemId' PK ile tek satır → güvenli (Left Join tu on tu.Id=@tpTurId PK). FN.GetKur: 'Select ↓ Kullanıcı etkisi: Nadir 'Subquery returned more than 1 value' (RSReferans); kur değeri beklenenden farklı (sessiz).
Etkilenen veriSistem.CariIslemKodu/Turu/Tipi (PK Id); Sistem.GetKurListesi; Cari.RSReferans (PK yok); POS.Sabitler
Olasılık / etki / güvenDüşük / S3 / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): GetKur'a ORDER BY Id DESC; RSReferans'a PK. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT SenderID,COUNT(*) FROM Cari.RSReferans GROUP BY SenderID HAVING COUNT(*)>1;
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-069 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET (GetIslemKodu, GetKur); IslemDetayiEkle LEGACY · Guard=KISMEN · modules.json FN.GetKur, Sistem.GetIslemKodu, Cari.IslemDetayiEkle; indexes.json PK listesi.
POTANSİYEL ERR-POT-132SQLR-071 Dynamic SQL / injection: (kod) string-birleştirmeli SQL S1 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS1 — KRİTİK
ModülMOD-VERİTABANI
Alt modülDynamic SQL / injection
Kullanıcı belirtisi'Unclosed quotation mark after the character string' / 'Incorrect syntax near …'; arama sonuç vermez.
Teknik belirtiKullanıcı metninde tek tırnak (') → 102 'Incorrect syntax' ya da 105 'Unclosed quotation mark'; bilinçli girdi → SQL injection (sa hesabı ile bağlanıldığı için (TD-05) sunucu düzeyinde etki). Aciklama alanı genelde parametreli (@Aciklama) — tırnak riski daha çok arama/filtre metinlerinde.
SQL hata no102 (tek tırnak) / injection
SQL hata mesajıDynamic SQL / injection
Ekran1.294 SQL cümlesinin 914'ü (%70,6) '&' ile birleştiriliyor; 553'ü tırnaklı literal ('" & x & "'); 252 parametreli; 133 sabit. Serbest metin girenler: FrmFaturaBas.vb:168→:140 Cari.FindTaxInfo('"&TxtFilter.Text&"'); FindTaxInfo.vb:25; FrmOdemeListesi.vb:9,11 (ComboBoxEdit1.Text); FrmZiynetIscilikleri.vb:9 (DbCombo1.Text); iScreen.vb:1136 (UserName); Sistem.Clients.vb:28 (Computer/UserName); Stok.Model/Pirlanta/Siparis.Recete Kodu kontrolleri; iScreen.vb:975 '& Filter & OrderString'; SQLBase.vb:138-161 jenerik.
Kod dosyasıdyn_out.json (concat_quoted 553; txt 168); dyn_sites 35; ERPPRO/Class/Dao/_SQLBase/SQLBase.vb:138,140,161
SQL Object(kod) string-birleştirmeli SQL
Tablo
Kolon
Tetikleme koşuluKullanıcı metninde tek tırnak (') → 102 'Incorrect syntax' ya da 105 'Unclosed quotation mark'; bilinçli girdi → SQL injection (sa hesabı ile bağlanıldığı için (TD-05) sunucu düzeyinde etki). Aciklama alanı genelde parametreli (@Aciklama) — tırnak riski daha çok arama/filtre metinlerinde.
Kök nedendyn.py istatistiği (sql_frags kaynak satırları okunarak); TD-09, TD-10, TD-37.
Neden zinciriTeknik olay: SQL 102 (tek tırnak) / injection Dynamic SQL / injection ↓ Yakın neden: Kullanıcı metninde tek tırnak (') → 102 'Incorrect syntax' ya da 105 'Unclosed quotation mark'; bilinçli girdi → SQL inj ↓ Kullanıcı etkisi: 'Unclosed quotation mark after the character string' / 'Incorrect syntax near …'; arama sonuç vermez.
Etkilenen veri
Olasılık / etki / güvenYüksek (tırnaklı isim: O'NEIL, D'ARC…) / S1 (güvenlik) / S3 (hata) / 95
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Parametreli sorguya geçiş (TD-09); en azından serbest metin girişlerinde Replace("'","''"). (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Test senaryosuBelirtiyi yeniden üret: 'Unclosed quotation mark after the character string' / 'Incorrect syntax near …'; arama sonuç vermez.
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-071 · DB1=EVET DB2=EVET BASE=— · Guard=HAYIR · dyn.py istatistiği (sql_frags kaynak satırları okunarak); TD-09, TD-10, TD-37.
Wiki bağlantılarıTD-09 · TD-10 · TD-37
POTANSİYEL ERR-POT-133SQLR-072 Dynamic SQL / injection: Agent.RunAgent; AifaDev.ExQueryBuilder; Cari.GetHesapExtresi; Sistem.FromERP; Sistem.SirketOlustur; dbo.sp_DevirIslemiYap (6 modül) S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-071 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülDynamic SQL / injection
Problem ailesiPF-071 Bakiye ekstresi / bilanço / rapor zaman aşımı (timeout)
Kullanıcı belirtisiHesap ekstresi: 'Incorrect syntax near ]' ya da zaman aşımı; SirketOlustur yanlışlıkla çalıştırılırsa tüm veriler silinir.
Teknik belirtiTablo içeriği doğrudan SQL metnine ekleniyor: Agent.Agent.ConditionQuery (serbest SQL, sp_executesql); FieldName/Owner köşeli parantezle ama ']' kaçışsız; BakiyeKodlari.Kodu pivot kolon adı ('[' + Kodu + ']' — Kodu ']' içerirse 102); FromERP @Database QUOTENAME'siz; SirketOlustur sys.tables üzerinden 'truncate table' + DBCC SHRINKDATABASE (tüm veriyi siler!). GetHesapExtresi CROSS APPLY running-sum: BakiyeIslem (1,46M) üzerinde O(n²) → timeout.
SQL hata no102 / injection
SQL hata mesajıDynamic SQL / injection
EkranRunAgent: koddan çağıran yok; ExQueryBuilder: DynamicForms; GetHesapExtresi: koddan çağıran yok; FromERP: FrmHesapAktar; SirketOlustur/sp_DevirIslemiYap: manuel
Kod dosyasıdbclean/analysis_db.json dyn_mods
İlgili SQL nesneleriAgent.RunAgent, AifaDev.ExQueryBuilder, Cari.GetHesapExtresi, Sistem.FromERP, Sistem.SirketOlustur, dbo.sp_DevirIslemiYap, Agent.Agent, AifaDev.RepositoryItems, Cari.BakiyeKodlari
SQL ObjectAgent.RunAgent; AifaDev.ExQueryBuilder; Cari.GetHesapExtresi; Sistem.FromERP; Sistem.SirketOlustur; dbo.sp_DevirIslemiYap (6 modül)
TabloAgent.Agent.ConditionQuery; AifaDev.RepositoryItems.FieldName/Owner; Cari.BakiyeKodlari.Kodu; @Database; sys.tables
Tetikleme koşuluTablo içeriği doğrudan SQL metnine ekleniyor: Agent.Agent.ConditionQuery (serbest SQL, sp_executesql); FieldName/Owner köşeli parantezle ama ']' kaçışsız; BakiyeKodlari.Kodu pivot kolon adı ('[' + Kodu + ']' — Kodu ']' içerirse 102); FromERP @Database QUOTENAME'siz; SirketOlustur sys.tables üzerinden 'truncate table' + DBCC SHRINKDATABASE (tüm veriyi siler!). GetHesapExtresi CROSS APPLY running-sum: BakiyeIslem (1,46M) üzerinde O(n²) → timeout.
Kök nedenanalysis_db.json dyn_mods (6 nesne); modules.json metinleri (GetHesapExtresi pivot, FromERP exec(@HesapQuery)).
Neden zinciriTeknik olay: SQL 102 / injection Dynamic SQL / injection ↓ Yakın neden: Tablo içeriği doğrudan SQL metnine ekleniyor: Agent.Agent.ConditionQuery (serbest SQL, sp_executesql); FieldName/Owner k ↓ Kullanıcı etkisi: Hesap ekstresi: 'Incorrect syntax near ]' ya da zaman aşımı; SirketOlustur yanlışlıkla çalıştırılırsa tüm veriler silini
Etkilenen veriAgent.Agent.ConditionQuery; AifaDev.RepositoryItems.FieldName/Owner; Cari.BakiyeKodlari.Kodu; @Database; sys.tables
Olasılık / etki / güvenDüşük (çoğunun çağıranı yok) / SirketOlustur: yıkıcı / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): QUOTENAME; SirketOlustur ve sp_DevirIslemiYap'ın BASE'den çıkarılıp yönetici betiğine alınması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT Kodu FROM Cari.BakiyeKodlari WHERE Kodu LIKE '%[]]%' OR Kodu LIKE '%[[]%';
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-072 · DB1=EVET DB2=BİLİNMİYOR BASE=FromERP BASE-CORE; ExQueryBuilder BASE-DEPENDENCY; diğerleri UNKNOWN · Guard=HAYIR · analysis_db.json dyn_mods (6 nesne); modules.json metinleri (GetHesapExtresi pivot, FromERP exec(@HesapQuery)).
İlişkili kayıtlarERR-POT-103, ERR-POT-139
POTANSİYEL ERR-POT-134SQLR-073 Transaction count mismatch: Cari.AcceptTransaction S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE05 — Transaction Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülTransaction count mismatch
Kullanıcı belirtisi'BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR…' + 'The transaction ended in the trigger. The batch has been aborted.'; nadiren 'A cursor with the name IslemCursor already exists' (16915) sonraki denemede (TD-03 cursor sızıntısı).
Teknik belirti13 ROLLBACK, 5 RETURN. Eksik evrak (satır ~119), Şube/Kasa/Hesap=0 (~182), takoz kontrolleri (~229,~243) dallarında ROLLBACK sonrası RETURN yok → cursor döngüsü devam eder; @@TRANCOUNT=0 iken MERGE Sistem.Activity, 'Update Stok.Takoz Set IsDeleted' vb. AUTOCOMMIT ile kalıcı olur. Kullanıcı RAISERROR mesajını + 3609'u görür; ADO.NET SqlException ilk mesajı verir. Çok satırlı INSERT'te ilk satırda ROLLBACK, sonraki satırlar için 'CLOSE/FETCH' cursor hataları (16917/16924) olası.
SQL hata no3609 (The transaction ended in the trigger. The batch has been aborted.) / 266
SQL hata mesajıTransaction count mismatch
EkranHer işlem kaydı (Cari.Islem.Save → INSERT; iptal → UPDATE)
Kod dosyasıERPPRO/Class/Dao/Islem/Cari.Islem.vb:568,859
İlgili SQL nesneleriCari.AcceptTransaction, Cari.Islemler, Sistem.Activity, Stok.Takoz
SQL ObjectCari.AcceptTransaction
TabloCari.Islemler
Tetikleme koşulu13 ROLLBACK, 5 RETURN. Eksik evrak (satır ~119), Şube/Kasa/Hesap=0 (~182), takoz kontrolleri (~229,~243) dallarında ROLLBACK sonrası RETURN yok → cursor döngüsü devam eder; @@TRANCOUNT=0 iken MERGE Sistem.Activity, 'Update Stok.Takoz Set IsDeleted' vb. AUTOCOMMIT ile kalıcı olur. Kullanıcı RAISERROR mesajını + 3609'u görür; ADO.NET SqlException ilk mesajı verir. Çok satırlı INSERT'te ilk satırda ROLLBACK, sonraki satırlar için 'CLOSE/FETCH' cursor hataları (16917/16924) olası.
Kök nedenmodules.json AcceptTransaction: ROLLBACK 13 / RETURN 5 (TD-04); DECLARE IslemCursor … CLOSE/DEALLOCATE yalnız normal akışta (TD-03).
Neden zinciriTeknik olay: SQL 3609 (The transaction ended in the trigger. The batch has been aborted.) / 266 Transaction count mismatch ↓ Yakın neden: 13 ROLLBACK, 5 RETURN. Eksik evrak (satır ~119), Şube/Kasa/Hesap=0 (~182), takoz kontrolleri (~229,~243) dallarında ROLL ↓ Kullanıcı etkisi: 'BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR…' + 'The transaction ended in the trigger. The batch has been aborted.'; nadiren
Etkilenen veriCari.Islemler
Olasılık / etki / güvenOrta (her iş kuralı ihlalinde) / S2 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Her ROLLBACK'ten sonra RETURN; THROW; cursor'un TRY/CATCH ile deallocate edilmesi. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT LEN(OBJECT_DEFINITION(OBJECT_ID('Cari.AcceptTransaction'))); -- 29.862 (DB1) vs 31.152 (DB2)
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-073 · DB1=EVET DB2=EVET (31.152 krk farklı sürüm — TD-48) BASE=EVET · Guard=KISMEN (@IsError bayrağı yalnız bakiye yazımını atlar) · modules.json AcceptTransaction: ROLLBACK 13 / RETURN 5 (TD-04); DECLARE IslemCursor … CLOSE/DEALLOCATE yalnız normal akışta (TD-03).
İlişkili kayıtlarERR-OBS-086, ERR-POT-003, ERR-POT-004, ERR-POT-030, ERR-POT-116, ERR-POT-126, ERR-POT-135, ERR-SIL-033, ERR-SIL-046
Wiki bağlantılarıTD-04 · TD-03 · TD-48
POTANSİYEL ERR-POT-135SQLR-074 Deadlock / timeout: Cari.AcceptTransaction + InsertTransaction + UpdateTransaction (Cari.Islemler); Cari.GetHesapExtresi; Stok.GetOrtMilyem (cursor'lı skaler fonksiyon) S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE13 — Performans / Timeout / Deadlock
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülDeadlock / timeout
Kullanıcı belirtisi'Transaction (Process ID …) was deadlocked … has been chosen as the deadlock victim' ya da 'Timeout expired'; işlem kaydedildi mi belirsiz (InternalDb Nothing döner).
Teknik belirtiTek INSERT için: 4 AFTER trigger, satır başına cursor, 2× Cari.GetGerekliEvraklar (3 tablo + cross-DB view), Stok.GetTakozAdet (StokHaraketleri tarama: IslemId indeksi yok — IX_StokId(SubeId,StokTipi,StokId) kısmi), DELETE BakiyeIslem/StokHaraketleri, 5–8 INSERT, History INSERT (73 kolon). Cari.Islemler'de 26 non-clustered indeks (IX_MuhIslemler/02/03/IX_MuhasebeIslemler01 aynı anahtar: IsDeleted,IslemKodu ×4) → yazma maliyeti. Raporlar (GetKurListesi TOP 10000 + fallback join) ile eş zamanlı kilit → 1205; 30 sn üstü → Timeout.
SQL hata no1205 / -2 (Timeout expired)
SQL hata mesajıDeadlock / timeout
Ekranİşlem kaydı; işlem listesi; hesap ekstresi; maden stok listesi (GetOrtMilyem satır başına cursor)
Kod dosyasıERPPRO/Class/Module/InternalDb.vb:11 (ConnStr 'TimeOut=30' = bağlantı zaman aşımı; CommandTimeout varsayılan 30 sn)
İlgili SQL nesneleriCari.AcceptTransaction, Cari.Islemler, Cari.GetHesapExtresi, Stok.GetOrtMilyem, Cari.BakiyeIslem, Stok.StokHaraketleri, Cari.History, Cari.GetGerekliEvraklar, Stok.GetTakozAdet
SQL ObjectCari.AcceptTransaction + InsertTransaction + UpdateTransaction (Cari.Islemler); Cari.GetHesapExtresi; Stok.GetOrtMilyem (cursor'lı skaler fonksiyon)
TabloCari.Islemler (1,58M satır, 26 indeks); Cari.BakiyeIslem (1,46M, 12 indeks, PK yok); Stok.StokHaraketleri (1,62M, 9 indeks); Cari.History (1,64M)
Tetikleme koşuluTek INSERT için: 4 AFTER trigger, satır başına cursor, 2× Cari.GetGerekliEvraklar (3 tablo + cross-DB view), Stok.GetTakozAdet (StokHaraketleri tarama: IslemId indeksi yok — IX_StokId(SubeId,StokTipi,StokId) kısmi), DELETE BakiyeIslem/StokHaraketleri, 5–8 INSERT, History INSERT (73 kolon). Cari.Islemler'de 26 non-clustered indeks (IX_MuhIslemler/02/03/IX_MuhasebeIslemler01 aynı anahtar: IsDeleted,IslemKodu ×4) → yazma maliyeti. Raporlar (GetKurListesi TOP 10000 + fallback join) ile eş zamanlı kilit → 1205; 30 sn üstü → Timeout.
Kök nedenindexes.json (Cari.Islemler 26 indeks; StokHaraketleri 9, çiftler); tables.json satır sayıları; trg.json 4 tetikleyici Cari.Islemler; AcceptTransaction cursor.
Neden zinciriTeknik olay: SQL 1205 / -2 (Timeout expired) Deadlock / timeout ↓ Yakın neden: Tek INSERT için: 4 AFTER trigger, satır başına cursor, 2× Cari.GetGerekliEvraklar (3 tablo + cross-DB view), Stok.GetTak ↓ Kullanıcı etkisi: 'Transaction (Process ID …) was deadlocked … has been chosen as the deadlock victim' ya da 'Timeout expired'; işlem kayd
Etkilenen veriCari.Islemler (1,58M satır, 26 indeks); Cari.BakiyeIslem (1,46M, 12 indeks, PK yok); Stok.StokHaraketleri (1,62M, 9 indeks); Cari.History (1,64M)
Olasılık / etki / güvenOrta (yoğun saatlerde) / S2 / 70
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Mükerrer indekslerin (IsDeleted,IslemKodu ×4; StokHaraketleri IX_1/IX_Pozisyon01, IX_2/IX_3, IX_4/IX_5 çiftleri) sadeleştirilmesi; StokHaraketleri(IslemId) indeksi; tetikleyicinin set-tabanlı yazımı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT i.name,i.type_desc,STRING_AGG(c.name,',') WITHIN GROUP (ORDER BY ic.key_ordinal) FROM sys.indexes i JOIN sys.index_columns ic ON ic.object_id=i.object_id AND ic.index_id=i.index_id JOIN sys.columns c ON c.object_id=ic.object_id AND c.column_id=ic.column_id WHERE i.object_id=OBJECT_ID('Cari.Islemler') AND ic.is_included_column=0 GROUP BY i.name,i.type_desc;
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-074 · DB1=EVET DB2=EVET (Cari.Islemler 677k, BakiyeIslem 976k, History 736k) BASE=EVET · Guard=HAYIR · indexes.json (Cari.Islemler 26 indeks; StokHaraketleri 9, çiftler); tables.json satır sayıları; trg.json 4 tetikleyici Cari.Islemler; AcceptTransaction cursor.
İlişkili kayıtlarERR-OBS-086, ERR-POT-003, ERR-POT-030, ERR-POT-116, ERR-POT-134, ERR-SIL-046
POTANSİYEL ERR-POT-136SQLR-075 Recursive trigger: Cari.AcceptTransaction → Cari.Hesaplar UPDATE → Cari.HesapUpdate; Cari.Transferler UPDATE → TransferUpdateSTatus → Stok.StokHaraketleri; Sistem.Subeler INSERT → CreateKasa → Sistem.Kasalar (tetikleyici yok); Uretim.UretimIslemleri → TrBakiyeHesapla S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-067 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE04 — Trigger / Dependency Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülRecursive trigger
Problem ailesiPF-067 Hesap işlemlerini başka hesaba aktarma / cari-program sıfırlama / hesap temizleme
Kullanıcı belirtisiİşlem girerken beklenmedik 'Aynı Vergi No ya sahip başka bir hesap mevcuttur!!' hatası.
Teknik belirtiAcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate()' → HesapUpdate tetiklenir (nesting 2): VergiNo mükerrerlik kontrolü çalışır (IF NOT Update(LastDate) yetki kontrolünü atlar). Aynı VergiNo'ya sahip ≥2 başka aktif hesap varsa (grup şirketleri, '' yerine gerçek numara) RAISERROR+ROLLBACK → İŞLEM KAYDI başarısız ('Aynı Vergi No ya sahip başka bir hesap mevcuttur!!'). Gerçek özyineleme (aynı tabloya) yok; RECURSIVE_TRIGGERS DB seçeneği bilinmiyor.
SQL hata no217 (nesting 32) — düşük; iç içe tetikleme
SQL hata mesajıRecursive trigger
EkranHer işlem kaydı
İlgili SQL nesneleriCari.AcceptTransaction, Cari.Hesaplar, Cari.HesapUpdate, Cari.Transferler, Stok.StokHaraketleri, Sistem.Subeler, Sistem.Kasalar, Uretim.UretimIslemleri
SQL ObjectCari.AcceptTransactionCari.Hesaplar UPDATE → Cari.HesapUpdate; Cari.Transferler UPDATE → TransferUpdateSTatus → Stok.StokHaraketleri; Sistem.Subeler INSERT → CreateKasa → Sistem.Kasalar (tetikleyici yok); Uretim.UretimIslemleri → TrBakiyeHesapla
TabloCari.Hesaplar; Stok.StokHaraketleri; Sistem.Kasalar
Tetikleme koşuluAcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate()' → HesapUpdate tetiklenir (nesting 2): VergiNo mükerrerlik kontrolü çalışır (IF NOT Update(LastDate) yetki kontrolünü atlar). Aynı VergiNo'ya sahip ≥2 başka aktif hesap varsa (grup şirketleri, '' yerine gerçek numara) RAISERROR+ROLLBACK → İŞLEM KAYDI başarısız ('Aynı Vergi No ya sahip başka bir hesap mevcuttur!!'). Gerçek özyineleme (aynı tabloya) yok; RECURSIVE_TRIGGERS DB seçeneği bilinmiyor.
Kök nedenAcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate() Where Id=@HesapId'; HesapUpdate metni; trg.json trigger→tablo eşlemesi.
Neden zinciriTeknik olay: SQL 217 (nesting 32) — düşük; iç içe tetikleme Recursive trigger ↓ Yakın neden: AcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate()' → HesapUpdate tetiklenir (nesting 2): VergiNo mükerrerli ↓ Kullanıcı etkisi: İşlem girerken beklenmedik 'Aynı Vergi No ya sahip başka bir hesap mevcuttur!!' hatası.
Etkilenen veriCari.Hesaplar; Stok.StokHaraketleri; Sistem.Kasalar
Olasılık / etki / güvenDüşük-Orta / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): HesapUpdate'in yalnız VergiNo/TCNo değiştiğinde (IF UPDATE(VergiNo)) çalışması. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT is_recursive_triggers_on FROM sys.databases WHERE name=DB_NAME(); SELECT VergiNo,SubeId,COUNT(*) FROM Cari.Hesaplar WHERE IsDeleted=0 AND ISNULL(VergiNo,'')<>'' GROUP BY VergiNo,SubeId HAVING COUNT(*)>2;
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-075 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=KISMEN · AcceptTransaction 'Update Cari.Hesaplar Set LastDate=Getdate() Where Id=@HesapId'; HesapUpdate metni; trg.json trigger→tablo eşlemesi.
İlişkili kayıtlarERR-SIL-048
POTANSİYEL ERR-POT-137SQLR-076 Disabled trigger: 12 tetikleyici (trg.json) S1 · MOD-VERİTABANI · Gözlemlendi: HAYIR · PF-034 · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE04 — Trigger / Dependency Hatası
SeverityS1 — KRİTİK
ModülMOD-VERİTABANI
Alt modülDisabled trigger
Problem ailesiPF-034 Stok tutmuyor / stok düzeltme / eksi stok / stok girişi
Kullanıcı belirtisiKapalıysa: işlem kaydedilir ama bakiye/stok değişmez, History boş.
Teknik belirtiDB1 kataloğunda 12 tetikleyicinin tamamı is_disabled=False. TD-32 'demo kopyasında 4 Islemler tetikleyicisi DISABLED' iddiası bu katalogla ÇELİŞİYOR → iddia doğrulanamadı. Risk: tetikleyiciler kapalı bir kurulumda bakiye/stok/History üretilmez (sessiz), açıkken bu dosyadaki tüm tetikleyici riskleri geçerli.
SQL hata mesajıDisabled trigger
Ekran
Kod dosyasıdbclean/trg.json
İlgili SQL nesneleriCari.Transferler, Sistem.SilOnay, Sistem.Subeler, Siparis.Siparisler, Uretim.UretimIslemleri, AifaDev.RepositoryItems, Cari.Islemler, Cari.Hesaplar
SQL Object12 tetikleyici (trg.json)
TabloCari.Islemler(4), Cari.Hesaplar(2), Cari.Transferler, Sistem.SilOnay, Sistem.Subeler, Siparis.Siparisler, Uretim.UretimIslemleri, AifaDev.RepositoryItems
Tetikleme koşuluDB1 kataloğunda 12 tetikleyicinin tamamı is_disabled=False. TD-32 'demo kopyasında 4 Islemler tetikleyicisi DISABLED' iddiası bu katalogla ÇELİŞİYOR → iddia doğrulanamadı. Risk: tetikleyiciler kapalı bir kurulumda bakiye/stok/History üretilmez (sessiz), açıkken bu dosyadaki tüm tetikleyici riskleri geçerli.
Kök nedentrg.json 12 satır is_disabled=False; TD-32 metni (AS-DOCUMENTED).
Neden zinciriTeknik olay: SQL Disabled trigger ↓ Yakın neden: DB1 kataloğunda 12 tetikleyicinin tamamı is_disabled=False. TD-32 'demo kopyasında 4 Islemler tetikleyicisi DISABLED' id ↓ Kullanıcı etkisi: Kapalıysa: işlem kaydedilir ama bakiye/stok değişmez, History boş.
Etkilenen veriCari.Islemler(4), Cari.Hesaplar(2), Cari.Transferler, Sistem.SilOnay, Sistem.Subeler, Siparis.Siparisler, Uretim.UretimIslemleri, AifaDev.RepositoryItems
Olasılık / etki / güvenBilinmiyor / S1 (kapalıysa bakiye üretilmez) / 85
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): Kurulum doğrulama kontrol listesine sys.triggers is_disabled sorgusu. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_SCHEMA_NAME(parent_id)+'.'+OBJECT_NAME(parent_id) AS Tablo, name, is_disabled FROM sys.triggers ORDER BY 1;
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-076 · DB1=EVET (hepsi etkin) DB2=EVET (5 tetikleyici, farklı sürüm) BASE=EVET (BASE-DEPENDENCY 12) · Guard=— · trg.json 12 satır is_disabled=False; TD-32 metni (AS-DOCUMENTED).
Wiki bağlantılarıTD-32
POTANSİYEL ERR-POT-138SQLR-077 Broken dependency: Cari.AcceptTransaction'ın çağırdığı fonksiyonlar: FN.GetKur, FN.Bol, Stok.GetTakozAdet, Cari.GetGerekliEvraklar(→Genel.Dosyalar→DOCUMENTS); Cari.GetKurListesi zinciri; hesaplanan kolon UDF'leri (Sistem.Pariteler.Parite → Sistem.GetIdToBirim; dbo.SyncTickets → FN.Bol [ERPSCHEMA]) S2 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE04 — Trigger / Dependency Hatası
SeverityS2 — YÜKSEK
ModülMOD-VERİTABANI
Alt modülBroken dependency
Kullanıcı belirtisiTemizlik sonrası işlem kaydında 'Invalid object name FN.GetKur' vb.; 'Cannot DROP FUNCTION … because it is being referenced by object Pariteler'.
Teknik belirtiTetikleyici içinde çağrılan UDF/view zincirinden biri drop/rename edilirse (BASE temizliğinde 'EXCLUDE' adayları) tetikleyici her INSERT'te 208 ile düşer. Sistem.Pariteler.Parite hesaplanan kolonu Sistem.GetIdToBirim'e bağlı: fonksiyon kaldırılamaz (3729) ve fonksiyon Sistem.Birimler'i okur (CTR-BASE-COMPUTED-UDF: UDF'li hesaplanan kolon tablo taramalarında satır başına çağrı, paralel plan yok). deps.json'da is_ambiguous/is_caller_dependent satırları temizlik sırasında yanlış 'kullanılmıyor' kararına yol açabilir.
SQL hata no208 / 4413
SQL hata mesajıBroken dependency
Ekranİşlem kaydı; parite tanımı
İlgili SQL nesneleriCari.AcceptTransaction, FN.GetKur, FN.Bol, Stok.GetTakozAdet, Genel.Dosyalar, Sistem.Pariteler, Sistem.GetIdToBirim, Cari.Islemler, Sistem.Birimler, Cari.GetGerekliEvraklar
SQL ObjectCari.AcceptTransaction'ın çağırdığı fonksiyonlar: FN.GetKur, FN.Bol, Stok.GetTakozAdet, Cari.GetGerekliEvraklar(→Genel.Dosyalar→DOCUMENTS); Cari.GetKurListesi zinciri; hesaplanan kolon UDF'leri (Sistem.Pariteler.Parite → Sistem.GetIdToBirim; dbo.SyncTickets → FN.Bol [ERPSCHEMA])
TabloSistem.Pariteler; Cari.Islemler
KolonParite (computed, UDF)
Tetikleme koşuluTetikleyici içinde çağrılan UDF/view zincirinden biri drop/rename edilirse (BASE temizliğinde 'EXCLUDE' adayları) tetikleyici her INSERT'te 208 ile düşer. Sistem.Pariteler.Parite hesaplanan kolonu Sistem.GetIdToBirim'e bağlı: fonksiyon kaldırılamaz (3729) ve fonksiyon Sistem.Birimler'i okur (CTR-BASE-COMPUTED-UDF: UDF'li hesaplanan kolon tablo taramalarında satır başına çağrı, paralel plan yok). deps.json'da is_ambiguous/is_caller_dependent satırları temizlik sırasında yanlış 'kullanılmıyor' kararına yol açabilir.
Kök nedendeps.json (2026 satır); computed.json Sistem.Pariteler.Parite 'Sistem.GetIdToBirim]([AnaBirimId])'; ERPSCHEMA dbo.SyncTickets computed 'FN.Bol'.
Neden zinciriTeknik olay: SQL 208 / 4413 Broken dependency ↓ Yakın neden: Tetikleyici içinde çağrılan UDF/view zincirinden biri drop/rename edilirse (BASE temizliğinde 'EXCLUDE' adayları) tetikl ↓ Kullanıcı etkisi: Temizlik sonrası işlem kaydında 'Invalid object name FN.GetKur' vb.; 'Cannot DROP FUNCTION … because it is being referen
Etkilenen veriSistem.Pariteler; Cari.Islemler
Olasılık / etki / güvenDüşük (temizlik yapılırsa orta) / S2 / 80
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): build_order.json zincirinin BASE build'inde korunması; drop öncesi sys.sql_expression_dependencies kontrolü. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT referenced_schema_name+'.'+referenced_entity_name FROM sys.sql_expression_dependencies WHERE referencing_id=OBJECT_ID('Cari.AcceptTransaction') AND referenced_id IS NULL;
Test senaryosuDoğrulama SQL'i çalıştır (salt okunur); beklenen: 0 kayıt
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-077 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=HAYIR · deps.json (2026 satır); computed.json Sistem.Pariteler.Parite 'Sistem.GetIdToBirim]([AnaBirimId])'; ERPSCHEMA dbo.SyncTickets computed 'FN.Bol'.
İlişkili kayıtlarERR-OBS-070, ERR-POT-023, ERR-POT-033, ERR-POT-101, ERR-POT-139, ERR-SIL-026, ERR-SIL-031, ERR-SIL-036, ERR-SIL-041, ERR-SIL-064
POTANSİYEL ERR-POT-139SQLR-078 Collation conflict: Pozisyon.Write (COLLATE Turkish_CI_AS); Genel.Dosyalar (cross-DB DOCUMENTS); Sistem.FromERP (<@Database>.dbo.*); ERPGLOBAL.dbo.Company S3 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS3 — ORTA
ModülMOD-VERİTABANI
Alt modülCollation conflict
Kullanıcı belirtisi'Cannot resolve the collation conflict between … in the equal to operation.'
Teknik belirtiTek açık COLLATE kullanan modül Pozisyon.Write. Cross-DB join'lerde (DOCUMENTS, eski ERP DB, ERPGLOBAL, tempdb #tablolar) karşı DB'nin harmanlaması farklıysa 468 'Cannot resolve the collation conflict'. DB1 harmanlaması bu turda alınmadı (GAP).
SQL hata no468
SQL hata mesajıCollation conflict
EkranPozisyon yazımı; evrak kontrolü; hesap aktarımı
İlgili SQL nesneleriPozisyon.Write, Genel.Dosyalar, Sistem.FromERP
SQL ObjectPozisyon.Write (COLLATE Turkish_CI_AS); Genel.Dosyalar (cross-DB DOCUMENTS); Sistem.FromERP (<@Database>.dbo.*); ERPGLOBAL.dbo.Company
Tetikleme koşuluTek açık COLLATE kullanan modül Pozisyon.Write. Cross-DB join'lerde (DOCUMENTS, eski ERP DB, ERPGLOBAL, tempdb #tablolar) karşı DB'nin harmanlaması farklıysa 468 'Cannot resolve the collation conflict'. DB1 harmanlaması bu turda alınmadı (GAP).
Kök nedenmodules.json COLLATE taraması: yalnız Pozisyon.Write.
Neden zinciriTeknik olay: SQL 468 Collation conflict ↓ Yakın neden: Tek açık COLLATE kullanan modül Pozisyon.Write. Cross-DB join'lerde (DOCUMENTS, eski ERP DB, ERPGLOBAL, tempdb #tablolar ↓ Kullanıcı etkisi: 'Cannot resolve the collation conflict between … in the equal to operation.'
Olasılık / etki / güvenDüşük / S3 / 60
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): BASE kurulumunda DB harmanlamasının sabitlenmesi (Turkish_CI_AS) ve tempdb/cross-DB için COLLATE DATABASE_DEFAULT. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT DATABASEPROPERTYEX(DB_NAME(),'Collation'), SERVERPROPERTY('Collation');
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-078 · DB1=EVET DB2=BİLİNMİYOR BASE=Pozisyon.Write UNKNOWN · Guard=KISMEN (Pozisyon.Write) · modules.json COLLATE taraması: yalnız Pozisyon.Write.
İlişkili kayıtlarERR-POT-101, ERR-POT-103, ERR-POT-133, ERR-POT-138, ERR-SIL-031
POTANSİYEL ERR-POT-140SQLR-079 Collation conflict: nvarchar(1) kolonlar; text/image legacy tipler; bit'e 'True'/'False' string S4 · MOD-VERİTABANI · Gözlemlendi: HAYIR · AÇIK
Hata sınıfıPOTANSİYEL POTANSİYEL HATA
GözlemlendiHAYIR · Observed=HAYIR · Potential=EVET · Silent=HAYIR
Runtime durumuDOĞRULANMADI — statik analiz bulgusu; çalışma zamanında yeniden üretilmedi (Gözlemlendi: HAYIR)
Hata kategorisiE02 — SQL Server Hatası
SeverityS4 — DÜŞÜK
ModülMOD-VERİTABANI
Alt modülCollation conflict
Kullanıcı belirtisiTanım ekranında 'String or binary data would be truncated'; tasarımcıda text tipi hataları.
Teknik belirtinvarchar(1) kod kolonlarına 2+ karakter → 8152. text/image tipleri: sys.sql_modules/STRING fonksiyonları ile kullanılamaz (LEN/REPLACE → 8116 'Argument data type text is invalid'), uyumluluk seviyesi 100 (TD-33) ile korunuyor ama ileri sürümde kaldırılacak. Where IsDeleted='False' (string→bit) geçerli; performans etkisi yok. Yon nvarchar(1): '+'/'-'.
SQL hata no(veri tipi) 8152/245
SQL hata mesajıCollation conflict
EkranSistem tanımları; tasarımcı (CodeDesigner)
İlgili SQL nesneleriSistem.CariIslemTipi, Sistem.CariIslemTuru, Sistem.TakozScala, Cari.Islemler, AifaDev.Forms, Design.Forms
SQL Objectnvarchar(1) kolonlar; text/image legacy tipler; bit'e 'True'/'False' string
TabloSistem.CariIslemTipi.Kod, Sistem.CariIslemTuru.Kod/Yon, Sistem.TakozScala.Kodu (nvarchar(1)); Cari.Islemler.Yon/History.Yon varchar(1); AifaDev.Forms FormCode/ClassCode/DesignerCode (text); Design.Forms.FormLayout (text); 19 image kolonu
Tetikleme koşulunvarchar(1) kod kolonlarına 2+ karakter → 8152. text/image tipleri: sys.sql_modules/STRING fonksiyonları ile kullanılamaz (LEN/REPLACE → 8116 'Argument data type text is invalid'), uyumluluk seviyesi 100 (TD-33) ile korunuyor ama ileri sürümde kaldırılacak. Where IsDeleted='False' (string→bit) geçerli; performans etkisi yok. Yon nvarchar(1): '+'/'-'.
Kök nedencolumns.json taraması: nvarchar(1) 4, varchar(1) 2, text 4, image 19.
Neden zinciriTeknik olay: SQL (veri tipi) 8152/245 Collation conflict ↓ Yakın neden: nvarchar(1) kod kolonlarına 2+ karakter → 8152. text/image tipleri: sys.sql_modules/STRING fonksiyonları ile kullanılama ↓ Kullanıcı etkisi: Tanım ekranında 'String or binary data would be truncated'; tasarımcıda text tipi hataları.
Etkilenen veriSistem.CariIslemTipi.Kod, Sistem.CariIslemTuru.Kod/Yon, Sistem.TakozScala.Kodu (nvarchar(1)); Cari.Islemler.Yon/History.Yon varchar(1); AifaDev.Forms FormCode/ClassCode/DesignerCode (text); Design.Forms.FormLayout (text); 19 image kolonu
Olasılık / etki / güvenDüşük / S4 / 90
Bilinen ticketHAYIR
Ticket sayısı0
Bilinen çözüm[Ekip tarafından doldurulacak]
Geçici çözüm[Ekip tarafından doldurulacak]
Kalıcı çözümÖneri (uygulanmadı): text/image → nvarchar(max)/varbinary(max); nvarchar(1) kodların standardı. (Uygulanmadı)
Önleme[Ekip tarafından doldurulacak]
Tespit yöntemiSQL modül/katalog analizi
Validation SQL (salt okunur)
SELECT OBJECT_NAME(object_id),name FROM sys.columns WHERE system_type_id IN (35,34,99);
Test senaryosu[Ekip tarafından doldurulacak]
DurumAÇIK
Sorumlu[Ekip tarafından atanacak]
KaynakSQL risk analizi SQLR-079 · DB1=EVET DB2=BİLİNMİYOR BASE=EVET · Guard=— · columns.json taraması: nvarchar(1) 4, varchar(1) 2, text 4, image 19.