Risoluzione dei problemi del connettore SAP Business Warehouse

Questo articolo illustra le situazioni di risoluzione dei problemi (e le possibili soluzioni) per l'uso del connettore SAP Business Warehouse (BW).

Raccogliere tracce avanzate di SAP BW

Nota

La raccolta di una traccia di una query inviata al server SAP BW richiede alcune opzioni e impostazioni che possono essere fornite solo tramite Power BI Desktop. Se non si ha già una copia di Power BI Desktop, è possibile ottenere una copia nell'Area download Microsoft. È possibile impostare tutte le opzioni e le impostazioni necessarie per le tracce avanzate usando questa versione gratuita.

Molte volte in cui si verifica un errore, può essere vantaggioso raccogliere una traccia della query inviata al server SAP BW e alla relativa risposta. La procedura seguente illustra come configurare tracce avanzate per i problemi che si verificano usando il connettore SAP BW.

  1. Chiudere Power BI Desktop se è in esecuzione.

  2. Creare una nuova variabile di ambiente:

    1. Nell'Pannello di controllo di Windows selezionare System Advanced System>Impostazioni.

      È anche possibile aprire un prompt dei comandi e immettere sysdm.cpl.

    2. In Proprietà di sistema selezionare la scheda Avanzate e quindi variabili di ambiente.

    3. In Variabili di ambiente, in Variabili di sistema selezionare Nuovo.

    4. In Nuova variabile di sistema, in Nome variabile immettere PBI_EnableSapBwTracing e in Valore variabile immettere true.

    5. Seleziona OK.

    Quando questa traccia avanzata viene attivata, nella cartella Traces verrà creata una cartella aggiuntiva denominata SapBw. Vedere il resto di questa procedura per il percorso della cartella Traces .

  3. Apri Power BI Desktop.

  4. Cancellare la cache prima dell'acquisizione.

    1. In Power BI Desktop selezionare la scheda File .
    2. Selezionare Opzioni e impostazioni>Opzioni.
    3. In Impostazioni globali scegliere Caricamento dati.
    4. Seleziona Cancella cache.
  5. Mentre si è ancora in Opzioni e impostazioni, abilitare la traccia.

    1. In Impostazioni globali scegliere Diagnostica.
    2. Selezionare Abilita traccia.
  6. Mentre si è ancora in Opzioni e impostazioni>Diagnostica globale>, selezionare Apri cartella dump/tracce di arresto anomalo del sistema. Assicurarsi che la cartella sia deselezionata prima di acquisire nuove tracce.

  7. Riprodurre il problema.

  8. Al termine, chiudere Power BI Desktop in modo che i log vengano scaricati su disco.

  9. È possibile visualizzare le tracce appena acquisite nella cartella SapBw . La cartella Tracce che contiene la cartella SapBw viene visualizzata selezionando Apri cartella dump/tracce di arresto anomalo del sistema nella pagina Diagnostica in Power BI Desktop.

  10. Assicurarsi di disattivare questa traccia avanzata al termine, rimuovendo la variabile di ambiente o impostando PBI_EnableSapBwTracing su false.

Raccogliere tracce avanzate SAP BW con tracce CPIC

Se si esaminano i problemi di autenticazione o single sign-on (SSO), usare la stessa procedura descritta in Raccogliere tracce avanzate di SAP BW, ad eccezione del passaggio 2d, immettere le variabili di sistema e i valori di sistema aggiuntivi seguenti:

  • CPIC_TRACE- 3
  • CPIC_TRACE_DIR: una cartella valida, ad esempio: E:\traces\CPIC

Il resto della procedura rimane invariato. È possibile visualizzare le tracce CPIC nella cartella specificata nella variabile di ambiente CPIC_TRACE_DIR. È anche possibile visualizzare le tracce regolari nella cartella SapBw .

Assicurarsi anche di disattivare questa traccia avanzata al termine, rimuovendo le variabili di ambiente o impostando BI_EnableSapBwTracing su false e CPIC_TRACE su 0.

Eseguire l'installazione pulita del connettore SAP .NET

