Se connecter à SAP à partir de workflows dans Azure Logic Apps

S’applique à : Azure Logic Apps (Consommation + Standard)

Ce guide pratique en plusieurs parties explique comment accéder à un serveur SAP à partir d’un workflow dans Azure Logic Apps à l’aide du connecteur SAP. Vous pouvez utiliser les opérations du connecteur SAP pour créer des workflows automatisés qui s’exécutent quand ils sont déclenchés par des événements dans le serveur SAP ou dans d’autres systèmes, et exécutent des actions pour gérer les ressources sur le serveur SAP.

Les workflows d’application logique Standard et Consommation proposent le connecteur managé SAP qui est hébergé et exécuté dans un environnement Azure multilocataire. Les workflows Standard offrent également le connecteur SAP intégré qui est hébergé et exécuté dans Azure Logic Apps monolocataire. Pour plus d’informations, consultez la référence technique du connecteur.

Compatibilité SAP

Le connecteur SAP est compatible avec les types de systèmes SAP suivants :

  • Systèmes SAP HANA locaux et basés sur le cloud, comme S/4 HANA.

  • Systèmes SAP locaux classiques, comme R/3 et ECC.

SAP doit prendre en charge la version du système SAP que vous souhaitez connecter. Sinon, vous risquez de ne pas pouvoir résoudre les problèmes que vous pouvez rencontrer. Pour plus d’informations sur les versions et les informations de maintenance du système SAP, consultez le Tableau de disponibilité des produits SAP.

Le connecteur SAP prend en charge les types d’intégration de données et de messages suivants des systèmes basés sur SAP NetWeaver :

  • IDoc (Intermediate Document)

  • BAPI (Business Application Programming Interface)

  • RFC (Remote Function Call) et tRFC (Transactional RFC)

Le connecteur SAP utilise la bibliothèque NCo (.NET Connector) SAP.

Pour utiliser les opérations du connecteur SAP, vous devez d’abord authentifier votre connexion et disposer des options suivantes :

Vous pouvez utiliser SNC pour l’authentification unique (SSO) SAP NetWeaver ou pour des fonctionnalités de sécurité fournies par des produits externes. Si vous choisissez d’utiliser SNC, passez en revue les conditions préalables de SNC.

Référence technique du connecteur

Le connecteur SAP a différentes versions, en fonction du type d’application logique et de l’environnement hôte.

Application logique Environnement Version du connecteur
Consommation Azure Logic Apps multilocataire Connecteur managé, qui apparaît dans la galerie de connecteurs sous Runtime>Partagé. Pour plus d’informations, consultez la documentation suivante :

- Référence sur le connecteur managé SAP
- Connecteurs managés dans Azure Logic Apps
Standard Azure Logic Apps monolocataire et App Service Environment v3 (plans Windows uniquement) Le connecteur managé apparaissant dans la galerie de connecteurs sous Runtime>partagé, ainsi que le connecteur intégré qui apparaît dans la galerie de connecteurs sous Runtime>In-App et est basé sur le fournisseur de services. Le connecteur intégré peut accéder directement aux réseaux virtuels Azure avec une chaîne de connexion sans passerelle de données locale. Pour plus d’informations, consultez la documentation suivante :

- Référence sur le connecteur managé SAP
- Référence sur le connecteur intégré SAP

- Connecteurs managés dans Azure Logic Apps
- Connecteurs intégrés dans Azure Logic Apps

Différences de connecteur

Le connecteur intégré SAP diffère considérablement du connecteur managé SAP des manières suivantes :

  • Les connexions locales ne nécessitent pas la passerelle de données locale.

    Au lieu de cela, le connecteur intégré SAP communique directement avec votre serveur SAP dans le réseau virtuel intégré, ce qui évite les sauts, la latence et les points de défaillance pour une passerelle réseau. Veillez à charger ou à déployer les bibliothèques de client SAP non redistribuables avec votre application de workflow d’application logique. Pour plus d’informations, consultez les Prérequis de ce guide.

  • Les tailles de charge utile allant jusqu’à 100 Mo étant prises en charge, vous n’avez pas besoin d’utiliser un URI d’objet blob pour les demandes volumineuses.

  • Des actions spécifiques sont disponibles pour Appeler BAPI, Appeler RFC et Envoyer un IDoc. Ces actions dédiées offrent une meilleure expérience pour les BAPI avec état, les transactions RFC et la déduplication IDoc, et n’utilisent pas l’ancien modèle de messagerie SOAP Windows Communication Foundation (WCF).

    L’action Appeler BAPI comprend jusqu’à deux réponses avec le JSON retourné, la réponse XML de la BAPI appelée et la réponse de validation BAPI ou de restauration BAPI, et si vous utilisez la validation automatique. Cette fonctionnalité résout le problème du connecteur managé SAP où le résultat de la validation automatique est silencieux et observable uniquement par le biais des journaux.

  • Délai d’expiration plus long de 5 minutes par rapport au connecteur managé.

    Le connecteur intégré SAP n’utilise pas l’infrastructure de connecteur partagé ou global, ce qui signifie que les délais d’attente sont plus longs (cinq minutes) par rapport au connecteur managé SAP (deux minutes). Les requêtes de longue durée fonctionnent sans que vous ayez à implémenter le modèle d’action de requête basé sur un webhook de longue durée.

  • Par défaut, les opérations du connecteur intégré SAP sont sans état. Toutefois, vous pouvez activer le mode avec état (affinité) pour ces opérations.

    En mode avec état, le connecteur intégré SAP prend en charge la haute disponibilité et les configurations de scale-out horizontales. Par comparaison, le connecteur managé SAP a des restrictions concernant la passerelle de données locale limitée à une seule instance pour les déclencheurs et aux clusters uniquement en mode de basculement pour les actions. Pour plus d’informations, consultez Connecteur managé SAP – Problèmes et limitations connus.

  • Les workflows d’application logique standard nécessitent et utilisent la bibliothèque de client SAP NCo 3.1, et non la version SAP NCo 3.0. Pour plus d’informations, consultez Prérequis.

  • Les workflows d’application logique standard fournissent des paramètres d’application dans lesquels vous pouvez spécifier un environnement de sécurité personnel (PSE, Personal Security Environment) et un mot de passe PSE.

    Cette modification vous empêche de charger plusieurs fichiers PSE, ce qui n’est pas pris en charge et entraîne des échecs de connexion SAP. Dans les workflows d’application logique Consommation, le connecteur managé SAP vous permet de spécifier ces valeurs via des paramètres de connexion, qui vous ont permis de charger plusieurs fichiers PSE et qui n’est pas pris en charge, ce qui entraîne des échecs de connexion SAP.

  • Action Générer le schéma

    • Vous pouvez choisir parmi plusieurs types d’opérations, tels que BAPI, IDoc, RFC et tRFC, par opposition à la même action dans le connecteur managé SAP, qui utilise le paramètre SapActionUris et une expérience de sélecteur de système de fichiers.

    • Vous pouvez fournir directement un nom de paramètre sous forme de valeur personnalisée. Par exemple, vous pouvez spécifier le paramètre Nom RFC à partir de l’action Appeler RFC. En comparaison, dans le connecteur managé SAP, vous deviez fournir un nom de paramètre URI d’action complexe.

    • Par conception, cette action ne prend pas en charge la génération de plusieurs schémas pour les RFC, les BAPI ou les IDocs dans l’exécution d’une action unique, ce que le connecteur managé SAP prend en charge. Ce changement de fonctionnalité empêche désormais les tentatives d’envoi de grandes quantités de contenu en un seul appel.

Paramètres du connecteur

Avec les entrées de chaîne et de nombre simples, le connecteur SAP accepte les paramètres de table suivants (entrées Type=ITAB) :

  • Paramètres de direction de table, d’entrée et de sortie, pour les versions SAP antérieures.
  • Modifications des paramètres, qui remplacent les paramètres de direction de table pour les versions SAP plus récentes.
  • Paramètres de table hiérarchique.

Problèmes connus et limitations

