AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Eğitim › Tracks › EXISTING_STAFF_GUIDE

Mevcut personel için ileri rehber — kritik ekranlar, riskli fonksiyonlar, veri teşhisi, escalation

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

Kime: ERPGOLD'u zaten kullanan/destekleyen personel (şartname §19). L0–L4 bilgisi varsayılır; burada doğru bilinen yanlışlar, az kullanılan riskli işlevler, SQL ile veri teşhisi ve escalation kuralları toplanır. SQL örnekleri yalnız SELECT, salt okunur bağlantıyla; kolon adları tablo makalelerinden doğrulanmıştır.

Öğrenme hedefi

  1. Kod tarafında doğrulanmış ileri iş kurallarını ve dokümanla çelişen noktaları (CTR) bilir.
  2. Müşteri varyasyonlarını (döviz/kuyumcu; müşteri-özel şemalar) ayırır ve genellemez.
  3. 48 ACTIVE_CRITICAL ekranı ve az kullanılan riskli işlevleri (Devir, BalanceRepair, silme onayı, seri işlemler) tanır.
  4. Beş hazır SELECT ile bakiye/stok/geçmiş teşhisi yapar.
  5. Sistem ayarlarını, entegrasyon arıza biçimlerini ve escalation eşiklerini uygular.

Teorik anlatım

İleri iş kuralları (kod tarafı esas)

Konu Kural Kaynak
Defter üretimi "Peşin ise stok, cari ise bakiye" yanlış; iki eksen bağımsız; V2 cari %1,4 / KUYUMCU %60,3 stok üretir BR-DEFTER-URETIMI, CTR-038
RESMİ/MAHSUP tip 11/12 operasyonel stok/bakiye kaydı üretmez; A-Z 1.8 tablosu yanlış CTR-003/004, BR-TIP-004
NAKİT bakiye BakiyeId daima 0; yalnız karşılık birimi satırı CTR-025, BR-BAKIYE-002
Düzeltme Tarih/FisNo/Kasa/Hesap değişmez; kur yeniden çekilmez; virman/parite/e-belgeli düzeltilmez BR-DUZELTME-008, BR-KUR-003, CTR-021
Gün sınırı ekran >= SilGun uyarır, DeleteAt > SilGun talebe çevirir (1 günlük tutarsızlık) CTR-023, BR-IPTAL-003
Limit IslemKodu 1/2/3 ÇIKIŞ, tip≠PEŞİN, Sube.IsLimitControl açık → FN.GetCariLimit BR-BAKIYE-016, PB-047, CTR-014
Yetki istemci tarafında; DB'de grup kontrolü yok; ÇEŞNİ için Takoz bayrağı okunur SEC-AUTHZ
Vadeli −2 VADELİ ARBİTRAJ seçimi, devir ayracı değil CTR-028
Parite tip NAKİT'te "EMANET" etiketi PARİTE yazabilir CTR-027, H-058
Takoz girişte çeşni bakiyeye eklenir; raporsuz XRF/0,600; raporsuz giriş güvenlik kontrollerinden muaf BR-BAKIYE-010, BR-BAKIYE-009, BR-DUZELTME-003

Müşteri varyasyonları

Döviz kurulumu peşin çalışır (%83), kuyumcu cari (%55); kuyumcuda PEŞİN ve RESMİ tip hiç kullanılmamış (INST-ERPGOLDV2, INST-KUYUMCU). Müşteri-özel şemalar (MüşteriŞemasıD; MüşteriŞemasıA/MüşteriŞemasıB/MüşteriŞemasıC) ve 5. tetikleyici NilKuyumIslemFiyatlari çekirdek davranış değildir (TD-41/43); kişi adı taşıyan rapor başlıkları (RPT-79, RPT-80, RPT-81) MüşteriŞemasıD şemasına bağlıdır. Kural: bir kurulumda görülen davranış müşteriye "ürün özelliği" diye anlatılmaz (VARIANT_MATRIX).

Kritik ekranlar (_lifecycle.json ACTIVE_CRITICAL, 48)

Giriş/çerçeve: FrmLoginForm, FrmMainForm, iScreen, iFormBase, iFTransaction. İşlem: iFMaden, iFHurda, iFNakit, iFDoviz, iFCevir, iFVadeli, iFVirman, iFHizmet, iFTas, iFPirlanta, iFModel, iFGenel, iFEmtia, iFCesni, iFBorc, iFTakozGiris, ifTakozCikis, iFSeriIslem, FrmSeriIslem, GiseEkrani, FrmTakozGiris/FrmTakozCikisi. Tanım: FrmSirketEkle, FrmSubeEkle, FrmKasaEkle, FrmBirimEkle, FrmMadenEkle, FrmNakitEkle, FrmHizmetEkle, FrmCariHesapEkle, FrmCariKartEkle, FrmKullaniciEkle, FrmAddUserGroup, FrmGlobalSettings, FrmKurGirisEkrani. Operasyon: FrmTransfer, FrmIptalOnayListesi, Mutabakat, MutabakatOnay, FrmFaturaEkle, FrmPozisyon, FrmReportList, FrmDevir. Bu ekranlarda yapılan değişiklik/yanlış anlatım tüm müşterileri etkiler.

Az kullanılan ama riskli işlevler

  • Devir (SCR-FRMDEVIR, SP-SISTEM.DEVIR): TRUNCATE + INSERT, transaction yok (TD-29); yalnız 5 tablo boşaltılır (TD-42); Shift+D ile açılır; ön koşullar WF-YIL-SONU-DEVIR. Senaryo: SCN-DEVIR.
  • BalanceRepair / StokRepair (SP-REPAIR.BALANCEREPAIR, TD-30): 2017'de dondurulmuş, tetikleyiciden 11 maddede sapmış; devir/transfer satırlarını (~80.033) yok eder, tip 11/12'ye bakiye yazar. Hiçbir koşulda çalıştırılmaz.
  • Silme talebi/onayı (WF-SILME-TALEBI-ONAY): onaylanan talep Sistem.SilOnay'dan fiziksel silinir (BR-IPTAL-011).
  • Seri işlemler (FrmSeriIslem, WF-SERI-ISLEM, FrmSeriTakozCikis): barkod okutunca anında kayıt (H-074); "İşlemin Karşılığı Bulunamadı" (PB-064).
  • Tetikleyiciyi kapatmak (DISABLE TRIGGER): yalnız devir prosedürü içinde; demo kopyasında kapalı kalması (TD-32) bakiye/stok üretmeyen işlemlere yol açar (PB-029).
  • Aifa Developer Studio serbest SQL (TD-10): üretimde yazma amaçlı kullanılmaz.

Raporlama

Rapor yazım kuralları DOC-REPORT-GUIDE; metrikler METRIC_DICTIONARY; "Divide by zero" (PB-051), zaman aşımı (PB-052), ALACAK/BORÇ süzgeci boş (PB-054). Has raporunda IslemKodu IN (0,1,2) süzgeci; adetli üründe milyem adet başı has (Ek C.1). Çeşni (14) kod tablosunda olmadığından INNER JOIN'lu raporlarda düşer (TD-44).

Veri teşhisi — SELECT örnekleri (salt okunur)

Kolonlar: TBL-CARI.ISLEMLER, TBL-CARI.BAKIYEISLEM, TBL-STOK.STOKHARAKETLERI, TBL-CARI.HISTORY.

-- 1) Bir işlemin ürettiği defter satırları (bakiye "tutmuyor" çağrısı, PB-028 adım 8+)
SELECT I.Id, I.FisNo, I.Tarih, I.IslemKodu, I.IslemTuru, I.IslemTipi, I.BakiyeId,
       I.StokId, I.Kodu, I.Miktar, I.AuMilyem, I.BirimId, I.Birim, I.Tutar, I.IsDeleted
FROM Cari.Islemler I WHERE I.Id = @IslemId;
SELECT B.BirimId, B.Bakiye, B.Tarih FROM Cari.BakiyeIslem B WHERE B.IslemId = @IslemId;
SELECT S.Bolum, S.StokTipi, S.StokId, S.Adet, S.Miktar, S.Has, S.KasaId
FROM Stok.StokHaraketleri S WHERE S.IslemId = @IslemId;

-- 2) Hesabın birim bazında bakiyesi (artı = müşteri borçlu, eksi = alacaklı)
SELECT B.BirimId, SUM(B.Bakiye) AS Bakiye
FROM Cari.BakiyeIslem B WHERE B.HesapId = @HesapId GROUP BY B.BirimId;