Se diventa necessario reinstallare il connettore SAP .NET:

  1. Rimuovere (disinstallare) il Connessione or SAP .NET.

  2. Dopo la rimozione, verificare che sap .NET Connessione or non sia installato nella Global Assembly Cache (GAC), assicurandosi che i percorsi seguenti non esistano o non contengano DLL:

    • GAC a 32 bit:

      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

    • GAC a 64 bit:

      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. Verificare che i file binari non siano presenti in Programmi. Assicurarsi che i percorsi seguenti non esistano o siano vuoti:

    C:\Programmi\SAP\SAP_DotNet Connessione or3_Net40_x64

    C:\Programmi (x86)\sap\SAP_DotNet Connessione or3_Net40_x86

  4. Reinstallare il connettore e ricordarsi di selezionare l'opzione Installa assembly in GAC . È consigliabile usare la versione più recente, 3.0.23.

Risoluzione dei problemi relativi ai messaggi di errore

Metodo ErrorCode SAP BW non trovato

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

Questo errore viene generato quando si verifica un errore nel server SAP BW e il connettore SAP .NET tenta di recuperare informazioni su tale errore. Tuttavia, questo errore potrebbe nascondere l'errore reale. Questo errore può verificarsi quando:

  • Uso di una versione precedente del connettore SAP .NET.

  • Vengono installate più versioni del connettore SAP .NET.

  • Il connettore SAP .NET è stato installato due volte, una volta nella Global Assembly Cache (GAC) e una volta non nella GAC.

Seguire le istruzioni in Eseguire l'installazione pulita del connettore SAP .NET per reinstallare il connettore.

Questo non risolverà il problema, ma fornirà il messaggio di errore effettivo.

Eccezione: inizializzatore di tipo per 'Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService' ha generato un'eccezione.

Seguire le istruzioni in Eseguire l'installazione pulita del connettore SAP .NET per reinstallare il connettore.

Questo connettore richiede uno o più componenti aggiuntivi

Se viene visualizzato questo messaggio di errore, seguire questa procedura di risoluzione dei problemi:

  1. Verificare che la versione del connettore SAP .NET sia installata nella lunghezza di bit corretta. Se è installato Power BI Desktop a 64 bit, assicurarsi di aver installato il connettore SAP .NET a 64 bit.

  2. Verificare che, durante l'installazione di SAP .NET Connessione or, l'opzione Install assemblies to GAC (Installa assembly in GAC) è stata selezionata. Per verificare che gac sia installato, aprire Esplora risorse e passare a:

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

    Ad esempio, il percorso completo potrebbe essere:

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

Se è stata installata la versione a 32 bit del connettore SAP .NET, sarà C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll (e sarebbe necessaria una versione a 32 bit di Power BI Desktop).

Un altro modo per controllare la GAC consiste nell'usare gacutil (una delle opzioni per disabilitare la firma con nome sicuro). È necessario eseguirlo da un prompt dei comandi a 64 bit. È possibile controllare il contenuto della GAC aprendo un prompt dei comandi, passando al percorso gacutil.exe ed eseguendo:

      gacutil -l

Ad esempio, nell'output dovrebbe essere visualizzato:

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

"Nessuna autorizzazione RFC per la funzione ...*

