SAP Business Warehouse solução de problemas do conector

Este artigo fornece situações de solução de problemas (e possíveis soluções) para trabalhar com o conector SAP Business Warehouse (BW).

Coletar SAP BW rastreamentos avançados

Observação

Coletar um rastreamento de uma consulta enviada ao servidor SAP BW requer algumas opções e configurações que só podem ser fornecidas usando Power BI Desktop. Se você ainda não tiver uma cópia do Power BI Desktop, poderá obter uma cópia no Centro de Download da Microsoft. Você pode definir todas as opções e configurações necessárias para rastreamentos avançados usando essa versão gratuita.

Muitas vezes, quando ocorre um erro, pode ser vantajoso coletar um rastreamento da consulta que foi enviada ao servidor SAP BW e sua resposta. O procedimento a seguir mostra como configurar rastreamentos avançados para problemas que ocorrem usando o SAP BW conector.

  1. Feche Power BI Desktop se ele estiver em execução.

  2. Crie uma nova variável de ambiente:

    1. Na Windows Painel de Controle, selecione Sistema Avançado do Sistema > Configurações.

      Você também pode abrir um Prompt de Comando e inserir sysdm.cpl.

    2. Em Propriedades do Sistema, selecione a guia Avançado e, em seguida, selecione Variáveis de Ambiente.

    3. Em Variáveis de Ambiente , em Variáveis do Sistema , selecione Novo.

    4. Em Nova Variável do Sistema, em Nome da variável, insira PBI_EnableSapBwTracing e, em Valor da variável, insira true.

    5. Selecione OK.

    Quando esse rastreamento avançado for ativado, uma pasta adicional chamada SapBw será criada na pasta Rastreamentos. Consulte o restante deste procedimento para ver o local da pasta Rastreamentos.

  3. Abra o Power BI Desktop.

  4. Limpe o cache antes da captura.

    1. Na Power BI desktop, selecione a guia Arquivo.
    2. Selecione Opções e > configurações Opções.
    3. Em Configurações globais, escolha Carregar Dados.
    4. Selecione Limpar Cache.
  5. Enquanto você ainda estiver em Opções e configurações, habilita o rastreamento.

    1. Em Configurações globais, escolha Diagnóstico.
    2. Selecione Habilitar rastreamento.
  6. Enquanto você ainda estiver em Opções e configurações > de Diagnóstico Global, > selecione Abrir pasta de despejo de falha/rastreamentos. Verifique se a pasta está limpa antes de capturar novos rastreamentos.

  7. Reproduza o problema.

  8. Depois de terminar, feche Power BI Desktop para que os logs sejam liberados para o disco.

  9. Você pode exibir os rastreamentos recém-capturados na pasta SapBw (a pasta Traces que contém a pasta SapBw é mostrada selecionando Abrir pasta crash dump/traces na página Diagnóstico no Power BI Desktop).

  10. Certifique-se de desativar esse rastreamento avançado quando terminar, removendo a variável de ambiente ou definindo PBI_EnableSapBwTracing como false.

Coletar SAP BW rastreamentos avançados com rastreamentos CPIC

Se você estiver investigando problemas de autenticação ou SSO (logout único), use o mesmo procedimento descrito em Coletar rastreamentosavançados do SAP BW , exceto na etapa 2d, insira os seguintes valores e variáveis adicionais do sistema:

  • CPIC_TRACE — 3
  • CPIC_TRACE_DIR uma — pasta válida, por exemplo: E:\traces\CPIC

O restante do procedimento permanece o mesmo. Você pode exibir os rastreamentos CPIC na pasta especificada na variável CPIC_TRACE_DIR ambiente. Você também pode exibir os rastreamentos regulares na pasta SapBw.

Além disso, desative esse rastreamento avançado quando terminar, removendo as variáveis de ambiente ou definindo BI_EnableSapBwTracing como false e CPIC_TRACE como 0.

Executar a instalação limpa do conector sap .NET

