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.vbiçindeki lisans/anahtar satırları veFrmLoginForm.vbiç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; özelSub Mainyoktur; ana formFrmLoginForm'dur. Kaynak:ERPPRO/My Project/Application.myapp(satır 3-9).ApplicationEvents.vbiçindeMyApplicationsı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.vbiçindekiPartial 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.DbVersion → Config.DBVersion → LiveUpdate.Version saklı yordamı (ConfigurationForm.vb:266-280; DB: LiveUpdate.Version proc, LiveUpdate.VersionHistory tablosu — kb_src/db/modules_all.json, tables.json).
- CmbSirket ← Select Id,Kodu From Sistem.Sirketler Where IsDeleted='False' (:50).
- SirketDegisti() → CmbUser ← Select 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; CmbSube ← select SubeId,Sube from Sistem.getusers(SirketId) Where UserId=… (:93-102). Sistem.GetUsers inline TVF: UserDetails ⋈ UserGroup ⋈ Users ⋈ Subeler ⋈ Kasalar, IsDeleted='False' filtreli (DB tanımı: kb_src/db/modules_all.json → Sistem.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 CmbUser — CmbSirket 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; CmbActiveSube ← Sistem.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.Subeler ⋈ Cari.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 listesikb_src/db/tables.json.
5. Bilinmeyenler (UNKNOWN)
AIO.Parameters.Parameters.Init()veDSX.DAO.RetriveOfAllData()içerikleri (hangi tablolar önbelleğe alınıyor) bu dokümanda incelenmedi.Update.exeveLiveUpdate.exekaynak kodu depoda bulunamadı; güncelleme uygulamasının davranışı yalnız çağrı satırından (Program.vb:94) biliniyor.ERPGLOBALveritabanının şeması (yalnızdbo.Company(Company, DBName)kolonları koddan görülüyor).Config.cfgbulunamadığındaConfiguration.Read()sessizce boş değerlerle döner (catch boş, ConfigurationForm.vb:317-318); bu durumdaIsSQLServerAvailableFalse olacağı için ConfigurationForm açılır — INFERRED, çalışma zamanında doğrulanmadı.FrmLoginForm.Loginiçindeki SMS uyarı akışı (IsAlert) hangi operasyonel amaçla kullanılıyor — koddan çıkarılamadı.CheckForIllegalCrossThreadCalls=FalsevePanoKurlari/KurListesizamanlayıcılarının thread modeli — incelenmedi.