L'implementazione 2.0 richiede l'accesso alle bapi seguenti. Per risolvere il problema, contattare il team di base SAP e richiedere le autorizzazioni per queste istanze bapi e RFC per l'utente.

  • Connettività:

    • RFC_PING
    • RFC_METADATA_GET
  • Esecuzione MDX:

    • RSR_MDX_CREATE_OBJECT
    • BAPI_MDDATA edizione Standard T_CREATE_OBJECT
    • BAPI_MDDATA edizione Standard T_edizione Standard LECT_DATA
    • BAPI_MDDATA edizione Standard T_DELETE_OBJECT
    • RSR_MDX_GET_AXIS_INFO
    • RSR_MDX_GET_AXIS_DATA
    • RSR_MDX_GET_CELL_DATA
    • BAPI_MDDATA edizione Standard T_GET_AXIS_INFO
    • BAPI_MDDATA edizione Standard T_GET_AXIS_DATA
    • BAPI_MDDATA edizione Standard T_GET_CELL_DATA
  • ExecutionMode flattening:

    • RSR_MDX_GET_FLAT_DATA
    • RSR_MDX_GET_FS_DATA
    • BAPI_MDDATA edizione Standard T_GET_FLAT_DATA
    • BAPI_MDDATA edizione Standard T_GET_FS_DATA
  • Streaming ExecutionMode:

    • BAPI_MDDATA edizione Standard T_GET_STREAMDATA
    • BAPI_MDDATA edizione Standard T_GET_STREAMINFO
  • ExecutionMode BasXml:

    • RSR_MDX_BXML_GET_DATA
    • RSR_MDX_BXML_GET_GZIP_DATA
    • RSR_MDX_BXML_GET_INFO
    • RSR_MDX_BXML_edizione Standard T_BINDING
  • Metadati:

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

    • BAPI_IOBJ_GETDETAIL (obbligatorio per le dimensioni tipate (DATS, TIMS))
    • BAPI_U edizione Standard R_GET_DETAIL (usato solo per l'interfaccia flat)
    • RFC_READ_TABLE (obbligatorio per i nomi di catalogo e determinate chiamate di valori di variabile)
  • Potrebbe essere chiamato dal connettore SAP .NET sottostante:

    • RFC_GET_FUNCTION_INTERFACE
    • FUNCTION_IMPORT_INTERFACE
    • DDIF_FIELDINFO_GET
    • SYSTEM_FINISH_ATTACH_GUI
    • BGRFC_DEST_CONFIRM
    • BGRFC_CHECK_UNIT_STATE_edizione Standard RVER
    • BGRFC_DEST_SHIP
    • ARFC_DEST_SHIP
    • RFC_FUNCTION_edizione Standard ARCH
    • RFC_SYSTEM_INFO
    • RFC_edizione Standard T_REG_edizione Standard RVER_PROPERTY
    • RFC_DOCU
    • edizione Standard O_GET_CLIF_REMOTE
    • SYSTEM_PREPARE_ATTACH_GUI
    • API_CLEAR_TID
    • ARFC_DEST_CONFIRM

Metodo non trovato 'Int32 SAP. Middleware. Connessione or. RfcBaseException.get_ErrorCode()

Verificare che il connettore SAP .NET sia installato correttamente. Vedere Eseguire l'installazione pulita del connettore SAP .NET.

Questo errore viene visualizzato quando la versione installata nella GAC è inferiore alla versione 3.0.18.0 prevista. Nota SAP 2417315 illustra questo scenario.

proprietà della stringa di Connessione ion impostate dal connettore

Quando vengono forniti sia il nome partner SNC che la libreria SNC, il connettore SAP BW Application Server (implementazione 2.0) imposta queste proprietà nel stringa di connessione:

  • SNC_MODE— SncModeApply
  • SNC_LIB, con il percorso della libreria specificato; se si tratta di una variabile di ambiente, viene espansa a questo punto
  • SNC_PARTNERNAME: con il valore specificato
  • SNC_QOP = RfcConfigParameters.RfcSncQOP.Default

Vengono usati sia per le connessioni server applicazioni SAP BW che per sap BW Message Server.

Per entrambi i tipi di connessione, il connettore imposta:

  • LANG (lingua)
  • AREA

Per la connessione al server applicazioni SAP BW, il connettore imposta:

  • ASHOST (AppServerHost)
  • SYSNR (SystemNumber)

Per le connessioni al server messaggi SAP BW, il connettore imposta:

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

Comando MDX non valido con <interno>

Questo errore proviene direttamente dal server SAP BW. L'implementazione 1 del connettore, basata su Netweaver RFC, non ha esposto questi errori all'utente, restituendo invece un set di risultati vuoto.

Questo problema è descritto nelle note SAP seguenti. L'accesso a queste note richiede un utente S. Contattare il team sap Basis per applicare le correzioni pertinenti per questo problema.

Inoltre, per altri errori simili, è possibile esaminare il contenuto delle note SAP seguenti e applicarle in base alle esigenze dell'ambiente:

Problemi e limitazioni

La modifica dei nomi delle variabili in un cubo SAP inserisce un report DirectQuery in uno stato irreversibile interrotto

Si verificano i sintomi seguenti:

  • Messaggio di errore:[Expression.Error] The import [XXXX] matches no exports.

  • Nei log:Message: [Expression.Error] The key didn't match any rows in the table.

  • Analisi dello stack:

    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({...}, {...})]
    

