AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Kod mimarisi › ARCH-APP-FLOW

Uygulama Başlangıç Akışı

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

Kaynak: docs/knowledge-base/architecture/application-flow.md — KB-docs (tam çözüm taraması, 1.029 .vb).

Uygulama Başlangıç Akışı (ERPPRO / ERPGOLD V2)

Kapsam: ERPPRO.exe çalıştırıldığı andan ana menünün (FrmMainForm) kullanıcıya açılmasına ve kapanışa kadar olan akış. Gerçeklik türü: AS-IMPLEMENTED (kod). Her adımda dosya:satır verilmiştir. Etiketler: VERIFIED (kodda birebir görüldü), INFERRED (koddan çıkarım), UNKNOWN. Depo kökü: /home/claude/erppro/ERPPRO. Dosya yolları ERPPRO/... ile projeye görelidir. Gizlilik: Program.vb içindeki lisans/anahtar satırları ve FrmLoginForm.vb içindeki üçüncü parti lisans dizesi kopyalanmamıştır; yalnız varlığı ve satır aralığı verilmiştir.


1. Genel Bakış (ASCII diyagram)

 ERPPRO.exe
   │
   ▼
 [VB Application Framework]  My Project/Application.myapp
   MySubMain=true, MainForm=FrmLoginForm, ShutdownMode=0 (ana form kapanınca çık)
   │
   ▼
 MyApplication.Startup  ──── Class/Ext/ApplicationExt.vb:23-37
   ├─ UnhandledException / ThreadException handler'ları bağlanır (:24-25)
   ├─ Culture ayarı (:27-28)
   ├─ Program.Config (Config.cfg → bağlantı dizesi)  ── Configuration/ConfigurationForm.vb:297-320
   ├─ Program.Config.IsSQLServerAvailable = True ?  ── ConfigurationForm.vb:249-264
   │     ├─ Evet → Program.ConnectDatabase()      ── Class/Module/Program.vb:78-87
   │     └─ Hayır → Configuration.ConfigurationForm (modal) → End  ── ApplicationExt.vb:32-35
   ▼
 FrmLoginForm.New  ── Form/Genel/FrmLoginForm.vb:2-20
   ├─ GlobalSettings.Read()  (Sistem.Settings)          (:7)
   ├─ "/NOUPDATE" değilse Program.CheckLocalUpdate()    (:8)  → arka planda GetUpdate
   ├─ Program.UserSettings = New AIO.Sistem.Clients      (:10) (Sistem.Clients, makine\kullanıcı)
   └─ 3. parti (EO.WebBrowser) lisans kaydı              (:12-19, içerik kopyalanmadı)
   ▼
 FrmLoginForm.Load  → GetDatabase()  ── FrmLoginForm.vb:137-155  (ERPGLOBAL.dbo.Company listesi, varsa)
 FrmLoginForm.VisibleChanged → FormInit()  ── FrmLoginForm.vb:32-61
   ├─ EXE adı kontrolü (yeniden adlandırılmışsa End)     (:35-40)
   ├─ Sürüm etiketleri: ERPGOLD V<ProductVersion>, SQLDB V<Program.DbVersion>  (:48-49)
   ├─ CmbSirket ← Sistem.Sirketler (IsDeleted=False)     (:50-53)
   └─ SirketDegisti() → CmbUser ← Sistem.Users (SirketId, IsDeleted=False)  (:62-70)
   ▼
 Kullanıcı: Şirket, Kullanıcı, Şifre girer
   txtPassword.Validated → SubeListele()  ── FrmLoginForm.vb:72-103
   ├─ AIO.Sistem.Users(UserId).Password ile karşılaştırma (:79-80)  [ayrıntı → security/authentication.md]
   ├─ 3 hatalı deneme → program kapanır (End)             (:81-84)
   └─ CmbSube ← Sistem.GetUsers(SirketId) WHERE UserId    (:97-102)
   ▼
 BtnLogin.Click / F5 → Login()  ── FrmLoginForm.vb:104-123
   ├─ LoginInformation.Login(SubeId, UserId, Password)   ── Class/Module/Login.vb:19-44
   │     ├─ AIO.Sistem.LoginUser(SubeId,UserId)  ← Sistem.GetUsers(0)  ── Class/Ext/Sistem.LoginUser.vb:19-46
   │     ├─ Sirket_/Sube_/Kasa_/User_ statik nesneleri doldurulur (:23-26)
   │     ├─ FrmMainForm durum çubuğu etiketleri (:27-35)
   │     └─ SaveLogin(UserId,"Success!"|"Incorrect Password!") → Sistem.Login (:5-18)
   ├─ Me.Hide()                                           (:119)
   ├─ Program.Init()                                      (:120)  ── Program.vb:198-245  (aşağıda ayrıntı)
   └─ FrmMainForm.Show()                                  (:121)
   ▼
 FrmMainForm.Load → FormInit()  ── Form/Genel/FrmMainForm.vb:8-29
   ├─ ChkResmi ← Program.ShadowMode; ShadowModeChanged handler (:9-10)
   ├─ RbSeriIslem.Visible = Sube.IsResmi (:11)
   ├─ Lisans Expired ise Ribbon kapalı + FrmShowLisans (:13-17)
   ├─ MainTabControl temizlenir, CmbSube = Program.SubeId, başlık "ANA MENU - [SubeKodu]" (:18-20)
   └─ Takvim.Show(MainTabControl) (:22)
   ▼
 Çalışma: Ribbon menü → onMenuSelect(Tag) (FrmMainForm.vb:62 vd.), CARIISLEMLER → iScreen sekmesi
   ▼
 Kapanış: FrmMainForm.FormClosed → FormClose() (:531-537) → FrmLoginForm görünür;  Program.Close() (Program.vb:254-259)

2. Adım adım akış

2.1 Uygulama çerçevesi ve giriş noktası — VERIFIED

  • My Project/Application.myapp: MySubMain=true, MainForm=FrmLoginForm, SingleInstance=false, ShutdownMode=0, SaveMySettingsOnExit=true. Yani VB "Application Framework" kullanılır; özel Sub Main yoktur; ana form FrmLoginForm'dur. Kaynak: ERPPRO/My Project/Application.myapp (satır 3-9).
  • ApplicationEvents.vb içinde MyApplication sınıfı boş bırakılmıştır (yalnız yorum satırları). Kaynak: ERPPRO/ApplicationEvents.vb:1-15.
  • Gerçek uygulama olayları Class/Ext/ApplicationExt.vb içindeki Partial Friend Class MyApplication'da tanımlıdır (aynı partial sınıfın ikinci parçası). Kaynak: ERPPRO/Class/Ext/ApplicationExt.vb:11-51.

2.2 MyApplication.Startup (ana form yaratılmadan önce) — VERIFIED

Kaynak: ERPPRO/Class/Ext/ApplicationExt.vb:23-37 1. AppDomain.UnhandledException ve Application.ThreadException handler'ları bağlanır (:24-25). Ayrıntı → quality/error-handling.md. 2. DevExpress.Data.CurrencyDataController.DisableThreadingProblemsDetection = False (:26). 3. Thread kültürü Utils.Culture yapılır (:27-28). 4. Program.Config.IsSQLServerAvailable çağrılır (:29). Program.Config, Shared Property Config As New Configuration.Configuration olarak tanımlıdır (Program.vb:68); yapıcı Read() çağırır ve Config.cfg dosyasını okur (ConfigurationForm.vb:100-102, 297-320). Ayrıntı → architecture/configuration.md. 5. Sunucuya ulaşılabiliyorsa Program.ConnectDatabase() (:30) → AifaDev.Common.ConnectionString ve InternalDb.ConnStr set edilir (Program.vb:78-87). Ulaşılamıyorsa Configuration.ConfigurationForm modal açılır ve ardından End ile program sonlanır (:32-35). INFERRED: kullanıcı ayarları kaydetse bile program yeniden başlatılmalıdır (kodda End koşulsuz).

2.3 FrmLoginForm.New — VERIFIED

Kaynak: ERPPRO/Form/Genel/FrmLoginForm.vb:2-20 - CheckForIllegalCrossThreadCalls = False (:4) — INFERRED: thread güvenliği kontrolleri kapatılmış. - DevExpress skin kaydı (:5-6). - Program.GlobalSettings.Read() (:7) → Sistem.Settings tablosu tek satır, reflection ile (Form/Settings/Settings.vb:92-120). - Komut satırında /NOUPDATE yoksa Program.CheckLocalUpdate() (:8) → arka plan thread'inde GetUpdate (Program.vb:74-98): GlobalSettings.UpdateFolder\ERPPRO.EXE dosya sürümü çalışan sürümden yeniyse Update.exe <UpdateFolder>|<AppDir>\ çalıştırılır ve End (Program.vb:90-97). - Program.UserSettings = New AIO.Sistem.Clients (:10) → Sistem.Clients tablosundan ClientName = Makine\KullanıcıAdı satırı (Class/Dao/Sistem.Clients.vb:24-41). - Skin adı UserSettings.ActiveSkinName'den uygulanır (:11). - Satır 12-19: üçüncü parti bileşen (EO.WebBrowser) lisans dizesi — içerik kopyalanmadı.