Connecteur managé SAP

  • Le connecteur SAP ne prend actuellement pas en charge les chaînes de routeur SAP. La passerelle de données locale doit exister sur un réseau virtuel où elle peut atteindre directement le système SAP que vous souhaitez connecter.

  • En général, le déclencheur SAP ne prend pas en charge les clusters de passerelles de données. Dans certains cas de basculement, le nœud de la passerelle de données qui communique avec le système SAP peut différer du nœud actif, ce qui entraîne un comportement inattendu.

    • Les clusters de passerelles de données en mode de basculement sont pris en charge dans les scénarios de message d’envoi.

    • Les actions SAP avec état ne prennent pas en charge les clusters de passerelles de données en mode d’équilibrage de charge. Les communications avec état doivent rester sur le même nœud de cluster de passerelles de données. Utilisez la passerelle de données soit en mode non-cluster, soit dans un cluster configuré pour le basculement uniquement. Par exemple, il s’agit des actions suivantes :

      • Toutes les actions qui spécifient une valeur d’ID de session
      • [BAPI] Valider une transaction
      • [BAPI] Restaurer la transaction
      • [BAPI - RFC] Fermer une session avec état
      • [BAPI - RFC] Créer une session avec état
  • Dans l’action appelée [BAPI] Call method in SAP (Appeler une méthode dans SAP), la fonctionnalité de commit automatique ne commite pas les changements apportés à l’interface BAPI s’il existe au moins un avertissement dans l’objet CallBapiResponse retourné par l’action. Pour valider ces changements en dépit des avertissements, procédez comme suit :

    1. Créez une session en utilisant explicitement l’action nommée [BAPI - RFC] Create stateful session (Créer une session avec état).
    2. Dans l’action nommée [BAPI] Call method in SAP (Appeler une méthode dans SAP), désactivez la fonctionnalité de commit automatique.
    3. Appelez l’action nommée [BAPI] Commit transaction (Commiter la transaction) à la place.

Connexions IP au serveur de messages SAP (configuration à charge équilibrée)

Si vous spécifiez une adresse IP pour vous connecter à un serveur de messages SAP, par exemple, un équilibreur de charge, la connexion risque d’échouer avec un message d’erreur similaire à « nom d’hôte SAPDBSERVER01.example.com inconnu ». Le serveur de messages indique au connecteur SAP d’utiliser un nom d’hôte pour la connexion au serveur d’applications SAP principal ou au serveur derrière l’équilibreur de charge. Si DNS ne peut pas résoudre le nom d’hôte, la connexion échoue.

Pour ce problème, les solutions suivantes existent :

  • Assurez-vous que le client établissant la connexion, par exemple l’ordinateur avec la passerelle de données locale pour le connecteur SAP, peut résoudre les noms d’hôte retournés par le serveur de messages.

  • Dans la transaction nommée RZ11, modifiez ou ajoutez le paramètre SAP nommé ms/lg_with_hostname=0.

Contexte ou arrière-plan du problème

