AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Destek › SymptomChains › SYM-POZISYON

Belirti zinciri — Pozisyon / hacim / kâr

SYMPTOM_CHAINMOD-RAPORERPGOLD_COREACTIVEMEDIUMSUPPORT_OBSERVED
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Belirti

Tipik ticket ifadeleri: "pozisyon yanlış", "pozisyonda aynı birim iki kez", "pozisyon tutmuyor", "pozisyon giderildi", "hacim raporu", "kâr raporu farklı", "işlem pozisyona etki etmiyor", "pozisyonda çift birim". "pozisyon" (45), "pozisyonda" (6). Alt kategoriler: Pozisyon 50, Eğitim/Destek 13.

Gözlem ile sebep ayrımı

  • Gözlem: pozisyon/hacim/kâr raporundaki rakam beklenenden farklı, aynı birim iki satırda, ya da girilen işlem pozisyonu değiştirmedi.
  • Ayrım: pozisyon türetilmiş bir metriktir: birim bazında stok + alacak − borç (METRIC_DICTIONARY MET-NET-POZISYON) — yani Stok.StokHaraketleri ile Cari.BakiyeIslem toplamıdır. "Pozisyon yanlış" gözlemi neredeyse her zaman stok ya da bakiye kaydından birinin ya da birim tanımının sorunudur. Ticket başlığı hangisi olduğunu söylemez.
  • Sık yanılgı: pozisyonun sıfır olmamasını hata sanmak — açık pozisyon iş gerçeğidir; kur değişince bilançonun değişmesi bu yüzdendir (H-129). Alış+satış toplanmış "hacim" ile pozisyon karıştırılır (double-count notları).

Muhtemel nedenler

# Neden Kanıt
1 Aynı birim iki kez tanımlı → raporda çift satır H-131, H-023, PROC-161, PB-040
2 İşlem PEŞİN/resmi tipte → bakiye defteri yok; peşin kasaya (stok) yansır, cari bakiyeye değil BR-TIP-002, BR-TIP-003, BR-TIP-004, BR-DEFTER-URETIMI — SOURCE_IMPLEMENTED
3 Tetikleyici kapalı → işlem var, defter yok, pozisyon değişmiyor H-006, PB-029
4 Fonksiyon sürümü farkı: Pozisyon.GetPozisyonV1/V2/V3, GetOldPozisyon, MüşteriŞemasıD.GetPozisyon vadeliyi dahil/hariç farklı alır METRIC_DICTIONARY MET-NET-POZISYON "Hariç"; FN-POZISYON.GETPOZISYONV3GAP: sürümler arası fark satır bazında belgelenmemiş
5 Vadeli bakiye sorgusu boş döner (asıl sorgu yorumda) → vadeli pozisyon görünmez BR-BAKIYE-019 — SOURCE_IMPLEMENTED
6 FX Sync işlemi ERP'ye yazdı ama pozisyona etki etmedi (kasa/işlem türü) PROC-167
7 Nakit stok kodu 3 karakter / maden stok sıralaması → hacim raporu düzeni PROC-100
8 Kâr raporunda TL yerine başka birim isteniyor (talep) PROC-213, MET-KAR
9 Raporsuz takoz pozisyonda 0 milyemle, bilançoda 0,600 ile değerleniyor — üç farklı değer CONFIGURATION "Raporsuz takoz has varsayımı", BR-BAKIYE-009CTR
10 Kur listesi boş → karşılık sütunları 0 H-124, PB-036

İlk sorulacak sorular

  1. Hangi rapor (pozisyon / pozisyon detay / hacim / kâr) ve hangi fonksiyon (menü adı)?
  2. Hangi birim; aynı birim iki satırda mı görünüyor?
  3. Beklenen pozisyon nasıl hesaplandı (stok + bakiye)? Vadeli dahil mi?
  4. Pozisyona etki etmeyen işlemin tipi (NORMAL/PEŞİN/RESMİ) ve kasası ne?
  5. Kur listesi dolu mu? Tetik açık mı (son işlemler bakiye üretiyor mu)?
  6. Kurulum MüşteriŞemasıD gibi müşteri-özel rapor kullanıyor mu?

İlgili ekran(lar)

SCR-FRMPOZISYON · SCR-FRMPOZISYONDETAILS · SCR-FRMPOZISYONHACIM · SCR-FRMPOZISYONDURUMRAPORU · SCR-FRMBIRIMEKLE · SCR-FRMREPORTLIST

İlgili müşteri varyantı

MüşteriŞemasıD: MüşteriŞemasıD.GetPozisyon, MüşteriŞemasıD.GetPozisyonDetay, MüşteriŞemasıD.GetIslemKontrolRaporu müşteri-özel fonksiyonlardır ([FN-MüşteriŞemasıD.GETPOZISYON]); çekirdek Pozisyon.GetPozisyonV* ile farklı sonuç verebilir — hangisinin menüde olduğu belirlenir. DOVIZ: pozisyon = döviz riski, pano ile bağlantılı. KUYUMCU: has bazlı pozisyon; raporsuz takoz değerleme çelişkisi (neden 9).

Kontrol edilecek Settings

Sistem.Birimler (çift kod, IsStatic, SiraNo) · Sistem.Settings.OnsCarpan, HasSymbol · Sistem.Subeler.BilancoBirimId (karşılık birimi) · Pozisyon.Pozisyonlar (açık pozisyon tanımları/limitleri — TBL-POZISYON.POZISYONLAR). Sistem.Settings içinde pozisyona özgü başka kolon yok.

