Dela via


Felsökning av SAP Business Warehouse-anslutningsprogram

Den här artikeln innehåller felsökningssituationer (och möjliga lösningar) för att arbeta med SAP Business Warehouse-anslutningsappen (BW).

Samla in avancerade SAP BW-spårningar

Kommentar

Att samla in en spårning av en fråga som skickas till SAP BW-servern kräver vissa alternativ och inställningar som bara kan tillhandahållas med hjälp av Power BI Desktop. Om du inte redan har en kopia av Power BI Desktop kan du hämta en kopia i Microsoft Download Center. Du kan ange alla nödvändiga alternativ och inställningar för avancerade spårningar med den här kostnadsfria versionen.

Många gånger när ett fel inträffar kan det vara fördelaktigt att samla in en spårning av frågan som skickades till SAP BW-servern och dess svar. Följande procedur visar hur du konfigurerar avancerade spårningar för problem som uppstår med hjälp av SAP BW-anslutningsappen.

  1. Stäng Power BI Desktop om det körs.

  2. Skapa en ny miljövariabel:

    1. I Windows Kontrollpanelen väljer du System>Advanced System Inställningar.

      Du kan också öppna en kommandotolk och ange sysdm.cpl.

    2. I Systemegenskaper väljer du fliken Avancerat och sedan Miljövariabler.

    3. Under Systemvariabler i Miljövariabler väljer du Nytt.

    4. Under Variabelnamn i Ny systemvariabel anger du PBI_EnableSapBwTracing och under Variabelvärde anger du true.

    5. Välj OK.

    När den här avancerade spårningen aktiveras skapas ytterligare en mapp med namnet SapBw i mappen Traces . Se resten av den här proceduren för platsen för mappen Traces .

  3. Öppna Power BI Desktop.

  4. Rensa cachen innan du samlar in.

    1. I Power BI Desktop väljer du fliken Arkiv .
    2. Välj Alternativ och inställningar>Alternativ.
    3. Under Globala inställningar väljer du Datainläsning.
    4. Välj Rensa cache.
  5. Aktivera spårning medan du fortfarande är i Alternativ och inställningar.

    1. Under Globala inställningar väljer du Diagnostik.
    2. Välj Aktivera spårning.
  6. När du fortfarande är i Alternativ och inställningar>Global>diagnostik väljer du Öppna mappen Kraschdump/spårningar. Kontrollera att mappen är klar innan du samlar in nya spårningar.

  7. Återskapa problemet.

  8. När du är klar stänger du Power BI Desktop så att loggarna rensas till disken.

  9. Du kan visa de nyligen insamlade spårningarna under mappen SapBw ( mappen Traces som innehåller SapBw-mappen visas genom att välja öppna mappen kraschdump/spårningar på sidan Diagnostik i Power BI Desktop).

  10. Se till att du inaktiverar den här avancerade spårningen när du är klar genom att antingen ta bort miljövariabeln eller ange PBI_EnableSapBwTracing till false.

Samla in avancerade SAP BW-spårningar med CPIC-spårningar

Om du undersöker problem med autentisering eller enkel inloggning (SSO) använder du samma procedur som beskrivs i Samla in avancerade SAP BW-spårningar, förutom i steg 2d anger du följande ytterligare systemvariabler och värden:

  • CPIC_TRACE – 3
  • CPIC_TRACE_DIR – en giltig mapp, till exempel: E:\traces\CPIC

Resten av proceduren förblir densamma. Du kan visa CPIC-spårningarna i mappen som du angav i miljövariabeln CPIC_TRACE_DIR. Du kan också visa vanliga spårningar under mappen SapBw .

Kontrollera också att du inaktiverar den här avancerade spårningen när du är klar genom att antingen ta bort miljövariablerna eller ange BI_EnableSapBwTracing till false och CPIC_TRACE till 0.

Utför en ren installation av SAP .NET-anslutningsappen

Om det blir nödvändigt att installera om SAP .NET-anslutningsappen:

  1. Ta bort (avinstallera) SAP .NET-Anslut eller.

  2. När du har tagit bort kontrollerar du att SAP .NET Anslut or inte är installerad i Global Assembly Cache (GAC) genom att kontrollera att följande sökvägar INTE finns eller inte innehåller DLL:er:

    • 32-bitars 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-bitars 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. Kontrollera att binärfilerna inte finns i Programfiler. Kontrollera att följande platser INTE finns eller är tomma:

    C:\Program Files\SAP\SAP_DotNet Anslut or3_Net40_x64

    C:\Program Files (x86)\sap\SAP_DotNet Anslut or3_Net40_x86

  4. Installera om anslutningsappen och kom ihåg att välja alternativet Installera sammansättningar till GAC . Vi rekommenderar att du använder den senaste, 3.0.23.

