Conexión a SAP desde flujos de trabajo en Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

En esta guía paso a paso de varias partes se muestra cómo acceder al servidor SAP desde un flujo de trabajo en Azure Logic Apps mediante el conector de SAP. Puede usar esta operación de conector de SAP para crear flujos de trabajo automatizados que se ejecuten cuando los desencadenen eventos en el servidor de SAP o en otros sistemas. También puede ejecutar acciones para administrar los recursos en el servidor de SAP.

Tanto los flujos de trabajo de aplicaciones lógicas estándar como de consumo ofrecen el conector de administrado SAP que se hospeda y se ejecuta en Azure multiinquilino. Los flujos de trabajo estándar también ofrecen el conector integrado de SAP que se aloja y ejecuta en Azure Logic Apps de un solo inquilino. Si crea y hospeda un flujo de trabajo de consumo en un entorno de servicio de integración (ISE), también puede usar la versión nativa de ISE del conector de SAP. Para más información, consulte la referencia técnica del conector.

Compatibilidad de SAP

El conector de SAP es compatible con los siguientes tipos de sistemas SAP:

  • Sistemas SAP basados en HANA locales y basados en la nube, como S/4 HANA.

  • Sistemas SAP clásicos locales, como R/3 y ECC.

SAP debe admitir la versión del sistema SAP que desea conectar. De lo contrario, es posible que los problemas que encuentre no se puedan resolver. Para obtener más información sobre las versiones del sistema SAP y el mantenimiento, revise la Matriz de disponibilidad de productos de SAP (PAM).

El conector de SAP admite los siguientes tipos de integración de datos y mensajes de los sistemas basados en SAP NetWeaver:

  • Documento intermedio (IDoc)

  • Interfaz de programación de aplicaciones empresariales (BAPI)

  • Llamada a función remota (RFC) y RFC transaccional (tRFC)

El conector de SAP emplea la biblioteca de SAP .NET Connector (NCo).

Para usar las operaciones del conector de SAP, primero debe autenticar la conexión y tener las siguientes opciones:

SNC puede usarse con el inicio de sesión único (SSO) de SAP NetWeaver o con funcionalidades de seguridad de productos externos. Si decide usar SNC, consulte los requisitos previos de SNC y los requisitos previos de SNC para el conector del ISE.

Referencia técnica del conector

El conector de SAP tiene diferentes versiones, en función del tipo de aplicación lógica y del entorno de host.

Aplicación lógica Entorno Versión del conector
Consumo Azure Logic Apps multiinquilino El conector administrado, que aparece en el diseñador con la etiqueta Enterprise. Para más información, revise la siguiente documentación:

- Referencia del conector administrado por SAP
- Conectores administrados en Azure Logic Apps
Consumo Entorno del servicio de integración (ISE) El conector administrado, que aparece en el diseñador con la etiqueta Enterprise, y la versión ISE, que aparece en el diseñador con la etiqueta nativa de ISE y tiene límites de mensaje diferentes a los del conector administrado.

Nota: Asegúrese de usar la versión nativa de ISE, no la versión administrada.

Para más información, revise la siguiente documentación:

- Referencia del conector administrado por SAP
- Límites de mensajes ISE
- Conectores administrados en Azure Logic Apps
Estándar Azure Logic Apps de inquilino único y App Service Environment v3 (solo planes de Windows) El conector administrado, que aparece en la galería de conectores en Runtime>Compartido y el conector integrado, que aparece en la galería de conectores en Runtime>En la aplicación y se basa en el proveedor de servicios. El conector integrado puede acceder directamente a redes virtuales de Azure con una cadena de conexión sin una puerta de enlace de datos local. Para más información, revise la siguiente documentación:

- Referencia del conector administrado por SAP
- Referencia del conector integrado de SAP

- Conectores administrados en Azure Logic Apps
- Conectores integrados en Azure Logic Apps

Diferencias del conector

El conector integrado de SAP difiere significativamente del conector administrado de SAP y del conector con versiones de SAP ISE de las siguientes maneras:

  • Las conexiones locales no requieren la puerta de enlace de datos local.

    En su lugar, el conector integrado de SAP se comunica directamente con el servidor SAP en la red virtual integrada, lo que evita saltos, latencia y puntos de error para una puerta de enlace de red. Asegúrese de cargar o implementar las bibliotecas cliente de SAP no redistribuibles con la aplicación de flujo de trabajo de la aplicación lógica. Para más información, consulte Requisitos previos en esta guía.

  • Se admiten tamaños de carga de hasta 100 MB, por lo que no es necesario usar un URI de blob para solicitudes grandes.

  • Hay acciones específicas disponibles para Llamar a BAPI, Llamar a RFC y Enviar IDoc. Estas acciones dedicadas proporcionan una mejor experiencia para BAPIs con estado, transacciones RFC y desduplicación de IDoc, y no usan el modelo de mensajería de Windows Communication Foundation (WCF) anterior.

    La acción Llamar a BAPI incluye hasta dos respuestas con el JSON devuelto, la respuesta XML de la llamada BAPI, y la respuesta de confirmación de BAPI o reversión de BAPI también y si usa confirmación automática. Esta funcionalidad soluciona el problema con el conector administrado de SAP en el que el resultado de la confirmación automática es silencioso y observable solo a través de registros.

  • Tiempo de espera más largo en 5 minutos en comparación con el conector administrado y el conector con versiones ISE.

    El conector integrado de SAP no usa la infraestructura de conectores compartida o global, lo que significa que los tiempos de espera son más largos en 5 minutos en comparación con el conector administrado de SAP (dos minutos) y el conector con versiones ISE de SAP (cuatro minutos). Las solicitudes de larga duración funcionan sin tener que implementar el patrón de acción de solicitud basado en webhook de ejecución prolongada.

  • Por defecto, las operaciones del conector integrado de SAP no tienen estado. Sin embargo, puede habilitar el modo con estado (afinidad) para estas operaciones.

    En el modo con estado, el conector integrado de SAP admite configuraciones de escalabilidad horizontal y alta disponibilidad. En comparación, el conector administrado de SAP tiene restricciones relativas a la puerta de enlace de datos local limitada a una única instancia de desencadenadores y a clústeres solo en modo de conmutación por error para las acciones. Para más información, consulte Conector administrado de SAP: problemas conocidos y limitaciones.

  • Los flujos de trabajo de la aplicación lógica estándar requieren y usan la biblioteca cliente de SAP NCo 3.1, no la versión de SAP NCo 3.0. Para obtener más información, consulte Requisitos previos.

  • Los flujos de trabajo de aplicaciones lógicas estándar proporcionan la configuración de la aplicación, donde puede especificar una contraseña de Entorno de seguridad personal (PSE) y PSE.

    Este cambio evita que cargue varios archivos PSE, que no se admiten y producen errores de conexión de SAP. En flujos de trabajo de la aplicaciones lógicas basados en Consumo, el conector administrado de SAP permite especificar estos valores a través de parámetros de conexión, lo que le permitiría cargar varios archivos PSE y esto no se admite, lo que provoca errores de conexión de SAP.

  • Acción Generar esquema

    • Puede seleccionar entre varios tipos de operación, como BAPI, IDoc, RFC y tRFC, frente a la misma acción en el conector administrado de SAP, que usa el parámetro SapActionUris y una experiencia de selector del sistema de archivos.

    • Puede proporcionar directamente un nombre de parámetro como un valor personalizado. Por ejemplo, puede especificar el parámetro RFC Name en la acción Llamar a RFC. En comparación, en el conector administrado de SAP, tenía que proporcionar un nombre de parámetro URI de acción complejo.

    • Por diseño, esta acción no admite la generación de varios esquemas para RFC, BAPIs o IDoc en la ejecución de una sola acción, que admite el conector administrado de SAP. Este cambio de funcionalidad ahora evita intentos de enviar grandes cantidades de contenido en una sola llamada.

Parámetros del conector

Junto con entradas de cadena y número simples, el conector de SAP acepta estos parámetros de tabla (entradas Type=ITAB):

  • Parámetros de dirección de tabla, tanto de entrada como de salida, para versiones anteriores de SAP.
  • Cambios de parámetros, que reemplazan los parámetros de dirección de la tabla para las versiones más recientes de SAP.
  • Parámetros de tabla jerárquica.

