Ako zobraziť čas poslednej aktualizácie reportu Power BI

Ak máte nastavenú automatickú aktualizáciu dát v reportoch Power BI, tak sa môže stať, že niekedy nezbehne. Či už kvôli technickým chybám, zmenám v zabezpečení dátových zdrojov, či kvôli sieťovým problémom. Koncový užívateľ sa však spolieha na to, že keď otvorí report, tak v ňom vidí aktuálne dáta, aj keď tomu tak nemusí byť. A aj preto by ste mali v reporte zobrazovať v takýchto prípadoch dátum a čas poslednej aktualizácie reportu.

A ako to nastaviť?

V cloude Power BI už máte zabudovanú funkcionalitu pre dashboardy, ktorá v dashboarde zobrazí tento dátum a čas. Ale v reportoch to nie je. A čo tam nie je, musíme dorobiť sami.

V jazyku DAX na to žiadnu funkciu nemáte. A pravdepodobne ani v Power Query. Avšak keď využijete to, ako funguje Power Query a všeobecne reporty Power BI, tak pomocou jedného triku s Power Query to spravíte za pár sekúnd.

Tým trikom je vytvorenie nového dotazu v Power Query, ktorý  bude vracať aktuálny dátum a čas. A keďže dotazy Power Query sa spúšťajú a vyhodnocujú iba vtedy, keď sa ručne alebo automaticky aktualizujú dáta v reporte, tak to bude v skutočnosti dátum a čas poslednej úspešnej aktualizácie reportu.

Začneme ako vždy našim vzorovým súborom Power BI.

Vytvorte si teda nový prázdny dotaz v Power Query. V hlavnom menu kliknite na tlačítko “Načítať údaje”, a potom vyberte možnosť “Prázdny dotaz”:

Otvorí sa editor Power Query. V ňom choďte do hlavného menu, a mali by ste tam mať otvorený riadok na zadanie vzorca:

Ak tam nie je, tak choďte v hlavnom menu do záložky Zobrazenie, a tam zakliknite možnosť “Riadok vzorcov”.

Potom do toho riadku zadajte tento vzorec:

= DateTime.LocalNow()

Zadajte ho presne tak, ako ho vidíte – jazyk M je case-sensitive. A keď zadáte hoci iba jedno písmenko inak, tak vám vypíše chybu o neznámej funkcii.

Výsledok by mal vyzerať nejak takto:

Toto je hodnota, ktorú hľadáme – aktuálny dátum a čas. Čo je po načítaní do reportu de facto dátum a čas poslednej aktualizácie reportu. Pretože sa to mení iba vtedy, keď sa načítava tento dotaz Power Query. Čiže iba vtedy, keď dávate aktualizovať údaje v reporte.

Teraz to už potrebujeme iba transformovať na tabuľku, premenovať a načítať do dátového modelu.

Kliknite v hlavnom menu na druhú záložku Transformovať (tá čo je úplne na konci), a tam na tlačítko “Do tabuľky”:

Potom premenujte ten stĺpec z Column1 na názov CasAktualizacie, zmeňte tou ikonkou v jeho hlavičke jeho dátový typ na “Dátum a čas”, a premenujte dotaz Dotaz1 na názov DatumCasAktualizacie:

Výsledok bude vyzerať takto:

Teraz už len dajte vľavo hore tlačítko “Zavrieť a použiť”, a malo by sa to načítať ako nová tabuľka do dátového modelu v reporte.

Teraz už iba spravíme jednoduché merítko v reporte, napr. aj v tej istej tabuľke čo sme práve načítali, s týmto vzorcom (pravý klik na názov tabuľky a potom klik na “Nová mierka”):

Dátum poslednej aktualizácie = MAX(DatumCasAktualizacie[CasAktualizacie])

Potom už iba pridajte do reportu nový vizuál typu Karta, a pridajte doňho toto merítko. Výsledok bude napr. takýto:

Ak by vám to nevyhovovalo, tak si môžete v merítku vytvoriť aj vlastné hlásenie, napr. takto:

Dátum poslednej aktualizácie = “Posledná aktualizácia reportu: ” & FORMAT(MAX(DatumCasAktualizacie[CasAktualizacie]); “dd. MMMM yyyy HH:mm:ss”)

Bude to vyzerať napr. takto:

A ak to chcete zobraziť nejak inak, alebo tam nechcete mať zobrazený názov merítka, tak choďte do maliarskeho valčeka, a upravte si to podľa seba.

Na záver ešte skryte v reporte tú tabuľku DatumCasAktualizacie, nech to užívateľov zbytočne neláka.

Takže takto si môžete za pár sekúnd doplniť do reportu čas poslednej aktualizácie. Je to geniálne jednoduché riešenie, a zároveň veľmi efektívne. Ak by ste však chceli byť ultra-precízni – a ošetriť aj ten prípad, že v Power BI Desktope sa dajú aktualizovať osobitne aj jednotlivé tabuľky – tak si doplňte do každého dotazu v Power Query nový vypočítaný stĺpec s rovnakým vzorcom, aký je uvedený vyššie. Následne v reporte spravte merítko, ktoré bude zisťovať globálne minimum zo všetkých takýchto stĺpcov. Nemusíte sa báť, že to zožerie veľa miesta v pamäti, pretože vďaka tomu, že je v každom stĺpci iba jedna unikátna hodnota, tak sa to skomprimuje na zopár kilobajtov. Bude to trochu dlhšie riešenie, ale keď to chcete mať pokryté do poslednej bodky, tak to takto musíte spraviť. Vo väčšine prípadov si však vystačíte s riešením vyššie, pretože v drvivej väčšine prípadov vám to dá úplne rovnaký výsledok. A je to nepomerne jednoduchšie.

Takže takto si viete zobraziť v reporte dátum a čas poslednej aktualizácie. Stačí iba využiť, ako funguje interne report, a v tomto prípade najmä Power Query, a máte to hotové za pár sekúnd. A aj zdanlivo nepodporovaná funkcia zrazu pribudne do reportu cobydup 🙂