Řešení potíží s konektorem SAP Business Warehouse

Tento článek obsahuje situace řešení potíží (a možná řešení) pro práci s konektorem SAP Business Warehouse (BW).

Shromažďování pokročilých trasování SAP BW

Poznámka:

Shromažďování trasování dotazu odeslaného na server SAP BW vyžaduje některé možnosti a nastavení, které je možné poskytnout pouze pomocí Power BI Desktopu. Pokud ještě nemáte kopii Power BI Desktopu, můžete ji získat na webu Microsoft Download Center. Pomocí této bezplatné verze můžete nastavit všechny požadované možnosti a nastavení pro pokročilé trasování.

Často, když dojde k chybě, může být výhodné shromáždit trasování dotazu odeslaného na server SAP BW a jeho odpověď. Následující postup ukazuje, jak nastavit pokročilé trasování pro problémy, ke kterým dochází pomocí konektoru SAP BW.

  1. Zavřete Power BI Desktop, pokud je spuštěný.

  2. Vytvořte novou proměnnou prostředí:

    1. V Ovládací panely Systému Windows vyberte Nastavení System>Advanced System.

      Můžete také otevřít příkazový řádek a zadat sysdm.cpl.

    2. V části Vlastnosti systému vyberte kartu Upřesnit a pak vyberte Proměnné prostředí.

    3. V části Proměnné prostředí v části Systémové proměnné vyberte Nový.

    4. V části Nová systémová proměnná v části Název proměnné zadejte PBI_EnableSapBwTracing a v části Hodnota proměnné zadejte true.

    5. Vyberte OK.

    Po aktivaci tohoto rozšířeného trasování se ve složce Traces vytvoří další složka s názvem SapBw. Podívejte se na zbytek tohoto postupu pro umístění složky Traces .

  3. Otevřete Power BI Desktop.

  4. Před zachycením vymažte mezipaměť.

    1. V Power BI Desktopu vyberte kartu Soubor .
    2. Vyberte Možnosti a nastavení>Možnosti.
    3. V části Globální nastavení zvolte Načtení dat.
    4. Vyberte Vymazat mezipaměť.
  5. I když jste stále v možnostech a nastaveních, povolte trasování.

    1. V části Globální nastavení zvolte Diagnostika.
    2. Vyberte Povolit trasování.
  6. I když jste stále v možnostech a nastavení>Globální>diagnostika, vyberte Otevřít složku výpisu stavu systému nebo trasování. Před zachycením nových trasování se ujistěte, že je složka jasná.

  7. Reprodukujte problém.

  8. Po dokončení zavřete Power BI Desktop, aby se protokoly vyprázdnily na disk.

  9. Nově zachycené trasování můžete zobrazit ve složce SapBw ( složka Traces obsahující složku SapBw se zobrazí výběrem složky Otevřít výpis stavu systému nebo trasování na stránce Diagnostika v Power BI Desktopu).

  10. Až budete hotovi, nezapomeňte toto rozšířené trasování deaktivovat tak, že odeberete proměnnou prostředí nebo nastavíte PBI_EnableSapBwTracing na false.

Shromažďování pokročilých trasování SAP BW pomocí trasování CPIC

Pokud prošetřujete problémy s ověřováním nebo jednotným přihlašováním, použijte stejný postup, jak je popsáno v části Shromažďování pokročilých trasování SAP BW s výjimkou kroku 2d, zadejte následující další systémové proměnné a hodnoty:

  • CPIC_TRACE – 3
  • CPIC_TRACE_DIR – platná složka, například: E:\traces\CPIC

Zbytek postupu zůstává stejný. Trasování CPIC můžete zobrazit ve složce, kterou jste zadali v proměnné prostředí CPIC_TRACE_DIR. Můžete také zobrazit běžné trasování ve složce SapBw .

Po dokončení tohoto rozšířeného trasování také nezapomeňte deaktivovat tak, že odeberete proměnné prostředí nebo nastavíte BI_EnableSapBwTracing na false a CPIC_TRACE na 0.

Provedení čisté instalace konektoru SAP .NET

Pokud je nutné přeinstalovat konektor SAP .NET:

  1. Odeberte (odinstalujte) Připojení or SAP .NET.

  2. Po odebrání ověřte, že v globální mezipaměti sestavení (GAC) není nainstalovaný Připojení or SAP .NET, a ujistěte se, že neexistují následující cesty nebo neobsahují knihovny DLL:

    • 32bitové 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__50436dca5c7f7f7d23

    • 64bitové 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. Ověřte, že binární soubory nejsou v Program Files. Ujistěte se, že následující umístění neexistují nebo jsou prázdná:

    C:\Program Files\SAP\SAP_DotNet Připojení or3_Net40_x64

    C:\Program Files (x86)\sap\SAP_DotNet Připojení or3_Net40_x86

  4. Přeinstalujte konektor a nezapomeňte vybrat možnost Instalovat sestavení do GAC . Doporučujeme používat nejnovější verzi 3.0.23.

