Riešenie problémov s konektorom SAP Business Warehouse

Tento článok poskytuje situácie na riešenie problémov (a možné riešenia) pre prácu s konektorom SAP Business Warehouse (BW).

Zhromažďovanie pokročilých stôp SAP BW

Poznámka

Zhromažďovanie stopy dotazu odoslaného na server SAP BW vyžaduje niektoré možnosti a nastavenia, ktoré je možné poskytnúť iba pomocou Power BI Desktop. Ak ešte nemáte kópiu Power BI Desktop, kópiu môžete získať v Centre sťahovaniasoftvéru spoločnosti Microsoft . Pomocou tejto bezplatnej verzie môžete nastaviť všetky požadované možnosti a nastavenia pre pokročilé sledovanie.

Mnohokrát, keď sa vyskytne chyba, môže byť výhodné zhromaždiť stopu dotazu, ktorý bol odoslaný na server SAP BW a jeho odpoveď. Nasledujúci postup ukazuje, ako nastaviť pokročilé stopy problémov, ktoré sa vyskytujú pomocou konektora SAP BW.

  1. Zatvorte Power BI Desktop, ak beží.

  2. Vytvorte novú premennú prostredia:

    1. V ovládacom paneli Windows vyberte položku > Systémový rozšírený systémový Nastavenia.

      Môžete tiež otvoriť príkazový riadok a zadať sysdm.cpl.

    2. V časti Vlastnosti systému vyberte kartu Rozšírené a potom vyberte položku Premenné prostredia.

    3. V časti Premenné prostredia v časti Systémové premenné vyberte položku Nové.

    4. V časti Nová systémová premenná zadajte pod názvom premenná PBI_EnableSapBwTracing a pod položku Hodnota premennej zadajte hodnotu True.

    5. Vyberte položku OK.

    Po aktivácii tohto rozšíreného sledovania sa v priečinku Traces vytvorí ďalší priečinok s názvom SapBw. Umiestnenie priečinka Stopy nájdete v ostatných častiach tohto postupu.

  3. Otvorte aplikáciu Power BI Desktop.

  4. Pred zachytením vymažte vyrovnávaciu pamäť.

    1. V pracovnej ploche služby Power BI vyberte kartu Súbor.
    2. Vyberte položku Možnosti a možnosti nastavenia > .
    3. V časti Globálne nastavenia vyberte položku Načítanie údajov.
    4. Vyberte položku Vymazať vyrovnávaciu pamäť.
  5. Kým ste stále v možnostiach a nastaveniach, povoľte sledovanie.

    1. V časti Globálne nastavenia vyberte položku Diagnostika.
    2. Vyberte položku Povoliť sledovanie.
  6. Kým sa stále v časti Možnosti a nastavenia > Globálnej > diagnostiky, vyberte položku Otvoriť priečinok Výpis zlyhania alebo stopy. Pred zachytením nových stôp sa uistite, že priečinok je vymazaný.

  7. Zreprodukujte problém.

  8. Po dokončení zatvorte Power BI Desktop, aby sa denníky prepláchli na disk.

  9. Novo zachytené stopy môžete zobraziť v priečinku SapBw (priečinok Traces, ktorý obsahuje priečinok SapBw, sa zobrazí výberom položky Otvoriť priečinok o zlyhaní/sledovania na stránke Diagnostika v Power BI Desktop).

  10. Uistite sa, že po dokončení deaktivujete toto rozšírené sledovanie odstránením premennej prostredia alebo nastavením PBI_EnableSapBwTracing na false.

Zbierajte pokročilé stopy SAP BW so stopami CPIC

Ak skúmate problémy s overovaním alebo jedným prihlásením (SSO), použite rovnaký postup, ako je popísané v časti Zhromažďovanie pokročilých stôp SAP BW, s výnimkou kroku 2d zadajte nasledujúce ďalšie systémové premenné a hodnoty:

  • CPIC_TRACE — 3
  • CPIC_TRACE_DIR platný — priečinok, napríklad: E:\traces\CPIC

