Power BI a SAP – pripojenie priamo k SAP-u z Power BI

SAP je systém používaný snáď v každom korporáte, a reportovať dáta z neho v Power BI či iných nástrojoch je celkom bežnou požiadavkou. Napriek tomu sa však aj 21. storočí väčšina užívateľov musí spoliehať na kostrbaté riešenia z počítačového praveku, ako pravidelný export dát do Excelu či CSV a následný import dát do Power BI. Ide to však aj napriamo, a dáta zo SAP-u viete dostať v reálnom čase do Power BI aj Excelu. Z každého jedného modulu SAP-u. A s vašim administrátorom SAP-u to nastavíte na zopár kliknutí myši.

Ako sa bežne reportuje zo SAP-u v Power BI

Bežné riešenie, ako dostať dáta zo SAP-u, pripomína dávny počítačový pravek. Dáme dodávateľovi za ťažké peniaze naprogramovať extraktor dát zo SAP-u, kde musíme samozrejme prejsť korporátnym utrpením v podobe spísania detailných požiadaviek, vrátane detailného popisu tabuliek a zoznamu stĺpcov z nich, ktoré chceme. Následne počkáme zopár týždňov či mesiacov, a dostaneme prvé súbory vo formáte CSV, či nebodaj Excely. Nasleduje bojovanie so správnym exportom/importom diakritiky, špeciálnych znakov, koncami riadkov, a podobne. Prípadne si spomenieme, že sme zabudli ešte na 2 dôležité stĺpce, ktoré po novom šéf potrebuje tiež zobrazovať v reporte. A celá šaráda začína odznova.

Po “krátkom” období roka až dvoch máme export zo SAP-u a import do Power BI relatívne vychytaný. A sme radi, že aspoň raz za týždeň dostaneme čerstvé dáta, a môžeme z nich spraviť report.

Ak ste si mysleli, že preháňam, tak sa porozprávajte s niekým, kto si to celé odžil. Povie vám, že ide ešte o optimistickú verziu. Niekedy sa totižto nepodarí ani toto. Existuje však oveľa lepšie riešenie. A stačí pritom len trocha ochoty.

OData protokol – “zázrak” pre SAP z 21. storočia

Takmer každá jedna inštalácia SAP-u obsahuje v sebe SAP NetWeaver, ktorého účelom je, okrem iného, sprístupniť dáta zo všetkých modulov SAP-u pre všetky ostatné aplikácie. SAP Netweaver umožňuje okrem protokolu RFC používať aj protokol OData, ktorý je v 21. storočí štandardizovaným protokolom na prenos dát medzi systémami.

Pomocou protokolu OData vedia komunikovať všetky dnešné analyticko-reportingové nástroje. Či už je to Excel, Power BI, Power Query, PowerPivot, SQL Server Reporting Services, SSAS Tabular, Azure Analysis Services, SQL Server Integration Services, SharePoint, PowerShell, a mnoho ďalších. Je to široko používaný štandard, dokonca aj v cloude Microsoftu na vyťahovanie dát z takmer všetkých jeho cloudových systémov. Pomocou protokolu OData viete získať dáta napr. zo SharePointu, Project Serveru, či dokonca aj SQL Serveru. A netreba na to nikde nič inštalovať.

Z technického hľadiska je protokol OData štandardizovaná komunikácia v textovej forme cez protokol HTTP, resp. jeho zabezpečenú verziu HTTPS. Takže netreba ani nikde vo firme vybavovať bezpečnostné výnimky, prestupy na firewalloch, a podobne. Používa to na prenos rovnaký protokol ako webové stránky, takže všade, kde viete otvoriť ľubovoľnú webovú stránku, by mal fungovať aj prenos dát cez protokol OData.

Ako na prenos dát zo SAP do Power BI cez protokol OData – konfigurácia na strane SAP-u

Použitie protokolu OData treba najprv povoliť v SAP-e. A nie je to nič ťažké, ani na to netreba žiadne licencie – ani na strane SAP-u, ani pre užívateľov. Je to zabudovaná funkcionalita v SAP Netweaver. Čiže potrebuje to povoliť iba váš administrátor SAP-u. Ak tak náhodou už nespravil.

V prvom kroku potrebuje váš admin SAP-u nakonfigurovať OData service v SAP-e. Je to potrebné nastaviť cez hore uvedený SAP NetWeaver, a konkrétne návody nájde váš admin SAP-u na týchto odkazoch:

SAP Netweaver Gateway:
https://help.sap.com/viewer/ccc9cdbdc6cd4eceaf1e5485b1bf8f4b/7.5.9/en-US/11853413cf124dde91925284133c007d.html

SAP Gateway:
https://help.sap.com/viewer/68bf513362174d54b58cddec28794093/7.5.9/en-US/7db1ea508f88bb7ee10000000a445394.html