Limitaciones y problemas conocidos

Conector administrado de SAP

  • El conector SAP no admite actualmente las cadenas de enrutador SAP. La puerta de enlace de datos local debe existir en una red virtual en la que la puerta de enlace pueda acceder directamente al sistema SAP que desea conectar.

  • En general, el desencadenador de SAP no admite los clústeres de puerta de enlace de datos. En algunos casos de conmutación por error, el nodo de puerta de enlace de datos que se comunica con el sistema SAP puede diferir del nodo activo, lo que produce un comportamiento inesperado.

    • En los escenarios de envío de mensajes, se admiten clústeres de puerta de enlace de datos en modo de conmutación por error.

    • No se admiten con las acciones de SAP con estado en los clústeres de puerta de enlace de datos en modo de equilibrio de carga. Las comunicaciones con estado deben permanecer en el mismo nodo de clúster de puerta de enlace de datos. Tampoco puede usar la puerta de enlace de datos en modo no clúster o en un clúster configurado solo para la conmutación por error. Por ejemplo, estas acciones incluyen lo siguiente:

      • Todas las acciones que especifican un valor de Session ID (Id. de sesión)
      • [BAPI] Confirmar transacción
      • [BAPI] Revertir transacción
      • [BAPI - RFC] Cerrar sesión con estado
      • [BAPI - RFC] Crear una sesión con estado
  • En la acción denominada [BAPI] Call method in SAP ([BAPI] Llamar al método en SAP), la característica de confirmación automática no confirmará los cambios de BAPI si existe al menos una advertencia en el objeto CallBapiResponse que devuelve la acción. Para confirmar los cambios de BAPI a pesar de las advertencias, siga estos pasos:

    1. Cree una sesión explícitamente mediante la acción denominada [BAPI - RFC] Create stateful session ([BAPI - RFC] Crear sesión con estado).
    2. En la acción llamada [BAPI] Call method in SAP ([BAPI] Llamar al método en SAP), deshabilite la característica de confirmación automática.
    3. Llame a la acción denominada [BAPI] Commit transaction ([BAPI] Confirmar transacción) en su lugar.

Conexiones basadas en IP al servidor de mensajes de SAP (configuración de carga equilibrada)

Si especifica una dirección IP para conectarse a un servidor de mensajes de SAP, por ejemplo, un equilibrador de carga, es posible que la conexión siga produciendo un error con un mensaje de error similar a "nombre de host SAPDBSERVER01.example.com desconocido". El servidor de mensajes indica al conector de SAP que use un nombre de host para la conexión al servidor de aplicaciones SAP back-end o al servidor detrás del equilibrador de carga. Si DNS no puede resolver el nombre de host, se produce un error en la conexión.

Para este problema, existen las soluciones o soluciones siguientes:

  • Asegúrese de que el cliente que realiza la conexión, como el equipo con la puerta de enlace de datos local para el conector de SAP o el host del conector ISE para el conector de SAP basado en ISE, puede resolver los nombres de host devueltos por el servidor de mensajes.

  • En la transacción denominada RZ11, cambie o agregue la configuración de SAP denominada ms/lg_with_hostname=0.

Contexto o fondo del problema

SAP actualizó su conector de .NET (NCo) a la versión 3.1, que cambió la forma en que el conector solicita conexiones a servidores back-end desde servidores de mensajes. El conector ahora usa una nueva API para la resolución del servidor de aplicaciones por parte del servidor de mensajes a menos que obligue al conector a usar la API anterior mediante la configuración denominada ms/lg_with_hostname=0'. Para obtener más información, vea Artículo de SAP KB 3305039: Configuración de dirección IP de SMLG no considerada durante el inicio de sesión del grupo de inicio de sesión.

Requisitos previos

  • Una cuenta y una suscripción de Azure. Si aún no tiene ninguna suscripción de Azure, regístrese para obtener una cuenta gratuita de Azure.

  • Un servidor de aplicaciones de SAP o servidor de mensajes de SAP para el que quiere obtener acceso desde Azure Logic Apps.

    • Configure el servidor SAP y la cuenta de usuario para permitir el uso de RFC.

      Para obtener más información, que incluye los tipos de cuenta de usuario admitidos y la autorización mínima necesaria para cada tipo de acción (RFC, BAPI, IDoc), revise la siguiente nota de SAP: 460089: perfiles de autorización mínimos para programas RFC externos.

    • La cuenta de usuario de SAP necesita acceso al grupo de funciones RFC_METADATA y a los módulos de función correspondientes para las siguientes operaciones:

      Operations Acceso a los módulos de función
      Acciones RFC RFC_GROUP_SEARCH y DD_LANGU_TO_ISOLA
      Acciones de BAPI BAPI_TRANSACTION_COMMIT, BAPI_TRANSACTION_ROLLBACK, RPY_BOR_TREE_INIT, SWO_QUERY_METHODS y SWO_QUERY_API_METHODS
      Acciones de IDoc IDOCTYPES_LIST_WITH_MESSAGES, IDOCTYPES_FOR_MESTYPE_READ, INBOUND_IDOCS_FOR_TID, OUTBOUND_IDOCS_FOR_TID, GET_STATUS_FROM_IDOCNR y IDOC_RECORD_READ
      Acción Read SAP table (Leer tabla de SAP) RFC BBP_RFC_READ_TABLE o RFC_READ_TABLE
      Conceda acceso mínimo estricto al servidor SAP para su conexión SAP RFC_METADATA_GET y RFC_METADATA_GET_TIMESTAMP
  • El flujo de trabajo de la aplicación lógica desde donde quiere acceder al servidor SAP.

  • Por defecto, las operaciones del conector integrado de SAP no tienen estado. Para ejecutar estas operaciones en modo con estado, consulte Habilitación del modo con estado para conectores integrados sin estado.

  • Para usar el desencadenador del conector integrado o administrado de SAP denominado Cuando se recibe un mensaje, complete las tareas siguientes:

    • Configure los permisos de seguridad de la puerta de enlace de SAP o la lista de control de acceso (ACL). En el cuadro de diálogo Monitor de puerta de enlace (código T SMGW), que muestra los archivos secinfo y reginfo, abra el menú Ir a y seleccione Funciones expertas>Seguridad externa>Mantenimiento de archivos ACL.

      Se necesita la siguiente configuración de permisos:

      P TP=LOGICAPP HOST=<on-premises-gateway-server-IP-address> ACCESS=*

      Esta línea tiene el siguiente formato:

      P TP=<trading-partner-identifier-(program-name)-or-*-for-all-partners> HOST=<comma-separated-list-with-external-host-IP-or-network-names-that-can-register-the-program> ACCESS=<*-for-all-permissions-or-a-comma-separated-list-of-permissions>

      Si no configura los permisos de seguridad de la puerta de enlace de SAP, es posible que reciba este error:

      El registro de tp Microsoft.PowerBI.EnterpriseGateway desde el host <host-name> no se permite

      Para obtener más información, revise SAP Note 1850230 - GW: "Registration of tp <program ID> not allowed" (Nota de SAP 1850230 - GW: No se permite el registro del identificador de programa de tp).

    • Configure el registro de seguridad de la puerta de enlace de SAP para buscar los problemas de la lista de control de acceso (ACL). Para obtener más información, vea el tema de ayuda de SAP para configurar el registro de la puerta de enlace.

    • En el cuadro de diálogo Configuración de conexiones RFC (código T SM59), cree una conexión RFC con el tipo TCP/IP. Asegúrese de que Tipo de activación está establecido en Programa de servidor registrado. Establezca el valor de Tipo de comunicación de la conexión RFC con el sistema de destino en Unicode.

    • Si usa este desencadenador de SAP con el parámetro Formato de IDOC establecido en FlatFile junto con la acción Descodificación de archivos planos, tendrá que usar la propiedad early_terminate_optional_fields en el esquema de archivo plano estableciendo el valor en true.

      Este requisito es necesario porque el registro de datos IDoc de archivo plano que envía SAP en la llamada a tRFC IDOC_INBOUND_ASYNCHRONOUS no se agrega a la longitud completa del campo SDATA. Azure Logic Apps proporciona los datos originales de IDoc de archivo plano sin relleno tal y como se reciben de SAP. Además, al combinar este desencadenador de SAP con la acción Descodificación de archivos planos, el esquema que se proporciona a la acción debe coincidir.

    Nota:

    En Flujos de trabajo consumo y estándar, el desencadenador administrado de SAP denominado Cuando se recibe un mensaje usa la misma ubicación de URI para renovar y cancelar la suscripción de un webhook. La operación de renovación usa el método PATCH de HTTP, mientras que la operación de cancelación usa el método DELETE de HTTP. Este comportamiento puede provocar que una operación de renovación aparezca como una operación de cancelación en el historial del desencadenador, pero la operación sigue siendo una renovación porque el desencadenador usa PATCH como método HTTP, no DELETE.

    En flujos de trabajo estándar, el desencadenador integrado de SAP denominado Cuando se recibe un mensaje usa el desencadenador de Azure Functions en su lugar y solo muestra las devoluciones de llamada reales de SAP.

    • WEBSITE_PRIVATE_IP: establecer este valor de variable de entorno en 127.0.0.1 como dirección localhost.
    • WEBSITE_PRIVATE_PORTS: establecer este valor de variable de entorno en dos puertos libres y utilizables en el equipo local, separando los valores con una coma (,), por ejemplo, 8080,8088.
  • El contenido del mensaje que puede enviar al servidor de SAP, como un archivo de IDoc de ejemplo. Este contenido debe estar en formato XML e incluir el espacio de nombres para la acción de SAP que se va a usar. Puede enviar documentos IDoc con un esquema de archivo plano ajustándolos en un sobre XML.