SAP a mis à niveau son connecteur .NET (NCo) vers la version 3.1, ce qui a modifié la façon dont le connecteur demande des connexions aux serveurs principaux à partir des serveurs de messages. Le connecteur utilise désormais une nouvelle API pour la résolution du serveur d’applications par le serveur de messages, sauf si vous forcez le connecteur à utiliser l’API précédente via le paramètre nommé ms/lg_with_hostname=0`. Pour plus d’informations, consultez l’Article 3305039 de la base de connaissances SAP - Paramètre d’adresse IP SMLG non pris en compte lors de la connexion du Groupe Ouverture de session.

Prérequis

  • Un compte et un abonnement Azure. Si vous n’avez pas encore d’abonnement Azure, inscrivez-vous pour bénéficier d’un compte Azure gratuit.

  • Le serveur d’applications SAP ou un serveur de messages SAP auquel vous souhaitez accéder à partir d’Azure Logic Apps.

    • Configurez votre compte d’utilisateur et votre serveur SAP pour qu’ils autorisent l’utilisation de RFC.

      Pour plus d’informations, notamment sur les types de comptes d’utilisateur pris en charge et l’autorisation minimale requise pour chaque type d’action (RFC, BAPI, IDOC), consultez la note SAP suivante : 460089 - Minimum authorization profiles for external RFC programs (Profils d’autorisation minimum pour les programmes RFC externes).

    • Votre compte d’utilisateur SAP a besoin d’accéder au groupe de fonctions RFC_METADATA et aux modules de fonction respectifs pour les opérations suivantes :

      Operations Accès aux modules de fonction
      Actions RFC RFC_GROUP_SEARCH et DD_LANGU_TO_ISOLA
      Actions BAPI BAPI_TRANSACTION_COMMIT, BAPI_TRANSACTION_ROLLBACK, RPY_BOR_TREE_INIT, SWO_QUERY_METHODS et SWO_QUERY_API_METHODS
      Actions IDoc IDOCTYPES_LIST_WITH_MESSAGES, IDOCTYPES_FOR_MESTYPE_READ, INBOUND_IDOCS_FOR_TID, OUTBOUND_IDOCS_FOR_TID, GET_STATUS_FROM_IDOCNR et IDOC_RECORD_READ
      Action Read SAP table (Lire une table SAP) RFC BBP_RFC_READ_TABLE ou RFC_READ_TABLE
      Accorder un accès minimal strict au serveur SAP pour votre connexion SAP RFC_METADATA_GET et RFC_METADATA_GET_TIMESTAMP
  • Le flux de travail d’application logique à partir duquel vous souhaitez accéder à votre serveur SAP.

  • Par défaut, les opérations du connecteur intégré SAP sont sans état. Pour exécuter ces opérations en mode avec état, consultez Activer le mode avec état pour les connecteurs intégrés sans état.

  • Pour utiliser le déclencheur de connecteur managé ou intégré SAP nommé Lorsqu’un message est reçu, effectuez les tâches suivantes :

    • Configurez les autorisations de sécurité ou la liste de contrôle d’accès de votre passerelle SAP. Dans la boîte de dialogue Moniteur de passerelle (T-Code SMGW), qui affiche les fichiers secinfo et reginfo, ouvrez le menu Atteindre, puis sélectionnez Fonctions expertes>Sécurité externe>Maintenance des fichiers de liste de contrôle d’accès.

      L’autorisation suivante est requise :

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

      Cette ligne est au format suivant :

      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 vous ne configurez pas les autorisations de sécurité de la passerelle SAP, vous pouvez recevoir le message d’erreur suivant :

      Registration of tp Microsoft.PowerBI.EnterpriseGateway from host <host-name> not allowed (Inscription de tp Microsoft.PowerBI.EnterpriseGateway à partir de l’hôte « nom-d’hôte » non autorisée)

      Pour plus d’informations, consultez la note SAP 1850230 - GW : "Inscription de l’<ID de programme> tp non autorisé".

    • Configurez la journalisation de la sécurité de votre passerelle SAP pour trouver les problèmes en lien avec la liste de contrôle d’accès. Pour plus d’informations, consultez la rubrique d’aide SAP sur la configuration de la journalisation de la passerelle.

    • Dans la boîte de dialogue Configuration of RFC Connections (Configuration des connexions RFC) (T-Code SM59), créez une connexion RFC avec le type TCP/IP. Assurez-vous que le Type d’activation est défini sur Programme de serveur inscrit. Définissez la valeur Communication Type with Target System (Type de communication avec système cible) sur Unicode.

    • Si vous utilisez ce déclencheur SAP avec le paramètre IDOC Format (Format IDOC) défini sur FlatFile avec l’action Flat File Decode (Décodage de fichier plat), vous devez utiliser la propriété early_terminate_optional_fields dans votre schéma de fichier plat en définissant la valeur sur true.

      Cette condition est nécessaire car l’enregistrement de données IDOC de fichier plat envoyé par SAP sur l’appel tRFC IDOC_INBOUND_ASYNCHRONOUS n’est pas rempli à la longueur de champ SDATA complète. Azure Logic Apps fournit les données d’origine IDoc du fichier plat sans remplissage à partir de SAP. Par ailleurs, lorsque vous combinez ce déclencheur SAP avec l’action de Flat File Decode (Décodage de fichier plat), le schéma fourni à l’action doit correspondre.

    • Dans les workflows Consommation et Standard, le déclencheur managé SAP nommé Lorsqu’un message est reçu utilise le même emplacement URI pour renouveler un abonnement webhook et s’en désabonner. L’opération de renouvellement utilise la méthode HTTP PATCH, tandis que l’opération d’annulation d’abonnement utilise la méthode HTTP DELETE. En raison de ce comportement, une opération de renouvellement peut apparaître comme une opération d’annulation d’abonnement dans l’historique de votre déclencheur, mais l’opération est toujours un renouvellement, car le déclencheur utilise PATCH comme méthode HTTP, et non DELETE.

      Dans les workflows Standard, le déclencheur intégré SAP nommé Lorsqu’un message est reçu utilise plutôt le déclencheur Azure Functions et affiche uniquement les rappels réels de SAP.

    • Pour le déclencheur de connecteur intégré SAP nommé Lorsqu’un message est reçu, vous devez activer l’intégration aux réseaux virtuels et les ports privés en suivant l’article Activation des connecteurs intégrés SAP et Service Bus pour Logic Apps avec état en Standard. Vous pouvez également exécuter le workflow dans Visual Studio Code pour lancer le déclencheur localement. Pour connaître la configuration requise pour l’installation de Visual Studio Code et pour plus d’informations, consultez l’article Créer un workflow d’application logique Standard pour Azure Logic Apps monolocataire en utilisant Visual Studio Code. Les variables d’environnement suivantes doivent également être configurées sur l’ordinateur dans lequel vous installez Visual Studio Code :

    • WEBSITE_PRIVATE_IP : Définissez cette valeur de la variable d’environnement sur 127.0.0.1 comme adresse localhost.
    • WEBSITE_PRIVATE_PORTS : Définissez cette valeur de la variable d’environnement sur deux ports libres et utilisables de votre ordinateur local, en séparant les valeurs par une virgule (,), par exemple 8080,8088.
  • Contenu du message à envoyer à votre serveur SAP, comme un exemple de fichier IDoc. Ce contenu doit être au format XML et inclure l’espace de noms pour l’action SAP à utiliser. Vous pouvez envoyer des fichiers IDoc avec un schéma de fichier plat en les encapsulant dans une enveloppe XML.

  • Pour les scénarios dans lesquels vous souhaitez envoyer des IDocs depuis votre flux de travail d'application logique vers SAP, modifiez votre mode de traitement SAP du paramètre par défaut Déclencher immédiatement sur Déclencher par programme d'arrière-plan afin que votre flux de travail n'expire pas.

    Si votre système SAP est sous charge, par exemple, lorsque votre workflow envoie un lot d'IDocs en même temps à SAP, les appels IDoc mis en file d'attente expirent. Le mode de traitement par défaut oblige votre système SAP à bloquer l'appel entrant pour la transmission d'IDoc jusqu'à ce qu'un IDoc termine son traitement. Dans Azure Logic Apps, les actions de workflow ont un délai d’expiration de 2 minutes par défaut.

    Pour modifier le mode de traitement de votre système SAP, procédez comme suit :

    1. Dans SAP, recherchez le profil partenaire SAP et ouvrez les paramètres Profils partenaires. Vous pouvez utiliser le code de transaction we20 (T-Code) avec le préfixe /n.

    2. Dans l'onglet Options entrantes, sous Traitement par module de fonction, modifiez le paramètre Déclencher par programme d'arrière-plan au lieu de Déclencher immédiatement.

      Le paramètre Déclencheur par programme d'arrière-plan permet à l'appel tRFC du transport IDoc sous-jacent IDOC_INBOUND_ASYNCHRONOUS de se terminer immédiatement, plutôt que de bloquer la connexion jusqu'à ce que l'IDoc termine le traitement. Cependant, ce paramètre ne fonctionne que si l'IDoc n'inclut pas le segment d'écrasement du comportement Express, conformément à la note de support SAP 1777090 - Les IDocs sont traités immédiatement même si l'option « Déclencher par le programme d'arrière-plan » est sélectionnée dans WE20 - SAP for Me.

    Pour plus d’informations, consultez les ressources suivantes :

Prérequis concernant la connectivité réseau

Le système SAP requiert une connectivité réseau à partir de l’hôte de la bibliothèque du connecteur SAP .NET (NCo) :

  • Pour les workflows d’application logique Consommation dans Azure Logic Apps multilocataire, la passerelle de données locale héberge la bibliothèque du connecteur SAP .NET (NCo). Si vous utilisez un cluster de passerelle de données locale, tous les nœuds du cluster nécessitent une connectivité réseau vers le système SAP.

  • Pour les workflows d’application logique Standard dans Azure Logic Apps monolocataire, la ressource d’application logique héberge la bibliothèque du connecteur SAP .NET (NCo). Par conséquent, c’est la ressource d’application logique qui doit activer l’intégration du réseau virtuel. Le réseau virtuel doit disposer d’une connectivité réseau avec le système SAP.

La connectivité réseau requise par le système SAP comprend les serveurs et services suivants :

  • Serveur d’applications SAP, service Dispatcher (pour tous les types d’ouvertures de session)

    Votre système SAP peut comprendre plusieurs serveurs d’applications SAP. L’hôte de la bibliothèque du connecteur SAP .NET (NCo) requiert l’accès à chaque serveur et à ses services.

  • Serveur de messages SAP, service de message (pour le groupe de type d’ouverture de session)

    Le serveur de messages et le service redirigent vers un ou plusieurs services Dispatcher du serveur d’applications. L’hôte de la bibliothèque du connecteur SAP .NET (NCo) requiert l’accès à chaque serveur et à ses services.

  • Serveur de passerelle SAP, service de passerelle

  • Serveur de passerelle SAP, service sécurisé de passerelle

    La connectivité réseau requise par le système SAP comprend également le serveur et le service à utiliser avec SNC (Secure Network Communications).

La redirection des requêtes du service Dispatcher du serveur d’applications vers le service de passerelle du serveur de passerelle se produit automatiquement dans la bibliothèque du connecteur SAP .NET (NCo). Cette redirection se produit même si seules des informations sur le serveur d’applications, le service Dispatcher sont fournies dans les paramètres de connexion.

Si vous utilisez un équilibreur de charge avant votre système SAP, vous devez rediriger tous les services vers leurs serveurs respectifs. Pour plus d’informations sur les services et ports SAP, passez en revue les ports TCP/IP de tous les produits SAP.

Notes

Assurez-vous que vous avez activé la connectivité réseau à partir de l’hôte de la bibliothèque du connecteur SAP .NET (NCo) et que les ports requis sont ouverts sur les pare-feu et les groupes de sécurité réseau. Sinon, vous allez recevoir des erreurs telles que partner not reached (partenaire non atteint) du composant NI (interface réseau) et un texte d’erreur, tel que WSAECONNREFUSED: Connection refused (connexion refusée).

Prérequis concernant la bibliothèque de client SAP NCo

Pour utiliser le connecteur SAP, vous devez installer la bibliothèque de client NCo du connecteur SAP pour Microsoft .NET 3.1. La liste ci-dessous décrit les prérequis concernant la bibliothèque de client NCo de SAP, selon le workflow dans lequel vous utilisez le connecteur SAP :

  • Version :

    • Pour les workflows d’application logique Consommation qui utilisent la passerelle de données locale, assurez-vous d’installer la dernière version 64 bits, Connecteur SAP pour Microsoft .NET 3.1.3.0 pour Windows 64 bits (x64). La passerelle de données s’exécute uniquement sur les systèmes 64 bits. L’installation d’une version 32 bits non prise en charge génère une erreur « bad image » (image incorrecte).

    • Pour les workflows d’application logique Standard, vous pouvez installer la dernière version 64 bits ou 32 bits du Connecteur SAP (NCo 3.1) pour Microsoft .NET 3.1.3.0 compilé avec .NET Framework 4.6.2. Veillez toutefois à installer la version qui correspond à la configuration dans votre ressource d’application logique Standard. Pour vérifier la version utilisée par votre application logique, procédez comme suit :

      1. Dans le portail Azure, ouvrez votre ressource d’application logique Standard.

      2. Dans le menu de la ressource d’application logique, sous Paramètres, sélectionnez Configuration.

      3. Dans la page Configuration, sélectionnez l’onglet Paramètres généraux. Sous Paramètres de la plateforme, vérifiez si la valeur de Plateforme est définie sur 64 bits ou 32 bits.

      4. Assurez-vous d’installer la version du Connecteur SAP (NCo 3.1) pour Microsoft .NET 3.1.3.0 compilée avec .NET Framework 4.6.2 qui correspond à la configuration de votre plateforme.

  • Dans le dossier d’installation par défaut de la bibliothèque de client, copiez les fichiers de l’assembly (.dll) vers un autre emplacement (en fonction de votre scénario), comme indiqué après. Sinon, vous pouvez utiliser uniquement le connecteur managé SAP lorsque vous installez la bibliothèque de client SAP NCo : sélectionnez Global Assembly Cache registration (Inscription de Global Assembly Cache). Actuellement, le connecteur intégré SAP ne prend pas en charge l’inscription GAC.

    • Pour un workflow Consommation qui s’exécute dans Azure Logic Apps multilocataire et utilise la passerelle de données locale, copiez les fichiers assembly (.dll) suivants dans le dossier d’installation de la passerelle de données locale, par exemple, C:\Program Files\On-Premises Data Gateway. La bibliothèque cliente SAP NCo 3.0 contient les assemblys suivants :

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

      Vous devez copier les fichiers de l’assembly dans le dossier d’installation de la passerelle de données. Dans le cas contraire, la connexion SAP risque d’échouer avec le message d’erreur « Vérifiez les informations et/ou les autorisations de votre compte et réessayez ». Vous pouvez résoudre les autres problèmes à l’aide de la visionneuse du journal de liaison d’assembly .NET. Cet outil vous permet de vérifier que vos fichiers d’assembly se trouvent à l’emplacement approprié.

    • Pour les workflows Standard, copiez les fichiers assembly (.dll) suivants vers un emplacement depuis lequel vous pouvez les charger dans la ressource d’application logique ou dans le projet utilisé où vous générez le workflow (respectivement dans le portail Azure ou en local, dans Visual Studio Code). La bibliothèque cliente SAP NCo 3.1 comprend les assemblys suivants :

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

Les relations suivantes existent entre la bibliothèque de client SAP NCo, le .NET Framework, le runtime .NET et la passerelle de données :

  • L’adaptateur SAP Microsoft et le service hôte de la passerelle utilisent tous deux le .NET Framework 4.7.2.

  • Le NCo SAP pour .NET Framework 4.0 fonctionne avec les processus qui utilisent un runtime .NET de la version 4.0 à la version 4.8.

  • Le NCo SAP pour .NET Framework 2.0 fonctionne avec les processus qui utilisent un runtime .NET 2.0 à 3.5, mais ne fonctionne plus avec la passerelle la plus récente.

Prérequis SNC

Pour les workflows Consommation dans Azure Logic Apps multilocataire qui utilisent la passerelle de données locale (voire SNC), vous devez également configurer les paramètres ci-dessous.

  • Vérifiez que la version de la bibliothèque SNC et ses dépendances sont compatibles avec votre environnement SAP. Pour résoudre les problèmes de compatibilité de bibliothèque, vous pouvez utiliser la passerelle de données locale et les journaux correspondants.

  • Veillez à copier les fichiers assembly (.dll) suivants dans la bibliothèque cliente SAP NCo 3.0 dans le dossier d’installation de la passerelle de données locale, par exemple, C:\Program Files\On-Premises Data Gateway.

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • Pour l’utilitaire SAPGENPSE, vous devez spécifiquement utiliser sapgenpse.exe.

  • Si vous fournissez un environnement de sécurité personnel (PSE) avec votre connexion, vous n’avez pas besoin de copier ni de configurer le PSE et SECUDIR pour la passerelle de données locale.

  • Si vous activez SNC avec un produit de sécurité externe (comme sapseculib, Kerberos ou NTLM), assurez-vous que la bibliothèque SNC se trouve sur le même ordinateur que l’installation de la passerelle de données. Pour cette tâche, copiez les fichiers binaires de la bibliothèque SNC dans le dossier d’installation de la passerelle de données sur l’ordinateur local, par exemple, C:\Program Files\On-Premises Data Gateway.

    Remarque

    Sur l’ordinateur qui contient l’installation de la passerelle de données et la bibliothèque SNC, ne définissez pas les variables d’environnement pour SNC_LIB et SNC_LIB_64. Dans le cas contraire, ces variables l’emportent sur la valeur de la bibliothèque SNC transmise par le connecteur.

  • Pour utiliser SNC avec l’authentification unique (SSO), assurez-vous que le service de la passerelle de données s’exécute en tant qu’utilisateur mappé vers l’utilisateur SAP. Pour modifier le compte de service de passerelle par défaut, sélectionnez Changer de compte, puis saisissez les informations d’identification de l’utilisateur.

    Capture d’écran représentant le programme d’installation de la passerelle de données locale avec la page « Paramètres du service » et un bouton permettant de modifier le compte de service de passerelle sélectionné.

Pour plus d’informations sur l’activation de SNC, consultez Activer SNC (Secure Network Communications).

Prérequis en environnement Azure Logic Apps

Pour un workflow Consommation dans Azure Logic Apps multilocataire, le connecteur managé SAP s’intègre aux systèmes SAP à l’aide d’une passerelle de données locale. Par exemple, dans les scénarios où le workflow d’application logique envoie un message au système SAP, la passerelle de données agit comme un client RFC et transfère les demandes reçues du workflow d’application logique à SAP. De même, dans les scénarios où le workflow reçoit un message de SAP, la passerelle de données agit comme un serveur RFC qui reçoit les requêtes de SAP et les transfère au workflow.

  1. Sur un ordinateur hôte ou une machine virtuelle qui existe dans le même réseau virtuel que le système SAP auquel vous vous connectez, téléchargez et installez la passerelle de données locale.

    La passerelle de données permet d’accéder en toute sécurité aux données et aux ressources locales. Veillez à utiliser une version prise en charge de la passerelle. Si vous rencontrez un problème avec votre passerelle, essayez dela mettre à niveau vers la dernière version, qui peut inclure des mises à jour pour résoudre votre problème.

  2. Dans le portail Azure, créez une ressource de passerelle Azure pour la passerelle de données locale.

  3. Sur l’ordinateur local avec l’installation de la passerelle de données locale, téléchargez et installez la dernière bibliothèque de client SAP NCo.

  4. Sur l’ordinateur hôte avec l’installation de la passerelle de données locale, configurez les noms d’hôte réseau et la résolution de noms de service.

    • Pour utiliser les noms d’hôte ou les noms de service pour les connexions à partir Azure Logic Apps, vous devez configurer la résolution de noms pour chaque serveur d’applications, de messages et de passerelle SAP avec leurs services :

      • Dans le fichier %windir%\System32\drivers\etc\hosts ou dans le serveur DNS disponible pour l’ordinateur hôte avec l’installation de la passerelle de données local, configurez la résolution de noms d’hôte réseau.

      • Dans le fichier %windir%\System32\drivers\etc\services, configurez la résolution de noms de service.

    • Si vous n’envisagez pas d’utiliser des noms d’hôtes réseau ou des noms de services pour la connexion, vous pouvez utiliser les adresses IP et les numéros de ports de service de l’hôte à la place.

    • Si vous ne disposez pas d’une entrée DNS pour votre système SAP, l’exemple suivant montre un exemple d’entrée pour le fichier 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
      

      La liste suivante présente un exemple d’ensemble d’entrées pour les fichiers de services :

      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
      

Activer SNC (Secure Network Communications)

Avec un workflow Consommation qui s’exécute dans Azure Logic Apps multilocataire, vous pouvez activer SNC pour l’authentification, qui s’applique uniquement lorsque vous utilisez la passerelle de données. Avant de commencer, assurez-vous de respecter l’ensemble des conditions préalables et des prérequis SNC.

  1. Sur le portail Azure, ouvrez votre workflow d’application logique Consommation dans le concepteur.

  2. Ajoutez ou modifiez une opération de connecteur managé SAP.

  3. Dans la zone des informations de connexion SAP, fournissez les informations requises suivantes. Le type d’authentification sélectionné pour Authentication Type modifie les options disponibles.

    Capture d’écran représentant les paramètres de connexion SAP pour un workflow Consommation.

    Notes

    Les champs SAP Username (Nom d’utilisateur SAP) et SAP Password (Mot de passe SAP) sont facultatifs. Si vous ne fournissez pas de nom d’utilisateur et de mot de passe, le connecteur utilise le certificat client fourni dans une étape ultérieure pour l’authentification.

  4. Pour activer SNC, dans la zone des informations de connexion SAP, fournissez plutôt les informations requises suivantes :

    Capture d’écran représentant les paramètres de connexion SAP pour activer SNC avec un workflow Consommation.

    Paramètre Description
    Utiliser SNC Cochez la case.
    Bibliothèque SNC Saisissez l’une des valeurs suivantes :

    - Nom de la bibliothèque SNC, sapsnc.dll, par exemple
    - Chemin d’accès relatif de l’emplacement d’installation de NCo, \security\sapsnc.dll, par exemple
    - Chemin d’accès absolu de l’emplacement d’installation de NCo, c:\security\sapsnc.dll, par exemple
    SNC SSO (Authentification unique SNC) Sélectionnez Logon using the SNC identity (Ouverture de session avec l’identité SNC) ou Logon with the username/password provided on RFC level (Ouverture de session avec le nom d’utilisateur/mot de passe fourni au niveau RFC).

    En règle générale, l’identité SNC est utilisée pour authentifier l’appelant. Vous pouvez choisir de vous authentifier avec un nom d’utilisateur et un mot de passe. Cependant, cette valeur de paramètre est toujours chiffrée.
    Mon nom SNC Dans la plupart des cas, vous pouvez ignorer cette propriété. La solution SNC installée connaît généralement son propre nom SNC. Si votre solution prend en charge plusieurs identités, vous devrez peut-être définir l’identité à utiliser pour cette destination ou ce serveur.
    Nom du partenaire SNC Saisissez le nom de l’identité SNC back-end, p:CN=DV3, OU=LA, O=MS, C=US, par exemple.
    Qualité de protection SNC Sélectionnez la qualité de service à utiliser pour la communication SNC de ce serveur ou de cette destination. La valeur par défaut est définie par le système back-end. La valeur maximale est définie par le produit de sécurité utilisé pour SNC.
    SNC Certificate (Certificat SNC) Entrez la clé publique encodée en base64 pour le certificat à utiliser pour identifier votre client auprès de SAP.

    Remarque : n’incluez ni l’en-tête ni le pied de page PEM.

    - N’entrez pas la clé privée pour le certificat client ici. Votre environnement de sécurité personnelle (PSE) doit contenir la clé privée correspondante pour ce certificat et peut contenir d’autres certificats privés. Pour plus d’informations, consultez le paramètre suivant.
    PSE Définissez l’environnement de sécurité personnel (PSE) SNC au format binaire codé en base64.

    - Votre environnement PSE doit contenir la clé privée du certificat client, où l’empreinte numérique correspond à la clé publique du certificat client dans le paramètre Certificat SNC.

    - Même si votre environnement PSE peut contenir plusieurs certificats clients, vous devez créer des workflows distincts pour utiliser plusieurs certificats clients.

    - Si vous utilisez plusieurs certificats client SNC avec la ressource d’application logique Standard, vous devez définir le même PSE pour toutes les connexions. Votre environnement PSE doit contenir la clé privée correspondante pour le certificat client pour chacune des connexions. Vous devez définir le paramètre Certificat SNC pour qu’il corresponde au certificat privé spécifique à chaque connexion.
  5. Sélectionnez Create (Créer) pour terminer la création de la connexion.

    Si les paramètres sont corrects, la connexion est créée. En cas de problème avec les paramètres, la boîte de dialogue de création de connexion affiche un message d’erreur. Pour résoudre les problèmes liés aux paramètres de connexion, vous pouvez utiliser l’installation de la passerelle de données locale et les journaux locaux correspondants.

Convertir un fichier PSE binaire dans un format codé en base64

  1. Utilisez un script PowerShell, par exemple :

    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. Enregistrez le script en tant que fichier pseConvert.ps1, puis appelez le script, par exemple :

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

    Si vous ne définissez pas le paramètre du chemin de sortie, la sortie du script dans la console contient des sauts de ligne. Supprimez les sauts de ligne dans la chaîne codée en base64 pour le paramètre d’entrée de connexion.

Configurez et testez l'envoi d'IDocs depuis SAP vers votre workflow

Pour envoyer des IDocs de SAP à votre flux de travail d'application logique, suivez ces étapes pour configurer et tester votre configuration SAP avec votre flux de travail d'application logique. Ces étapes s’appliquent uniquement aux tests, car les environnements de production nécessitent une configuration supplémentaire.

Pour envoyer des IDocs de SAP vers le workflow d’application logique, vous devez utiliser la configuration minimale suivante :

  1. Créer une destination RFC.
  2. Créer une connexion ABAP.
  3. Créez un port de réception.
  4. Créez un port d’envoi.
  5. Créez un partenaire de système logique.
  6. Créez un profil partenaire.
  7. Testez l’envoi de messages.

Créer une destination RFC

Cette destination identifie le workflow d’application logique comme port de réception.

  1. Dans SAP, ouvrez le paramètre Configuration of RFC Connections (Configuration des connexions RFC). Vous pouvez utiliser le code de transaction sm59 (T-Code) avec le préfixe /n.

  2. Sélectionnez Connexions TCP/IP>Créer.

  3. Créez une destination RFC avec les paramètres suivants :

    1. Pour RFC Destination (Destination RFC), saisissez un nom.

    2. Sous l’onglet Paramètres techniques, pour Type d’activation, sélectionnez Programme de serveur inscrit.

    3. Pour Program ID (ID de programme), saisissez une valeur. Dans le serveur SAP, le déclencheur du flux de travail d’application logique est enregistré avec cet identificateur.

      Important

      L’ID de programme SAP respecte la casse. Vous devez toujours utiliser le même format de casse pour l’ID de programme lorsque vous configurez le workflow et le serveur SAP. Dans le cas contraire, vous risquez de recevoir les erreurs suivantes dans le moniteur tRFC (T-Code SM58) lorsque vous tentez d’envoyer un IDoc à SAP :

      • Fonction IDOC_INBOUND_ASYNCHRONOUS introuvable
      • Client RFC non ABAP (type de partenaire) non pris en charge

      Pour plus d’informations de SAP, consultez les notes suivantes (connexion obligatoire) :

    4. Sous l’onglet Unicode, pour Type de communication avec le système cible, sélectionnez Unicode.

      Notes

      Les bibliothèques clientes SAP .NET prennent uniquement en charge le codage de caractères Unicode. Si l’erreur Non-ABAP RFC client (partner type) not supported (Client RFC non-ABAP (type de partenaire) non pris en charge) s’affiche lorsque vous envoyez un IDoc de SAP vers Azure Logic Apps, vérifiez que la valeur Communication Type with Target System (Type de communication avec le système cible) est définie sur Unicode.

  4. Enregistrez vos modifications.

  5. Enregistrez le nouvel ID de programme avec Azure Logic Apps en créant un workflow d’application logique qui commence par le déclencheur SAP nommé When a message is received (Quand un message est reçu).

    Ainsi, lorsque vous enregistrez le workflow, Azure Logic Apps inscrit l’ID de programme sur la passerelle SAP.

  6. Dans l’historique du déclencheur du workflow, les journaux de l’adaptateur SAP de la passerelle de données locale et dans les journaux de suivi de SAP Gateway, le cas échéant, vérifiez l’état de l’inscription.

    Dans la boîte d’analyse SAP Gateway Monitor (T-Code SMGW), sous Logged-On Clients (Clients connectés), la nouvelle inscription doit apparaître avec la dénomination Registered Server (Serveur inscrit).

  7. Pour tester votre connexion, sous la nouvelle RFC Destination (Destination RFC), sélectionnez Connection Test (Test de connexion).

Créer une connexion ABAP

Cette destination identifie le système SAP comme port d’envoi.

  1. Dans SAP, ouvrez le paramètre Configuration of RFC Connections (Configuration des connexions RFC). Vous pouvez utiliser le code de transaction sm59 (T-Code) avec le préfixe /n.

  2. Sélectionnez Connexions ABAP>Créer.

  3. Pour l’option Destination RFC, entrez l’identificateur de votre système SAP de test.

  4. Dans Technical Settings (Paramètres techniques), laissez l’hôte cible vide pour créer une connexion locale au système SAP.

  5. Enregistrez vos modifications.

  6. Pour tester votre connexion, sélectionnez Test de la connexion.

Créer un port d’envoi

  1. Dans SAP, ouvrez les paramètres Ports In IDOC processing (Ports pour le traitement IDoc). Vous pouvez utiliser le code de transaction we21 (T-Code) avec le préfixe /n.

  2. Sélectionnez Ports>RFC transactionnel>créer.

  3. Dans la boîte de dialogue de paramètres qui s’ouvre, sélectionnez Nom de port personnel.

  4. Pour votre port de test, entrez un Nom qui commence par SAP. Enregistrez vos modifications.

    Tous les noms des ports d’envoi doivent commencer par les lettres SAP, par exemple, SAPTEST.

  5. Dans les paramètres de votre nouveau port d’envoi, pour Destination RFC, entrez l’identificateur de votre connexion ABAP.

  6. Enregistrez les changements apportés.

Créer un port de réception

  1. Dans SAP, ouvrez les paramètres Ports In IDOC processing (Ports pour le traitement IDoc). Vous pouvez utiliser le code de transaction we21 (T-Code) avec le préfixe /n.

  2. Sélectionnez Ports>RFC transactionnel>créer.

  3. Dans la boîte de dialogue de paramètres qui s’ouvre, sélectionnez Nom de port personnel. Entrez un Nom pour votre port de test. Enregistrez vos modifications.

  4. Dans les paramètres de votre nouveau port de réception, pour Destination RFC, entrez l’identificateur pour votre destination RFC de test.

  5. Enregistrez les changements apportés.

Créer un partenaire de système logique

  1. Dans SAP, ouvrez les paramètres Change View "Logical Systems": Overview (Modifier la vue « Systèmes logiques » : vue d’ensemble). Vous pouvez utiliser le code de transaction bd54 (T-Code).

  2. Acceptez le message d’avertissement suivant qui s’affiche : Caution: The table is cross-client (Attention : la table est un client croisé).

  3. Au-dessus de la liste qui affiche vos systèmes logiques existants, sélectionnez Nouvelles entrées.

  4. Pour votre nouveau système logique, entrez un identificateur Log.System et une brève description du Nom. Enregistrez vos modifications.

  5. Lorsque l’Invite pour Workbench s’affiche, créez une nouvelle requête en fournissant une description ou, si vous avez déjà créé une requête, ignorez cette étape.

  6. Une fois la requête Workbench créée, liez cette requête à la requête de mise à jour de la table. Pour confirmer la mise à jour de votre table, enregistrez vos modifications.

Créer des profils partenaires

Pour les environnements de production, vous devez créer les deux profils de partenaire suivants :

  • Un profil pour l'expéditeur, qui est votre organisation et votre système SAP.
  • Un profil pour le récepteur, qui est votre ressource d’application logique et votre flux de travail.
  1. Dans SAP, ouvrez les paramètres Partner profiles (Profils partenaire). Vous pouvez utiliser le code de transaction we20 (T-Code) avec le préfixe /n.

  2. Sous Profils partenaires, sélectionnez Type de partenaire LS>Créer.

  3. Créez un profil partenaire avec les paramètres suivants :

    Paramètre Description
    Partner No. (Nº partenaire) Saisissez l’identificateur du partenaire de système logique.
    Partn. (Type partenaire) Type Saisissez LS.
    Agent Saisissez l’identificateur du compte d’utilisateur SAP à utiliser lorsque vous enregistrez des identificateurs de programme pour Azure Logic Apps ou d’autres systèmes non-SAP.
  4. Enregistrez les changements apportés.

    Si vous n'avez pas créé le partenaire système logique, vous obtenez l'erreur : Entrez un numéro de partenaire valide.

  5. Dans les paramètres de votre profil partenaire, sous Paramètres sortants, sélectionnez Créer un paramètre sortant.

  6. Créez un nouveau paramètre sortant avec les paramètres suivants :

  7. Enregistrez vos modifications.

Tester l’envoi de messages

  1. Dans SAP, ouvrez les paramètres Test Tool for IDoc Processing (Outil de test pour le traitement IDoc). Vous pouvez utiliser le code de transaction we19 (T-Code) avec le préfixe /n.

  2. Sous Template for test (Modèle de test), sélectionnez Via message type (par type de message). Indiquez le type de message, par exemple, CREMAS. Sélectionnez Create (Créer).

  3. Confirmez le message Quel type d’Idoc ? en sélectionnant Continuer.

  4. Sélectionnez le nœud EDIDC. Entrez les valeurs appropriées pour les ports d’envoi et de réception. Sélectionnez Continuer.

  5. Sélectionnez Traitement sortant standard.

  6. Pour démarrer le traitement d’Idocs sortants, sélectionnez Continuer.

    Une fois que l’outil a terminé le traitement, le message IDoc envoyé au système SAP ou au programme externe s’affiche.

  7. Pour rechercher les erreurs de traitement, utilisez le code de transaction (T-Code) sm58 avec le préfixe /n.

Créer des workflows pour les scénarios SAP courants

Pour accéder au guide pratique de création des workflows pour l’intégration SAP courante, consultez les étapes suivantes :

Créer des workflows pour les scénarios SAP avancés

Analyser les journaux d’erreurs étendus (connecteur managé uniquement)

Si vous utilisez le connecteur géré SAP, vous pouvez trouver des messages d’erreur complets en vérifiant les journaux étendus de l’adaptateur SAP. Vous pouvez également activer un fichier journal étendu pour le connecteur SAP.

  • Pour les versions de la passerelle de données locale d’avril 2020 et versions antérieures, les journaux sont désactivés par défaut.

  • Pour les versions de la passerelle de données locale à partir de juin 2020, vous pouvez activer les journaux de la passerelle dans les paramètres de l’application.

    • Le niveau de journalisation par défaut est Avertissement.

    • Si vous activez Journalisation supplémentaire dans les paramètres de Diagnostic de l’application passerelle de données locale, le niveau de journalisation passe à Informationnel.

    • Pour passer au niveau de journalisation Détaillé, mettez à jour le paramètre suivant dans votre fichier de configuration. En règle générale, le fichier de configuration se trouve sous C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

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

Configurer la journalisation SAP étendue dans la passerelle de données locale (connecteur managé uniquement)

Si vous utilisez une passerelle de données locale pour Azure Logic Apps, vous pouvez configurer un fichier journal étendu pour le connecteur SAP. Vous pouvez utiliser votre passerelle de données locale pour rediriger les événements ETW (Suivi d’événements pour Windows) dans des fichiers journaux avec rotation qui sont inclus dans les fichiers .zip de journalisation de votre passerelle.

Vous pouvez exporter tous les journaux de configuration et de service de votre passerelle vers un fichier .zip à partir des paramètres de l’application de passerelle.

Notes

La journalisation étendue peut affecter les performances des workflows quand elle est activée en continu. Il est recommandé de désactiver les fichiers journaux étendus une fois que vous avez terminé l’analyse et le dépannage d’un problème.

Capturer des événements ETW

Cette tâche de journalisation avancée facultative, permet de capturer directement les événements ETW, puis de consommer les données dans les diagnostics Azure d’Event Hubs ou de collecter vos données dans les journaux Azure Monitor. Pour plus d’informations, consultez les meilleures pratiques pour collecter et stocker des données.

Pour travailler avec les fichiers ETL résultants, vous pouvez utiliser PerfView ou écrire votre propre programme. La procédure pas-à-pas suivante utilise PerfView :

  1. Dans le menu PerfView, sélectionnez Collecter>Collecter pour capturer les événements.

  2. Dans le paramètre Fournisseur supplémentaire, saisissez *Microsoft-LobAdapter pour indiquer au fournisseur SAP de capturer les événements de l’adaptateur SAP. Si vous ne spécifiez pas ces informations, votre suivi n’inclura que les événements ETW généraux.

  3. Conservez tous les autres paramètres par défaut. Si vous le souhaitez, vous pouvez modifier le nom ou l’emplacement du fichier dans le paramètre Fichier de données.

  4. Sélectionnez Démarrer la collecte pour commencer votre suivi.

  5. Une fois que vous avez reproduit votre problème ou collecté suffisamment de données d’analyse, sélectionnez Arrêter la collecte.

  6. Pour partager vos données avec un tiers, comme les ingénieurs du support Azure, compressez le fichier ETL.

  7. Pour afficher le contenu de votre suivi :

    1. Dans PerfView, sélectionnez Fichier>Ouvrir, puis le fichier ETL que vous venez de générer.

    2. Dans la barre latérale PerfView, la section Événements sous votre fichier ETL.

    3. Sous Filtrer, filtrez par Microsoft-LobAdapter pour afficher uniquement les événements pertinents et les processus de la passerelle.

Tester votre workflow

Selon que vous disposez d’un workflow Consommation dans Azure Logic Apps multilocataire ou d’un workflow Standard dans Azure Logic Apps monolocataire, suivez la procédure correspondante :

  1. Si votre ressource d’application logique Consommation n’est pas déjà activée, dans le menu associé, sélectionnez Vue d’ensemble. Dans la barre d’outils, sélectionnez Activer.

  2. Dans la barre d’outils du concepteur, sélectionnez Exécuter le déclencheur>Exécuter pour démarrer manuellement votre workflow.

  3. Pour déclencher votre workflow, envoyez un message depuis votre système SAP.

  4. Revenez au volet Vue d’ensemble de l’application logique. Sous Historique des exécutions, identifiez toute nouvelle exécution du workflow.

  5. Ouvrez l’exécution la plus récente, qui affiche une exécution manuelle. Analysez et examinez la section « Sorties du déclencheur ».

Activer la journalisation et le suivi de la bibliothèque de client SAP (NCo) (connecteur intégré uniquement)

Lorsque vous devez examiner les problèmes liés à ce composant, vous pouvez configurer le suivi NCo basé sur des fichiers texte personnalisés, que le support SAP ou Microsoft peut vous demander. Par défaut, cette fonctionnalité est désactivée, car l’activation de cette trace peut affecter négativement les performances et consommer rapidement l’espace de stockage de l’hôte d’application.

Vous pouvez contrôler cette fonctionnalité de suivi au niveau de l’application en ajoutant les paramètres suivants :

  1. Dans le portail Azure, ouvrez votre ressource d’application logique Standard.

  2. Dans le menu de l’application logique, sous Paramètres, sélectionnez Variables d’environnement pour passer en revue les paramètres de l’application.

  3. Dans la page Variables d’environnement, sous l’onglet Paramètres d’application, ajoutez les paramètres d’application suivants :

    • SAP_RFC_TRACE_DIRECTORY : répertoire dans lequel stocker les fichiers de trace NCo, par exemple, C:\home\LogFiles\NCo.

    • SAP_RFC_TRACE_LEVEL : niveau de trace NCo avec Level4 comme valeur suggérée pour la journalisation détaillée classique. Le support SAP ou Microsoft peut vous demander de définir un autre niveau de trace.

      Remarque

      Pour les flux de travail d’application logique standard qui utilisent la version d’exécution 1.69.0 ou ultérieure, vous pouvez activer la journalisation pour plusieurs niveaux de trace en séparant chaque niveau de trace avec une virgule (,).

      Pour trouver la version d’exécution de votre workflow, procédez comme suit :

      1. Dans le portail Azure, dans le menu de votre flux de travail, sélectionnez Vue d’ensemble.
      2. Dans la section Essentials, recherchez la propriété Version du runtime.
    • SAP_CPIC_TRACE_LEVEL : Le niveau de trace de l'interface de programmation commune pour la communication (CPI-C) avec Verbose comme valeur suggérée pour une journalisation verbeuse typique. Le support SAP ou Microsoft peut vous demander de définir un autre niveau de trace.

    Pour plus d’informations sur l’ajout de paramètres d’application, consultez Modifier les paramètres de l’hôte et de l’application pour les workflows d’application logique Standard.

  4. Enregistrez vos modifications. Cette étape redémarre l’application.

Niveaux de trace disponibles

Niveaux de trace NCo

Valeur Description
Level1 Niveau pour le suivi des appels de fonction à distance.
Level2 Niveau pour le suivi des appels de fonction à distance et des appels de méthode d’API publique.
Level3 Niveau pour le suivi des appels de fonction à distance, des appels de méthode d’API publique et des appels de méthode d’API interne.
Level4 Niveau pour le suivi des appels de fonction à distance, des appels de méthode d’API publique, des appels de méthode d’API interne, des vidages hexadécimaux pour le protocole RFC et des informations relatives au réseau.
Verrouillage Écrit des données dans les fichiers de trace qui indiquent quand les threads demandent, acquièrent et libèrent des verrous sur des objets.
Métadonnées Trace les métadonnées impliquées dans un appel de fonction à distance pour chaque appel.
None Niveau de suppression de toutes les sorties de trace.
ParameterData Trace les données de conteneur envoyées et reçues lors de chaque appel de fonction à distance.
Performances Écrit des données dans les fichiers de trace qui peuvent vous aider à analyser les problèmes de performances.
PublicAPI Trace la plupart des méthodes de l’API publique, à l’exception des getters, setters ou méthodes associées.
InternalAPI Trace la plupart des méthodes de l’API interne, à l’exception des getters, setters ou méthodes associées.
RemoteFunctionCall Trace les appels de fonctions à distance.
RfcData Trace les octets envoyés et reçus lors de chaque appel de fonction à distance.
SessionProvider Trace toutes les méthodes de l’implémentation actuellement utilisée d’ISessionProvider.
SetValue Écrit des informations dans les fichiers de trace concernant les valeurs définies pour les paramètres de fonctions ou les champs de structures ou de tables.

Niveaux de trace CPIC

Valeur Description
Désactivé Aucune journalisation
De base Journalisation de base
Commentaires Journalisation détaillée
VerboseWithData Journalisation détaillée avec tous les vidages de réponse du serveur

Afficher la trace

  1. Dans le menu de ressource d’application de fonction Standard, sous Outils de développement, sélectionnez Outils avancés>Accéder.

  2. Dans la barre d’outils Kudu, sélectionnez Console de débogage>CMD.

  3. Accédez au dossier du paramètre d’application nommé $SAP_RFC_TRACE_DIRECTORY.

    Un nouveau dossier nommé NCo, ou n’importe quel nom de dossier que vous avez utilisé, s’affiche pour la valeur du paramètre d’application, C:\home\LogFiles\NCo, que vous avez définie précédemment.

  4. Ouvrez le dossier $SAP_RFC_TRACE_DIRECTORY, qui contient les fichiers suivants :

    • Journaux de trace NCo : fichier nommé dev_nco_rfc.log, un ou plusieurs fichiers nommés nco_rfc_NNNN.log, et un ou plusieurs fichiers nommés nco_rfc_NNNN.trc fichiers où NNNN est un identificateur de thread.

    • Journaux de trace CPIC : un ou plusieurs fichiers nommés nco_cpic_NNNN.trc fichiers où NNNN est l’identificateur de thread.

  5. Pour afficher le contenu dans un fichier journal ou de trace, sélectionnez le bouton Modifier en regard d’un fichier.

    Remarque

    Si vous téléchargez un fichier journal ou de trace que votre workflow d’application logique a ouvert et est actuellement en cours d’utilisation, votre téléchargement peut entraîner un fichier vide.

Activer le traçage de bibliothèque de chiffrement commune (Common Crypto Library/CCL) SAP (connecteur intégré uniquement)

Si vous devez examiner les problèmes liés à la bibliothèque de chiffrement lors de l’utilisation de l’authentification SNC, vous pouvez configurer un traçage CCL personnalisé basé sur des fichiers texte. Vous pouvez utiliser ces journaux CCL pour résoudre les problèmes d’authentification SNC, ou les partager avec le support Microsoft ou SAP si nécessaire. Par défaut, cette fonctionnalité est désactivée, car l’activation de cette trace peut affecter négativement les performances et consommer rapidement l’espace de stockage de l’hôte d’application.

Vous pouvez contrôler cette fonctionnalité de suivi au niveau de l’application en ajoutant les paramètres suivants :

  1. Dans le portail Azure, ouvrez votre ressource d’application logique Standard.

  2. Dans le menu de ressource d’application de fonction Standard, sous Outils de développement, sélectionnez Outils avancés>Accéder.

  3. Dans la barre d’outils Kudu, sélectionnez Console de débogage>CMD.

  4. Accédez à un emplacement sous C :\home\site\wwwrootet créez un fichier texte, par exemple : CCLPROFILE.txt.

    Pour plus d’informations sur les paramètres de journalisation, consultez Traçage> NOTE SAP 2338952. L’exemple suivant fournit un exemple de configuration de traçage :

    ccl/trace/directory=C:\home\LogFiles\CCLLOGS
    ccl/trace/level=4
    ccl/trace/rotatefilesize=10000000
    ccl/trace/rotatefilenumber=10
    
  5. Dans le menu de l’application logique, sous Paramètres, sélectionnez Variables d’environnement pour passer en revue les paramètres de l’application.

  6. Dans la page Variables d’environnement, sur l’onglet Paramètres d’application, ajoutez les paramètres d’application suivants :

    CCL_PROFILE : répertoire dans lequel CCLPROFILE.txt a été créé, par exemple C :\home\site\wwwroot\CCLPROFILE.txt.

  7. Enregistrez vos modifications. Cette étape redémarre l’application.

Afficher la trace

  1. Dans le menu de ressource d’application de fonction Standard, sous Outils de développement, sélectionnez Outils avancés>Accéder.

  2. Dans la barre d’outils Kudu, sélectionnez Console de débogage>CMD.

  3. Naviguez jusqu’au dossier du paramètre $ccl/trace/directory, qui provient du fichier CCLPROFILE.txt.

    En règle générale, les fichiers de trace sont nommés sec-Microsoft.Azure.Work-$processId.trc et sec-sapgenpse.exe-$processId.trc.

    Votre flux de travail d’application logique effectue l’authentification SNC en tant que processus en deux étapes :

    1. Votre flux de travail d’application logique appelle sapgenpse.exe pour générer un fichier cred_v2 à partir du fichier PSE.

      Vous pouvez trouver les traces associées à cette étape dans un fichier nommé sec-sapgenpse.exe-$processId.trc.

    2. Votre flux de travail d’application logique authentifie l’accès à votre serveur SAP en consommant le fichier cred_v2 généré, avec la bibliothèque de client SAP appelant la bibliothèque de chiffrement commune.

      Vous trouverez les traces associées à cette étape dans un fichier nommé sec-Microsoft.Azure.Work-$processId.trc.

Envoyer la télémétrie SAP pour la passerelle de données locale vers Azure Application Insights

Avec la mise à jour d’août 2021 de la passerelle de données locale, les opérations du connecteur SAP peuvent envoyer des données de télémétrie depuis la bibliothèque de client SAP et des traces depuis l’adaptateur SAP de Microsoft vers Application Insights, une fonctionnalité d’Azure Monitor. Cette télémétrie comprend principalement les données suivantes :

  • Métriques et traces basées sur les métriques et les analyses SAP NCo.

  • Traces à partir de l’adaptateur Microsoft SAP.

Métriques et traces depuis la bibliothèque de client SAP NCo

Les métriques SAP basées sur NCo sont des valeurs numériques qui peuvent ou ne peuvent pas varier sur une période, en fonction de l’utilisation et de la disponibilité des ressources sur la passerelle de données locale. Vous pouvez utiliser ces métriques pour mieux comprendre l’intégrité du système et créer des alertes sur les activités suivantes :

  • Baisse d’intégrité du système.
  • Événements inhabituels.
  • Charge importante du système.

Ces informations sont envoyées à la table Application Insights nommée customMetrics. Par défaut, les métriques sont envoyées à intervalles de 30 secondes.

Les traces basées sur SAP NCo incluent des informations de texte utilisées avec des métriques. Ces informations sont envoyées à la table Application Insights nommée traces. Par défaut, les traces sont envoyées à intervalles de 10 minutes.

Les métriques et les suivis SAP NCo sont basés sur les métriques SAP NCo, en particulier les classes NCo suivantes :

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

Pour plus d’informations sur les métriques fournies par chaque classe, consultez la documentation SAP NCo (connexion requise).

Configuration de la télémétrie SAP pour Application Insights​

Avant de pouvoir envoyer des données de télémétrie SAP pour l’installation de votre passerelle vers Application Insights, vous devez avoir créé et configuré votre ressource Application Insights. Pour plus d’informations, consultez la documentation suivante :

Pour activer l’envoi de données de télémétrie SAP à Application Insights, procédez comme suit :

  1. Téléchargez le package NuGet pour Microsoft.ApplicationInsights.EventSourceListener.dll à partir de cet emplacement : https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.

  2. Ajoutez le fichier téléchargé au répertoire d’installation de la passerelle de données locale, par exemple, C:\Program Files\On-Premises Data Gateway.

  3. Dans votre répertoire d’installation de la passerelle de données locale, vérifiez que le fichier Microsoft.ApplicationInsights.dll a le même numéro de version que le fichier Microsoft.ApplicationInsights.EventSourceListener.dll que vous avez ajouté. La passerelle utilise actuellement la version 2.14.0.

  4. Dans le fichier ApplicationInsights.config, ajoutez votre clé d’instrumentation Application Insights en supprimant les commentaires de la ligne avec l'élément <InstrumentationKey></InstrumentationKey>. Remplacez l’espace réservé, your-Application-Insights-instrumentation-key, par votre clé, par exemple :

    <?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. Dans le fichier ApplicationInsights.config, vous pouvez modifier la valeur des suivis requis Level pour vos opérations de connecteur SAP, conformément à vos besoins, par exemple :

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

    Pour plus d’informations, consultez la documentation suivante :

  6. Après avoir appliqué vos modifications, redémarrez le service de passerelle de données locale.

Exploration des métriques dans Application Insights

Une fois que vos opérations SAP s’exécutent dans votre flux de travail d’application logique, vous pouvez passer en revue les données de télémétrie envoyées à Application Insights.

  1. Ouvrez votre ressource Application Insights dans le portail Azure.

  2. Dans le menu de la ressource, sous Surveillance, sélectionnez Journaux d'activité.

    La capture d’écran suivante montre le portail Azure avec Application Insights, qui est ouvert dans le volet des Journaux d'activité :

    Capture d’écran représentant le portail Azure avec Application Insights ouvert sur le volet « Journaux » pour la création de requêtes.

  3. Dans le volet Journaux , vous pouvez créer une requête à l’aide du langage de requête Kusto (KQL), en fonction de vos besoins spécifiques.

    Vous pouvez utiliser un modèle de requête semblable à l’exemple de requête suivant :

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. Après avoir exécuté votre requête, passez en revue les résultats.

    La capture d’écran suivante montre le tableau des résultats des métriques de la requête d’exemple :

    Capture d’écran représentant Application Insights avec le tableau des résultats de métriques.

    • MaxUsedCount est le « nombre maximal de connexions clientes qui ont été utilisées simultanément par la destination analysée », comme décrit dans la documentation SAP NCO (connexion requise). Vous pouvez utiliser cette valeur pour comprendre le nombre de connexions ouvertes simultanément.

    • La colonne valueCount affiche 2 pour chaque lecture, car les métriques sont générées à intervalles de 30 secondes. Application Insights regroupe ces métriques à la minute.

    • La colonne DestinationName contient une chaîne de caractères qui est un nom interne de l’adaptateur Microsoft SAP.

      Pour mieux comprendre cette destination de l’appel de fonction distant (RFC), utilisez cette valeur avec traces, par exemple :

      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
      

Vous pouvez également créer des graphiques de métriques ou des alertes à l’aide de ces fonctionnalités dans Application Insights, par exemple :

Capture d’écran représentant Application Insights avec les résultats sous forme graphique.

Traces à partir de l’adaptateur Microsoft SAP

Vous pouvez utiliser les traces envoyées à partir de l’adaptateur Microsoft SAP pour les problèmes après l’analyse et rechercher les erreurs système internes existantes qui peuvent ne pas être visibles par les opérations du connecteur SAP. Ces traces ont message affecté à "n\a", car elles proviennent d’une infrastructure source d’événement antérieure à Application Insights, par exemple :

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"

La capture d’écran suivante montre le tableau des résultats des métriques de la requête d’exemple :

Capture d’écran représentant Application Insights avec le tableau des résultats de traces.

Étapes suivantes