Felsöka felmeddelanden

SAP BW ErrorCode-metoden hittades inte

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

Det här felet utlöses när ett fel inträffar på SAP BW-servern och SAP .NET-anslutningsappen försöker hämta information om felet. Det här felet kan dock dölja det verkliga felet. Det här felet kan inträffa när:

  • Använda en gammal version av SAP .NET-anslutningsappen.

  • Flera versioner av SAP .NET-anslutningsappen är installerade.

  • SAP .NET-anslutningsappen installerades två gånger, en gång i Global Assembly Cache (GAC) och en gång inte i GAC.

Följ anvisningarna under Utför ren installation av SAP .NET-anslutningsappen för att installera om anslutningsappen.

Detta löser inte problemet, men ger det faktiska felmeddelandet.

Undantag: Typinitieraren för Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService gjorde ett undantag.

Följ anvisningarna under Utför ren installation av SAP .NET-anslutningsappen för att installera om anslutningsappen.

Den här anslutningsappen kräver en eller flera ytterligare komponenter

Om du får det här felmeddelandet använder du följande felsökningssteg:

  1. Kontrollera att versionen av SAP .NET-anslutningsappen är installerad i rätt bitlängd. Om du har Power BI Desktop 64-bitars installerat kontrollerar du att du har installerat 64-bitars SAP .NET-anslutningsappen.

  2. Kontrollera att installation av SAP .NET-Anslut eller kontrollerades installera sammansättningar till GAC. Kontrollera att GAC är installerat genom att öppna Utforskaren och gå till:

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

    Den fullständiga sökvägen kan till exempel vara:

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

Om du har installerat 32-bitarsversionen av SAP .NET-anslutningsappen skulle det vara C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll (och du skulle behöva en 32-bitarsversion av Power BI Desktop).

Ett annat sätt att kontrollera GAC är att använda gacutil (ett av alternativen för att inaktivera stark namnsignering). Du skulle behöva köra den från en 64-bitars kommandotolk. Du kan kontrollera innehållet i GAC genom att öppna en kommandotolk, navigera till den gacutil.exe sökvägen och köra:

      gacutil -l

I utdata bör du till exempel se:

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

"Ingen RFC-auktorisering för funktionen ...*

Implementering 2.0 kräver åtkomst till följande BAPI:er. Lös problemet genom att kontakta SAP Basis-teamet och begära behörigheter till dessa BAPI:er och RFC:er för användaren.

  • Anslutning:

    • RFC_PING
    • RFC_METADATA_GET
  • MDX-körning:

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

    • RSR_MDX_GET_FLAT_DATA
    • RSR_MDX_GET_FS_DATA
    • BAPI_MDDATASET_GET_FLAT_DATA
    • BAPI_MDDATASET_GET_FS_DATA
  • ExecutionMode-strömning:

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

    • BAPI_IOBJ_GETDETAIL (krävs för typerade dimensioner (DATS, TIMS))
    • BAPI_USER_GET_DETAIL (används endast för utplattande gränssnitt)
    • RFC_READ_TABLE (krävs för katalognamn och vissa variabelvärden)
  • Kan anropas av den underliggande SAP .NET-anslutningsappen:

    • 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

Metoden hittades inte 'Int32 SAP. Middleware. Anslut eller. RfcBaseException.get_ErrorCode()

Kontrollera att SAP .NET-anslutningsappen är korrekt installerad. Se Utför en ren installation av SAP .NET-anslutningsappen.

Det här felet visas när den installerade versionen i GAC är lägre än den förväntade versionen 3.0.18.0. SAP Note 2417315 diskuterar det här scenariot.

Anslut ionssträngegenskaper som anges av anslutningsappen

När både SNC-partnernamn och SNC-bibliotek tillhandahålls anger SAP BW Application Server-anslutningsappen (implementering 2.0) dessa egenskaper i anslutningssträng:

  • SNC_MODE – SncModeApply
  • SNC_LIB – med den angivna bibliotekssökvägen. om det är en miljövariabel expanderas den nu
  • SNC_PARTNERNAME – med det angivna värdet
  • SNC_QOP = RfcConfigParameters.RfcSncQOP.Default