Requisitos previos de conectividad de red

El sistema SAP requiere conectividad de red desde el host de la biblioteca de SAP .NET Connector (NCo):

  • Para flujos de trabajo de aplicaciones lógicas de consumo en Azure Logic Apps multiinquilino, la puerta de enlace de datos local hospeda la biblioteca SAP .NET Conector (NCo). Si se usa un clúster de puerta de enlace de datos local, todos los nodos del clúster requieren conectividad de red con el sistema de SAP.

  • En el caso de los flujos de trabajo de aplicaciones lógicas estándar en Azure Logic Apps de un solo inquilino, el recurso de aplicación lógica hospeda la biblioteca de SAP .NET Connector (NCo). Por lo tanto, el propio recurso de aplicación lógica debe habilitar la integración de red virtual y esa red virtual debe tener conectividad de red con el sistema SAP.

  • En el caso de los flujos de trabajo de aplicación lógica de consumo en un ISE, la red virtual de ISE hospeda la biblioteca de SAP .NET Connector (NCo).

La conectividad de red necesaria para el sistema SAP incluye los siguientes servidores y servicios:

  • Servidor de aplicaciones de SAP, servicio Dispatcher (para todos los tipos de inicio de sesión)

    El sistema SAP puede incluir varios servidores de aplicaciones SAP. El host de la biblioteca SAP .NET Connector (NCo) requiere acceso a cada servidor y sus servicios.

  • Servidor de mensajes de SAP, Servicio de mensajes (para grupo de tipo de inicio de sesión)

    El servidor de mensajes y el servicio redirigirán a uno o varios servicios de distribuidor del servidor de aplicaciones. El host de la biblioteca SAP .NET Connector (NCo) requiere acceso a cada servidor y sus servicios.

  • Servidor de puerta de enlace de SAP, Servicio de puerta de enlace

  • Servidor de puerta de enlace de SAP, Servicio protegido de puerta de enlace

    La conectividad de red requerida por el sistema de SAP también incluye este servidor y servicio para usarlos con comunicaciones de red seguras (SNC).

El redireccionamiento de las solicitudes del servidor de aplicaciones, el servicio de distribuidor al servidor de puerta de enlace y el servicio de puerta de enlace ocurre automáticamente en la biblioteca de SAP .NET Connector (NCo). Este redireccionamiento se produce incluso si solo la información del servicio de distribuidor del servidor de aplicaciones se proporciona en los parámetros de conexión.

Si usa un equilibrador de carga delante del sistema de SAP, debe redirigir todos los servicios a sus respectivos servidores. Para obtener más información sobre los servicios y puertos de SAP, revise los puertos TCP/IP de todos los productos de SAP.

Nota

Asegúrese de que ha habilitado la conectividad de red desde el host de la biblioteca SAP .NET Connector (NCo) y de que los puertos necesarios están abiertos en firewalls y grupos de seguridad de red. De lo contrario, se obtienen errores como que el asociado no se ha alcanzado desde el componente NI (interfaz de red) y texto de error, como WSAECONNREFUSED: Connection refused (WSAECONNREFUSED: Conexión rechazada).

Requisitos previos de la biblioteca de cliente de SAP NCo

Para usar el conector de SAP, debe instalar la biblioteca cliente NCo del conector de SAP para Microsoft .NET 3.1. En la lista siguiente se describen los requisitos previos para la biblioteca cliente de SAP NCo, en función del flujo de trabajo en el que se usa el conector de SAP:

  • Versión:

    • En el caso de los flujos de trabajo de aplicaciones lógicas de consumo que usan la puerta de enlace de datos local, asegúrese de instalar la versión más reciente de 64 bits, conector de SAP para Microsoft .NET 3.1.3.0 para Windows 64 bits (x64). La puerta de enlace de datos solo se ejecuta en sistemas de 64 bits. Al instalar la versión de 32 bits no admitida, se produce un error de "imagen incorrecta".

    • En el caso de los flujos de trabajo de aplicaciones lógicas Estándar, puede instalar la versión más reciente de 64 o 32 bits para conector SAP (NCo 3.1) para Microsoft .NET 3.1.3.0 compilado con .NET Framework 4.6.2. Sin embargo, asegúrese de instalar la versión que coincida con la configuración de su recurso de aplicación lógica Estándar. Para comprobar la versión usada por la aplicación lógica, siga estos pasos:

      1. En Azure Portal, abra el recurso Aplicación lógica estándar.

      2. En el menú del recurso de aplicación lógica, en Configuración, seleccione Configuración.

      3. En la página Configuración, seleccione la pestaña Configuración general. En Configuración de la plataforma, compruebe si el valor de Plataforma está establecido en 64 bits o 32 bits.

      4. Asegúrese de instalar la versión del conector de SAP (NCo 3.1) para Microsoft .NET 3.1.3.0 compilado con .NET Framework 4.6.2 que coincida con la configuración de la plataforma.

  • En la carpeta de instalación predeterminada de la biblioteca cliente, copie los archivos de ensamblado (.dll) a otra ubicación, según el escenario que se indica a continuación. O, opcionalmente, si usa solo el conector administrado de SAP, al instalar la biblioteca cliente de SAP NCo, seleccione Registro de caché global de ensamblados. Actualmente, el archivo ZIP de ISE y el conector integrado de SAP no admiten el registro GAC.

    • Para un flujo de trabajo de consumo que se ejecuta en Azure Logic Apps multiinquilino y usa la puerta de enlace de datos local, copie los siguientes archivos de ensamblado (.dll) en la carpeta de instalación de la puerta de enlace de datos local, por ejemplo, C:\Archivos de programa\Puerta de enlace de datos local. La biblioteca cliente de SAP NCo 3.0 contiene los ensamblados siguientes:

      • libicudecnumber.dll
      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

      Asegúrese de copiar los archivos de ensamblado en la carpeta de instalación de la puerta de enlace de datos. De lo contrario, es posible que se produzca un error en la conexión de SAP con el mensaje de error. Compruebe la información de la cuenta o los permisos e inténtelo de nuevo. Para solucionar otros problemas, use el visor de registro de enlaces de ensamblados de .NET. Esta herramienta le permite comprobar que los archivos de ensamblado se encuentran en la ubicación correcta.

    • En el caso de los flujos de trabajo estándar, copie los siguientes archivos del ensamblado (.dll) en una ubicación desde la que puede cargarlos en el recurso o proyecto de la aplicación lógica donde va a compilar el flujo de trabajo, ya sea en el Azure Portal o localmente en Visual Studio Code, respectivamente. La biblioteca cliente de SAP NCo 3.1 incluye los ensamblados siguientes:

      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll
    • En el caso del flujo de trabajo de consumo que se ejecuta en un ISE, siga los Requisitos previos del Entorno del servicio de integración (ISE) en su lugar.

Existen las siguientes relaciones entre la biblioteca cliente de SAP NCo, .NET Framework, el entorno de ejecución de .NET y la puerta de enlace de datos local:

  • Tanto Microsoft SAP Adapter como el servicio de host de la puerta de enlace usan .NET Framework 4.7.2.

  • SAP NCo para .NET Framework 4.0 funciona con procesos que usan las versiones 4.0 a 4.8 del entorno de ejecución de .NET.

  • NCo de SAP para .NET Framework 2.0 funciona con procesos que usan las versiones 2.0 a 3.5 del entorno de ejecución de .NET y ya no funciona con la puerta de enlace más reciente.

Requisitos previos de SNC

Para flujos de trabajo de consumo en Azure Logic Apps multiinquilino que usan la puerta de enlace de datos local y, opcionalmente, SNC, también debe configurar las siguientes opciones.

  • Asegúrese de que la versión de la biblioteca SNC y sus dependencias son compatibles con el entorno de SAP. Para solucionar los problemas de compatibilidad de la biblioteca, puede usar la puerta de enlace de datos local o los registros de puerta de enlace de datos.

  • Asegúrese de copiar los siguientes archivos de ensamblado (.dll) en la biblioteca cliente de SAP NCo 3.0 en la carpeta de instalación de la puerta de enlace de datos local, por ejemplo, C:\Archivos de programa\Puerta de enlace de datos local.

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • Para la utilidad SAPGENPSE, debe usar específicamente sapgenpse.exe.

  • Si proporciona un entorno de seguridad personal (PSE) con la conexión, no es necesario copiar ni configurar PSE y SECUDIR para la puerta de enlace de datos local.

  • Si habilita SNC a través de un producto de seguridad externo, como sapseculib, Kerberos o NTLM, asegúrese de que la biblioteca de SNC existe en el mismo equipo que la instalación de la puerta de enlace de datos. Para esta tarea, copie los archivos binarios de la biblioteca SNC en la misma carpeta que la instalación de la puerta de enlace de datos en el equipo local como por ejemplo C:\Archivos de programa\Puerta de enlace de datos local.

    Nota:

    En el equipo con la instalación de la puerta de enlace de datos y la biblioteca SNC, no establezca las variables de entorno para SNC_LIB y SNC_LIB_64. Si lo hace, estas variables tienen prioridad sobre el valor de la biblioteca de SNC pasado a través del conector.

  • Para usar SNC con el inicio de sesión único (SSO), asegúrese de que el servicio de la puerta de enlace de datos se ejecuta con un usuario asignado con el usuario de SAP. Para cambiar la cuenta predeterminada para la cuenta de servicio de la puerta de enlace, seleccione Cambiar cuenta y escriba las credenciales de usuario.

    Captura de pantalla que muestra el instalador de puerta de enlace de datos local y la página de configuración del servicio con el botón para cambiar la cuenta de servicio de puerta de enlace seleccionada.

Para obtener más información sobre la habilitación de SNC, consulte Habilitación de las comunicaciones de red seguras (SNC).

Requisitos previos del entorno de Azure Logic Apps

Para un flujo de trabajo de consumo en Azure Logic Apps multiinquilino, el conector administrado de SAP se integra con sistemas SAP a través de una puerta de enlace de datos local. Por ejemplo, en escenarios donde el flujo de trabajo envía un mensaje al sistema SAP, la puerta de enlace de datos actúa como cliente RFC y reenvía las solicitudes recibidas del flujo de trabajo a SAP. Del mismo modo, en escenarios en los que el flujo de trabajo recibe un mensaje de SAP, la puerta de enlace de datos actúa como un servidor RFC que recibe solicitudes de SAP y las reenvía al flujo de trabajo.

  1. En un equipo host o máquina virtual que exista en la misma red virtual que el sistema SAP al que se va a conectar, descargue e instale la puerta de enlace de datos local.

    La puerta de enlace de datos le ayuda a acceder de forma segura a los datos y recursos que se encuentran en el entorno local. Asegúrese de usar una versión compatible de la puerta de enlace. Si tiene problemas con la puerta de enlace, intente actualizar a la versión más reciente, que puede incluir actualizaciones para resolver el problema.

  2. En Azure Portal, cree un recurso de puerta de enlace de Azure para la instalación de la puerta de enlace.

  3. En el mismo equipo local que la puerta de enlace de datos local, descargue e instale la biblioteca más actualizada de clientes de SAP NCo.

  4. Para el equipo host con la instalación de la puerta de enlace de datos local, configure los nombres de host de red y la resolución de nombres de servicio.

    • Para usar los nombres de host o nombres de servicio para la conexión desde Azure Logic Apps, debe configurar resolución de nombres para cada aplicación, mensaje y servidor de puerta de enlace de SAP junto con sus servicios:

      • En el archivo %windir%\System32\drivers\etc\hosts o en el servidor DNS que está disponible en el equipo del host para la instalación de puerta de enlace de datos local, configure la resolución de nombres de host de red.

      • En el archivo %windir%\System32\drivers\etc\services, configure la resolución de nombres de servicio.

    • Si no piensa usar nombres de host de red o nombres de servicio para la conexión, puede usar direcciones IP de host y números de puerto de servicio en su lugar.

    • Si no tiene una entrada DNS para el sistema SAP, en el ejemplo siguiente se muestra una entrada de ejemplo para el archivo de hosts:

      10.0.1.9           sapserver                   # SAP single-instance system host IP by simple computer name
      10.0.1.9           sapserver.contoso.com       # SAP single-instance system host IP by fully qualified DNS name
      

      En la lista siguiente se muestra un conjunto de entradas de ejemplo para los archivos de servicios:

      sapdp00            3200/tcp              # SAP system instance 00 dialog (application) service port
      sapgw00            3300/tcp              # SAP system instance 00 gateway service port
      sapmsDV6           3601/tcp              # SAP system ID DV6 message service port
      

Habilitación de las comunicaciones de red seguras (SNC)

Para un flujo de trabajo de consumo que se ejecuta en Azure Logic Apps multiinquilino, puede habilitar SNC para la autenticación, que solo se aplica cuando se usa la puerta de enlace de datos. Antes de empezar, asegúrese de cumplir todos los requisitos previos necesarios y los requisitos previos de SNC.

  1. En el Azure Portal, abra su aplicación lógica de consumo y su flujo de trabajo en el diseñador.

  2. Agregue o edite una operación de conector administrado de SAP.

  3. En el cuadro de información de conexión de SAP, proporcione la información requerida siguiente. El tipo de autenticación que seleccione cambia las opciones disponibles.

    Captura de pantalla que muestra la configuración de conexión de SAP para el consumo.

    Nota

    Los campos Nombre de usuario de SAP y Contraseña de SAP son opcionales. Si no proporciona un nombre de usuario y una contraseña, el conector usa el certificado de cliente proporcionado en un paso posterior para la autenticación.

  4. Para habilitar SNC, en el cuadro de información de conexión de SAP, proporcione la información requerida siguiente en su lugar:

    Captura de pantalla que muestra la configuración de conexión de SAP habilitada para SNC para el consumo.

    Parámetro Descripción
    Utilice SNC Active la casilla.
    Biblioteca de SNC Introduzca uno de los valores siguientes:

    - El nombre de su biblioteca de SNC, por ejemplo, sapsnc.dll
    - La ruta de acceso relativa a la ubicación de instalación de NCo, por ejemplo, .\security\sapsnc.dll
    - La ruta de acceso absoluta a la ubicación de instalación de NCo, por ejemplo, .\security\sapsnc.dll
    SNC SSO (SSO de SNC) Seleccione Iniciar sesión con la identidad de SNC o Iniciar sesión con el nombre de usuario o la contraseña proporcionados en el nivel RFC.

    Normalmente, la identidad de SNC se usa para autenticar al autor de la llamada. Puede optar por autenticarse con un nombre de usuario y una contraseña en su lugar, pero este valor de parámetro todavía está cifrado.
    SNC My Name (Mi nombre de SNC) En la mayoría de los casos, puede omitir este valor. La solución de SNC instalada conoce normalmente su propio nombre SNC. En caso de que la solución admita varias identidades, es posible que tenga que especificar la identidad que se va a usar para este destino o servidor concretos.
    SNC Partner Name (Nombre del asociado de SNC) Escriba el nombre del SNC de back-end, por ejemplo, p:CN=DV3, OU=LA, O=MS, C=US.
    SNC Quality of Protection (Calidad de protección de SNC) Seleccione la calidad de servicio que usar para la comunicación SNC con este destino o servidor en particular. El sistema back-end define el valor predeterminado. El valor máximo lo define el producto de seguridad usado para SNC.
    Certificado de SNC Introduzca la clave pública codificada en base64 para el certificado que se utilizará para identificar a su cliente ante SAP.

    Nota: No incluya el encabezado o pie de página PEM.

    - No introduzca aquí la clave privada del certificado del cliente. Su Entorno de seguridad personal (PSE) debe contener la clave privada correspondiente a este certificado y puede contener otros certificados privados. Para obtener más información, revise el parámetro siguiente.
    PSE Escriba el entorno de seguridad personal (PSE) de SNC como binario codificado en base64.

    - Su PSE debe contener la clave privada del certificado de cliente cuya huella digital coincida con la clave pública del certificado de cliente en el parámetro Certificado SNC.

    - Aunque su PSE puede contener varios certificados de cliente, para utilizar diferentes certificados de cliente, cree flujos de trabajo independientes.

    - Si usa más de un certificado de cliente SNC para el ISE, debe proporcionar el mismo recurso de aplicación lógica estándar para todas las conexiones. Su PSE debe contener la clave privada coincidente para el certificado de cliente para todas y cada una de las conexiones. Debe establecer el parámetro Certificado SNC para que coincida con el certificado privado específico de cada conexión.
  5. Para terminar de crear la conexión, seleccione Crear.

    Si los parámetros son correctos, se crea la conexión. Si hay un problema con los parámetros, el cuadro de diálogo de creación de la conexión muestra un mensaje de error. Para solucionar problemas de parámetros de conexión, puede usar la instalación de la puerta de enlace de datos local y los registros locales de la puerta de enlace.