Una possibile soluzione alternativa consiste nel:

  1. Creare una copia del file PBIX (in quanto potrebbero verificarsi interruzioni).

  2. Aggiungere una variabile di ambiente denominata PBI_AlwaysEnableQueryEditor con un valore true. Questa impostazione consentirà l'accesso all'editor di query anche in modalità DirectQuery.

    Nota

    Questa variabile di ambiente non è supportata, pertanto deve essere usata solo come descritto qui.

  3. Fare clic con il pulsante destro del mouse sulla query "Cube" e selezionare Editor avanzato.

  4. La query deve contenere una riga che inizia con "{Cube.ApplyParameter, "[! V000004]" (parametro mancante)". Rimuovere la riga.

  5. Selezionare Fatto.

  6. Chiudere il editor di Power Query.

  7. Aggiornare l'oggetto visivo interessato.

Se la soluzione alternativa precedente non funziona, l'unica correzione alternativa consiste nel ricreare il report.

Dati numerici di SAP BW

Nota

Le informazioni seguenti si applicano solo quando si usa l'implementazione 1.0 del connettore SAP BW o l'implementazione 2.0 del connettore SAP BW con modalità flat (quando ExecutionMode=67).

Gli account utente in SAP BW hanno impostazioni predefinite per la formattazione dei valori decimali o di data/ora quando vengono visualizzati all'utente nell'interfaccia utente grafica SAP.

Le impostazioni predefinite vengono mantenute nel sistema SAP nel profilo utente per un account e l'utente può visualizzare o modificare queste impostazioni nell'interfaccia utente grafica SAP con il percorso di menu System>User Profile>Own Data.

Menu delle impostazioni delle notazioni decimali.

Power BI Desktop esegue una query nel sistema SAP per la notazione decimale dell'utente connesso e usa tale notazione per formattare i valori decimali nei dati di SAP BW.

SAP BW restituisce dati decimali con una , (virgola) o un . (punto) come separatore decimale. Per specificare quale di questi SAP BW deve usare per il separatore decimale, il driver usato da Power BI Desktop effettua una chiamata a BAPI_USER_GET_DETAIL. Questa chiamata restituisce una struttura denominata DEFAULTS, che dispone di un campo denominato DCPFM che archivia la notazione formato decimale. Il campo accetta uno dei valori seguenti:

  • ' ' (spazio) = Il separatore decimale è la virgola: N.NNN,NN
  • 'X' = Il separatore decimale è punto: N,NNN.NN
  • 'Y' = Il separatore decimale è NNN NNN,NN

I clienti che hanno segnalato questo problema hanno rilevato che la chiamata a BAPI_USER_GET_DETAIL non riesce per un determinato utente, che mostra i dati non corretti, con un messaggio di errore simile al seguente:

   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>

Per risolvere questo errore, gli utenti devono chiedere all'amministratore SAP di concedere all'utente SAP BW usato in Power BI il diritto di eseguire BAPI_USER_GET_DETAIL. Vale anche la pena verificare che l'utente abbia il valore richiesto DCPFM , come descritto in precedenza in questa soluzione di risoluzione dei problemi.

Connessione ivity per le query SAP BEx

È possibile eseguire query BEx in Power BI Desktop abilitando una proprietà specifica, come illustrato nell'immagine seguente:

Abilitare la versione per l'accesso esterno.

Limitazione dell'interfaccia MDX

Una limitazione dell'interfaccia MDX è che le variabili lunghe perdono il nome tecnico e vengono sostituite da V00000#.

Nessuna anteprima dei dati nella finestra Strumento di navigazione

In alcuni casi, la finestra di dialogo Strumento di navigazione non visualizza un'anteprima dei dati e fornisce invece un riferimento a un oggetto non impostato su un'istanza di un messaggio di errore dell'oggetto .

