Compartir a través de


Solución de problemas de conectores para SAP Business Warehouse

En este artículo se proporcionan situaciones de solución de problemas (y posibles soluciones) para trabajar con el conector de SAP Business Warehouse (BW).

Recopilación de seguimientos avanzados de SAP BW

Nota:

La recopilación de un seguimiento de una consulta enviada al servidor de SAP BW requiere algunas opciones y configuraciones que solo se pueden proporcionar mediante Power BI Desktop. Si aún no tiene una copia de Power BI Desktop, puede obtener una copia en el Centro de descarga de Microsoft. Puede establecer todas las opciones y configuraciones necesarias para seguimientos avanzados mediante esta versión gratuita.

Muchas veces cuando se produce un error, puede ser ventajoso recopilar un seguimiento de la consulta que se envió al servidor de SAP BW y su respuesta. En el siguiente procedimiento se muestra cómo configurar seguimientos avanzados para problemas que se producen mediante el conector de SAP BW.

  1. Cierre Power BI Desktop si se está ejecutando.

  2. Cree una nueva variable de entorno:

    1. En el Panel de control de Windows, seleccione Sistema>Configuración avanzada del sistema

      También puede abrir un símbolo del sistema y escribir sysdm.cpl.

    2. En Propiedades del sistemaSeleccione la pestaña Opciones avanzadas y, a continuación, seleccione Variables de entorno.

    3. En Variables de entorno, en Variables del sistema , seleccione Nuevo.

    4. En Nueva variable del sistema, en Nombre de variable, introduzca PBI_EnableSapBwTracing y en Valor variable, escriba true

    5. Seleccione Aceptar.

    Cuando se activa este seguimiento avanzado, se creará una carpeta adicional denominada SapBw en la carpeta Seguimientos . Vea el resto de este procedimiento para obtener la ubicación de la carpeta Seguimientos.

  3. Abra Power BI Desktop.

  4. Borre la memoria caché antes de capturarla.

    1. En Power BI Desktop, seleccione la pestaña Archivo.
    2. Seleccione Opciones y configuración>Opciones
    3. En Configuración global , elija Carga de datos.
    4. Seleccionar Borrar caché.
  5. Aunque todavía está en Opciones y configuraciones, habilite el seguimiento.

    1. En Configuración global, elija Diagnósticos.
    2. Seleccione Habilitar seguimiento.
  6. Todavía en Opciones y configuración>Diagnósticos>globales, seleccione Abrir carpeta de volcado de memoria/seguimiento Asegúrese de que la carpeta está desactivada antes de capturar nuevos seguimientos.

  7. Reproduzca el problema.

  8. Una vez hecho esto, cierre Power BI Desktop para que los registros se vacíen en el disco.

  9. Puede ver los seguimientos recién capturados en la carpeta SapBw (la carpeta Seguimientos que contiene la carpeta SapBw se muestra seleccionando Abrir carpeta de volcado de memoria o seguimientos en la página Diagnósticos de Power BI Desktop).

  10. Asegúrese de desactivar este seguimiento avanzado una vez que haya terminado, quitando la variable de entorno o estableciendo PBI_EnableSapBwTracing en false.

Recopilación de seguimientos avanzados de SAP BW con seguimientos de CPIC

Si está investigando problemas de autenticación o inicio de sesión único (SSO), use el mismo procedimiento que se describe en Recopilación de seguimientos avanzados de SAP BW, excepto en el paso 2, donde debe escribir las siguientes variables y valores adicionales del sistema:

  • CPIC_TRACE—3
  • CPIC_TRACE_DIR: una carpeta válida, por ejemplo: E:\traces\CPIC

El resto del procedimiento de restauración sigue siendo el mismo. Puede ver los seguimientos de CPIC en la carpeta que especificó en la variable de entorno CPIC_TRACE_DIR. También puede ver los seguimientos normales en la carpeta SapBw .

Asegúrese también de desactivar este seguimiento avanzado una vez que haya terminado, quitando las variables de entorno o estableciendo BI_EnableSapBwTracing en false y CPIC_TRACE en 0.

Realizar una instalación limpia del conector de SAP .NET