Ako vytvoriť OData Service v SAP Fiori Server-i:

https://blogs.sap.com/2017/11/19/sap-fiori-odata-service-creation/

Treba vytvoriť najmenej jeden OData service, a dať doň každú tabuľku/pohľad, ktoré chcete mať sprístupnené cez tento OData service. A to je všetko, čo je potrebné nastaviť na strane SAP-u. Ak to tam teda ešte nikto nenastavoval. A adresu tohto OData service, ktorá sa nazýva OData endpoint, vám potom dá váš SAP admin. Je to klasická URL adresa vo formáte “https://nazovSapServeru/sap/opu/odata/……”. Tú použijete na pripojenie sa v ďalšom kroku.

Načítanie dát cez OData zo SAP-u do Power BI a Excelu

Ak už máte v SAP-e nastavený OData service, tak sa môžete naň pripojiť v ľubovoľnom analytickom nástroji, či už je to Power BI, Excel, či čokoľvek čo má v sebe zabudované Power Query, či čokoľvek čo vie načítať dáta pomocou protokolu OData. Spravíte to nasledovne:

1) V Power BI Desktope kliknite v hlavnom menu na tlačítko “Získať údaje”, a vyberte konektor “Informačný kanál OData”:

2) V Exceli kliknite v hlavnom menu na záložku Údaje” => Získať údaje” => Z iných zdrojov” => Z informačného kanála OData”:

V oboch prípadoch vám zobrazí nasledovné okno z Power Query, do ktorého zadajte URL adresu OData service z predchádzajúceho kroku, a kliknite na tlačítko “OK”:

V ďalšom kroku vyberte naľavo položku “Základné” (angl. “Basic”), a zadajte svoje prihlasovacie meno a heslo do SAP-u. Potom stlačte tlačítko “Pripojiť”:

Poznámka: v niektorých silno zabezpečených inštaláciách SAP-u sa môžu stať nasledovné veci, ktoré môžu skomplikovať prihlásenie do SAP-u:

  1. môže byť potrebné prihlásiť sa na počítači s Power BI Desktopom najprv cez aplikáciu SAP LOGON, aby sa otvoril komunikačný prestup cez sieť. Nezabudnite, že v takomto prípade pri nastavení automatickej aktualizácie dát v reporte Power BI musíte pred každým jej spustením zabezpečiť automatické prihlasovanie k SAP-u cez SAP LOGON cez nejaký automatizačný nástroj (napr. cez Power Automate Desktop). Ak používate vnútrofiremný Power BI Report Server, tak to treba nastaviť na tom serveri kde beží Power BI Report Server. Ak používate cloudové Power BI, tak je potrebné vynútiť automatickú aktualizáciu dát cez Bránu údajov Power BI, a na tom počítači s touto bránou zabezpečiť pred každou aktualizáciou dát automatické prihlásenie k SAP-u cez SAP LOGON.
  2. vaša inštalácia SAP NetWeaver môže mať zakázanú Basic autentizáciu, a namiesto toho budete musieť ísť cez autentizáciu OAuth 2.0. V takom prípade myslite na 2 veci: A) pri prihlasovaní vyššie namiesto prihlásenia typu “Základné” bude treba vybrať “Konto organizácie”, alebo nájsť iné náhradné riešenie (napr. viackrokovú autentizáciu cez OAuth 2.0 cez vlastný konektor Power Query v Power BI), a za B) vnútrofiremný Power BI Report Server nepodporuje prihlásenie typu OAuth 2.0, funguje to iba v cloude Power BI.

Ak sa vám podarí prihlásiť k SAP-u a danému OData service, tak by sa vám v Power Query mal zobraziť klasický Navigátor, ktorý zobrazí zoznam všetkých tabuliek dostupných cez tento OData service:

Tam potom stačí už len kliknúť na danú tabuľku, z ktorej chcete údaje, kliknúť na tlačítko “Načítať”, a voaláááááá, máme dáta zo SAP-u v Power BI!

Pokročilé možnosti OData endpointu pre SAP

Pre pokročilejších užívateľov je možnosť zadať do URL adresy OData service-u ďalšie parametre, ak chcete vrátiť napríklad len výsek z dát, deltu dát od posledného načítavania dát, stránkovať dáta, alebo len špecifikovať, že chcete výstupné dáta vo formáte XML, JSON alebo XLSX. Aktuálnu dokumentáciu ku všetkým možnostiam nájdete na tomto odkaze:

https://help.sap.com/docs/SAP_NETWEAVER_750/ccc9cdbdc6cd4eceaf1e5485b1bf8f4b/50f4ee6253134d3cafa25b9444f0c5a9.html?version=7.5.9&locale=en-US

Bezpečnosť dát cez OData