Dessa används för både SAP BW Application Server- och SAP BW Message Server-anslutningar.

Anslutningsuppsättningarna för båda anslutningstyperna:

  • LANG (språk)
  • KLIENT

För SAP BW Application Server-anslutningen anger anslutningsappen:

  • ASHOST (AppServerHost)
  • SYSNR (SystemNumber)

För SAP BW-meddelandeserveranslutningar anger anslutningsappen:

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

Ogiltigt MDX-kommando med <internt>

Det här felet kommer direkt från SAP BW-servern. Implementering 1 av anslutningsappen, baserat på Netweaver RFC, exponerade inte dessa fel för användaren och returnerade i stället en tom resultatuppsättning.

Det här problemet beskrivs i följande SAP-anteckningar. Åtkomst till dessa anteckningar kräver en S-användare. Kontakta SAP Basis-teamet för att tillämpa relevanta korrigeringar för det här problemet.

För andra liknande fel kan du dessutom granska innehållet i följande SAP-anteckningar och tillämpa dem efter behov för din miljö:

Problem och begränsningar

Om du ändrar variabelnamn i en SAP-kub hamnar DirectQuery-rapporten i ett brutet, oåterkalleligt tillstånd

Följande symtom uppstår:

  • Felmeddelande –[Expression.Error] The import [XXXX] matches no exports.

  • I loggarna –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({...}, {...})]
    

En möjlig lösning är att:

  1. Gör en kopia av PBIX-filen (eftersom saker kan gå sönder).

  2. Lägg till en miljövariabel med namnet PBI_AlwaysEnableQueryEditor med värdet true. Den här inställningen ger åtkomst till frågeredigeraren även i DirectQuery-läge.

    Kommentar

    Den här miljövariabeln stöds inte, så bör endast användas enligt beskrivningen här.

  3. Högerklicka på frågan "Kub" och välj Avancerad redigerare.

  4. Frågan där ska ha en rad som börjar med {Cube.ApplyParameter, "[! V000004]" (den saknade parametern)". Ta bort den raden.

  5. Välj Klar.

  6. Stäng Power Query-redigeraren.

  7. Uppdatera det berörda visuella objektet.

Om ovanstående lösning inte fungerar är den enda alternativa korrigeringen att du återskapar rapporten.

Numeriska data från SAP BW

Kommentar

Följande information gäller endast när du använder Implementering 1.0 av SAP BW-anslutningsappen eller Implementering 2.0 av SAP BW-anslutningsappen med utplattande läge (när ExecutionMode=67).

Användarkonton i SAP BW har standardinställningar för hur decimal- eller datum/tid-värden formateras när de visas för användaren i SAP-gränssnittet.

Standardinställningarna upprätthålls i SAP-systemet i användarprofilen för ett konto, och användaren kan visa eller ändra dessa inställningar i SAP GUI med menysökvägen System>Användarprofil>Egna data.

Inställningsmeny för decimal notation.

Power BI Desktop frågar SAP-systemet om decimal notationen för den anslutna användaren och använder den notationen för att formatera decimalvärden i data från SAP BW.

SAP BW returnerar decimaldata med antingen ett , (komma) eller en . (punkt) som decimalavgränsare. För att ange vilken av dessa SAP BW som ska användas för decimaltecknet anropar drivrutinen som används av Power BI Desktop .BAPI_USER_GET_DETAIL Det här anropet returnerar en struktur med namnet DEFAULTS, som har ett fält med namnet DCPFM som lagrar Decimalformat notation. Fältet tar något av följande värden:

  • ' ' (blanksteg) = Decimaltecknet är kommatecken: N.NNN,NN
  • 'X' = Decimalpunkt är period: N,NNN.NN
  • 'Y' = Decimaltecknet är N NNN NNN,NN

Kunder som har rapporterat det här problemet upptäckte att anropet till BAPI_USER_GET_DETAIL misslyckas för en viss användare, som visar felaktiga data, med ett felmeddelande som liknar följande meddelande:

   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>

För att lösa det här felet måste användarna be sin SAP-administratör att ge SAP BW-användaren som används i Power BI rätten att köra BAPI_USER_GET_DETAIL. Det är också värt att kontrollera att användaren har det nödvändiga DCPFM värdet, enligt beskrivningen tidigare i den här felsökningslösningen.

Anslut ivitet för SAP BEx-frågor

Du kan utföra BEx-frågor i Power BI Desktop genom att aktivera en specifik egenskap, enligt följande bild:

Aktivera version för extern åtkomst.

Begränsning av MDX-gränssnitt

En begränsning i MDX-gränssnittet är att långa variabler förlorar sitt tekniska namn och ersätts av V000000#.

Ingen dataförhandsvisning i fönstret Navigatör

I vissa fall visar inte dialogrutan Navigator någon dataförhandsgranskning och tillhandahåller i stället en objektreferens som inte är inställd på en instans av ett objektfelmeddelande .

SAP-användare behöver åtkomst till specifika BAPI-funktionsmoduler för att hämta metadata och hämta data från SAP BW:s InfoProviders. Dessa moduler omfattar:

  • 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

Lös problemet genom att kontrollera att användaren har åtkomst till de olika MDPROVIDER-modulerna och BAPI_IOBJ_GETDETAIL. Om du vill felsöka det här eller liknande problem ytterligare kan du aktivera spårning. Välj Arkiv>Alternativ och inställningar>Alternativ. I Alternativ väljer du Diagnostik och sedan Aktivera spårning. Försök att hämta data från SAP BW när spårningen är aktiv och granska spårningsfilen för mer information.

Minnesfel

I vissa fall kan du stöta på något av följande minnesfel:

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

Dessa minnesfel kommer från SAP BW-servern och beror på att servern får slut på tillgängligt minne för att bearbeta frågan. Detta kan inträffa när frågan returnerar en stor uppsättning resultat eller när frågan är för komplex för servern att hantera, till exempel när en fråga har många korsningar.

För att lösa det här felet rekommenderar vi att du förenklar frågan eller delar upp den i mindre frågor. Skicka om möjligt mer aggregering till servern. Du kan också kontakta SAP Basis-teamet för att öka de resurser som är tillgängliga på servern.

Det går inte att läsa in textsträngar som är längre än 60 tecken i Power BI Desktop

I vissa fall kan det hända att textsträngar trunkeras till 60 tecken i Power BI Desktop.

Följ först anvisningarna i 2777473 – MDX: Vanliga frågor och svar om Power BI som kommer åt BW eller BW/4HANA och se om det löser problemet.

Eftersom Anslutningsappen för Power Query SAP Business Warehouse använder MDX-gränssnittet som tillhandahålls av SAP för åtkomst från tredje part måste du kontakta SAP för möjliga lösningar eftersom de äger lagret mellan MDX-gränssnittet och SAP BW-servern. Fråga hur "lång text är XL" kan anges för ditt specifika scenario.

Bild som visar var du anger lång text är xl-inställningen.

CHAR-gräns på 60 trots "lång text" i SAP BW

Det finns en känd begränsning där "long text"-egenskaper i SAP BW visas med en gräns på 60 tecken i Power BI. Den här teckengränsen beror på en begränsning i MDX-gränssnittet och det finns ingen känd lösning tillgänglig. SAP har dokumenterat den här MDX-begränsningen i den här SAP-anteckningen.

Migrera till implementering 2.0 när du använder Direct Query

På grund av utfasningen av implementering 1.0 av SAP Business Warehouse-anslutningsappen kan du behöva uppdatera dina frågor för att dra nytta av implementering 2.0. När du använder Direct Query begränsas åtkomsten till frågeredigeraren. Så du kan inte enkelt övergå till implementering 2.0 utan att återskapa hela frågan. Lösningen är att lägga till en systemmiljövariabel för att tillåta åtkomst till frågeredigeraren. Observera att följande steg inte stöds officiellt och endast bör användas enligt beskrivningen här.

  1. Skapa en ny miljövariabel antingen genom att gå till Utforskaren> Det här är datoregenskaper>>Avancerade systeminställningar>Miljövariabler Systemvariabler>>Nya, eller genom att öppna en kommandotolk och ange sysdm.cpl och sedan välja Nytt under Systemvariabler.
  2. Namnge miljövariabeln PBI_AlwaysEnableQueryEditor och ange värdet true. Den här variabelinställningen ger åtkomst till frågeredigeraren även i Direct Query-läge.
  3. I Power BI Desktop går du till fliken Start och väljer Transformera data för att öppna Power Query-redigeraren.
  4. Uppdatera frågan så att implementering 2.0 används genom att följa dessa instruktioner, med början i steg 2 i den artikeln.

Slutfrågan bör se ut ungefär som SapBusinessWarehouse.Cubes("server", "system", "clientId", [Implementation = "2.0"]).