Convierta un archivo PSE binario al formato con codificación base64

  1. Use un script de PowerShell, por ejemplo:

    Param ([Parameter(Mandatory=$true)][string]$psePath, [string]$base64OutputPath)
    $base64String = [convert]::ToBase64String((Get-Content -path $psePath -Encoding byte))
    if ($base64OutputPath -eq $null)
    {
        Write-Output $base64String
    }
    else
    {
        Set-Content -Path $base64OutputPath -Value $base64String
        Write-Output "Output written to $base64OutputPath"
    } 
    
  2. Guarde el script como un archivo pseConvert.ps1 e invoque al script, por ejemplo:

    .\pseConvert.ps1 -psePath "C:\Temp\SECUDIR\request.pse" -base64OutputPath "connectionInput.txt"
    Output written to connectionInput.txt 
    

    Si no proporciona el parámetro de ruta de acceso de salida, la salida del script a la consola tiene saltos de línea. Quite los saltos de línea en la cadena con codificación base64 del parámetro de entrada de conexión.

Configuración y prueba del envío de IDocs al flujo de trabajo desde SAP

Siga estos pasos solo al probar la configuración de SAP con el flujo de trabajo de la aplicación lógica. Los entornos de producción requieren configuración adicional.

Para enviar IDoc desde SAP al flujo de trabajo, necesita la siguiente configuración mínima:

  1. Creación de un destino RFC.
  2. Creación de una conexión ABAP.
  3. Creación de un puerto receptor.
  4. Creación de un puerto remitente.
  5. Creación de un asociado del sistema lógico.
  6. Creación de perfil de socio.
  7. Prueba de envío de mensajes.

Creación de destino RFC

Este destino identifica el flujo de trabajo de la aplicación lógica para el puerto de recepción.

  1. En SAP, abra la Configuración de las conexiones RFC. Puede usar el código de transacción sm59 (T-Code) con el prefijo /n.

  2. Seleccione TCP/IP Connections>Create (Conexiones TCP/IP > Crear).

  3. Cree un nuevo destino RFC con la siguiente configuración:

    1. En RFC Destination (Destino RFC), escriba un nombre.

    2. En la pestaña Technical Settings (Configuración técnica), en Activation Type (Tipo de activación), seleccione Registered Server Program (Programa de servidor registrado).

    3. En Program ID (Id. de programa), escriba un valor. En su servidor SAP, el desencadenador del flujo de trabajo se registrará con este identificador.

      Importante

      El identificador de programa de SAP distingue mayúsculas de minúsculas. Asegúrese de que usa de forma coherente el mismo formato de mayúsculas y minúsculas para el id. de programa al configurar el flujo de trabajo y el servidor SAP. De lo contrario, podría recibir los siguientes errores en el monitor tRFC (T-Code SM58) al intentar enviar un IDoc a SAP:

      • No se encontró la función IDOC_INBOUND_ASYNCHRONOUS.
      • No se admite el cliente RFC que no sea ABAP (tipo de socio).

      Para más información de SAP, consulte las notas siguientes (inicio de sesión necesario):

    4. En la pestaña Unicode, para Communication Type with Target System (Tipo de comunicación con sistema de destino), seleccione Unicode.

      Nota

      Las bibliotecas de cliente .NET de SAP solo admiten la codificación de caracteres Unicode. Si recibe el error No se admite el cliente RFC que no sea ABAP (tipo de socio) al enviar IDoc desde SAP a Azure Logic Apps, compruebe que el valor de Tipo de comunicación con sistema de destino esté establecido en Unicode.

  4. Guarde los cambios.

  5. Registre el nuevo id. de programa con Azure Logic Apps mediante la creación de un flujo de trabajo de aplicación lógica que comienza con el desencadenador administrado con SAP denominado Cuando se recibe un mensaje.

    De ese modo, al guardar el flujo de trabajo, Azure Logic Apps registra el id. de programa en la puerta de enlace de SAP.

  6. En el historial de desencadenadores del flujo de trabajo, los registros del adaptador de SAP de puerta de enlace de datos local, si procede, y los registros de seguimiento de puerta de enlace de SAP, compruebe el estado de registro.

    En el cuadro Monitor de puerta de enlace de SAP (código T SMGW), en Logged-On Clients (Clientes que han iniciado sesión), el nuevo registro aparece como Registered Server (Servidor registrado).

  7. Para probar la conexión en el nuevo RFC Destination (Destino RFC), seleccione Connection Test (Prueba de conexión).

Creación de conexión ABAP

Este destino identifica el sistema SAP para el puerto de envío.

  1. En SAP, abra la Configuración de las conexiones RFC. Puede usar el código de transacción sm59 (T-Code) con el prefijo /n.

  2. Seleccione ABAP Connections>Create (Conexiones ABAP > Crear).

  3. En Destino RFC, escriba el identificador de su sistema SAP de prueba.

  4. En Configuración técnica, deje vacío el host de destino para crear una conexión local al sistema SAP.

  5. Guarde los cambios.

  6. Para probar la conexión, seleccione Connection Test (Prueba de conexión).

Creación de un puerto receptor

  1. En SAP, abra la configuración de procesamiento de puertos en IDOC. Puede usar el código de transacción we21 (T-Code) con el prefijo /n.

  2. Seleccione Ports>Transactional RFC>Create (Puertos > RFC transaccional > Crear).

  3. En el cuadro de configuración que se abre, seleccione own port name (nombre propio del puerto). En el puerto de prueba, escriba un nombre. Guarde los cambios.

  4. En la configuración del nuevo puerto receptor, para RFC destination (Destino RFC), escriba el identificador del destino RFC de prueba.

  5. Guarde los cambios.

Creación de un puerto remitente

  1. En SAP, abra la configuración de procesamiento de puertos en IDOC. Puede usar el código de transacción we21 (T-Code) con el prefijo /n.

  2. Seleccione Ports>Transactional RFC>Create (Puertos > RFC transaccional > Crear).

  3. En el cuadro de configuración que se abre, seleccione own port name (nombre propio del puerto).

  4. En el puerto de prueba, escriba un nombre que empiece por SAP. Guarde los cambios.

    Todos los nombres de puerto remitente deben comenzar con las letras SAP, por ejemplo, SAPTEST.

  5. En la configuración del nuevo puerto remitente, para RFC destination (Destino RFC), escriba el identificador de la conexión de ABAP.

  6. Guarde los cambios.