Protokol OData nerieši bezpečnosť dát. Tú rieši SAP, keď sa cez OData dotazujete na dáta z neho. Vo všeobecnosti, cez OData sa neviete dostať pod tým istým užívateľom k väčšej množine dát, ako by ste sa pod tým istým užívateľom dostali priamo v SAP-e. Cez protokol OData uvidíte presne len tie dáta, ako by ste videli pod tým istým užívateľom v SAP-e. S jediným rozdielom – prenos dát cez OData sa dá selektívne zakázať, ak by s tým bol problém. Napríklad ak by užívatelia preťažovali servery SAP-u, alebo ak by išlo o príliš citlivé dáta, ktoré nesmú opustiť SAP. Inak je bezpečnosť dát úplne rovnaká, 1:1, ako priamo v SAP-e.

Výhody a nevýhody SAP cez OData s Power BI

Prvou obrovskou výhodou je to, že nemusíte na svojom počítači nič inštalovať, nastavovať ani povoľovať. Takisto nemusíte na to kupovať ani žiadne dodatočné licencie.

Keď používate protokol OData na načítanie dát cez Power Query do Power BI či Excelu, tak máte automaticky k dispozícii skvelú funkcionalitu Power Query – query folding. Ak napríklad potrebujete naimportovať len vyfiltrované dáta, alebo zoskupené dáta, alebo len prvých 1000 riadkov a podobne, tak nemusíte ťahať všetky dáta k sebe a potom ich u seba filtrovať či inak upravovať. Stačí v Power Query nastaviť filtrovanie/zoskupovanie a pod., a Power Query si automaticky cez OData vyžiada priamo od SAP-u odfiltrované/zoskupené dáta. Čo sa prejaví v oveľa rýchlejšej odozve zo SAP-u, a oveľa menej to bude zaťažovať aj SAP. Čiže si budete môcť dovoliť oveľa častejšie spúšťať aktualizácie dát zo SAP-u, pri oveľa menšom vyťažení SAP-u.

Problémy s diakritikou či špeciálnymi znakmi takisto zmiznú. Protokol OData je stavaný už od začiatku na správny prenos všetkých znakov štandardu Unicode, takže všetko sa vám na prvýkrát stiahne v poriadku do Power BI či Excelu.

Takisto odpadne celá tá šaráda s programovaním rôznych extraktorov, a zostane vám omnoho viac peňazí v budgete. Prístup cez OData vie váš admin SAP-u nastaviť zadarmo, a teda netreba za to nič platiť. Vaša firma za to už zaplatila relatívne štedro v inštalácii SAP-u, tak prečo platiť viac? Vášho dodávateľa to asi veľmi nepoteší, ale váš šéf na to určite s radosťou pristúpi.

Protokol OData je však vhodný na prenos relatívne malého množstva dát, cca. do 1 milióna riadkov. Nie že by sa nedalo cez neho preniesť aj viac riadkov, len nie je to zrovna vhodný protokol na prenos masívneho množstva dát. Takže ak sa zmestíte orientačne do 1 milióna riadkov, tak je to fajn. Pretože podľa mojich skúseností trvá prenos 1 milióna riadkov zo SAP-u cez OData do Power BI okolo 1 hodiny. Konkrétne časy závisia samozrejme od rýchlosti vášho SAP-u. Pre väčšie množstvá údajov už prenos dát môže trvať aj niekoľko hodín. Takže v takýchto prípadoch je lepšie použiť vlastné konektory pre SAP, alebo priame pripojenie na SAP HANA, ako je uvedené nižšie. Prípadne môžete nastaviť inkrementálnu aktualizáciu dát v Power BI, alebo použiť pokročilé možnosti OData endpointu vyššie na sťahovanie delty dát (rozdielov od posledného načítania dát).

Vlastné konektory Power BI pre SAP

Ak potrebujete ťahať zo SAP-u do Power BI väčšie množstvá údajov, nad 1 milión riadkov, či nebodaj bleskurýchlo stiahnuť hoci aj ten 1 milión riadkov, tak na to už protokol OData nie je vhodný. Ak napríklad potrebujete stiahnuť celú účtovnú knihu (modul GL), tak tam sú bežne už miliardy riadkov, a to by ste sa cez OData nikdy nedočkali konca.

Na vysokorýchlostné prenosy sa používa protokol RFC, a komunikáciu cez neho je potrebné už naprogramovať. Môže sa na to podujať každý schopný programátor, ale lepšie je zakúpiť si predprogramované konektory pre SAP do Power BI. Najlepší konektor vyrába švajčiarska spoločnosť Theobald Software (viac detailov na tomto odkaze), a ďalšie konektory pre Power BI poskytuje napr. aj spoločnosť CData (viac detailov na tomto odkaze). Cena takýchto konektorov je okolo 2-15 tisíc EUR/užívateľa, veľakrát ešte pre každé prostredie zvlášť (development, UAT, prod), takže väčšinou sa to kupuje len pre 1 technického užívateľa. Výhodou však je odladenosť a stabilita riešenia, technická podpora zahrnutá v cene, a najmä rýchlosť prenosov v rozmedzí státisícov až miliónov riadkov za sekundu. Čo pri takýchto riešeniach nie je až taká horibilná položka.