Salt okunur SQL teşhis sorgusu

-- 1) Çift birim (H-131)
SELECT B.Kodu, COUNT(*) AS Adet, MIN(B.Id) AS IlkId, MAX(B.Id) AS SonId
FROM Sistem.Birimler B WHERE B.IsDeleted = 0 GROUP BY B.Kodu HAVING COUNT(*) > 1;

-- 2) Birim bazında ham pozisyon bileşenleri (MET-NET-POZISYON): stok + bakiye
SELECT X.BirimId, SUM(X.Stok) AS Stok, SUM(X.Bakiye) AS Bakiye, SUM(X.Stok) + SUM(X.Bakiye) AS NetPozisyon
FROM (
  SELECT S.StokId AS BirimId, S.Miktar AS Stok, 0 AS Bakiye
  FROM Stok.StokHaraketleri S WHERE S.StokTipi = 2 AND S.Tarih <= @Tarih AND S.SubeId = @SubeId
  UNION ALL
  SELECT B.BirimId, 0, B.NetBakiye
  FROM Cari.BakiyeIslem B WHERE B.Tarih <= @Tarih
) X GROUP BY X.BirimId;
-- Not: nakit satırlarında StokId = birim (StokTipi 2); maden has'ı ve vadeli bu ham sorguda yok, V1/V2/V3 ile birebir eşleşmez.

-- 3) Pozisyona etki etmeyen işlem: tip ve defter satırları
SELECT I.Id, I.Tarih, I.KasaId, I.IslemKodu, I.IslemTuru, I.IslemTipi, I.BakiyeId, I.StokId, I.Miktar,
       (SELECT COUNT(*) FROM Cari.BakiyeIslem B WHERE B.IslemId = I.Id)     AS BakiyeSatir,
       (SELECT COUNT(*) FROM Stok.StokHaraketleri S WHERE S.IslemId = I.Id) AS StokSatir
FROM Cari.Islemler I WHERE I.Id = @IslemId;

-- 4) Pozisyon tanımları/limitleri
SELECT SubeId, Birim, Bakiye, Kur1, Kur2, Pozisyon, BBirim, InsertDate FROM Pozisyon.Pozisyonlar WHERE SubeId = @SubeId;

İlgili iş kuralı

BR-DEFTER-URETIMI · BR-TIP-002 · BR-TIP-003 · BR-BAKIYE-019 · BR-BAKIYE-009 · BR-VADELI-003 · Metrikler: MET-NET-POZISYON, MET-ISLEM-HACMI, MET-KAR, MET-CARI-HACIM, MET-PESIN-HACIM (METRIC_DICTIONARY)

Geçmiş ticket teması

PRB-POZISYON-000 — 68 çağrı, ERPGOLDV2 çağrılarının %0,6'sı. Ortalama kapanış 118,8 saat (rapor düzeltmeleri uzun sürer).

İlgili süreç

PROC-161 pozisyonda çift birim (06.05.2022) · PROC-100 hacim raporu · PROC-167 işlem pozisyona etki etmiyorsa (FX) · PROC-213 kâr birimi · PROC-63 rapor düzenleme

Çözüm

Çift birim: PB-040 / PROC-161 (SQL yetkili destek). Defter yok: tip kontrolü (SYM-BAKIYE), tetik PB-029. Kur farkı/pozisyon ilişkisi: PB-055. Kur boş: PB-036. Rakam karşılaştırmasında METRIC_DICTIONARY tanımı kullanılır.

Workaround

Çift birim düzeltilene kadar raporda birim kodu ile süzülür; vadeli pozisyon için Vadeli Bakiye sekmesi yerine işlem listesi süzgeci (BR-BAKIYE-019 boş döner).

Yazılımcıya escalate koşulu

Pozisyon fonksiyonu sürümleri (V1/V2/V3/MüşteriŞemasıD) arasındaki fark açıklanamıyorsa; Bakiye.GetVadeliBakiye yeniden etkinleştirilecekse; raporsuz takoz değerleme çelişkisi (CTR) ürün kararı; Sistem.Birimler üzerinde SQL düzeltmesi yalnız SQL yetkili destek.

Kalıcı önlem

Silinen birim yeniden açılmaz (pasif/aktif); pozisyon raporu menüde tek fonksiyona bağlanır ve hangi sürüm olduğu rapor tanımına yazılır; pozisyon eğitiminde "stok + bakiye" formülü ve peşin/cari ayrımı anlatılır.

Kaynaklar

  • TICKET_THEME:PRB-POZISYON-000 (SRC-TKT-ERP, 68 çağrı)
  • DOCUMENT:12_Support/KnownIssues/H-006, H-023, H-124, H-129, H-131
  • DOCUMENT:12_Support/Playbooks/PB-029, PB-036, PB-040, PB-055
  • DOCUMENT:12_Support/Processes/PROC-161, PROC-100, PROC-167, PROC-213
  • BUSINESS_RULE:BR-DEFTER-URETIMI, BR-TIP-002/003/004, BR-BAKIYE-019, BR-BAKIYE-009
  • DERIVED:10_Reports/METRIC_DICTIONARY.md; 09_CodeArchitecture/CONFIGURATION.md (raporsuz takoz); 08_Database/Tables/TBL-STOK.STOKHARAKETLERI.md (StokTipi 1/2), TBL-CARI.BAKIYEISLEM.md, TBL-POZISYON.POZISYONLAR.md, TBL-SISTEM.BIRIMLER.md (kolon doğrulaması)