Záhadné chyby pri integrácii Power BI s Power Apps

Pred nejakým časom som narazil na zaujímavé chybové hlásenia pri integrácii Power BI s Power Apps. Bežná rutinná činnosť sa zrazu zmenila v dlhé hľadanie chyby, a ešte o to viac zaujímavejšie riešenie. Ktoré prekvapí nejedného skúseného veterána.

Power Apps sa v Power BI používajú na rozšírenie reportov o množstvo ďalšej funkcionality. Napríklad zapisovanie do zdrojových dát a následnú aktualizáciu dát v reporte, pri plánovaní či analýze scenárov, ako som to už spomínal v tomto článku či na tomto webinári. A v tomto prípade som už X-tý krát nastavoval presne tento scenár, ktorý až na pár výnimiek je záležitosťou zopár minút.

Ako sa rutina pri integrácii Power BI s Power Apps zmenila v zásadný problém

Keď som vložil vizuál Power Apps do reportu, a nastavil príslušné polia prenášané z reportu do aplikácie Power Apps, tak prišiel obligátny krok – vybratie hotovej alebo vytvorenie novej aplikácie. Vizuál Power Apps sa však v tomto kroku začal chovať divne:

Chyba pri integrácii Power BI s Power Apps - výber aplikácie

Všimnite si nenápadnú chybovú hlášku navrchu okna – “Chyba pri načítavaní prostredí“, alebo v anglickej verzii “Error loading environments“. Čiže nepodarilo sa načítať prostredia z Power Apps. OK, stáva sa, nič nie je bez bugov. Tak som teda zatvoril a znova otvoril prehliadač aj report Power BI, a kroky zopakoval. V tomto prípade tam už prostredia načítalo, a teda som mohol aj vybrať aplikáciu Power Apps. Po výbere aplikácie sa otvorilo Power Apps Studio na novej karte, a dostal som ešte lepšiu hlášku“Error: There was a problem adding your data source. Please try again.” :

Chyba pri integrácii Power BI s Power Apps - prechod do Power Apps

Čiže chyba pridávania dátového zdroja Power BI do Power Apps. A pokračovanie chybovej hlášky tiež moc informatívne nebolo:

UnableToReachServer. error: code: InvalidAuthenticationToken, message: The received access token is invalid.

Občas vyskočilo aj niečo informatívnejšie:

Failed to obtain authoring session token from RP. Cannot read property ‘payload’ of null

UnableToReachServer. {“error”:{“code”:”InvalidAuthenticationToken”,”message”:”The received access token is not valid.”}}

Takže asi niečo s prístupovými právami. OK, STÁVA SA, a teda znova vypnutie/zapnutie prehliadača, a zopakoval som celý proces znova. A chybová hláška znova tá istá. Tak som teda ešte 2x skúsil “try again”, a nezabralo. A “včul babo raď”.

Hľadanie problému a riešení

Najprv som podozieral prehliadač. Vyskúšal som teda vymeniť svoj Firefox za Chrome. Potom za Operu. Nič. To isté. Skúsil som komplet vymazať cache, históriu a všetko čo bolo v prehliadačoch. Nepomohlo.

Podozrenie teda padlo na počítač. Na danom stroji bežali Windows 7. Keďže Power BI aj Power Apps išli cez podporované prehliadače, tak by to nemal byť problém. Ale aj tak som to preveril. Vyskúšal som to na tom istom stroji vo virtuále s Windows 8. Tam to nešlo tiež. V operačnom systéme to teda nebolo.

Po hodine hľadania a skúšania všetkého čo ma napadlo, som teda pokorne sadol za všemocný Google. Vyhľadal som chybové hlášky, našlo kopec článkov a ešte väčší kopec “riešení”, ale ani jedno nezafungovalo. Všetko som mal v počítači nastavené správne. Aj v prehliadači, aj v konte Power BI, aj v konte Power Apps, aj v konte Office 365 (pardón, MS 365 po novom). Dokonca aj licencie boli správne nastavené. Všetko vraj bolo v poriadku. Len chyba nie a nie odísť. A noc sa krátila.