Zvyšok procedúry zostáva rovnaký. Stopy CPIC môžete zobraziť v priečinku, ktorý ste zadali v premennej prostredia CPIC_TRACE_DIR prostredia. Môžete tiež zobraziť pravidelné stopy v priečinku SapBw.

Po dokončení sa tiež uistite, že deaktivujete toto pokročilé sledovanie, a to buď odstránením premenných prostredia alebo nastavením BI_EnableSapBwTracing na hodnotu false a CPIC_TRACE na hodnotu 0.

Vykonajte čistú inštaláciu konektora SAP .NET

Ak je potrebné preinštalovať konektor SAP .NET:

  1. Odstráňte (odinštalujte) konektor SAP .NET.

  2. Po odstránení skontrolujte, či konektor SAP .NET nie je nainštalovaný vo vyrovnávacej pamäti globálnej zostavy (GAC), a to tým, že sa uistite, že nasledujúce cesty neexistujú alebo neobsahujú DLL:

    • 32-bitový GAC:

      C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23

      C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco_utils\v4.0_3.0.0.42__50436dca5c7f7d23

    • 64-bitový GAC:

      C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23

      C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco_utils\v4.0_3.0.0.42__50436dca5c7f7d23

  3. Skontrolujte, či binárne súbory nie sú v programových súboroch. Uistite sa, že nasledujúce umiestnenia neexistujú alebo sú prázdne:

    C:\Program Files\SAP\SAP_DotNetConnector3_Net40_x64

    C:\Program Files (x86)\sap\SAP_DotNetConnector3_Net40_x86

  4. Znova nainštalujte konektor a nezabudnite vybrať možnosť Inštalovať zostavy do GAC. Odporúčame vám použiť najnovšie, 3.0.23.

Riešenie problémov s hláseniami chýb

Metóda SAP BW ErrorCode sa nenašla

Method not found: 'Int32 SAP.Middleware.Connector.RfcBaseException.get_ErrorCode()'

Táto chyba sa hodí, keď sa vyskytne chyba na serveri SAP BW a konektor SAP .NET sa pokúsi získať informácie o tejto chybe. Táto chyba však môže skrývať skutočnú chybu. Táto chyba sa môže vyskytnúť, keď:

  • Použitie starej verzie konektora SAP .NET.

  • Sú nainštalované viaceré verzie konektora SAP .NET.

  • Konektor SAP .NET bol nainštalovaný dvakrát, raz vo vyrovnávacej pamäti globálnej zostavy (GAC) a raz nie v GAC.

Ak chcete konektor preinštalovať, postupujte podľa pokynov v časti Vykonajte čistú inštaláciu konektora SAP .NET.

Tým sa problém nevyrieši, ale zadá skutočné chybové hlásenie.

Výnimka: Inicializátor typu pre "Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService' vyhodil výnimku.

Ak chcete konektor preinštalovať, postupujte podľa pokynov v časti Vykonajte čistú inštaláciu konektora SAP .NET.

Tento konektor vyžaduje jednu alebo viac ďalších súčastí

Ak sa zobrazí toto chybové hlásenie, použite nasledujúce kroky na riešenie problémov:

  1. Skontrolujte, či je verzia konektora SAP .NET nainštalovaná v správnej dĺžke bitu. Ak máte nainštalovaný Power BI Desktop 64-bitový, uistite sa, že ste nainštalovali 64-bitový konektor SAP .NET.

  2. Skontrolujte, či pri inštalácii konektora SAP .NET boli začiarknuté zostavy inštalácie do GAC. Ak chcete overiť, či je nainštalovaný GAC, otvorte Windows Explorer a prejdite na:

          C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco

    Úplná cesta môže byť napríklad:

          C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll

Ak ste nainštalovali 32-bitovú verziu konektora SAP .NET, bolo by to C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll (a budete potrebovať 32-bitovú verziu Power BI Desktop).

