ERPGOLD V2'nin kullandığı SQL nesneleri, geçişli bağımlılıklar ve temizlik sınıflandırması (A–F). Doğrudan 362 · gerekli 419 · unused aday 39.
Ne anlatır? ERPGOLD V2 uygulamasının SQL Server'da hangi nesneleri kullandığını, bu nesnelerin başka hangi nesnelere bağlı olduğunu (geçişli kapanım) ve kalan nesnelerin neden "kullanılmıyor" denemeyeceğini tek yerde toplar. Temel kural: SAFETY > CLEANUP — bir nesneyi gereksiz bırakmak kabul edilebilir, gerekli bir nesneyi yanlışlıkla gereksiz saymak kabul edilemez.
ÜÇ SAYI
1. ERPGOLD’un doğrudan kullandığı SQL nesnesi (ROOT SET): 362
2. Dolaylı bağımlılıklarla birlikte ERPGOLD için gerekli toplam nesne: 419 (+4 alias tip = 423)
3. ERP ile hiçbir doğrudan/dolaylı bağı bulunamayan UNUSED CANDIDATE: 39
Kategoriler (696 katalog nesnesi)
| Kategori | Adet | Açıklama |
|---|---|---|
| A — ERPGOLD CORE | 362 | kod 327 · DB içi rapor/tasarım SQL 35 |
| B — INDIRECT DEPENDENCY | 57 | modül 45 · tetikleyici 12 (+4 alias tip: tislemkodu/tislemturu/tislemtipi/tfiyattipi) |
| C — POSSIBLE CORE | 2 | iki kurulumda var, kod referansı yok |
| D — CUSTOMER CUSTOM | 13 | DynamicForms runtime tabloları + tek kurulum tabloları; müşteri adlı şemalar ayrıca 06 listesinde |
| E — UNUSED CANDIDATE | 39 | hiçbir doğrudan/dolaylı bağ yok — DROP adayı (ön koşullarla) |
| F — MANUAL REVIEW | 223 | dış ürün şemaları, olası menü raporu hedefleri, olası job, pasif küme, zayıf eşleşme |
A+B = 419 nesne ERPGOLD_REQUIRED_DATABASE_OBJECTS kümesidir; bunların hiçbiri "unused" değildir.
Bölüm sayfaları
- Direct Application Objects — 362 nesne: kaynak dosya/sınıf/metot, kullanım türü, kanıt
- Dependency Graph — ERPGOLD → SP → FN → tablo zincirleri (recursive), kenar kaynağı META/TEXT/DDL
- Core Database Objects — gerekli 419 nesne, derinlik, kök, güven,
DependencyPath - Table / Column Usage — gerekli tabloların kolon kullanımı (YES / COMPUTED / LIKELY / NO_EVIDENCE)
- Customer Custom Objects — müşteri / çalışma zamanı nesneleri (HAKAN, NilKuyum, DynamicForms…)
- Unused Candidates — 39 nesne, güvenlik kontrolleri ve önerilen adım
- Manual Review — 225 nesne, neyin kontrol edileceği
Yöntem
- ROOT SET: Kaynak kodun doğrudan kullandığı nesneler — ERPPRO tam çözüm statik taraması (InternalDb/SqlCommand/CommandText/EXEC/dinamik SQL/string birleştirme dahil), KB-v1 sınıf ve ekran makaleleri (dosya:satır kanıtlı), TECHNICAL_WIKI kolon→kod dosyası eşlemesi, DAO haritası. Ayrıca veritabanında satır olarak saklanan ve ERPGOLD'un çalıştırdığı SQL (AifaDev.Reports, ReportsFilter, Design.PopupGrid, Dashboard, FaturaDesign) →
A-STORED_SQL. - Bağımlılık grafı: sys.sql_expression_dependencies kökenli wiki tabloları (META) + her modülün SQL tanımında şema.ad taraması (TEXT; dinamik SQL ve metadata'nın kaçırdığı referanslar için) + tetikleyici → tablo bağı (DDL).
- Geçişli kapanım: Seviye-0 → Seviye-1 → … yeni nesne bulunmayana kadar (BFS;
DependencyDepthköke en kısa yol). - Kalanların sınıflandırılması: güvenlik bayrakları (trigger, fk, computed, crossdb, external), dinamik SQL metin eşleşmesi, pasif küme, iki kurulum varlığı ve satır sayısı, ad kalıpları (Old/_/XXX/test), kırık referans, nesne türü (yordam → olası job; TVF/görünüm → olası rapor hedefi).
- Kolon kullanımı: TECHNICAL_WIKI FIELDS (44 tablo / 793 kolon: kod dosyası, UI kontrolü, DAO property), gerekli SQL modüllerinde kolon adı,
SELECT *ve kolon listesizINSERT→ tüm kolonlar USED.
Güven puanı
| Puan | Anlamı |
|---|---|
| 100 | ERP kaynak kodundan doğrudan çağrılıyor |
| 95 | ERP’nin kullandığı SQL nesnesi tarafından doğrudan kullanılıyor (META kenarı, derinlik 1) / DB içi rapor SQL’i / tetikleyici bağı |
| 90 | Bağımlılık grafıyla kesin ulaşılıyor (derinlik ≥ 2) |
| 85 | Yalnız SQL metin taramasıyla (TEXT) ulaşılıyor |
| 70 | İki referans kurulumda ortak ama kod referansı yok / dbo şemasız zayıf eşleşme |
| 50 | Olası menü raporu hedefi / olası job — kurulum bazlı veri kontrolü gerekir |
| 40 | Yalnız bir kurulumda var / zayıf ad eşleşmesi / veri var yazan yok |
| 20 | Dinamik SQL ihtimali nedeniyle belirsiz |
Sınırlar
- Kaynak kod ve canlı SQL Server bu üretimde erişilebilir değildi; kanıt, aynı kaynaklardan daha önce üretilmiş wiki verisidir (yeni kod sürümleri taranmadı).
- AifaDev.Reports / Design SQL'i V2 demo kurulumunun satırlarıdır; başka müşteride farklı raporlar olabilir → sonuç kümesi döndüren referanssız TVF/görünümler F'de tutuldu.
- SQL Agent job kontrol edilemedi (demo Express; msdb erişimi yok). Üretim Standard sunucusunda
msdb.dbo.sysjobstepstaraması her DROP'un ön koşuludur. - Synonym / sequence / CLR / tip envanteri wiki kataloğunda yoktur (GAP-DBMAP-01); alias tipler kolon tiplerinden çıkarıldı.
Cleanup öncesi zorunlu kontrol (salt okunur, her müşteri DB'sinde)
DECLARE @ad nvarchar(200) = N'FN.MonthName'; -- Unused Candidates listesindeki her nesne için
DECLARE @k nvarchar(200) = N'%' + PARSENAME(@ad,1) + N'%';
SELECT 'AifaDev.Reports' AS kaynak, Id, ReportName AS ad FROM AifaDev.Reports WHERE [SQL] LIKE @k
UNION ALL SELECT 'AifaDev.ReportsFilter', Id, CAST(ReportId AS nvarchar(20)) FROM AifaDev.ReportsFilter WHERE [SQL] LIKE @k
UNION ALL SELECT 'Design.PopupGrid', Id, Caption FROM Design.PopupGrid WHERE [SQL] LIKE @k
UNION ALL SELECT 'AifaDev.Dashboard', Id, ReportName FROM AifaDev.Dashboard WHERE Layout LIKE @k
UNION ALL SELECT 'AifaDev.FaturaDesign', Id, ReportName FROM AifaDev.FaturaDesign WHERE Layout LIKE @k
UNION ALL SELECT 'AifaDev.DynamicForms', Id, ProjectName FROM AifaDev.DynamicForms WHERE TableName LIKE @k OR Code LIKE @k OR Script LIKE @k
UNION ALL SELECT 'sys.sql_modules', object_id, OBJECT_SCHEMA_NAME(object_id)+'.'+OBJECT_NAME(object_id) FROM sys.sql_modules WHERE definition LIKE @k
UNION ALL SELECT 'msdb job', 0, j.name FROM msdb.dbo.sysjobs j JOIN msdb.dbo.sysjobsteps st ON st.job_id=j.job_id WHERE st.command LIKE @k;
Kaynak: ERPGOLD Kurumsal Wiki kataloğu (696 nesne; ERPPRO tam çözüm statik taraması 1.029 .vb / 1.468 SQL ifadesi; sys.sql_expression_dependencies + SQL tanımı metin taraması; AifaDev.Reports / Design DB içi SQL; ERPGOLDV2 ↔ ERPGOLDV2_KUYUMCU tablo karşılaştırması). Üretim: dbmap/extract.py → analyze.py → columns.py → report.py · 13.09.2026. Canlı DB bağlantısı ve kaynak kod bu üretimde yoktu; msdb (SQL Agent) kontrol edilemedi. Hiçbir DDL/DML çalıştırılmadı.