Si es necesario volver a instalar el conector de SAP .NET:

  1. Quite (desinstale) el conector de SAP .NET.

  2. Después de quitarlo, compruebe que el conector de SAP .NET no está instalado en la caché global de ensamblados (GAC), asegurándose de que las rutas de acceso siguientes NO existen o NO contienen archivos DLL:

    • 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. Compruebe que los archivos binarios no están en archivos de programa. Asegúrese de que las siguientes ubicaciones NO existen o están vacías:

    C:\Archivos de programa\SAP\SAP_DotNetConnector3_Net40_x64

    C:\Archivos de programa (x86)\sap\SAP_DotNetConnector3_Net40_x86

  4. Vuelva a instalar el conector y recuerde seleccionar la opción Instalar ensamblados en GAC . Le recomendamos que utilice la última, 3.0.23.

Solución de mensajes de error

No se encontró el método ErrorCode de SAP BW

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

Este error se produce cuando se produce un error en el servidor SAP BW y el conector de SAP .NET intenta recuperar información sobre ese error. Sin embargo, este error puede estar ocultando el error real. Este error se puede producirse cuando:

  • Uso de una versión anterior del conector de SAP .NET.

  • Se instalan varias versiones del conector de SAP .NET.

  • El conector de SAP .NET se instaló dos veces, una vez en la caché global de ensamblados (GAC) y otra no en la GAC.

Siga las instrucciones que aparecen en Realizar la instalación limpia del conector de SAP .NET para reinstalar el conector.

Esto no resolverá el problema, pero proporcionará el mensaje de error real.

Excepción: inicializador de tipo para "Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService produjo una excepción.

Siga las instrucciones que aparecen en Realización de una instalación limpia del conector de SAP .NET para reinstalar el conector.

Este conector requiere uno o varios componentes adicionales.

Si recibe este mensaje de error, siga estos pasos de solución de problemas.

  1. Compruebe que la versión del conector de SAP .NET está instalada en la longitud de bits correcta. Si tiene Instalado Power BI Desktop de 64 bits, asegúrese de instalar el conector de SAP .NET de 64 bits.

  2. Compruebe que, al instalar el conector de .NET de SAP, se ha comprobado la instalación de ensamblados en GAC . Para revisar si GAC está instalado, abra el Explorador de Windows y vaya a:

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

    Por ejemplo, la ruta de acceso completa podría ser:

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

Si instaló la versión de 32 bits del conector de SAP .NET, sería C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll (y necesitaría una versión de 32 bits de Power BI Desktop).

Otra manera de comprobar la GAC es usar gacutil (una de las opciones para deshabilitar la firma de nombres seguros). Tendría que ejecutarlo desde un símbolo del sistema de 64 bits. Para comprobar el contenido de la GAC, abra un símbolo del sistema, vaya a la ruta de acceso gacutil.exe y ejecute:

      gacutil -l

Por ejemplo, en la salida debería ver:

      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

"Sin autorización RFC para la función ...*

La implementación 2.0 requiere acceso a los siguientes BAPIs. Para resolverlo, póngase en contacto con el equipo de SAP Basis y solicite permisos a estos BAPIs y RFC para el usuario.

  • Conectividad:

    • RFC_PING
    • RFC_METADATA_GET
  • Execution 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
  • Aplanamiento ExecutionMode:

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

    • 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
  • Información:

    • BAPI_IOBJ_GETDETAIL (obligatorio para dimensiones con tipo (DATS, TIMS))
    • BAPI_USER_GET_DETAIL (solo se usa para la interfaz de aplanamiento)
    • RFC_READ_TABLE (necesario para nombres de catálogo y determinadas llamadas a valores de variable)
  • Podría llamarlo el conector de SAP .NET subyacente:

    • 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

No se encontró el método 'Int32 SAP. Middleware.Connector.RfcBaseException.get_ErrorCode()

Compruebe que el conector de SAP .NET está instalado correctamente. Consulte Realización de una instalación limpia del conector de SAP .NET.

Este error aparece cuando la versión instalada en la GAC es inferior a la versión 3.0.18.0 esperada. La nota de SAP 2417315 describe este escenario.

Propiedades de cadena de conexión establecidas por el conector

Cuando se proporcionan tanto el nombre de asociado de SNC como la biblioteca SNC, el conector del servidor de aplicaciones de SAP BW (implementación 2.0) establecerá estas propiedades en la cadena de conexión:

  • SNC_MODE: SncModeApply
  • SNC_LIB: con la ruta de acceso de biblioteca especificada; si es una variable de entorno, se expande en este momento.
  • SNC_PARTNERNAME: con el valor proporcionado
  • SNC_QOP = RfcConfigParameters.RfcSncQOP.Default

Se usan para las conexiones de servidor de aplicaciones de SAP BW y servidor de mensajes de SAP BW.