Ďalším spôsobom, ako skontrolovať GAC, je použiť gacutil (jedna z možností na vypnutie silného podpisovania mien). Budete ho musieť spustiť zo 64-bitového príkazového riadka. Obsah GAC môžete skontrolovať otvorením príkazového riadka, prechodom na cestu gacutil.exe a vykonaním:

      gacutil -l

Napríklad vo výstupe by ste mali vidieť:

      sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, procesorArchitecture=AMD64 sapnco_utils, Verzia =3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, procesorArchitecture=AMD64

"Žiadne RFC oprávnenie na funkciu ...*

Implementácia 2.0 vyžaduje prístup k nasledujúcim BAJ. Ak chcete vyriešiť, obráťte sa na tím základu SAP a požiadajte používateľa o povolenia pre tieto BAJ a RFC.

  • Pripojiteľnosť:

    • RFC_PING
    • RFC_METADATA_GET
  • Vykonanie MDX:

    • RSR_MDX_CREATE_OBJECT
    • BAPI_MDDATASET_CREATE_OBJECT
    • BAPI_MDDATASET_SELECT_DATA
    • BAPI_MDDATASET_DELETE_OBJECT
    • RSR_MDX_GET_AXIS_INFO
    • RSR_MDX_GET_AXIS_DATA
    • RSR_MDX_GET_CELL_DATA
    • BAPI_MDDATASET_GET_AXIS_INFO
    • BAPI_MDDATASET_GET_AXIS_DATA
    • BAPI_MDDATASET_GET_CELL_DATA
  • ExecutionMode sploštenie:

    • RSR_MDX_GET_FLAT_DATA
    • RSR_MDX_GET_FS_DATA
    • BAPI_MDDATASET_GET_FLAT_DATA
    • BAPI_MDDATASET_GET_FS_DATA
  • Streamovanie ExecutionMode:

    • BAPI_MDDATASET_GET_STREAMDATA
    • BAPI_MDDATASET_GET_STREAMINFO
  • ExecutionMode BasXml:

    • RSR_MDX_BXML_GET_DATA
    • RSR_MDX_BXML_GET_GZIP_DATA
    • RSR_MDX_BXML_GET_INFO
    • RSR_MDX_BXML_SET_BINDING
  • Metadáta:

    • BAPI_MDPROVIDER_GET_DIMENSIONS
    • BAPI_MDPROVIDER_GET_CATALOGS
    • BAPI_MDPROVIDER_GET_CUBES
    • BAPI_MDPROVIDER_GET_MEASURES
    • BAPI_MDPROVIDER_GET_HIERARCHYS
    • BAPI_MDPROVIDER_GET_LEVELS
    • BAPI_MDPROVIDER_GET_PROPERTIES
    • BAPI_MDPROVIDER_GET_MEMBERS
    • BAPI_MDPROVIDER_GET_VARIABLES
  • Informácia:

    • BAPI_IOBJ_GETDETAIL (vyžaduje sa pre zadané dimenzie (DATS, TIMS))
    • BAPI_USER_GET_DETAIL (používa sa len na sploštenie rozhrania)
    • RFC_READ_TABLE (vyžaduje sa pre názvy katalógov a určité volania premenných hodnôt)
  • Môže byť vyvolaný základným konektorom SAP .NET:

    • RFC_GET_FUNCTION_INTERFACE
    • FUNCTION_IMPORT_INTERFACE
    • DDIF_FIELDINFO_GET
    • SYSTEM_FINISH_ATTACH_GUI
    • BGRFC_DEST_CONFIRM
    • BGRFC_CHECK_UNIT_STATE_SERVER
    • BGRFC_DEST_SHIP
    • ARFC_DEST_SHIP
    • RFC_FUNCTION_SEARCH
    • RFC_SYSTEM_INFO
    • RFC_SET_REG_SERVER_PROPERTY
    • RFC_DOCU
    • SEO_GET_CLIF_REMOTE
    • SYSTEM_PREPARE_ATTACH_GUI
    • API_CLEAR_TID
    • ARFC_DEST_CONFIRM