Řešení potíží s chybovými zprávami

Metoda SAP BW ErrorCode nebyla nalezena.

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

Tato chyba se vyvolá, když dojde k chybě na serveru SAP BW a konektor SAP .NET se pokusí načíst informace o této chybě. Tato chyba ale může skrývat skutečnou chybu. K této chybě může dojít v těchto případech:

  • Použití staré verze konektoru SAP .NET

  • Nainstaluje se několik verzí konektoru SAP .NET.

  • Konektor SAP .NET byl nainstalován dvakrát, jednou v globální mezipaměti sestavení (GAC) a jednou ne v GAC.

Podle pokynů v části Provést čistou instalaci konektoru SAP .NET přeinstalujte konektor.

Tím se problém nevyřeší, ale zobrazí se skutečná chybová zpráva.

Výjimka: Inicializátor typu pro Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService vyvolal výjimku.

Podle pokynů v části Provést čistou instalaci konektoru SAP .NET přeinstalujte konektor.

Tento konektor vyžaduje jednu nebo více dalších komponent.

Pokud se zobrazí tato chybová zpráva, postupujte následovně:

  1. Ověřte, že je verze konektoru SAP .NET nainstalovaná ve správné délce bitů. Pokud máte nainstalovaný 64bitový Power BI Desktop, ujistěte se, že jste nainstalovali 64bitový konektor SAP .NET.

  2. Ověřte, že při instalaci Připojení oru SAP .NET byla zkontrolována instalace sestavení do GAC. Pokud chcete ověřit, že je GAC nainstalovaný, otevřete Průzkumníka Windows a přejděte na:

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

    Úplná cesta může být například:

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

Pokud jste nainstalovali 32bitovou verzi konektoru SAP .NET, bude to C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7f7d23\sapnco.dll (a potřebujete 32bitovou verzi Power BI Desktopu).

Dalším způsobem, jak zkontrolovat GAC, je použití nástroje gacutil (jedna z možností zakázání podepisování silných názvů). Musíte ho spustit z 64bitového příkazového řádku. Obsah GAC můžete zkontrolovat tak, že otevřete příkazový řádek, přejdete na gacutil.exe cestu a spustíte:

      gacutil -l

Například ve výstupu byste měli vidět:

      sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64 sapnco_utils, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7f7d23, processorArchitecture=AMD64

"Bez autorizace RFC pro funkci ...*

Implementace 2.0 vyžaduje přístup k následujícím rozhraním BAPI. Pokud chcete tento problém vyřešit, obraťte se na tým SAP Basis a požádejte o oprávnění k těmto BAPI a rfcs pro uživatele.

  • Možnosti připojení:

    • RFC_PING
    • RFC_METADATA_GET
  • Provádění 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
  • Zploštěné zploštění modulu ExecutionMode:

    • RSR_MDX_GET_FLAT_DATA
    • RSR_MDX_GET_FS_DATA
    • BAPI_MDDATASET_GET_FLAT_DATA
    • BAPI_MDDATASET_GET_FS_DATA
  • Streamování 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
  • Metadata:

    • 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
  • Informace:

    • BAPI_IOBJ_GETDETAIL (povinné pro typové dimenze (DATS, TIMS))
    • BAPI_USER_GET_DETAIL (používá se pouze pro zploštěné rozhraní)
    • RFC_READ_TABLE (vyžaduje se pro názvy katalogu a volání určitých hodnot proměnných)
  • Základní konektor SAP .NET může volat:

    • 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

Metoda nebyla nalezena 'Int32 SAP. Middleware. Připojení or. RfcBaseException.get_ErrorCode()

Ověřte, že je správně nainstalovaný konektor SAP .NET. Projděte si čistou instalaci konektoru SAP .NET.

Tato chyba se zobrazí, když je nainstalovaná verze v GAC nižší než očekávaná verze 3.0.18.0. SAP Note 2417315 tento scénář popisuje.

Připojení vlastnosti řetězce nastavené konektorem

Pokud je k dispozici název partnera SNC i knihovna SNC, konektor aplikačního serveru SAP BW (implementace 2.0) nastaví tyto vlastnosti v připojovací řetězec:

  • SNC_MODE – SncModeApply
  • SNC_LIB – se zadanou cestou knihovny; pokud se jedná o proměnnou prostředí, v tuto chvíli se rozbalí.
  • SNC_PARTNERNAME – se zadanou hodnotou
  • SNC_QOP = RfcConfigParameters.RfcSncQOP.Default