Po ďalších 2 hodinách sa pridal ďalší problém – prihlásenie do Power Apps z Chromu najprv začalo haprovať, a neskôr ani nešli otvoriť aplikácie Power Apps. Po nejakej pol hodinke dokonca nešlo ani prihlásiť sa do Power BI. S geniálne výpovednou hláškou “Nepodarilo sa prihlásiť“. Super. V jednom prehliadači to ide, v druhom nie. Soudruzi inženýři z NDR znova někde udělali chybu. A ani Google nevie, kde.

Ako sa to podarilo vyriešiť

Tak som teda použil najsilnejší kaliber – vykašľal som sa na to, a išiel na druhý počítač dokončiť inú prácu. Prácu som dokončil, a potom som sa vrátil na ten prvý počítač. A pozerám, že je tam nejaký divný čas. Na druhom počítači už bola takmer polnoc, a na tom prvom bolo niečo pred 23:00 hod.. Že by som si zle zapamätal čas? Som už prepracovaný? Alebo znova v Matrixe niečo pokazili? Tak som sa teda vrátil naspäť k počítaču číslo 2. A naozaj tam bolo o hodinu viac. A na počítači č. 1 o hodinu menej. Hmmmm. Pred časom sa menil zimný čas na letný, a asi to ešte neaktualizovalo. Tak som aspoň išiel do nastavení Windowsu, a ručne spustil aktualizáciu času.

A potom som zo srandy vyskúšal znova prihlásenie do Power BI a – išlo to. Tak som sa prihlásil aj do Power Apps, a išlo to. Aj všetky aplikácie, aj ich editor. Tak pozor – čo sa sakra práve stalo? Neveriacky som vyskúšal zintegrovať report Power BI s Power Apps, a prešlo aj to, na prvý pokus! Nie, to nemôže byť taká blbosť. Toto mi nikto neuverí. Ale predsa.

V čom bola chyba pri integrácii Power BI s Power Apps

Chyba nakoniec bola naozaj v zle nastavenom systémovom čase na tom počítači. A nepriamo mi to hovorila aj tá chybová hláška vyššie. Problém však nebol v prístupových právach, ako písalo to hlásenie. Problém bol v tom, že Power BI pri integrácii s Power Apps vygeneruje token, ktorý následne predá Power Apps, ktoré ho pomocou neho autentizujú a zároveň vás prihlásia, ak ste ešte neboli prihlásení. A súčasťou každého tokenu je aj dátum a čas expirácie. Čiže dokedy je platný. Až o niekoľko dní neskôr som sa dočítal niekde inde, že tokeny v cloude Azure platia cca. 5-15 minút od ich vydania. A Power Apps ich dokonale presne overovali.

Power BI vydal token s miestnym časom z môjho počítača – povedzme 22:00, ale Power Apps token overovalo voči skutočnému času v časovej zóne môjho počítača, kde bolo už 23:00, čiže už takmer hodina po uplynutí platnosti tokenu. Preto to odmietalo prihlásiť cez token do Power Apps. Aj keď, mohlo to vypísať chybovú hlášku napr. “token expired“, ako je tomu v inom softvéri od MS, a nie všeobecnú hlášku “token is invalid“. Asi chceli byť super bezpeční. Tak bezpeční, že vám ani nevypíšu, preto overovanie tokenu zlyhalo. Čo už.

Vyriešilo to aj problém s prihlasovaním

Rovnaký problém bol aj pri klasickom prihlasovaní do Power Apps aj Power BI. A aktualizácia systémového času ten istý problém vyriešila. Aj keď dôjsť na to v tomto prípade podľa chybovej hlášky “prihlásenie sa nepodarilo” by vyžadovalo špeciálne schopnosti Majstra Yodu. Darmo, sekuriťáci asi mali bezpečnostné orgie pri navrhovaní chybových hlášok.

Tak či tak, problém sa podarilo vyriešiť, a riešenie bolo na jednej strane triviálne, a na druhej strane asi na poslednom mieste, kde by ste to hľadali. Ale stáva sa. Aj majster kováč sa občas utne, či ako to bolo… Každopádne, problém vyriešený, a do budúcnosti ostávajú už iba úsmevné spomienky. Takže nabudúce, ak budete mať problém v cloude s prihlásením, a nebudete vedieť kde je, tak skúste si najprv skontrolovať, či máte na počítači nastavený správny systémový čas 🙂