Se for necessário reinstalar o conector sap .NET:

  1. Remova (desinstale) o Conector sap .NET.

  2. Depois de remover, verifique se o Conector sap .NET não está instalado no GAC (Cache de Assembly Global), verificando se os seguintes caminhos NÃO existem ou NÃO contêm DLLs:

    • GAC de 32 bits:

      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 de 64 bits:

      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. Verifique se os binários não estão em Arquivos de Programas. Certifique-se de que os seguintes locais NÃO existem ou estão vazios:

    C:\Arquivos de Programas\SAP\SAP_DotNetConnector3_Net40_x64

    C:\Arquivos de Programas (x86)\sap\SAP_DotNetConnector3_Net40_x86

  4. Reinstale o conector e lembre-se de selecionar a opção Instalar assemblies no GAC. Recomendamos que você use a versão mais recente, 3.0.23.

Solucionar problemas de mensagens de erro

SAP BW método ErrorCode não encontrado

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

Esse erro é lançado quando ocorre um erro no servidor SAP BW e o conector sap .NET tenta recuperar informações sobre esse erro. No entanto, esse erro pode estar ocultando o erro real. Esse erro pode ocorrer quando:

  • Usando uma versão antiga do conector SAP .NET.

  • Várias versões do conector SAP .NET estão instaladas.

  • O conector do SAP .NET foi instalado duas vezes, uma vez no GAC (Cache de Assembly Global) e uma vez não no GAC.

Siga as instruções em Executar a instalação limpa do conector SAP .NET para reinstalar o conector.

Isso não resolverá o problema, mas fornecerá a mensagem de erro real.

Exceção: o inicializador de tipo para 'Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService' lançou uma exceção.

Siga as instruções em Executar a instalação limpa do conector SAP .NET para reinstalar o conector.

Esse conector requer um ou mais componentes adicionais

Se você receber essa mensagem de erro, use as seguintes etapas de solução de problemas:

  1. Verifique se a versão do conector sap .NET está instalada no comprimento de bit correto. Se você tiver Power BI Desktop de 64 bits instalado, certifique-se de ter instalado o conector sap .NET de 64 bits.

  2. Verifique se, durante a instalação do CONECTOR SAP .NET, os assemblies install to GAC foram verificados. Para verificar se o GAC está instalado, abra Windows Explorer e vá para:

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

    Por exemplo, o caminho completo pode ser:

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

Se você instalou a versão de 32 bits do conector sap .NET, ela seria C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll (e você precisaria de uma versão de 32 bits do Power BI Desktop).

Outra maneira de verificar o GAC é usar gacutil (uma das opções para desabilitar a assinatura de nome forte). Você precisaria executar isso em um prompt de comando de 64 bits. Você pode verificar o conteúdo do GAC abrindo um prompt de comando, navegando até o caminho gacutil.exe e executando:

      gacutil -l

Por exemplo, na saída, você deve ver:

      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

"Nenhuma autorização RFC para a função ...*

A implementação 2.0 requer acesso aos BAPIs a seguir. Para resolver, entre em contato com a equipe do SAP Base e solicite permissões para esses BAPIs e RFCs para o usuário.

  • Conectividade:

    • RFC_PING
    • RFC_METADATA_GET
  • Execução 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
  • Nivelamento de ExecutionMode:

    • RSR_MDX_GET_FLAT_DATA
    • RSR_MDX_GET_FS_DATA
    • BAPI_MDDATASET_GET_FLAT_DATA
    • BAPI_MDDATASET_GET_FS_DATA
  • Streaming 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
  • Metadados:

    • 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
  • Informações:

    • BAPI_IOBJ_GETDETAIL (necessário para dimensões com tipo (DATS, TIMS))
    • BAPI_USER_GET_DETAIL (usado apenas para a interface de nivelamento)
    • RFC_READ_TABLE (necessário para nomes de catálogo e determinadas chamadas de valores de variável)
  • Pode ser chamado pelo conector sap .NET subjacente:

    • 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