Creación de un asociado del sistema lógico

  1. En SAP, abra la configuración Vista de cambios "Sistemas lógicos": información general. Puede usar el código de transacción bd54 (T-Code).

  2. Acepte el siguiente mensaje de advertencia que aparece: Caution: The table is cross-client (Precaución, la tabla afecta a varios clientes)

  3. Encima de la lista que muestra los sistemas lógicos existentes, seleccione New Entries (Nuevas entradas).

  4. En el nuevo sistema lógico, escriba un identificador de Log.System y una descripción breve del nombre. Guarde los cambios.

  5. Cuando aparezca Prompt for Workbench (Solicitud de banco de trabajo), cree una nueva solicitud. Para ello, proporcione una descripción (si ya ha creado una solicitud, omita este paso).

  6. Después de crear la solicitud de banco de trabajo, vincule esa solicitud a la solicitud de actualización de la tabla. Para confirmar que la tabla se ha actualizado, guarde los cambios.

Creación de perfiles de socios

En entornos de producción, debe crear dos perfiles de socio. El primer perfil es para el remitente, que es su organización y el sistema SAP. El segundo perfil es para el receptor, que es recurso y flujo de trabajo de la aplicación lógica.

  1. En SAP, abra la configuración de Perfiles de asociado. Puede usar el código de transacción we20 (T-Code) con el prefijo /n.

  2. En Partner Profiles (Perfiles de socio), seleccione Partner Type LS>Create (Tipo de socio LS > Crear).

  3. Cree un nuevo perfil de socio con la siguiente configuración:

    Configuración Descripción
    Partner No. (Núm. de asociado) Escriba el id. de socio del sistema lógico.
    Partn. (Asoc.) Tipo Escriba LS.
    Agent Escriba el identificador de la cuenta de usuario de SAP que utilizará al registrar identificadores de programa para Azure Logic Apps u otros sistemas que no sean de SAP.
  4. Guarde los cambios.

    Si no ha creado el socio del sistema lógico, aparecerá el error Enter a valid partner number (Escriba un número de socio válido).

  5. En la configuración del perfil de socio, en Outbound parmtrs. (Parámetros de salida), seleccione Create outbound parameter (Crear parámetro de salida).

  6. Cree un nuevo parámetro de salida con la siguiente configuración:

  7. Guarde los cambios.

Prueba de envío de mensajes

  1. En SAP, abra la configuración de la herramienta de prueba para el procesamiento de IDoc. Puede usar el código de transacción we19 (T-Code) con el prefijo /n.

  2. En Template for test (Plantilla para prueba), seleccione Via message type (A través del tipo de mensaje). Escriba su tipo de mensaje, por ejemplo, CREMAS. Seleccione Crear.

  3. Confirme el mensaje Which IDoc type? (¿Qué tipo de IDoc?) seleccionando Continue (Continuar).

  4. Seleccione el nodo EDIDC. Escriba los valores adecuados para los puertos receptor y remitente. Seleccione Continuar.

  5. Seleccione Standard Outbound Processing (Procesamiento de salida estándar).

  6. Para iniciar el procesamiento de IDoc de salida, seleccione Continue (Continuar).

    Una vez finalizado el procesamiento, aparece un mensaje que indica que IDoc se ha enviado a sistema SAP o programa externo.

  7. Para comprobar si hay errores de procesamiento, use el código de transacción (código T) sm58 con el prefijo /n.

Creación de flujos de trabajo para escenarios comunes de SAP

Para obtener la guía paso a paso para crear flujos de trabajo para cargas de trabajo comunes de integración de SAP, consulte los pasos siguientes:

Creación de flujos de trabajo para escenarios avanzados de SAP

Búsqueda de registros de errores extendidos (solo conector administrado)

Si usa el conector administrado de SAP, puede encontrar mensajes de error completos comprobando los registros extendidos del adaptador de SAP. También puede habilitar un archivo de registro ampliado para el conector de SAP.

  • En el caso de las versiones de puerta de enlace de datos local de abril de 2020 y anteriores, los registros están deshabilitados de forma predeterminada.

  • En el caso de las versiones de puerta de enlace de datos local de junio de 2020 y posteriores, puede habilitar los registros de puerta de enlace en la configuración de la aplicación.

    • El nivel de registro predeterminado es Advertencia.

    • Si habilita Registro adicional en la configuración de Diagnóstico de la aplicación de puerta de enlace de datos local, el nivel de registro aumenta a Informativo.

    • Para aumentar el nivel de registro a Detallado, actualice el siguiente valor en el archivo de configuración. Normalmente el archivo de configuración se encuentra en C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

      <setting name="SapTraceLevel" serializeAs="String">
         <value>Verbose</value>
      </setting>
      

Configuración del registro extendido de SAP en la puerta de enlace de datos local (solo conector administrado)

Si usa una puerta de enlace de datos local para Azure Logic Apps, puede configurar un archivo de registro ampliado para el conector de SAP. Puede usar la puerta de enlace de datos local para redirigir los eventos de Seguimiento de eventos para Windows (ETW) en los archivos de registro giratorios que se incluyen en los archivos .zip de registro de la puerta de enlace.

Puede exportar todos los registros de configuración y servicio de la puerta de enlace a un archivo .zip en desde la configuración de la aplicación de puerta de enlace.

Nota

El registro ampliado puede afectar al rendimiento del flujo de trabajo cuando está siempre habilitado. Se recomienda desactivar los archivos de registro ampliados una vez que haya terminado de analizar y solucionar un problema.

Captura de eventos ETW

Como tarea de registro avanzada opcional, puede capturar directamente eventos ETW y, a continuación, consumir los datos de Azure Diagnostics en Event Hubs o recopilar los datos en los registros de Azure Monitor. Para obtener más información, consulte los procedimientos recomendados para recopilar y almacenar datos.

Para trabajar con los archivos ETL resultantes puede usar PerfView o puede escribir su propio programa. En el siguiente tutorial se usa PerfView:

  1. En el menú de PerfView, seleccione Recopilar>Recopilar para capturar los eventos.

  2. En el parámetro Proveedor adicional, escriba *Microsoft-LobAdapter para especificar el proveedor de SAP para capturar eventos del adaptador de SAP. Si no especifica esta información, el seguimiento solo incluye eventos ETW generales.

  3. Deje el resto de los valores predeterminados. Si quiere, puede cambiar el nombre de archivo o la ubicación en el parámetro Archivo de datos.

  4. Seleccione Iniciar colección para iniciar el seguimiento.

  5. Una vez que haya reproducido el problema o recopilado suficientes datos de análisis, seleccione Detener recopilación.

  6. Para compartir los datos con otra entidad, como los ingenieros de Soporte técnico de Azure, comprima el archivo ETL.

  7. Para ver el contenido del seguimiento:

    1. En PerfView, seleccione Archivo>Abrir y, luego, seleccione el archivo ETL que acaba de generar.

    2. En la barra lateral de PerfView, en la sección Eventos del archivo ETL.

    3. En Filtro, filtre por Microsoft-LobAdapter para ver solo los eventos y procesos de puerta de enlace pertinentes.

Prueba del flujo de trabajo

En función de si tiene un flujo de trabajo de consumo en Azure Logic Apps multiinquilino o un flujo de trabajo estándar en Azure Logic Apps de un solo inquilino, siga los pasos correspondientes:

  1. Si el recurso de consumo de la aplicación lógica no está ya habilitado, en el menú de la aplicación lógica, elija Información general. En la barra de herramientas, seleccione Enable (Habilitar).

  2. En la barra de herramientas del diseñador seleccione Run Trigger>Run (Ejecutar desencadenador y Ejecutar) para iniciar manualmente el flujo de trabajo.

  3. Para desencadenar el flujo de trabajo, envíe un mensaje desde el sistema SAP.

  4. Vuelva al panel Información general de la aplicación lógica. En Runs history (Historiales de ejecución), encuentre cualquier ejecución nueva para su flujo de trabajo.

  5. Abra la ejecución más reciente, que muestra una ejecución manual. Busque y revise la sección salidas del desencadenador.

Habilitación del registro y el seguimiento de la biblioteca cliente de SAP (NCo) (solo conector integrado)

