Düzenleyici Raporlama — Aynı Raporu İki Kez Bastık, Neden Farklı Çıktı?
Önce şunu oku: Mutabakat — Toplamlar Tuttu, Hesap Neden Yine de Yanlış?
30 saniyede özet
Geçmiş tarihli rapor bugünkü tablodan basılırsa gönderilenle tutmaz. Yeniden üretilebilir rapor iki tarihi sabitler: verinin geçerli olduğu ve bilindiği tarih. Sonradan bulunan hata raporu değiştirmez; düzeltme olarak bildirilir.
Eylül’de sınıfın fotoğrafını çektin. Ekimde biri “eylül fotoğrafını” istedi. Bugünkü sınıfın yeni bir fotoğrafını çekip vermek, istenen fotoğraf değildir.
-
Bayt: Düzenleyici 30 Eylül raporunu yeniden istedi. Kolay: rapor şablonunu çalıştırırız, PDF çıkar.
-
Sen: Bastım. 1 Ekim'de gönderdiğimiz raporda 1.000 hisse vardı; bu çıktıda başka bir sayı var.
-
Bayt: Aynı şablon, aynı tarih! Rapor nasıl değişebilir?
-
Bayt: Şablon aynı. Peki okuduğu veri, 1 Ekim'deki veriyle aynı mı?
Rapor bir fotoğraftır
Düzenleyici raporlar belli bir tarihin durumunu anlatır: “30 Eylül itibarıyla müşteri pozisyonları”. Rapor gönderildikten sonra o tarihe ait bir kayıt olur ve aylar sonra yeniden istenebilir.
Rapor şablonu, örneğin bir JasperReports şablonu, aynı kalabilir. Ama şablon bugünkü tabloyu okuyorsa, 30 Eylül’den sonraki her işlem de rapora girer.
Kafam karıştı, daha basit anlat
Geçmiş tarihli rapor, o tarihin verisini okumalı; bugünkü tabloyu değil.
Düzenleyici bir rapor neyi anlatır?
30 Eylül raporu 6 Ekim'de bugünkü tablodan basılırsa ne olur?
İki tarih: geçerli olduğu ve bilindiği
Bir kaydın iki tarihi vardır. Biri, bilginin geçerli olduğu tarihtir: “30 Eylül’deki pozisyon”. Öteki, bu bilginin sisteme kaydedildiği tarihtir: “1 Ekim’de böyle biliyorduk”.
Her iki tarihi de tutan veriye çift zamanlı veriHer kaydın iki tarihini tutan veri: bilginin geçerli olduğu tarih ve sisteme kaydedildiği tarih. Geçmişin hem doğrusunu hem o an bilineni gösterebilir.Sözlükte gör → veri denir.
1 Ekim'de 30 Eylül pozisyonu 1.000 olarak raporlandı. 3 Ekim'de kaçırılmış bir işlem bulundu: 30 Eylül pozisyonu aslında 1.200'dü. Rapor '30 Eylül, 1 Ekim'de bilindiği hâliyle' okunursa ne gösterir? Cevabı göster
1.000 gösterir: gönderilenle birebir aynı. 3 Ekim’deki düzeltme, 1 Ekim’de henüz bilinmiyordu. Rapor, gönderildiği andaki bilgiyi yeniden üretir.
Adım adım oku
- Eylül'de sınıf fotoğrafı çekildi.
- Ekimde eylül fotoğrafı istendi.
- Bugünkü sınıfın fotoğrafını çektin.
- Eylül fotoğrafını bas, düzeltmeyi not et.
İki tarihi de sabitleyen rapor yeniden üretilebilir raporKaç kez üretilirse üretilsin aynı çıkan rapor. Verinin geçerli olduğu ve bilindiği tarihi, şablon sürümünü sabitler.Sözlükte gör →: kaç kez basılırsa basılsın aynı çıkar. Bugün bilinen doğruyu görmek istersen, geçerli tarihi sabit tutup bilinme tarihini bugüne çekersin.
Kafam karıştı, daha basit anlat
Rapor iki tarihi sabitler: verinin geçerli olduğu ve bilindiği tarih.
Çift zamanlı veride hangi iki tarih tutulur?
Gönderilen raporu birebir yeniden üretmek için sorgu neyi sabitlemeli?
Düzeltme bir ektir
Gönderilmiş bir raporda hata bulunursa, eski kayıt silinmez ve üzerine yazılmaz. Düzeltme kendi tarihiyle yeni bir kayıt olarak eklenir; eski ve yeni değer yan yana durur.
Düzenleyiciye de düzeltilmiş rapor ayrıca bildirilir. Böylece “ne gönderdik, ne zaman neyi öğrendik, ne düzelttik” sorularının her birinin bir cevabı olur.
Kafam karıştı, daha basit anlat
Hata bulununca eski kayıt kalır; düzeltme ayrı bir kayıt olarak eklenir ve bildirilir.
Gönderilmiş raporda hata bulundu. Doğru yol?
Kendin gör
30 Eylül raporu yeniden isteniyor
Tohum 482572- · 1 Ekim: rapor gönderildi
- · 3 Ekim: düzeltme
- · 5 Ekim: yeni alım
- · 6 Ekim: yeniden istendi
Gönderilen rapor: 1.000 hisse
· Yeniden basılan: —
Şu an ne oldu?
Olay: filed
Gönderilen rapor ile veritabanı zamanla ayrışıyor.
Görevler0/3
Geçmiş tarihli rapor bugünkü sayıyı göstersinaçık
İpucu
Bugünkü tabloyu oku.
Rapor gönderilenle birebir aynı çıksınaçık
İpucu
30 Eylül, 1 Ekim'de bilindiği hâliyle.
Düzeltilmiş doğruyu gösteraçık
İpucu
30 Eylül, bugün bilindiği hâliyle.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. Yeniden basım bugünkü tabloyu okudu: 1.500 hisse, 5 Ekim’deki alım da içinde.
- “1 Ekim’de bilindiği hâliyle”yi seç. 1.000 hisse: gönderilenle birebir aynı.
- “Bugün bilindiği hâliyle”yi seç. 1.200 hisse: fark, 3 Ekim’deki düzeltmeyle açıklanıyor.
Simülatörde "bugün bilindiği hâliyle" neden 1.200 gösterdi?
Tuzaklar
Yalnızca PDF saklamak. Gönderilen PDF’yi saklamak iyidir, ama yetmez. Sorulduğunda o sayıların hangi kayıtlardan geldiğini gösterebilmek için verinin o anki hâli de saklanmalıdır.
Üzerine yazan güncelleme. Pozisyon tablosu UPDATE ile güncelleniyorsa, eski değer kaybolur ve geçmiş yeniden üretilemez. Değişiklikleri yeni satırlar olarak ekle.
Şablon sürümü. Rapor şablonu da zamanla değişir. Hangi raporun hangi şablon sürümüyle üretildiği de kaydedilmeli.
Kafam karıştı, daha basit anlat
PDF’nin yanında veriyi de sakla, üzerine yazma, şablon sürümünü kaydet.
Pozisyon tablosu her gün UPDATE ile güncelleniyor. Raporlama için sorun ne?
Aşağıda çift zamanlı bir pozisyon tablosu ve onu belli bir tarihte, belli bir bilgiyle okuyan rapor sorgusu var.
Derinleş · Düzenleyici rapor: iki tarihle okunan pozisyonlar 3 dosya · ~33 satır · ilk okumada atlayabilirsin
Kendini sına
Geçmiş tarihli bir raporu bugünkü tablodan basmak gönderilenle aynı sonucu verir.
Yalnızca gönderilen PDF'yi saklamak neden yetmez?
Aklında kalacak üç şey
- 1 Geçmiş tarihli bir rapor bugünkü tablodan basılırsa, o tarihten sonraki işlemleri de içerir ve gönderilenle tutmaz.
- 2 Yeniden üretilebilir rapor iki tarihi sabitler: verinin geçerli olduğu tarih ve verinin sisteme kaydedildiği, yani bilindiği tarih.
- 3 Gönderildikten sonra bulunan bir hata eski kaydı silmez; düzeltme kendi tarihiyle eklenir ve düzenleyiciye ayrıca bildirilir.