Používají se jak pro aplikační server SAP BW, tak pro připojení serveru zpráv SAP BW.

Pro oba typy připojení sada konektorů:

  • LANG (jazyk)
  • KLIENT

Pro připojení aplikačního serveru SAP BW sada konektorů:

  • ASHOST (AppServerHost)
  • SYSNR (SystemNumber)

Pro připojení serveru zpráv SAP BW nastaví konektory:

  • MSHOST (MessageServerHost)
  • SYSID (SystemID)
  • GROUP (LogonGroup)

Neplatný příkaz MDX s interním příkazem <>

Tato chyba pochází přímo ze serveru SAP BW. Implementace 1 konektoru založeného na netweaver RFC nezpřístupnila uživatelům tyto chyby a místo toho vrátila prázdnou sadu výsledků.

Tento problém je popsán v následujících poznámkách SAP. Přístup k těmto poznámkám vyžaduje uživatele S. Obraťte se na tým SAP Basis a požádejte o příslušné opravy tohoto problému.

V případě jiných podobných chyb můžete také zkontrolovat obsah následujících poznámek SAP a použít je podle potřeby pro vaše prostředí:

Problémy a omezení

Změna názvů proměnných v datové krychli SAP umístí sestavu DirectQuery do poškozeného a neobnovitelného stavu.