Para ambos tipos de conexión, el conector establece:

  • LANG (idioma)
  • CLIENTE

Para la conexión del servidor de aplicaciones de SAP BW, el conector establece:

  • ASHOST (AppServerHost)
  • SYSNR (SystemNumber)

Para las conexiones del servidor de mensajes de SAP BW, el conector establece:

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

Comando MDX no válido con <interno>

Este error procede directamente del servidor SAP BW. La implementación 1 del conector, basada en RFC de Netweaver, no exponía estos errores al usuario, devolviendo en su lugar un conjunto de resultados vacío.

Este problema se describe en las notas de SAP siguientes. El acceso a estas notas requiere un usuario S. Póngase en contacto con el equipo de SAP Basis para aplicar las correcciones pertinentes para este problema.

Además, para otros errores similares, puede revisar el contenido de las siguientes notas de SAP y aplicarlos según corresponda para su entorno:

Problemas y limitaciones

El cambio de nombres de variable en un cubo de SAP coloca el informe de DirectQuery en un estado roto e irrecuperable

Se producen los siguientes síntomas:

  • Mensaje de error: —[Expression.Error] The import [XXXX] matches no exports.

  • En los registros: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({...}, {...})]
    

Una posible solución alternativa consiste en:

  1. Realice una copia del archivo PBIX (como podrían interrumpirse las cosas).

  2. Agregue una variable de entorno denominada PBI_AlwaysEnableQueryEditor con un valor true. Esta configuración permitirá el acceso al editor de consultas incluso en modo DirectQuery.

    Nota:

    Esta variable de entorno no es compatible, por lo que solo se debe usar como se describe aquí.

  3. Haga clic con el botón derecho en la consulta "Cubo" y seleccione Editor avanzado

  4. La consulta debe tener una línea que comience por "{Cube.ApplyParameter, "[! V000004]" (el parámetro que falta)". Quite esa línea.

  5. Seleccione Listo.

  6. Cierre el Editor de Power Query.

  7. Actualice el objeto visual afectado.

Si la solución alternativa anterior no funciona, la única corrección alternativa es volver a crear el informe.

Datos numéricos de SAP BW

Nota:

La siguiente información solo se aplica cuando se usa la implementación 1.0 del conector de SAP BW o la implementación 2.0 del conector de SAP BW con el modo de aplanamiento (cuando ExecutionMode=67).

Las cuentas de usuario de SAP BW tienen la configuración predeterminada de cómo se da formato a los valores decimales o de fecha y hora cuando se muestran al usuario en la GUI de SAP.

La configuración predeterminada se mantiene en el sistema SAP en el perfil de usuario de una cuenta y el usuario puede ver o cambiar esta configuración en la GUI de SAP con la ruta de acceso de menu System>User profile>Own Data.

Menú de configuración de notación decimal.

Power BI Desktop consulta el sistema SAP para la notación decimal del usuario conectado y usa esa notación para dar formato a los valores decimales de los datos de SAP BW.

SAP BW devuelve datos decimales con , (coma) o con un . (punto) como separador decimal. Para especificar cuál de esos SAP BW debe usar para el separador decimal, el controlador usado por Power BI Desktop realiza una llamada a BAPI_USER_GET_DETAIL. Esta llamada devuelve una estructura llamada DEFAULTS, que tiene un campo llamado DCPFM que almacena la notación en formato decimal. El campo toma uno de los valores siguientes:

  • ' ' (espacio) = La coma decimal es una coma: N.NNN,NN
  • 'X' = Punto decimal es el punto: N,NNN.NN
  • 'Y' = Decimal point is NNN NNN,NNN

Los clientes que han notificado este problema han detectado que se produce un error en la llamada a BAPI_USER_GET_DETAIL para un usuario determinado, que muestra los datos incorrectos, con un mensaje de error similar al siguiente:

   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 este error, los usuarios deben pedir a su administrador de SAP que conceda al usuario de SAP BW que se usa en Power BI el derecho de ejecución BAPI_USER_GET_DETAIL. También es necesario comprobar que el usuario tiene el valor necesario DCPFM, tal como se describe anteriormente en esta sección de solución de problemas.

Conectividad para consultas SAP BEx

Puede realizar consultas BEx en Power BI Desktop habilitando una propiedad específica, como se muestra en la siguiente imagen:

Habilite la versión para acceso externo.

Limitación de la interfaz MDX