Metóda sa nenašla "Int32 SAP. Middleware.Connector.RfcBaseException.get_ErrorCode()

Skontrolujte, či je konektor SAP .NET správne nainštalovaný. Pozrite si časť Vykonávanie čistej inštalácie konektora SAP .NET.

Táto chyba sa zobrazí, keď je nainštalovaná verzia v GAC nižšia ako očakávaná verzia 3.0.18.0. SAP Note 2417315 diskutuje o tomto scenári.

Vlastnosti reťazca pripojenia nastavené konektorom

Keď sú k dispozícii názov partnera SNC aj knižnica SNC, konektor sap BW Application Server (implementácia 2.0) nastaví tieto vlastnosti v reťazci pripojenia:

  • SNC_MODE — SncModeApply
  • SNC_LIB — so zadanou cestou knižnice; ak ide o premennú prostredia, v tomto bode sa rozšíri
  • SNC_PARTNERNAME s — poskytnutou hodnotou
  • SNC_QOP = RfcConfigParameters.RfcSncQOP.Default

Používajú sa pre pripojenia SAP BW Application Server aj SAP BW Message Server.

Pre oba typy pripojení konektor nastaví:

  • LANG (jazyk)
  • KLIENT

Pre pripojenie sap BW Application Server konektor nastaví:

  • ASHOST (AppServerHost)
  • SYSNR (Číslo systému)

Pre pripojenia SAP BW Message Server konektor nastaví:

  • MSHOST (MessageServerHost)
  • SYSID (SystemID)
  • SKUPINA (Prihlasovacia skupina)

Neplatný príkaz MDX s <internal>

Táto chyba pochádza priamo zo servera SAP BW. Implementácia 1 konektora, založená na Netweaver RFC, nevystavila tieto chyby používateľovi a namiesto toho vrátila prázdnu množinu výsledkov.

Tento problém je prerokovaný v nasledujúcich poznámkach SAP Notes. Prístup k týmto poznámkam vyžaduje používateľa S. Ak chcete použiť príslušné opravy tohto problému, obráťte sa na tím SAP Basis.

Okrem toho v prípade iných podobných chýb môžete skontrolovať obsah nasledujúcich poznámok SAP a použiť ich podľa potreby pre vaše prostredie:

Problémy a obmedzenia

Zmenou názvov premenných na kocke SAP sa zostava DirectQuery dostane do zlomeného, neopraviteľného stavu