-- 3) İşlem geçmişi izi (düzeltmede yeni hâl, iptalde eski hâl)
SELECT H.LogType, H.LogDate, H.IslemTuru, H.IslemTipi, H.Miktar, H.Tutar, H.IsDeleted
FROM Cari.History H WHERE H.TransactionId = @IslemId ORDER BY H.LogDate;

-- 4) Tetikleyici kapalı mı (PB-029)
SELECT name, is_disabled FROM sys.triggers WHERE parent_id = OBJECT_ID('Cari.Islemler');

-- 5) Devir tutarsızlığı: açılış satırları ve tarihi boş defter satırları (PB-034 adım 3)
SELECT COUNT(*) AS DevirSatiri FROM Cari.BakiyeIslem WHERE IslemId = -1;
SELECT COUNT(*) AS TarihsizBakiye FROM Cari.BakiyeIslem WHERE Tarih IS NULL;
SELECT COUNT(*) AS TarihsizStok FROM Stok.StokHaraketleri WHERE Tarih IS NULL;

-- 6) Çift bacak kontrolü (parite/virman/karşı hesap): aynı RefNo veya VaryantId bağı
SELECT Id, HesapId, IslemKodu, IslemTuru, Kodu, Miktar, Tutar, VaryantId, IsDeleted
FROM Cari.Islemler WHERE RefNo = @RefNo OR VaryantId = @IslemId OR Id = @IslemId;

Her sorguda IsDeleted süzgecine dikkat; hesaplanan sütunlara (Yon, SMiktar, SHas, Kar, IsArbitiraj) yazılmaz, yalnız okunur. Bulunan fark elle düzeltilmez; Cari.Islemler üzerinden DÜZELT/İPTAL ile yeniden tetiklenir.

Sistem ayarları (destek için ilk 10)

CONFIGURATION: DuzeltmeGun/SilGun, ModifyPermission/DeletePermission (Serbest / PIN / Eski tarihe yapılamaz), MutabakatPermission, DuzeltmeAciklama, PesinKurTipi (CTR-007), IslemKurFarki (%, uyarı H-041), BSMV/BsmvTipi (CTR-010), Provizyon, DFIslemTipi (resmi kasada varsayılan tip), şube IsResmi/RsAktar/IsLimitControl/e-belge alanları, kasa ResmiKasa, kullanıcı Fis/Etiket/Fatura yazıcıları, OtoFisBas, seri alanları. Ayar değişikliği sonrası kullanıcı yeniden giriş yapmalı (grup izinleri girişte yüklenir, SEC-AUTHZ).

Entegrasyonlar — tipik arıza

11_Integrations/INDEX: e-fatura entegratör reddi/ETTN kilidi (PB-020); istatistik kodu boş (PB-021); BTrans aylık (PB-022); EDS kur akışı durdu (PB-061); lisans (PB-007, PB-008); yazıcı/etiket/terazi (PB-023PB-027); RDP parola süresi (PB-014); provizyon döngüsü (INT-SUBELER-ARASI-PROVIZYON-RSAKTAR); MASAK yasaklı (PB-062).

Bilinen kusurlar (personelin "normal" sanmaması gerekenler)

TxtTarih → Vade (TD-40, H-081); satışta alış kuru (TD-21, H-045); GetMadenMaliyeti TOP 50 → maliyet sıçraması (TD-23, H-122); fiş no yarışı (TD-02, H-102); cursor sızıntısı (TD-03, H-005); boş catch — hatalar yutulur (TD-12; PIRLANTA/EMTİA Validate sonucu kontrol edilmez); negatif stok engellenmez (H-123); negatif/aşırı milyem kontrolü yok (GAP-SEC-MILYEM-01); resmi stok listesinin kaynağı belirsiz (CTR-005).

Escalation

Yazılımcıya devir eşiği: playbook adımları tükenmiş ve (a) tetikleyici/prosedür davranışı şüpheli, (b) veri tutarsızlığı SELECT ile kanıtlanmış, (c) müşteri-özel şema/entegrasyon (MüşteriŞemasıD, Nil*, MT4, NetEkstre) söz konusu. Paket: CUST-id, kurulum profili (döviz/kuyumcu), sürüm etiketi, hesap/tarih/fiş/IslemId, yukarıdaki 1–3 nolu sorgu çıktıları, İşlem Geçmişi görüntüsü, o gün değişen ayar. Üretim DB'sinde yazma yalnız yazılımcı ve yedek sonrası.

ERPGOLD bağlantısı

Ekran yaşam döngüsü sınıfları 05_Screens/_lifecycle.json'dan; UNUSED_CANDIDATE ekranlar (ör. FrmFaturaBas, FrmIptalTalepFormu) müşteriye anlatılmaz. Ekran-alan-kolon eşlemeleri her SCR makalesinde; kitapçık §8.5 tutarsızlık listesi.

Örnek

Vaka (anonim, PB-034 deseni): devir sonrası bir hesabın DEVİR satırı arşivdeki son bakiyeden farklı. Sorgu 5 ile tarihsiz satır sayısı bulundu; fark DEVİR hesabından elle giriş/çıkışla kapatıldı; BalanceRepair önerisi reddedildi. Vaka (PB-032 deseni): "Karşı Hesaba İşlem Yapılamadı." sonrası tek satır kalan virman; sorgu 6 ile RefNo eşleşmesi doğrulandı, tek satır iptal + yeniden giriş. Vaka (H-006/PB-029): demo kopyasından türetilen kurulumda tetikleyici kapalı; sorgu 4 ile tespit, ENABLE + DÜZELT-kaydet ile yeniden işletme.

Uygulamalı senaryo

  1. SCN-DUZELTME kaydında sorgu 1 ve 3'ü çalıştırıp "Düzeltme" izinin yeni değer taşıdığını gösterin.
  2. SCN-PARITE çiftinde sorgu 6 ile VaryantId bağını doğrulayın; tek satırı iptal edip PB-048 akışını uygulayın.
  3. SCN-DEVIR sonrası sorgu 5; farkı DEVİR hesabından kapatma planı yazın (BalanceRepair'siz).
  4. SCN-RESMI-ISLEM satırı için sorgu 1: sıfır defter satırını gösterip CTR-003'ü müşteriye açık dille (tablo adı vermeden) anlatın.

Quiz

  1. (ÇS) Cari işlemlerin stok üretme oranı kuyumcu kurulumunda? a) %1,4 b) %60,3 c) %0 d) %100
  2. (KC) BalanceRepair çalıştırılırsa hangi iki veri grubu kaybolur?
  3. (ÇS) Devir prosedüründe kaç tablo boşaltılır? a) 2 b) 5 c) 12 d) tümü
  4. (KC) Cari.BakiyeIslem.Bakiye toplamı −120.000 TL: müşteri borçlu mu alacaklı mı?
  5. (ÇS) NAKİT NORMAL girişte EUR bakiye satırı beklemek neden yanlış? a) kur yok b) BakiyeId daima 0 c) EUR birim değil d) tetikleyici kapalı
  6. (KC) Tetikleyicinin kapalı olduğunu hangi sorguyla anlarsınız?
  7. (ÇS) Hangi işlem grubu düzeltilebilir? a) virman b) parite (X) c) ETTN dolu satış d) NORMAL maden çıkışı
  8. (KC) RPT-79/80/81 raporları neden çekirdek özellik değildir?
  9. (ÇS) Ayar değişikliği sonrası kullanıcı için gereken? a) Ctrl+F5 b) yeniden giriş c) devir d) lisans
  10. (KC) Escalation paketinde hangi sorgu çıktıları bulunur?

Cevap anahtarı

# Cevap Kaynak
1 b BR-DEFTER-URETIMI
2 devir açılış satırları (IslemId −1) ve transfer stok satırları (Bolum 2) TD-30
3 b TD-42, TD-29
4 alacaklı (biz borçluyuz) TBL-CARI.BAKIYEISLEM
5 b CTR-025
6 sys.triggers … is_disabled (sorgu 4) PB-029
7 d BR-DUZELTME-006, H-080, BR-DUZELTME-010
8 MüşteriŞemasıD müşteri-özel şeması VARIANT_MATRIX, TD-43
9 b SEC-AUTHZ
10 sorgu 1–3 (işlem, defter satırları, geçmiş) bu rehber "Escalation"; PB-028

Minimum başarı kriteri

  • Quiz: 10 sorudan en az 8 doğru; 2 ve 6 zorunlu doğru.
  • Uygulamalı senaryo: 4 adımın tamamı; sorgular salt okunur bağlantıda çalıştırılmış, çıktılar senaryo beklentisiyle eşleşmiş; 4. adımda müşteriye açık anlatımda tablo/tetikleyici adı geçmiyor (eğitmen onayı).