Cuando tenga que investigar cualquier problema con este componente, puede configurar el seguimiento de NCo basado en archivos de texto personalizado, que el soporte técnico de SAP o Microsoft podría solicitar. De forma predeterminada, esta funcionalidad está deshabilitada porque habilitar este seguimiento podría afectar negativamente al rendimiento y consumir rápidamente el espacio de almacenamiento del host de la aplicación.

Puede controlar esta funcionalidad de seguimiento en el nivel de aplicación agregando la siguiente configuración:

  1. En Azure Portal, abra el recurso Aplicación lógica estándar.

  2. En el menú aplicación lógica, en Configuración, seleccione Variables de entorno para revisar la configuración de la aplicación.

  3. En la página Variables de entorno, en la pestaña Configuración de la aplicación, agregue la siguiente configuración de la aplicación:

    • SAP_RFC_TRACE_DIRECTORY: directorio donde almacenar los archivos de seguimiento de NCo, por ejemplo, C:\home\LogFiles\NCo.

    • SAP_RFC_TRACE_LEVEL: el nivel de seguimiento de NCo con Level4 como valor sugerido para el registro detallado típico. El soporte técnico de SAP o Microsoft puede solicitar que establezca un nivel de seguimiento diferente.

      Nota:

      En el caso de los flujos de trabajo de aplicación lógica estándar que usan la versión 1.69.0 o posterior del entorno de ejecución, puede habilitar el registro para varios niveles de seguimiento separando cada uno con una coma (,).

      Para buscar la versión del tiempo de ejecución del flujo de trabajo, siga estos pasos:

      1. En Azure Portal, en el menú del flujo de trabajo, seleccione Información general.
      2. En la sección Essentials, busque la propiedad Versión en tiempo de ejecución.
    • SAP_CPIC_TRACE_LEVEL: nivel de seguimiento de Common Programming Interface for Communication (CPI-C) con Verbose como el valor sugerido para el registro detallado típico. El soporte técnico de SAP o Microsoft puede solicitar que establezca un nivel de seguimiento diferente.

    Para obtener más información sobre cómo agregar la configuración de la aplicación, consulte Edición de la configuración del host y de la aplicación para flujos de trabajo de aplicaciones lógicas Estándar.

  4. Guarde los cambios. Este paso reinicia la aplicación.

Niveles de seguimiento disponibles

Niveles de seguimiento de NCo

Valor Descripción
Level1 Nivel de seguimiento de llamadas a funciones remotas.
Level2 Nivel de seguimiento de llamadas a funciones remotas y llamadas a métodos de API públicos.
Level3 Nivel de seguimiento de llamadas a funciones remotas, llamadas a métodos de API pública y llamadas a métodos de API interna.
Level4 Nivel de seguimiento de llamadas a funciones remotas, llamadas a métodos de API pública, llamadas a métodos de API interna, volcados hexadecimales para el protocolo RFC e información relacionada con la red.
Bloqueo Escribe datos en los archivos de seguimiento que se muestran cuando los subprocesos solicitan, adquieren y liberan bloqueos en objetos.
Metadatos Realiza un seguimiento de los metadatos implicados en una llamada de función remota para cada llamada.
None Nivel para suprimir toda la salida de seguimiento.
ParameterData Realiza un seguimiento de los datos del contenedor enviados y recibidos durante cada llamada de función remota.
Rendimiento Escribe datos en los archivos de seguimiento que pueden ayudar con el análisis de problemas de rendimiento.
PublicAPI Realiza un seguimiento de la mayoría de los métodos de la API pública, excepto los captadores, establecedores o métodos relacionados.
InternalAPI Realiza un seguimiento de la mayoría de los métodos de la API interna, excepto los captadores, establecedores o métodos relacionados.
RemoteFunctionCall Realiza un seguimiento de las llamadas a funciones remotas.
RfcData Realiza un seguimiento de los bytes enviados y recibidos durante cada llamada de función remota.
SessionProvider Realiza un seguimiento de todos los métodos de la implementación usada actualmente de ISessionProvider.
SetValue Escribe información en los archivos de seguimiento relacionados con los valores establecidos para parámetros de funciones, o campos de estructuras o tablas.

Niveles de seguimiento de CPIC

Valor Descripción
Desactivado Sin registro
Basic Registro básico
Verbose Registro detallado
VerboseWithData Registro detallado con todo el volcado de respuesta del servidor

Visualización del seguimiento

  1. En el menú de recursos de la aplicación lógica Estándar, en Herramientas de desarrollo, seleccione Herramientas avanzadas>Ir.

  2. En la barra de herramientas de Kudu, seleccione Depurar consola>CMD.

  3. Vaya a la carpeta de la configuración de la aplicación denominada $SAP_RFC_TRACE_DIRECTORY.

    Aparecerá una nueva carpeta denominada NCo o el nombre de carpeta que haya usado para el valor de configuración de la aplicación, C:\home\LogFiles\NCo, que estableció anteriormente.

  4. Abra la carpeta $SAP_RFC_TRACE_DIRECTORY, que contiene lo siguiente:

    • Registros de seguimiento de NCo: un archivo llamado dev_nco_rfc.log, uno o varios archivos llamados nco_rfc_NNNN.log, y uno o varios archivos llamados nco_rfc_NNNN.trc, donde NNNN es un identificador de subproceso.

    • Registros de seguimiento de CPIC: uno o varios archivos llamados nco_cpic_NNNN.trc donde NNNN es el identificador de subproceso.

  5. Para ver el contenido en un archivo de registro o seguimiento, seleccione el botón Editar situado junto a un archivo.

    Nota:

    Si descarga un archivo de registro o seguimiento que el flujo de trabajo de la aplicación lógica abrió y está actualmente en uso, la descarga podría dar lugar a un archivo vacío.

Habilitación del seguimiento de la biblioteca criptográfica común (CCL) de SAP (solo conector integrado)

Si tuviera que investigar cualquier problema con la biblioteca criptográfica mientras usa la autenticación SNC, configure el seguimiento de CCL basado en archivos de texto personalizado. Use estos registros de CCL para solucionar problemas de autenticación de SNC o compartirlos con el soporte técnico de Microsoft o SAP, si se le solicitasen. De forma predeterminada, esta funcionalidad está deshabilitada porque habilitar este seguimiento podría afectar negativamente al rendimiento y consumir rápidamente el espacio de almacenamiento del host de la aplicación.

Puede controlar esta funcionalidad de seguimiento en el nivel de aplicación agregando la siguiente configuración:

  1. En Azure Portal, abra el recurso Aplicación lógica estándar.

  2. En el menú de recursos de la aplicación lógica Estándar, en Herramientas de desarrollo, seleccione Herramientas avanzadas>Ir.

  3. En la barra de herramientas de Kudu, seleccione Depurar consola>CMD.

  4. Vaya a una ubicación en C:\home\site\wwwroot y cree un archivo de texto. Por ejemplo: CCLPROFILE.txt.

    Para obtener más información sobre los parámetros de registro, consulte Seguimiento> de NOTA 2338952 de SAP. En el ejemplo siguiente se proporciona una configuración de seguimiento de ejemplo:

    ccl/trace/directory=C:\home\LogFiles\CCLLOGS
    ccl/trace/level=4
    ccl/trace/rotatefilesize=10000000
    ccl/trace/rotatefilenumber=10
    
  5. En el menú aplicación lógica, en Configuración, seleccione Variables de entorno para revisar la configuración de la aplicación.

  6. En la página Variables de entorno, en la pestaña Configuración de la aplicación, agregue la siguiente configuración de la aplicación:

    CCL_PROFILE: directorio donde se creó CCLPROFILE.txt. Por ejemplo: C:\home\site\wwwroot\CCLPROFILE.txt.

  7. Guarde los cambios. Este paso reinicia la aplicación.