Vyskytujú sa nasledujúce príznaky:

  • Chybové hlásenie—[Expression.Error] The import [XXXX] matches no exports.

  • V denníkoch—Message: [Expression.Error] The key didn't match any rows in the table.

  • StackTrace:

    at Microsoft.Mashup.Engine1.Runtime.TableValue.get_Item(Value key)
    at Microsoft.Mashup.Engine1.Library.Cube.CubeParametersModule.Cube.ApplyParameterFunctionValue.GetParameterValue(CubeValue cubeValue, Value parameter)
    at Microsoft.Mashup.Engine1.Library.Cube.CubeParametersModule.Cube.ApplyParameterFunctionValue.TypedInvoke(TableValue cube, Value parameter, Value arguments)
    Detail: [Key = [Id = \"[!V000004]\"], Table = #table({...}, {...})]
    

Jedným z možných riešení je:

  1. Vytvorte kópiu súboru PBIX (ako sa veci môžu zlomiť).

  2. Pridajte premennú prostredia nazývanú PBI_AlwaysEnableQueryEditor s hodnotou true. Toto nastavenie umožní prístup k editoru dotazov aj v režime DirectQuery.

    Poznámka

    Táto premenná prostredia nie je podporovaná, takže by sa mala používať len tak, ako je uvedené tu.

  3. Kliknite pravým tlačidlom myši na dotaz "Kocka" a vyberte položku Rozšírený editor.

  4. Dotaz tam by mal mať riadok, ktorý začína na "{Cube.ApplyParameter, "[! V000004]" (chýbajúci parameter). Odstráňte tento riadok.

  5. Vyberte položku Hotovo.

  6. Zatvorte editor power query.

  7. Obnovte ovplyvnený vizuál.

Ak vyššie uvedené riešenie nefunguje, jedinou alternatívnou opravou je opätovné vytvorenie zostavy.

Číselné údaje zo SAP BW

Poznámka

Nasledujúce informácie sa používajú len pri použití implementácie 1.0 konektora SAP BW alebo implementácie 2.0 konektora SAP BW s režimom sploštenia (ak ExecutionMode=67).

Používateľské kontá v SAP BW majú predvolené nastavenia spôsobu formátovania desatinných hodnôt alebo hodnôt dátumu a času, keď sa zobrazujú používateľovi v sap gui.

Predvolené nastavenia sa uchovávajú v systéme SAP v používateľskom profile pre konto a používateľ môže zobraziť alebo zmeniť tieto nastavenia v SAP GUI pomocou cesty ponuky Vlastné > údaje používateľského profilu systému > .

Ponuka nastavení desatinnej notácie.

Power BI Desktop dotazy systému SAP pre desatinné číslo pripojeného používateľa a používa tento notation formátovať desatinné hodnoty v údajoch zo SAP BW.

Aplikácia SAP BW vráti desatinné údaje so znakom , (čiarka) alebo . (bodka), ktoré slúžia ako oddeľovače desatinných miest. Ak chcete určiť, ktoré z nich má aplikácia SAP BW používať ako oddeľovač desatinných miest, ovládač používaný aplikáciou Power BI Desktop zavolá funkciu BAPI_USER_GET_DETAIL. Toto volanie vráti štruktúru s názvom DEFAULTS, ktorá obsahuje pole s názvom DCPFM, v ktorom je uložený zápis formátu desatinných čísel. Pole nadobúda jednu z nasledujúcich hodnôt:

  • ' ' (medzera) = desatinné miesto je oddelené čiarkou: N.NNN,NN
  • 'X' = desatinné miesto je oddelené bodkou: N,NNN.NN
  • 'Y' = desatinné miesto je N NNN NNN,NN

Zákazníci, ktorí nahlásili tento problém, zistili, že hovor BAPI_USER_GET_DETAIL zlyháva pre konkrétneho používateľa, ktorý zobrazuje nesprávne údaje, s chybovým hlásením podobným nasledujúcemu správaniu:

   You are not authorized to display users in group TI:
      <item>
         <TYPE>E</TYPE>
         <ID>01</ID>
         <NUMBER>512</NUMBER>
         <MESSAGE>You are not authorized to display users in group TI</MESSAGE>
         <LOG_NO/>
         <LOG_MSG_NO>000000</LOG_MSG_NO>
         <MESSAGE_V1>TI</MESSAGE_V1>
         <MESSAGE_V2/>
         <MESSAGE_V3/>
         <MESSAGE_V4/>
         <PARAMETER/>
         <ROW>0</ROW>
         <FIELD>BNAME</FIELD>
         <SYSTEM>CLNTPW1400</SYSTEM>
      </item>

Ak chcete vyriešiť túto chybu, používatelia musia požiadať svojho správcu SAP, aby udelil používateľovi SAP BW, ktorý sa používa v službe Power BI, právo na vykonanie BAPI_USER_GET_DETAIL . Oplatí sa tiež overiť, či má používateľ požadovanú hodnotu poľa DCPFM, ako je to popísane vyššie v tomto riešení problémov.

Pripojiteľnosť pre dotazy SAP BEx

V aplikácii Power BI Desktop môžete vykonávať dotazy BEx tak, že povolíte špecifickú vlastnosť, ako je to znázornené na nasledujúcom obrázku:

Povoliť uvoľnenie pre externý prístup.

Obmedzenie rozhrania MDX

Obmedzenie rozhrania MDX spočíva v tom, že dlhé premenné strácajú svoj technický názov a nahradia sa V00000#.

Žiadna ukážka údajov v okne Navigátora

V niektorých prípadoch sa v dialógovom okne Navigátor nezobrazuje ukážka údajov a namiesto toho poskytuje odkaz na objekt, ktorý nie je nastavený na inštanciu chybového hlásenia objektu.

Používatelia programu SAP potrebujú prístup k špecifickým modulom funkcie BAPI na získanie metaúdajov a načítanie údajov z InfoProviders SAP BW. Tieto moduly zahŕňajú:

  • BAPI_MDPROVIDER_GET_CATALOGS
  • BAPI_MDPROVIDER_GET_CUBES
  • BAPI_MDPROVIDER_GET_DIMENSIONS
  • BAPI_MDPROVIDER_GET_HIERARCHYS
  • BAPI_MDPROVIDER_GET_LEVELS
  • BAPI_MDPROVIDER_GET_MEASURES
  • BAPI_MDPROVIDER_GET_MEMBERS
  • BAPI_MDPROVIDER_GET_VARIABLES
  • BAPI_IOBJ_GETDETAIL

Ak chcete vyriešiť tento problém, overte, či má používateľ prístup k rôznym modulom MDPROVIDER, ako aj k modulu BAPI_IOBJ_GETDETAIL. Vzhľadom na možný výskyt a potrebu riešenia tohto alebo podobných problémov môžete povoliť sledovanie. Vyberte položky Súbor > Možnosti a nastavenia > Možnosti. V časti Možnosti vyberte položku Diagnostika a potom vyberte možnosť Zapnúť sledovanie. Skúste načítať údaje zo SAP BW, keď je sledovanie aktívne a preskúmajte súbor sledovania, kde nájdete ďalšie podrobnosti.

Výnimky z pamäte

V niektorých prípadoch sa môže vyskytnúť jedna z nasledujúcich chýb pamäte:

  • Message: No more memory available to add rows to an internal table.
  • Message: [DataSource.Error] SAP Business Warehouse: The memory request for [number] bytes could not be complied with.
  • Message: The memory request for [number] bytes could not be complied with.

Tieto výnimky pamäte sú zo servera SAP BW a sú spôsobené tým, že serveru dochádza dostupná pamäť na spracovanie dotazu. Môže sa to stať, keď dotaz vráti veľkú množinu výsledkov alebo keď je dotaz príliš zložitý na to, aby ho server spracoval, napríklad keď má dotaz veľa krížovýchjoínov.

Ak chcete vyriešiť túto chybu, odporúčanie je zjednodušiť dotaz alebo ho rozdeliť na menšie dotazy. Ak je to možné, zatlačte na server väčšiu agregáciu. Prípadne sa obráťte na tím SAP Basis a zvýšte zdroje dostupné na serveri.

Načítanie textových reťazcov dlhších ako 60 znakov v Power BI Desktop zlyhá

V niektorých prípadoch možno zistíte, že textové reťazce sa v Power BI Desktop skrátia na 60 znakov.

Najprv postupujte podľa pokynov v 2777473 - MDX: najčastejšie otázky o prístupe služby Power BI k BW alebo BW/4HANA a zistite, či sa tým problém vyrieši.

Keďže konektor Power Query SAP Business Warehouse používa rozhranie MDX poskytované spoločnosťou SAP pre prístup tretích strán, budete sa musieť obrátiť na SAP pre možné riešenia, pretože vlastnia vrstvu medzi rozhraním MDX a serverom SAP BW. Opýtajte sa, ako možno pre konkrétny scenár zadať "dlhý text XL".

Obrázok zobrazujúci, kde nastaviť dlhý text, je nastavenie xl.