2.4 FrmLoginForm.Load → GetDatabase() — VERIFIED

Kaynak: FrmLoginForm.vb:137-155 - Bağlantı dizesinden InitialCatalog boşaltılıp ConnectTimeout=1 ile ERPGLOBAL.[dbo].[Company] tablosu sorgulanır; başarılıysa CmbDatabase görünür olur ve DEFAULT + şirket veritabanları listelenir. Hata olursa CmbDatabase gizlenir (catch: sessiz). - CmbDatabase değişince Program.ConnectDatabase(DbName) ile veritabanı değiştirilir ve FormInit() tekrar çalışır (:156-159). - INFERRED: ERPGLOBAL veritabanı çok-şirketli kurulumlar için isteğe bağlıdır; yoksa akış etkilenmez.

2.5 FrmLoginForm.VisibleChanged → FormInit() — VERIFIED

Kaynak: FrmLoginForm.vb:32-61 - vshost değilse ve yürütülen dosya adı derleme adından farklıysa "Program Dosyası Değiştirilmiş…" uyarısı + End (:35-40). - Etiketler: LblPrgVersion = "ERPGOLD V" & Application.ProductVersion & "SE ", LblDbVersion = "SQLDB V" & Program.DbVersion (:48-49). Program.DbVersionConfig.DBVersionLiveUpdate.Version saklı yordamı (ConfigurationForm.vb:266-280; DB: LiveUpdate.Version proc, LiveUpdate.VersionHistory tablosu — kb_src/db/modules_all.json, tables.json). - CmbSirketSelect Id,Kodu From Sistem.Sirketler Where IsDeleted='False' (:50). - SirketDegisti()CmbUserSelect Id,UserName From Sistem.Users Where SirketId=… And IsDeleted='False' (:62-70). - Program.GlobalSettings.Read() tekrar (:56). - Tüm blok tek Try/Catch içinde; hata MsgBox(ex.Message) ile gösterilir (:58-60).

2.6 Şifre doğrulama ve şube listesi — VERIFIED (mekanizma ayrıntısı → security/authentication.md)

Kaynak: FrmLoginForm.vb:72-103 (SubeListele, txtPassword.Validated) - AIO.Sistem.Users(CmbUser.EditValue).Password ile girilen metin düz metin karşılaştırması yapılır (:79-80). Users.Password yükleme sırasında Crypto.Decrypt ile çözülür (Class/Dao/Sistem.Users.vb:43). - Hatalı: HataSay artar; 3'te "3 Kez Hatalı Şifre Girdiniz. Program Kapatılacaktır." + End (:81-84). - Doğru: BtnLogin.Enabled = True; CmbSubeselect SubeId,Sube from Sistem.getusers(SirketId) Where UserId=… (:93-102). Sistem.GetUsers inline TVF: UserDetailsUserGroupUsersSubelerKasalar, IsDeleted='False' filtreli (DB tanımı: kb_src/db/modules_all.jsonSistem.GetUsers).

2.7 Login() — VERIFIED

Kaynak: FrmLoginForm.vb:104-123, Class/Module/Login.vb:19-44 1. Eksik alan kontrolü (:105-108). (Not: koşul CmbSube … Or CmbSube … Or CmbUserCmbSirket kontrolü yok; INFERRED yazım hatası.) 2. LoginInformation.Login(SubeId, UserId, Password): - AIO.Sistem.LoginUser(SubeId, UserId)select * from Sistem.GetUsers(0) Where UserId=… And SubeId=… (Sistem.LoginUser.vb:22). Password alanı Crypto.Decrypt ile çözülür (:35); _Group = New AIO.Sistem.Usergroup(GroupId) ile yetki bayrakları yüklenir (:37). - iLogin.Password = Password And Password.Trim <> "" ise (Login.vb:21): Sirket_, Sube_, Kasa_, User_ statik alanları doldurulur (:23-26); FrmMainForm durum çubuğu etiketleri yazılır (:27-35); SaveLogin(UserId,"Success!") (:36) → Sistem.Login tablosuna ComputerName, IpAdress, UserId, SubeId, Status, PrgVersion eklenir (Login.vb:5-18; Class/Sistem.Login.vb:98). - Aksi halde "Hatalı Şifre." + SaveLogin(UserId,"Incorrect Password!") (:39-40). 3. IsAlert (F5 ile giriş) ve şirket kodu belirli bir değerse SMS gönderimi (:112-118) — telefon numaraları koddadır, kopyalanmadı ([REDACTED_PERSONAL_DATA]). 4. Me.Hide()Program.Init()FrmMainForm.Show() (:119-121).

2.8 Program.Init() — VERIFIED

Kaynak: ERPPRO/Class/Module/Program.vb:198-245 (tamamı tek Try/Catch, catch → My.Application.ShowDebugOutput(ex); Application.Exit() satırı yorumdadır :241-243)

Sıra Satır İşlem Açıklama / Etiket
0 200 WaitDialogForm("Sunucu ile Bağlantı Kuruluyor..") Bekleme penceresi (VERIFIED)
1 201-210 Lisans başlatma (satır 201–210, içerik kopyalanmadı) 3. parti bileşen lisans dizesi ve AifaDev.Common.LicenseKey ataması; ayrıca TCMB.Currency.ConnStr = InternalDb.ConnStr (:209)
2 211 SkinHelper.InitSkinGallery(FrmMainForm.RgBSkin) Skin galerisi
3 212 CreateDevTools() UiForm.RetriveUiForms/BuildAll, UiDesigner.RetriveAll (:246-250) — AifaDeveloper (CodeDesigner) ile tasarlanmış dinamik formlar/ribbon öğeleri DB'den yüklenir (INFERRED: AifaDev.Forms tablosu, scan.json)
4 213 UiDesigner.PopulatePage(FrmMainForm.Ribbon) Dinamik ribbon öğeleri ana forma eklenir
5 214 GlobalSettings.Read() Sistem.Settings (3. kez okunur)
6 215-216 GlobalPrameters.Clear(); .Init() AIO.Parameters.Parameters (UNKNOWN: içeriği bu dokümanda incelenmedi)
7 217 DSX.DAO.RetriveOfAllData() Referans/önbellek verileri (UNKNOWN: ayrıntı incelenmedi)
8 219-220 DataLayout.LayoutManager.DataBind(); RepositoryItem.DataBind() Grid düzenleri
9 221-222 KurListesi.RetriveFromDb(); KurListesi.Start() AIO.Kur.KurListesi — kur listesi + zamanlayıcı (INFERRED: Start periyodik yenileme, KurRefreshInterval ayarı Settings.vb:18)
10 223-224 PanoKurlari.Start(); .RefreshData() AIO.Sistem.DovizPanosu
11 225 TCMB.Currency.Read() TCMB kurları (Class/Module/TCMB.vb)
12 226-228 If FrmKurGirisEkrani.KurCount = 0 Then FrmKurGirisEkrani.KurKopyala() Bugün kur girilmemişse önceki günden kopyalama (INFERRED: DB'de Sistem.KurKopyala proc mevcut)
13 229 LoginInformation.User.Group.CreateMenu() Ribbon görünürlüğü yetkilere göre (→ security/authorization.md)
14 230 Utils.CallLisansControl() Eşzamanlı ERPPRO süreç sayısı RdpCallUser'ı aşarsa "Kullanıcı Lisansınız Aşıldı." + Program.Close() (Utils.vb:177-197). Belirli bir sunucu adresi için atlanır (:182, değer kopyalanmadı)
15 231-239 FrmMainForm hazırlığı Skin; PopupGridList.Init; CmbActiveSubeSistem.getusers(SirketId) Where UserId=… (kullanıcının yetkili şubeleri)

2.9 FrmMainForm — VERIFIED

Kaynak: ERPPRO/Form/Genel/FrmMainForm.vb - Yükleme FormInit() (:8-29): ChkResmi.Checked = Program.ShadowMode; RbSeriIslem.Visible = Sube.IsResmi; rgDetails.Visible=False; DEBUG=False ve lisans Expired ise Ribbon.Enabled=False + AIO.Lisans.ShowLicenseInfo() (FrmShowLisans) ve sonra tekrar değerlendirme (:13-17); sekmeler temizlenir; CmbSube.EditValue = Program.SubeId; başlık "ANA MENU - [SubeKodu]"; Takvim.Show(MainTabControl); BtnCariIslemler görünmezse sekme "+"-butonu ve BtnFormAc gizlenir (:23-26). - Ribbon sekmeleri / menü: RibbonControl.ItemClick → MenuClick yalnız Links(0).Visible=True ise ItemClick(Tag) olayını yükseltir (:53-56); onMenuSelect(TagName) büyük Select Case ile tag'e göre form/sekme açar (:62 vd.). Örnekler: "CARIISLEMLER" → MainTabControl.AddCariIslemPage() (:295-296), "GLOBALSETTINGS" → FrmGlobalSettings + GlobalSettings.Read() (:319-322), "USERSETTINGS" → FrmUserSettings (:302-304), "SIFREDEGISTIR" → FrmSifreDegistir (:379-383), "LISANSISLEMLERI" → FrmShowLisans (:389-392), "CONFIG" (:385). - iScreen sekmesi açılışı: iTabControl.AddCariIslemPage() (Controls/Islem Ekranı/Ekran/iTabControl.vb:13-26): "<Hesap Seciniz>" başlıklı sekme varsa seçilir; yoksa yeni XtraTabPage eklenir ve iScreen.Show(TbPage, tHesapType.CariHesap) çağrılır. iScreen.Show (Controls/Islem Ekranı/Base Control/iScreen.vb:4-17): bakiye gridi Group.ShowBalance'a göre, Cari.Islem Record olaylarına UpdateBalance bağlanır, Init() (:24-36) → BtnIslemAktar.Visible = (GroupId = 1). BtnFormAc ise aynı ekranı ayrı bir pencerede açar (FrmMainForm.vb:643-654). - Şube değiştirme CmbSubeChanged (:35-52): onay sorusu; Screen.Save(Program.SubeId, MainTabControl) ile mevcut sekmeler saklanır (Class/Module/TabPages.vb:9-17); LoginInformation.Login(YeniSube, UserId, User.Password) ile yeniden giriş; Screen.Init(...) ile o şubenin sekmeleri geri yüklenir; Program.Init() tekrar çalışır; başlık güncellenir; Takvim.Show. - ShadowMode (Program.ShadowMode, Program.vb:31-55): Sube.SubeTipi = "DOVIZ" ise açık. Set edilirken PasswordBox ile kullanıcının kendi şifresi istenir (:35-39); onaylanırsa SubeTipi "GENEL"/"DOVIZ" yapılıp Sube.Save() ile veritabanına yazılır (:43-48) ve ShadowModeChanged olayı yükselir; FrmMainForm.ShadowModeChange sekmeleri temizler (:30-34). ChkResmi.CheckedChanged → Program.ShadowMode = ChkResmi.Checked (:659-661). INFERRED: "gölge mod" şube tipi değişikliği olduğundan aynı şubeye giren diğer kullanıcıları da etkiler. - Güncelleme kontrolü: CheckLocalUpdate/GetUpdate yalnız FrmLoginForm.New'da (yukarı 2.3). Ribbon "CHECKUPDATE" (:357-361) yalnız "Mevcut Sürümünüz Güncel." mesajı gösterir; gerçek kontrol (Program.CheckUpdateNow) yorum satırıdır. VERIFIED. - Gizli kısayollar (:705-717): User.Id = 1 + Shift+D → BtnDevir görünür; Alt+Shift+F7 (+NumLock kapalı, CapsLock açık) → rgDetails görünür. VERIFIED. - Kapanış: FormClose() (FormClosed, :531-537): PopupGridCollection.CloseAllForm(), skin adı UserSettings'e kaydedilir, FrmLoginForm.Visible = True (giriş ekranına dönülür), Screen.Clear(). Program.Close() (Program.vb:254-259): UserSettings.Save(), PanoKurlari.Stop(), Application.Exit()FrmLoginForm.Button2 (Kapat) ve lisans aşımı bunu çağırır. INFERRED: Sistem.Login tablosuna çıkış kaydı yazılmaz* (SaveLogin yalnız girişte).


3. Başlangıçta veritabanına yapılan erişimler (özet) — VERIFIED

Sıra Nesne Yer
1 sys bağlantı testi (conn.Open) ConfigurationForm.vb:249-264
2 LiveUpdate.Version (proc) ConfigurationForm.vb:266-280
3 Sistem.Settings Settings.vb:92-120 (3 kez: FrmLoginForm:7, :56, Program.Init:214)
4 Sistem.Clients Sistem.Clients.vb:28
5 ERPGLOBAL.dbo.Company (opsiyonel) FrmLoginForm.vb:142
6 Sistem.Sirketler, Sistem.Users FrmLoginForm.vb:50, :66
7 Sistem.GetUsers(SirketId) FrmLoginForm.vb:97; Program.vb:234
8 Sistem.GetUsers(0) + Sistem.UserGroup Sistem.LoginUser.vb:22, :37
9 Sistem.Sirketler/Subeler/Kasalar (Id ile) Login.vb:23-25
10 Sistem.Login (INSERT) Class/Sistem.Login.vb:98
11 Sistem.SubelerCari.Islemler (lisans ilk tarih) Class/Lisans/Lisans.vb:54-60 (yalnız lisans sorgulandığında)

4. Kanıt listesi

  • ERPPRO/My Project/Application.myapp:3-9 — MySubMain/MainForm/ShutdownMode.
  • ERPPRO/ApplicationEvents.vb:1-15 — boş MyApplication parçası.
  • ERPPRO/Class/Ext/ApplicationExt.vb:11-51 — Startup, ShowDebugOutput, UnhandledException handler'ları.
  • ERPPRO/Form/Genel/FrmLoginForm.vb:2-20, 32-61, 62-70, 72-103, 104-123, 124-126, 137-159 — giriş formu akışı.
  • ERPPRO/Class/Module/Program.vb:31-55 (ShadowMode), 68 (Config), 74-98 (CheckLocalUpdate/GetUpdate), 78-87 (ConnectDatabase), 113-117 (DbVersion), 198-245 (Init), 246-250 (CreateDevTools), 254-259 (Close).
  • ERPPRO/Class/Module/Login.vb:5-18 (SaveLogin), 19-44 (Login).
  • ERPPRO/Class/Ext/Sistem.LoginUser.vb:19-46.
  • ERPPRO/Class/Sistem.Login.vb:98 — Sistem.Login INSERT.
  • ERPPRO/Class/Module/Utils.vb:177-197 — CallLisansControl.
  • ERPPRO/Class/Lisans/Lisans.vb:5-46 — tLisence, IsLicensed; FrmShowLisans.vb:9-34.
  • ERPPRO/Configuration/ConfigurationForm.vb:97-102, 249-280, 297-329 — Configuration sınıfı, Read/Save, Config.cfg.
  • ERPPRO/Form/Settings/Settings.vb:92-138 — GlobalSettings.Read/Save.
  • ERPPRO/Class/Dao/Sistem.Clients.vb:24-41, 141-200 — Clients (UserSettings).
  • ERPPRO/Form/Genel/FrmMainForm.vb:8-29, 30-34, 35-52, 53-56, 62 vd., 295-296, 302-304, 319-322, 357-361, 379-392, 531-537, 643-661, 705-717.
  • ERPPRO/Controls/Islem Ekranı/Ekran/iTabControl.vb:13-26; ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:4-36.
  • ERPPRO/Class/Module/TabPages.vb:7-27 — iTabPages.Save/Init.
  • DB: Sistem.GetUsers (IF), LiveUpdate.Version (P), Sistem.KurKopyala (P) — kb_src/db/modules_all.json; tablo listesi kb_src/db/tables.json.

5. Bilinmeyenler (UNKNOWN)

  • AIO.Parameters.Parameters.Init() ve DSX.DAO.RetriveOfAllData() içerikleri (hangi tablolar önbelleğe alınıyor) bu dokümanda incelenmedi.
  • Update.exe ve LiveUpdate.exe kaynak kodu depoda bulunamadı; güncelleme uygulamasının davranışı yalnız çağrı satırından (Program.vb:94) biliniyor.
  • ERPGLOBAL veritabanının şeması (yalnız dbo.Company(Company, DBName) kolonları koddan görülüyor).
  • Config.cfg bulunamadığında Configuration.Read() sessizce boş değerlerle döner (catch boş, ConfigurationForm.vb:317-318); bu durumda IsSQLServerAvailable False olacağı için ConfigurationForm açılır — INFERRED, çalışma zamanında doğrulanmadı.
  • FrmLoginForm.Login içindeki SMS uyarı akışı (IsAlert) hangi operasyonel amaçla kullanılıyor — koddan çıkarılamadı.
  • CheckForIllegalCrossThreadCalls=False ve PanoKurlari/KurListesi zamanlayıcılarının thread modeli — incelenmedi.