Método não encontrado 'Int32 SAP. Middleware.Connector.RfcBaseException.get_ErrorCode()

Verifique se o conector sap .NET está instalado corretamente. Consulte Executar a instalação limpa do conector SAP .NET.

Esse erro aparece quando a versão instalada no GAC é inferior à versão 3.0.18.0 esperada. A Nota SAP 2417315 aborda esse cenário.

Propriedades da cadeia de conexão definidas pelo conector

Quando o Nome do Parceiro SNC e a Biblioteca SNC são fornecidos, o conector SAP BW Application Server (implementação 2.0) definirá essas propriedades na cadeia de conexão:

  • SNC_MODE — SncModeApply
  • SNC_LIB com o caminho da biblioteca especificado; se for uma variável de ambiente, ela será — expandida neste ponto
  • SNC_PARTNERNAME com — o valor fornecido
  • SNC_QOP = RfcConfigParameters.RfcSncQOP.Default

Eles são usados para conexões SAP BW Application Server e SAP BW Message Server.

Para ambos os tipos de conexão, o conector define:

  • LANG (Idioma)
  • CLIENTE

Para a SAP BW do Application Server, o conector define:

  • ASHOST (AppServerHost)
  • SYSNR (SystemNumber)

Para SAP BW conexões do Servidor de Mensagens, o conector define:

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

Comando MDX inválido com <internal>

Esse erro vem diretamente do servidor SAP BW servidor. A implementação 1 do conector, com base no Netweaver RFC, não expôs esses erros ao usuário, retornando um conjunto de resultados vazio.

Esse problema é discutido nas notas SAP a seguir. O acesso a essas notas requer um usuário S. Entre em contato com sua equipe do SAP Basis para aplicar as correções relevantes para esse problema.

Além disso, para outros erros semelhantes, você pode revisar o conteúdo das seguintes notas SAP e aplicá-las conforme apropriado para seu ambiente:

Limitações e problemas

Alterar nomes de variáveis em um cubo SAP coloca o relatório directQuery em um estado desfeito e irrecuperável

Os seguintes sintomas ocorrem:

  • Mensagem de erro—[Expression.Error] The import [XXXX] matches no exports.

  • Nos logs—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({...}, {...})]
    

Uma solução alternativa possível é:

  1. Faça uma cópia do arquivo PBIX (como as coisas podem se quebrar).

  2. Adicione uma variável de ambiente chamada PBI_AlwaysEnableQueryEditor com um valor true. Essa configuração permitirá o acesso ao editor de consultas mesmo no modo DirectQuery.

    Observação

    Essa variável de ambiente não tem suporte, portanto, só deve ser usada conforme descrito aqui.

  3. Clique com o botão direito do mouse na consulta "Cubo" e selecione Editor Avançado.

  4. A consulta deve ter uma linha que começa com "{Cube.ApplyParameter, "[! V000004]" (o parâmetro ausente). Remova essa linha.

  5. Selecione Concluído.

  6. Feche o Editor do Power Query.

  7. Atualize o visual afetado.

Se a solução alternativa acima não funcionar, a única correção alternativa será recriar o relatório.

Dados numéricos de SAP BW

Observação

As informações a seguir se aplica somente ao usar a Implementação 1.0 do conector do SAP BW ou a Implementação 2.0 do conector SAP BW com o modo nivelamento (quando ExecutionMode=67).

As contas de usuário SAP BW têm configurações padrão de como valores decimais ou de data/hora são formatados quando exibidos para o usuário na GUI do SAP.

As configurações padrão são mantidas no sistema SAP no Perfil do Usuário para uma conta e o usuário pode exibir ou alterar essas configurações na GUI do SAP com o caminho do menu Perfil do Usuário do Sistema Dados Próprios > > .

Menu de configurações de notação decimal.

Power BI Desktop consulta o sistema SAP para a notação decimal do usuário conectado e usa essa notação para formatar valores decimais nos dados de SAP BW.