Gli utenti SAP devono accedere a moduli di funzione BAPI specifici per ottenere metadati e recuperare i dati da InfoProvider di SAP BW. Questi moduli includono:

  • 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

Per risolvere questo problema, verificare che l'utente abbia accesso ai vari moduli MDPROVIDER e BAPI_IOBJ_GETDETAIL. Per risolvere ulteriormente questo problema o problemi simili, è possibile abilitare la traccia. Seleziona File>Opzioni e impostazioni>Opzioni. In Opzioni selezionare Diagnostica, quindi selezionare Abilita traccia. Tentare di recuperare dati da SAP BW mentre la traccia è attiva ed esaminare il file di traccia per altri dettagli.

Eccezioni di memoria

In alcuni casi, è possibile che si verifichi uno degli errori di memoria seguenti:

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

Queste eccezioni di memoria provengono dal server SAP BW e sono dovute all'esaurimento della memoria disponibile del server per elaborare la query. Ciò può verificarsi quando la query restituisce un set di risultati di grandi dimensioni o quando la query è troppo complessa per il server da gestire, ad esempio quando una query ha molti crossjoins.

Per risolvere questo errore, è consigliabile semplificare la query o dividerla in query più piccole. Se possibile, eseguire il push di più aggregazioni nel server. In alternativa, contattare il team sap Basis per aumentare le risorse disponibili nel server.

Il caricamento di stringhe di testo con una lunghezza superiore a 60 caratteri in Power BI Desktop ha esito negativo

In alcuni casi è possibile che le stringhe di testo vengano troncate a 60 caratteri in Power BI Desktop.

Prima di tutto, seguire le istruzioni riportate in 2777473 - MDX: Domande frequenti per Power BI che accedono a BW o BW/4HANA e verificare se il problema viene risolto.

Poiché il connettore SAP Business Warehouse di Power Query usa l'interfaccia MDX fornita da SAP per l'accesso di terze parti, è necessario contattare SAP per le possibili soluzioni perché possiedono il livello tra l'interfaccia MDX e il server SAP BW. Chiedere come è possibile specificare "long text is XL" per lo scenario specifico.

Immagine che mostra dove impostare il testo lungo è xl setting.

Limite CHAR di 60 nonostante il "testo lungo" in SAP BW

Esiste una limitazione nota in cui le caratteristiche di "testo lungo" in SAP BW vengono visualizzate con un limite di 60 caratteri in Power BI. Questo limite di caratteri è dovuto a una limitazione nell'interfaccia MDX e non è disponibile alcuna soluzione alternativa nota. SAP ha documentato questa limitazione MDX in questa nota SAP.

Migrazione all'implementazione 2.0 quando si usa Direct Query

A causa della deprecazione dell'implementazione 1.0 del connettore SAP Business Warehouse, potrebbe essere necessario aggiornare le query per sfruttare i vantaggi dell'implementazione 2.0. Quando si usa Direct Query, l'accesso all'editor di query è limitato. Non è quindi possibile passare facilmente all'implementazione 2.0 senza ricreare l'intera query. La soluzione alternativa consiste nell'aggiungere una variabile di ambiente di sistema per consentire l'accesso all'editor di query. Si noti che i passaggi seguenti non sono ufficialmente supportati e devono essere usati solo come descritto qui.

  1. Creare una nuova variabile di ambiente passando a Esplora file> Questo PC>Proprietà>Avanzate impostazioni>di sistema Variabili di sistema Variabili>>di sistema Nuovo oppure aprendo un prompt dei comandi e immettendo sysdm.cpl e quindi selezionando Nuovo in Variabili di sistema.
  2. Assegnare alla variabile PBI_AlwaysEnableQueryEditor di ambiente il nome e impostare il valore true. Questa impostazione di variabile consente l'accesso all'editor di query anche in modalità Direct Query.
  3. Nella scheda Home di Power BI Desktop selezionare Trasforma dati per aprire l'editor di Power Query.
  4. Aggiornare la query per usare l'implementazione 2.0 seguendo queste istruzioni, a partire dal passaggio 2 in tale articolo.

La query finale dovrebbe avere un aspetto simile a SapBusinessWarehouse.Cubes("server", "system", "clientId", [Implementation = "2.0"]).