Una limitación de la interfaz MDX es que las variables largas pierden su nombre técnico y se reemplazan por V00000#.

No hay vista previa de datos en la ventana Navegador

En algunos casos, el cuadro de diálogo Navegador no muestra una vista previa de datos y, en su lugar, proporciona una referencia de objeto no establecida en una instancia de un mensaje de error de objeto .

Los usuarios de SAP necesitan acceso a módulos de funciones BAPI específicos para obtener metadatos y recuperar datos de los InfoProviders de SAP BW. Entre estos módulos se incluyen:

  • 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 este problema, compruebe que el usuario tiene acceso a los distintos módulos MDPROVIDER y BAPI_IOBJ_GETDETAIL. Para solucionar aún más este problema u otros similares, puede habilitar el seguimiento. Seleccione Archivo>Opciones y configuración>Opciones. En Opciones, seleccione Diagnóstico y, a continuación, seleccione Habilitar seguimiento. Intente recuperar datos de SAP BW mientras el seguimiento está activo y examine el archivo de seguimiento para obtener más detalles.

Excepciones de memoria

En algunos casos, es posible que encuentre uno de los siguientes errores de memoria:

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

Estas excepciones de memoria proceden del servidor SAP BW y se deben a que el servidor se está quedando sin memoria disponible para procesar la consulta. Esto puede ocurrir cuando la consulta devuelve un gran conjunto de resultados o cuando la consulta es demasiado compleja para que el servidor controle, por ejemplo, cuando una consulta tiene muchas combinaciones cruzadas.

Para resolver este error, la recomendación es simplificar la consulta o dividirla en consultas más pequeñas. Si es posible, inserte más agregación en el servidor. Como alternativa, póngase en contacto con el equipo de SAP Basis para aumentar los recursos disponibles en el servidor.

Error al cargar cadenas de texto de más de 60 caracteres en Power BI Desktop

En algunos casos, es posible que encuentre que las cadenas de texto se truncan a 60 caracteres en Power BI Desktop.

En primer lugar, siga las instrucciones de 2777473 - MDX: Preguntas más frecuentes sobre el acceso a BW o BW/4HANA y vea si eso resuelve el problema.

Dado que el conector de SAP Business Warehouse de Power Query usa la interfaz MDX proporcionada por SAP para el acceso de terceros, deberá ponerse en contacto con SAP para obtener soluciones posibles, ya que poseen la capa entre la interfaz MDX y el servidor SAP BW. Pregunte cómo se puede especificar "texto largo es XL" para su escenario específico.

Imagen en la que se muestra dónde establecer que el texto largo es xl.

Límite char de 60 a pesar de "texto largo" en SAP BW

Hay una limitación conocida en la que las características de "texto largo" de SAP BW aparecen con un límite de 60 caracteres en Power BI. Este límite de caracteres se debe a una limitación en la interfaz MDX y no hay ninguna solución alternativa conocida disponible. SAP ha documentado esta limitación MDX en esta nota de SAP.

Migración a la implementación 2.0 al usar Direct Query

Debido al desuso de la implementación 1.0 del conector de SAP Business Warehouse, es posible que tenga que actualizar las consultas para aprovechar las ventajas de la implementación 2.0. Cuando se usa Direct Query, el acceso al editor de consultas está restringido. Por lo tanto, no puede realizar fácilmente la transición a la implementación 2.0 sin volver a crear toda la consulta. La solución consiste en agregar una variable de entorno del sistema para permitir el acceso al editor de consultas. Tenga en cuenta que los pasos siguientes no se admiten oficialmente y solo se deben usar como se describe aquí.

  1. Cree una nueva variable de entorno bien navegando a Explorador de archivos>Este PC>Propiedades>Configuración avanzada del sistema>Variables del entorno>Variables del sistema>Nuevo, o bien abra un símbolo del sistema y escriba sysdm.cpl y a continuación, seleccione Nuevo en Variables del sistema.
  2. Asigne un nombre a la variable de entorno PBI_AlwaysEnableQueryEditor y establezca el valor true. Esta configuración de variable permite el acceso al editor de consultas incluso en modo Direct Query.
  3. En Power BI Desktop, en la pestaña Inicio, seleccione Transformar datos para abrir el editor Power Query.
  4. Actualice la consulta para usar la implementación 2.0 siguiendo estas instrucciones, empezando por el paso 2 de ese artículo.

La consulta debería ser algo así: SapBusinessWarehouse.Cubes("server", "system", "clientId", [Implementation = "2.0"]).