Dochází k následujícím příznakům:

  • Chybová zpráva–[Expression.Error] The import [XXXX] matches no exports.

  • V protokolech–Message: [Expression.Error] The key didn't match any rows in the table.

  • Trasování zásobníku:

    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 alternativních řešení je:

  1. Vytvořte kopii souboru PBIX (protože by se to mohlo poškodit).

  2. Přidejte proměnnou prostředí s názvem PBI_AlwaysEnableQueryEditor s hodnotou true. Toto nastavení umožní přístup k editoru dotazů i v režimu DirectQuery.

    Poznámka:

    Tato proměnná prostředí není podporována, proto by se měla používat jenom zde.

  3. Klikněte pravým tlačítkem na dotaz Datová krychle a vyberte Rozšířený editor.

  4. Dotaz by měl obsahovat řádek začínající {Cube.ApplyParameter, [! V000004]" (chybějící parametr)". Odeberte tento řádek.

  5. Vyberte Hotovo.

  6. Zavřete Editor Power Query.

  7. Aktualizujte ovlivněný vizuál.

Pokud výše uvedené alternativní řešení nefunguje, jediným alternativním řešením je opětovné vytvoření sestavy.

Číselná data ze SAP BW

Poznámka:

Následující informace platí pouze při použití implementace 1.0 konektoru SAP BW nebo implementace 2.0 konektoru SAP BW s režimem zploštění (když ExecutionMode=67).

Uživatelské účty v SAP BW mají výchozí nastavení pro formátování desetinných míst nebo hodnot data a času při zobrazení uživateli v grafickém uživatelském rozhraní SAP.

Výchozí nastavení se udržuje v systému SAP v profilu uživatele pro účet a uživatel může tato nastavení zobrazit nebo změnit v grafickém uživatelském rozhraní SAP pomocí cesty k nabídce System>User Profile>Own Data.

Nabídka nastavení zápisu desetinných míst

Power BI Desktop se dotazuje systému SAP na desetinnou notaci připojeného uživatele a používá tento zápis k formátování desetinných hodnot v datech ze SAP BW.

SAP BW vrátí desetinná data s , oddělovačem desetinných míst (čárkou) nebo tečkou . ( tečka). Pokud chcete určit, které z těchto sap BW se má použít pro oddělovač desetinných míst, ovladač používaný Power BI Desktopem BAPI_USER_GET_DETAILvolá . Toto volání vrátí strukturu s názvem DEFAULTS, která má pole s názvem DCPFM , které ukládá desetinný formát notace. Pole má jednu z následujících hodnot:

  • ' ' (mezera) = Desetinná čárka: N.NNN,NN
  • 'X' = Desetinná čárka je tečka: N,NNN.NN
  • 'Y' = Desetinná čárka je NNN,NN

Zákazníci, kteří tento problém nahlásili, zjistili, že volání BAPI_USER_GET_DETAIL pro konkrétního uživatele selhává, což zobrazuje nesprávná data, s chybovou zprávou podobnou následující zprávě:

   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>

Aby uživatelé mohli tuto chybu vyřešit, musí požádat správce SAP, aby uživateli SAP BW, který se používá v Power BI, udělil oprávnění ke spuštění BAPI_USER_GET_DETAIL. Je také vhodné ověřit, že má uživatel požadovanou DCPFM hodnotu, jak je popsáno výše v tomto řešení řešení potíží.

Připojení ivity pro dotazy SAP BEx

Dotazy BEx můžete v Power BI Desktopu provádět povolením konkrétní vlastnosti, jak je znázorněno na následujícím obrázku:

Povolte vydání pro externí přístup.

Omezení rozhraní MDX

Omezení rozhraní MDX spočívá v tom, že dlouhé proměnné ztratí svůj technický název a nahradí je V00000#.

V okně Navigátor není žádný náhled dat.

V některých případech dialogové okno Navigátor nezobrazuje náhled dat a místo toho poskytuje odkaz na objekt, který není nastaven na instanci chybové zprávy objektu .

Uživatelé SAP potřebují přístup ke konkrétním modulům funkcí BAPI, aby mohli získat metadata a načítat data z infoproviderů SAP BW. Mezi tyto moduly patří:

  • 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

Chcete-li tento problém vyřešit, ověřte, že uživatel má přístup k různým modulům MDPROVIDER a BAPI_IOBJ_GETDETAIL. Pokud chcete dál řešit tyto nebo podobné problémy, můžete povolit trasování. Vyberte Soubor>Možnosti a nastavení>Možnosti. V možnostech vyberte Diagnostika a pak vyberte Povolit trasování. Pokuste se načíst data ze SAP BW, když je trasování aktivní, a prozkoumejte trasovací soubor, kde najdete další podrobnosti.

Výjimky paměti

V některých případech může dojít k některé z následujících chyb paměti:

  • 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.

Tyto výjimky paměti pocházejí ze serveru SAP BW a jsou způsobené nedostatkem dostupné paměti pro zpracování dotazu. K tomu může dojít, když dotaz vrátí velkou sadu výsledků nebo když je dotaz příliš složitý pro zpracování serveru, například když dotaz obsahuje mnoho křížových spojení.

Pokud chcete tuto chybu vyřešit, doporučujeme zjednodušit dotaz nebo ho rozdělit na menší dotazy. Pokud je to možné, odešlete na server další agregaci. Případně se obraťte na tým SAP Basis a zvyšte dostupné prostředky na serveru.

Načtení textových řetězců delších než 60 znaků v Power BI Desktopu selže

V některých případech se v Power BI Desktopu můžou textové řetězce zkrátit na 60 znaků.

Nejprve postupujte podle pokynů v 2777473 – MDX: Nejčastější dotazy k Power BI pro přístup k BW nebo BW/4HANA a zjistěte, jestli se tím váš problém vyřeší.

Vzhledem k tomu, že konektor Power Query SAP Business Warehouse používá rozhraní MDX poskytované SAP pro přístup třetích stran, budete muset kontaktovat SAP pro možná řešení, která vlastní vrstvu mezi rozhraním MDX a serverem SAP BW. Zeptejte se, jak dlouho je možné zadat text XL pro váš konkrétní scénář.

Obrázek znázorňující, kde nastavit dlouhý text, je nastavení xl.

Limit znaku 60 bez ohledu na "dlouhý text" v SAP BW

Existuje známé omezení, kdy se v SAP BW zobrazují vlastnosti dlouhého textu s limitem 60 znaků v Power BI. Tento limit znaků je způsoben omezením v rozhraní MDX a není k dispozici žádné známé alternativní řešení. Sap zdokumentoval toto omezení MDX v této poznámce SAP.

Migrace na implementaci 2.0 při použití direct query

Vzhledem k vyřazení implementace konektoru SAP Business Warehouse 1.0 možná budete muset aktualizovat dotazy, abyste využili výhod implementace 2.0. Při použití direct query je přístup k editoru dotazů omezený. Takže nemůžete snadno přejít na implementaci 2.0 bez opětovného vytvoření celého dotazu. Alternativním řešením je přidat systémovou proměnnou prostředí, která umožní přístup k editoru dotazů. Mějte na paměti, že následující kroky nejsou oficiálně podporovány a měly by se používat jenom zde.

  1. Vytvořte novou proměnnou prostředí tak, že přejdete na Průzkumník souborů> Pokud vlastnosti>počítače>Advanced system settings>Environment Variables System Variables System Variables>>New, nebo otevřete příkazový řádek a zadáte sysdm.cpl a pak vyberete Nový v části Systémové proměnné.
  2. Pojmenujte proměnnou PBI_AlwaysEnableQueryEditor prostředí a nastavte hodnotu true. Toto nastavení proměnné umožňuje přístup k editoru dotazů i v režimu Direct Query.
  3. V Power BI Desktopu na kartě Domů vyberte Transformovat data a otevřete editor Power Query.
  4. Aktualizujte dotaz tak, aby používal implementaci 2.0 podle těchto pokynů, počínaje krokem 2 v tomto článku.

Váš koncový dotaz by měl vypadat nějak takto SapBusinessWarehouse.Cubes("server", "system", "clientId", [Implementation = "2.0"]).