Visualización del seguimiento

  1. En el menú de recursos de la aplicación lógica Estándar, en Herramientas de desarrollo, seleccione Herramientas avanzadas>Ir.

  2. En la barra de herramientas de Kudu, seleccione Depurar consola>CMD.

  3. Vaya a la carpeta del parámetro $ccl/trace/directory, que procede del archivo CCLPROFILE.txt.

    Normalmente, los archivos de seguimiento se denominan sec-Microsoft.Azure.Work-$processId.trc y sec-sapgenpse.exe-$processId.trc.

    El flujo de trabajo de la aplicación lógica realiza la autenticación SNC como un proceso de dos pasos:

    1. El flujo de trabajo de la aplicación lógica invoca sapgenpse.exe para generar un archivo cred_v2 a partir del archivo PSE.

      Encontrará los seguimientos relacionados con este paso en un archivo denominado sec-sapgenpse.exe-$processId.trc.

    2. El flujo de trabajo de la aplicación lógica autentica el acceso al servidor de SAP mediante el consumo del archivo cred_v2 generado, con la biblioteca cliente de SAP invocando la biblioteca criptográfica común.

      Encontrará los seguimientos relacionados con este paso en un archivo denominado sec-Microsoft.Azure.Work-$processId.trc.

Envío de datos de telemetría de SAP sobre la puerta de enlace de datos local a Azure Application Insights

Con la actualización de agosto de 2021 para la puerta de enlace de datos local, las operaciones del conector de SAP pueden enviar datos de telemetría desde la biblioteca cliente de SAP NCo y seguimientos desde el adaptador de SAP de Microsoft a Application Insights, que es una funcionalidad de Azure Monitor. Estos datos de telemetría incluyen principalmente los datos siguientes:

  • Métricas y seguimientos basados en métricas y monitores de SAP NCo.

  • Seguimientos del adaptador de SAP de Microsoft.

Métricas y seguimientos de la biblioteca cliente de SAP NCo

Las métricas basadas en NCo de SAP son valores numéricos que pueden o no variar durante un período de tiempo, en función del uso y la disponibilidad de los recursos en la puerta de enlace de datos local. Puede usar estas métricas para comprender mejor el estado del sistema y crear alertas sobre las actividades siguientes:

  • Disminución del estado del sistema.
  • Eventos inusuales.
  • Carga pesada del sistema.

Esta información se envía a la tabla de Application Insights, llamada customMetrics. De manera predeterminada, las métricas se envían a intervalos de 30 segundos.

Los seguimientos basados en NCo de SAP incluyen información de texto que se usa con métricas. Esta información se envía a la tabla de Application Insights, llamada traces. De manera predeterminada, los seguimientos se envían a intervalos de 10 minutos.

Las métricas y los seguimientos de SAP NCo se basan en métricas de SAP NCo, específicamente en las siguientes clases de NCo:

  • RfcDestinationMonitor.
  • RfcConnectionMonitor.
  • RfcServerMonitor.
  • RfcRepositoryMonitor.

Para más información sobre las métricas que proporciona cada clase, revise la documentación de NCo de SAP (se requiere inicio de sesión).

Configuración de la telemetría de SAP para Application Insights​

Para poder enviar datos de telemetría de SAP sobre la instalación de la puerta de enlace a Application Insights, debe haber creado y configurado el recurso de Application Insights. Para más información, revise la siguiente documentación:

Para habilitar el envío de datos de telemetría de SAP a Application Insights, siga estos pasos:

  1. Descargue el paquete NuGet para Microsoft.ApplicationInsights.EventSourceListener.dll desde esta ubicación: https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.

  2. Agregue el archivo descargado al directorio de instalación de la puerta de enlace de datos local, por ejemplo, C:\Archivos de programa\Puerta de enlace de datos local.

  3. En el directorio de instalación de la puerta de enlace de datos local, compruebe que el archivo Microsoft.ApplicationInsights.dll tenga el mismo número de versión que el archivo Microsoft.ApplicationInsights.EventSourceListener.dll que agregó. Actualmente, la puerta de enlace usa la versión 2.14.0.

  4. En el archivo ApplicationInsights.config, agregue la clave de instrumentación de Application Insights; para ello, quite la marca de comentario de la línea que tiene el elemento <InstrumentationKey></InstrumentationKey>. Reemplace el marcador de posición, your-Application-Insights-instrumentation-key, por la clave, por ejemplo:

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights schemaVersion="2014-05-30" xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
       <!-- Uncomment this element and insert your Application Insights key to receive ETW telemetry about your gateway <InstrumentationKey>*your-instrumentation-key-placeholder*</InstrumentationKey> -->
       <TelemetryModules>
          <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
             <IsHeartbeatEnabled>false</IsHeartbeatEnabled>
          </Add>
          <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
             <Sources>
                <Add Name="Microsoft-LobAdapter" Level="Verbose" />
             </Sources>
          </Add>
       </TelemetryModules>
    </ApplicationInsights>
    
  5. En el archivo ApplicationInsights.config, puede cambiar el valor de Level en los seguimientos necesarios para las operaciones del conector de SAP según sus requisitos, por ejemplo:

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
       <Sources>
          <Add Name="Microsoft-LobAdapter" Level="Verbose" />
       </Sources>
    </Add>
    

    Para más información, revise la siguiente documentación:

  6. Después de aplicar los cambios, reinicie el servicio de la puerta de enlace de datos local.

Revisión de métricas en Application Insights

Después de ejecutar las operaciones de SAP en el flujo de trabajo de la aplicación lógica, puede revisar los datos de telemetría que se enviaron a Application Insights.

  1. Abra el recurso de Application Insights en Azure Portal.

  2. En el menú de recursos, en Supervisión, seleccione Registros.

    En la captura de pantalla siguiente se muestra Azure Portal con Application Insights, que está abierto en el panel Registros:

    Captura de pantalla que muestra Azure Portal con Application Insights abierto en el panel

  3. En el panel Registros, puede crear una consulta mediante el lenguaje de consulta de Kusto (KQL) que se base en sus requisitos específicos.

    Puede usar un patrón de consulta similar a la consulta de ejemplo siguiente:

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. Después de ejecutar la consulta, revise los resultados.

    En la captura de pantalla siguiente, se muestra la tabla de resultados de métricas de la consulta de ejemplo:

    Captura de pantalla que muestra Application Insights con la tabla de resultados de métricas.

    • MaxUsedCount es "el número máximo de conexiones de cliente que el destino supervisado usó simultáneamente", como se describe en la documentación de SAP NCo (se requiere inicio de sesión). Puede usar este valor para conocer el número de conexiones abiertas simultáneamente.

    • La columna valueCount muestra 2 para cada lectura, porque las métricas se generan a intervalos de 30 segundos. Application Insights agrega estas métricas por minuto.

    • La columna DestinationName contiene una cadena de caracteres que es el nombre interno del adaptador de SAP de Microsoft.

      Para comprender mejor este destino de llamada de función remota (RFC), use este valor con traces, por ejemplo:

      customMetrics
      | extend DestinationName = tostring(customDimensions["DestinationName"])
      | join kind=inner (traces
         | extend DestinationName = tostring(customDimensions["DestinationName"]),
         AppServerHost = tostring(customDimensions["AppServerHost"]),
         SncMode = tostring(customDimensions["SncMode"]),
         SapClient = tostring(customDimensions["Client"])
         | where customDimensions contains "RfcDestinationMonitor"
         )
         on DestinationName , $left.DestinationName == $right.DestinationName
      | where customDimensions contains "RfcDestinationMonitor"
      | where name contains "MaxUsedCount"
      | project AppServerHost, SncMode, SapClient, name, valueCount, valueSum, valueMin, valueMax
      

También puede crear gráficos o alertas de métricas mediante esas funcionalidades en Application Insights, por ejemplo:

Captura de pantalla que muestra Application Insights con los resultados en formato de gráfico.

Seguimientos del adaptador de SAP de Microsoft

Puede usar los seguimientos enviados desde el adaptador de SAP de Microsoft para el análisis posterior al problema y para encontrar los errores internos del sistema existentes que podrían o no aparecer en las operaciones del conector de SAP. Estos seguimientos tienen el elemento message establecido en "n\a" porque proceden de un marco de origen de eventos que es anterior a Application Insights, por ejemplo:

traces
| where message == "n/a"
| where severityLevel > 0
| extend ActivityId = tostring(customDimensions["ActivityId"])
| extend fullMessage = tostring(customDimensions["fullMessage"])
| extend shortMessage = tostring(customDimensions["shortMessage"])
| where ActivityId contains "8ad5952b-371e-4d80-b355-34e28df9b5d1"

En la captura de pantalla siguiente, se muestra la tabla de resultados de seguimientos de la consulta de ejemplo:

Captura de pantalla que muestra Application Insights con la tabla de resultados de seguimientos.

Pasos siguientes