O SAP BW retorna dados decimais com uma , (vírgula) ou um . (ponto) como separador decimal. Para especificar quais desses o SAP BW deve usar como separador decimal, o driver usado pelo Power BI Desktop faz uma chamada para BAPI_USER_GET_DETAIL. Essa chamada retorna uma estrutura denominada DEFAULTS, que tem um campo chamado DCPFM que armazena Notação de Formato Decimal. O campo assume um dos seguintes valores:

  • ‘ ‘ (espaço) = ponto decimal é vírgula: N.NNN,NN
  • ‘X’ = ponto decimal é ponto: N,NNN.NN
  • ‘Y’ = ponto decimal é N NNN NNN,NN

Os clientes que relataram esse problema descobriram que a chamada para está falhando para um usuário específico, que está mostrando os dados incorretos, com uma mensagem de erro semelhante à BAPI_USER_GET_DETAIL seguinte mensagem:

   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>

Para resolver esse erro, os usuários devem solicitar que o administrador do SAP conceda ao SAP BW usuário que está sendo usado no Power BI o direito de executar BAPI_USER_GET_DETAIL . Também vale a pena verificar se o usuário tem o valor DCPFM necessário, conforme descrito anteriormente nesta solução de problemas.

Conectividade para consultas SAP BEx

É possível executar consultas BEx no Power BI Desktop habilitando uma propriedade específica, conforme mostrado na seguinte imagem:

Habilitar Versão para Acesso Externo.

Limitação da interface MDX

Uma limitação da interface MDX é que variáveis longas perdem seu nome técnico e são substituídas por V00000#.

Nenhuma visualização de dados na janela Navegador

Em alguns casos, a caixa de diálogo Navegador não exibe uma visualização de dados e, em vez disso, fornece uma referência de objeto não definida como uma instância de uma mensagem de erro de objeto.

Os usuários SAP precisam acessar módulos de função BAPI específicos para obter metadados e recuperar dados de InfoProviders do SAP BW. Esses módulos incluem:

  • 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

Para resolver o problema, verifique se o usuário tem acesso aos vários módulos MDPROVIDER e a BAPI_IOBJ_GETDETAIL. Para solucionar o problema em questão ou problemas semelhantes, habilite o rastreamento. Selecione Arquivo > Opções e configurações > Opções. Em Opções, selecione Diagnóstico e selecione Habilitar rastreamento. Tente recuperar dados do SAP BW enquanto o rastreio estiver ativo e examine o arquivo de rastreamento para obter mais detalhes.

Exceções de memória

Em alguns casos, você pode encontrar um dos seguintes erros de memória:

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

Essas exceções de memória são do servidor SAP BW e são devido ao servidor ficar sem memória disponível para processar a consulta. Isso pode acontecer quando a consulta retorna um grande conjunto de resultados ou quando a consulta é muito complexa para o servidor lidar, por exemplo, quando uma consulta tem muitos crossjoins.

Para resolver esse erro, a recomendação é simplificar a consulta ou dividi-la em consultas menores. Se possível, e push de mais agregação para o servidor. Como alternativa, entre em contato com sua equipe do SAP Basis para aumentar os recursos disponíveis no servidor.

O carregamento de cadeias de caracteres de texto com mais de 60 caracteres Power BI Desktop falha

Em alguns casos, você pode descobrir que as cadeias de caracteres de texto estão sendo truncadas para 60 caracteres Power BI Desktop.

Primeiro, siga as instruções em 2777473 - MDX: perguntas frequentes para Power BI acessando BW ou BW/4HANA e veja se isso resolve o problema.

Como o conector Power Query SAP Business Warehouse usa a interface MDX fornecida pelo SAP para acesso de terceiros, você precisará entrar em contato com o SAP para encontrar soluções possíveis, pois elas têm a camada entre a interface MDX e o servidor SAP BW. Pergunte como o "texto longo é XL" pode ser especificado para seu cenário específico.

Imagem mostrando onde definir o texto longo é a configuração xl.