Pripojenie Power BI cez SAP HANA

Alternatívne sa dá pripojiť z Power BI aj Excelu do SAP-u priamo na jeho databázu. Väčšina dnešných inštalácií SAP beží na databázovom systéme SAP HANA, a Power Query v Power BI aj Exceli má v sebe zabudovaný konektor pre SAP HANA. Výhodou je podpora režimu DirectQuery či query foldingu. Nevýhodou je potreba kupovať užívateľské licencie na priamy prístup do SAP HANA, ktorých cena je okolo 5 tisíc eur za užívateľa. Platí sa samozrejme len za tých užívateľov, ktorí využívajú takýto prístup.

Rýchlosť prenosu dát je porovnateľná s vlastnými konektormi Power BI pre SAP – v státisícoch až miliónoch riadkov za sekundu. S bonusom, že na rozdiel od vlastných konektorov Power BI sa konektor pre SAP HANA nachádza aj v Power Query v Exceli 365/2021/2019/2016 (iba edície v rámci predplatného Office 365 E1/E3/E5), a v SSAS Tabulare 2017+. Tento spôsob pripojenia v Power BI má zmysel zvyčajne len pre obrovské tabuľky, ktoré sa neoplatí ťahať do Power BI, a namiesto toho je lepšie sa na ne dotazovať dynamicky cez režim DirectQuery. Treba si však dať pozor na užívateľské licencie k SAP HANA.

Dáta zo SAP HANA načítate jednoducho, v závislosti od toho, kde ste:

1) v Power BI Desktope kliknite v hlavnom menu na tlačítko “Získať údaje”, v zozname konektorov vyberte konektor “Databáza SAP HANA”, a kliknite na tlačítko “Pripojiť”:

2) v Exceli kliknite v hlavnom menu na záložku “Údaje”, v nej na tlačítko “Získať údaje”, a pod ním na položku “Z databázy” => “Z databázy SAP HANA”.

Na to, aby fungovalo pripojenie, však musíte najprv nainštalovať vhodnú klientskú databázovú knižnicu pre SAP HANA (SAP HANA Client 2.0 alebo novšia) zo stránok SAP Development Tools, a nakonfigurovať ju pre použitie cez ODBC. Viac informácií nájdete v oficiálnej dokumentácii Power BI pre konektor SAP HANA.

Iné spôsoby pripojenia

Pri SAP-e ešte existuje nespočetné množstvo ďalších spôsobov, ako sa k nemu pripojiť a získať z neho dáta. Sú to napríklad rôzne pluginy pre Excel, exporty z rôznych nástrojov a podobne, ale nebudeme sa im tuto venovať. Z pohľadu Power BI nemajú až tak veľký zmysel.

Na záver

Takto sa teda viete pripojiť k SAP-u. Spôsobov je veľa, a určite poteší možnosť pripojenia cez protokol OData. Ktorá je v SAP-e už od nepamäti, a ktorú pozná každý dobrý admin SAP-u. Ak nepotrebujete ťahať gigantické dáta zo SAP-u, tak protokol OData vám poslúži viac ako dobre. Povoliť ho nič nestojí, netreba naň žiadne dodatočné licencie, a funguje v každom lepšom analytickom a reportingovom nástroji. Tak čo si ešte želať viac? 🙂

4 komentárov k “Power BI a SAP – pripojenie priamo k SAP-u z Power BI

  • 18. januára 2023 at 14:40
    Permalink

    Dakujem ! Toto je presne co z Power Bi robi tak uzasny tool, nie stahovanie a uploadovanie zo SAPu. Skvelo napisane, jasne a k veci, ako vzdy

    Odpovedať
    • 18. januára 2023 at 17:21
      Permalink

      Rado sa stalo 🙂

      Odpovedať
  • 18. januára 2023 at 15:01
    Permalink

    Aký typ licencie je potrebný pre technický účet, pod ktorým sa pripájam cez OData? ďakujem za článok

    Odpovedať
    • 18. januára 2023 at 17:18
      Permalink

      Podľa SAP dokumentácie, ktorá je uvedená v článku, vraj netreba žiadnu licenciu. Jediná výnimka, kedy ju potrebujete, je, keď sa pripájate cez OData do SAP BW, ale to asi nebudete robiť, keď máte na to v Power BI priamo konektor pre SAP BW.

      Odpovedať

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *