Freigeben über


Herstellen einer Verbindung mit SAP über Workflows in Azure Logic Apps

Gilt für: Azure Logic Apps (Verbrauch + Standard)

In dieser mehrteiligen Anleitung wird gezeigt, wie Sie mithilfe des SAP-Connectors über einen Workflow in Azure Logic Apps auf Ihren SAP-Server zugreifen. Sie können diese SAP-Connectorvorgänge verwenden, um automatisierte Workflows zu erstellen, die ausgelöst durch Ereignisse in Ihrem SFTP-Server oder in anderen Systemen, ausgeführt werden sowie Aktionen zum Verwalten von Ressourcen auf Ihrem SAP-Server ausführen.

Sowohl Standard- als auch Verbrauchs-Logik-App-Workflows verfügen über den verwalteten SAP-Connector, der in Azure mit mehreren Mandanten gehostet und ausgeführt wird. Standard-Workflows bieten auch den integrierten SAP-Connector, der in Azure Logic Apps mit einem einzelnen Mandanten gehostet und ausgeführt wird. Weitere Informationen finden Sie in der Connector-spezifischen Dokumentation.

Hinweis

Dieser Leitfaden enthält Links zur SAP-Website für SAP-Supportnotizen und Knowledge Base-Artikel. In den meisten Fällen müssen Sie sich anmelden, um auf den vollständigen Inhalt zuzugreifen.

SAP-Kompatibilität

Der SAP-Connector ist mit den folgenden Typen von SAP-Systemen kompatibel:

  • Lokale und cloudbasierte Hana-basierte SAP-Systeme wie S/4 HANA.

  • Klassische lokale SAP-Systeme wie R/3 und ECC.

SAP muss die SAP-Systemversion, die Sie verbinden möchten, unterstützen. Andernfalls können Probleme, die auftreten können, möglicherweise nicht gelöst werden. Weitere Informationen zu SAP-Systemversionen und Wartungsinformationen finden Sie in der SAP-Produktverfügbarkeitsmatrix (PAM).

Der SAP-Connector unterstützt die folgenden Nachrichten- und Datenintegrationstypen aus SAP NetWeaver-basierten Systemen:

  • IDoc (Intermediate Document)

  • BAPI (Business Application Programming Interface)

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

Der SAP-Connector verwendet die SAP-NCo-Bibliothek (.NET-Connector).

Um die SAP-Connectorvorgänge verwenden zu können, müssen Sie zunächst Ihre Verbindung authentifizieren und haben dabei die folgenden Optionen:

Sie können einmaliges Anmelden (Single Sign-on, SSO) mit SNC für SAP NetWeaver verwenden oder für zusätzliche Sicherheit Funktionen externer Produkte. Wenn Sie SNC verwenden möchten, lesen Sie die SNC-Voraussetzungen.

Technische Referenz für den Connector

Der SAP-Connector hat verschiedene Versionen, die auf dem Typ der logischen Anwendung und der Hostumgebung basieren.

Logik-App Umwelt Connector-Version
Verbrauch Azure Logic Apps mit mehreren Mandanten Verwalteter Connector, der im Connectorkatalog unter dem Filter Freigegeben angezeigt wird. Weitere Informationen finden Sie in der folgenden Dokumentation:

- Referenz zum verwalteten SAP-Connector
- Verwaltete Connectors in Azure Logic Apps
Norm Einzelmandanten-Azure Logic Apps und App Service-Umgebung v3 (nur Windows-Pläne) Der verwaltete Connector, der im Connectorkatalog unter Runtime>Freigegeben angezeigt wird, und der integrierte Connector, der im Connectorkatalog unter dem Filter Integriert angezeigt wird und auf einem Dienstanbieter basiert Der integrierte Connector kann ohne ein lokales Datengateway direkt auf virtuelle Azure-Netzwerke mit einer Verbindungszeichenfolge zugreifen. Weitere Informationen finden Sie in der folgenden Dokumentation:

- Referenz zum verwalteten SAP-Connector
- Referenz zum integrierten SAP-Connector

- Verwaltete Connectors in Azure Logic Apps
- Integrierte Connectors in Azure Logic Apps

Unterschiede zwischen Connectors

Der integrierte SAP-Connector unterscheidet sich auf folgende Weise erheblich vom verwalteten SAP-Connector:

  • Für lokale Verbindungen ist das lokale Datengateway nicht erforderlich.

    Stattdessen kommuniziert der integrierte SAP-Connector direkt mit Ihrem SAP-Server im integrierten virtuellen Netzwerk, wodurch Hops, Wartezeit und Fehlerpunkte für ein Netzwerkgateway vermieden werden. Stellen Sie sicher, dass Sie die nicht weiterverteilbaren SAP-Clientbibliotheken mit Ihrer Logik-App-Workflowanwendung hochladen oder bereitstellen. Weitere Informationen finden Sie unter Voraussetzungen in diesem Handbuch.

  • Standard-Logik-App-Workflows erfordern und verwenden die SAP NCo 3.1-Clientbibliothek, nicht die SAP NCo 3.0-Version. Weitere Informationen finden Sie unter Voraussetzungen.

  • Standardmäßig sind die integrierten SAP-Connectorvorgänge zustandslos. Sie können jedoch den zustandsbehafteten Modus (Affinität) für diese Vorgänge aktivieren.

    Im zustandsbehafteten Modus unterstützt der integrierte SAP-Connector Konfigurationen für Hochverfügbarkeit und horizontale Skalierung. Im Vergleich dazu unterliegt der verwaltete SAP-Connector Einschränkungen hinsichtlich des lokalen Datengateways, das auf eine einzelne Instanz für Trigger und für Aktionen für Cluster nur im Failovermodus beschränkt sind. Weitere Informationen finden Sie unter verwalteter SAP-Connector – Bekannte Probleme und Einschränkungen.

  • Nutzdatengrößen bis zu 100 MB sind unterstützt, sodass Sie keinen Blob-URI für große Anforderungen verwenden müssen.

  • Spezifische Aktionen sind für BAPI aufrufen, RFC aufrufen und IDoc senden verfügbar. Diese dedizierten Aktionen bieten eine bessere Erfahrung für zustandsbehaftete BAPIs, RFC-Transaktionen und IDoc-Deduplizierung und verwenden nicht das ältere SOAP-Messagingmodell von Windows Communication Foundation (WCF).

    Die Aktion "BAPI aufrufen " enthält bis zu zwei Antworten mit dem zurückgegebenen JSON:The Call BAPI action includes up to two responses with the returned JSON:

    • Die XML-Antwort von der aufgerufenen BAPI.

    • Die Antwort des BAPI-Commits oder BAPI-Rollbacks, wenn Sie die Option für automatisches Committen aktivieren.

      Diese Funktion behebt ein Problem mit dem von SAP verwalteten Connector, bei dem das Ergebnis des Autocommit-Verhaltens unauffällig ist und nur aus Protokollen ersichtlich wird.

  • Standard-Logik-App-Workflows bieten Anwendungseinstellungen, in denen Sie eine persönliche Sicherheitsumgebung (Personal Security Environment, PSE) und ein PSE-Kennwort angeben können.

    Diese Änderung verhindert, dass Sie mehrere PSE-Dateien hochladen können, da dies nicht unterstützt wird und zu SAP-Verbindungsfehlern führt. In Verbrauchs-Logik-App-Workflows können Sie diese Werte mit dem verwalteten SAP-Connector über Verbindungsparameter angeben, wodurch Sie mehrere PSE-Dateien hochladen konnten, was nicht unterstützt wird und zu SAP-Verbindungsfehlern führt.

  • Ein längeres Timeout im Vergleich zum verwalteten SAP-Connector.

    Der integrierte SAP-Connector wird nativ auf der Azure Logic Apps-Laufzeit ausgeführt, anders als der von SAP verwaltete Connector, der auf der freigegebenen, globalen, multitenanten Azure-Infrastruktur ausgeführt wird. Dieser Entwurfsunterschied bedeutet, dass Sie den Standardtimeoutwert für die Standardlogik-App-Ressource ändern können, indem Sie die host.json Einstellungen namens "Runtime.FlowRunRetryableActionJobCallback.ActionJobExecutionTimeout " und "functionTimeout" verwenden.

    Die Fähigkeit, den Timeout-Wert anzupassen, bedeutet, dass Sie den eingebauten SAP-Connector as-is für synchron ausgeführte Anforderungen mit langer Laufzeit nutzen können. Andernfalls müssen diese Anfragen das Aktionsmuster für auf zeitintensiven Webhooks basierende Anfragen im verwalteten SAP-Connector verwenden, der für synchrone Anforderungen ein deutlich kürzeres Timeout von zwei Minuten aufweist.

  • Wo finden Sie die guid Parameter und tId

    Die XML-Parameter für guid und tId sind in Eingabe- und Ausgabe-XML-Nutzlasten nicht mehr verfügbar. Stattdessen finden Sie die Parameter als explizite Parameter im Workflow-Designer auf der Registerkarte "Parameter " und als dynamische Ausgabeausdrücke.

  • Behandeln leerer XML-Elemente

    • SAP integrierter Connector: Ein leeres XML-Element wird als SAP-Parameter mit einem expliziten leeren Wert oder Standardwert behandelt. Um das Senden des Parameters an SAP auszulassen, können Sie einfach das leere Element aus der Eingabenutzlast entfernen.

    • SAP managed connector: Ein leeres XML-Element wird als fehlender Parameter interpretiert und nicht an die SAP-Funktion gesendet.

    Beispiel

    Angenommen, Sie haben die folgende SAP RFC-Eingabenutzlast:

    <RfcName>
       <Parameter></Parameter>
    </RfcName>
    
    • Im integrierten SAP-Connector enthält der SAP RFC-Aufruf den Parameter als expliziten leeren Wert ('').

    • Im SAP-verwalteten Connector wird der Parameter vollständig vom SAP RFC-Aufruf weggelassen.

  • Kürzen von Leerzeichen

    Der integrierte SAP-Connector schneidet automatisch Leerzeichen in XML-Elementen ab.

    Angenommen, Sie haben die folgende Eingabe:

    <RfcName>
       <Parameter>   </Parameter>
    </RfcName>
    

    Im SAP RFC-Funktionsaufruf wird der Leerraum im Parameterwert als leere Zeichenfolge (') behandelt und gekürzt. Um sicherzustellen, dass der Aufruf die Leerzeichen genau wie in der Nutzlast angegeben beibehält, fügen Sie das xml:space="preserve"-Attribut zum Element hinzu, um die W3C-Spezifikation 2.10 White Space Handling zu erfüllen, zum Beispiel:

    <RfcName>
       <Parameter xml:space="preserve">   </Parameter>
    </RfcName>
    
  • Überprüfen des IDoc-Formats

    • Integrierter SAP-Connector: Validiert die Eingabenutzdaten streng anhand des in den Aktionseingaben spezifizierten IDoc Format-Elements. Wenn zwischen der bereitgestellten IDoc Format und der Eingabe-XML-IDoc-Struktur ein Konflikt besteht, löst der integrierte Connector einen Fehler aus.

    • SAP managed connector: Leitet das IDoc-Format direkt aus der Eingabenutzlast ab, sodass mehr Flexibilität möglich ist, da kein exakt passendes Format erforderlich ist.

  • Behandeln von BizTalk-XML-Gruppensegmenten

    • SAP-eingebauter Connector: Hält sich strikt an das vom Schemagenerator definierte Schema.

      • Ein Segment, das mit GRP (Gruppensegment) endet, muss alle untergeordneten Segmente nur einmal pro Instanz definieren.

      • Um mehrere Gruppen untergeordneter Segmente darzustellen, erstellen Sie mehrere Instanzen des Gruppensegments, sodass jede Instanz einen eigenen einzelnen Satz untergeordneter Segmente enthält.

    • Verwalteter SAP-Connector: Ermöglicht mehrere Wiederholungen von untergeordneten Elementen innerhalb eines einzelnen Gruppensegments. Diese Wiederholungen werden als mehrere Instanzen des Gruppensegments interpretiert.

    Beispielverhalten

    In der folgenden Struktur definiert ein einzelnes Gruppensegment mehrere Sequenzen von untergeordneten Elementen. Dies wird vom integrierten SAP-Connector abgelehnt:

    <ns2:E2EDKT1002GRP>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>FD</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>CRSD</ns2:TDLINE>
       </ns2:E2EDKT2001>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>DTP</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>OriginalRelease:0|</ns2:TDLINE>
          <ns2:TDFORMAT>/</ns2:TDFORMAT>
       </ns2:E2EDKT2001>
    </ns2:E2EDKT1002GRP>
    

    Verwenden Sie stattdessen die folgende Struktur für den integrierten SAP-Connector, in dem jede E2EDKT1002GRP Gruppeninstanz nur eine einzelne Sequenz untergeordneter Segmente enthält:

    <ns2:E2EDKT1002GRP>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>FD</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>CRSD</ns2:TDLINE>
       </ns2:E2EDKT2001>
    </ns2:E2EDKT1002GRP>
    <ns2:E2EDKT1002GRP>
       <ns2:E2EDKT1002>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDID>DTP</ns2:TDID>
       </ns2:E2EDKT1002>
       <ns2:E2EDKT2001>
          <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM>
          <ns2:TDLINE>OriginalRelease:0|</ns2:TDLINE>
          <ns2:TDFORMAT>/</ns2:TDFORMAT>
       </ns2:E2EDKT2001>
    </ns2:E2EDKT1002GRP>
    
  • Verhalten des integrierten Triggers

    • Namespaceerstellung

      Der Trigger erstellt den Namespace in der SAP-Triggernutzlast mithilfe der Releaseversionsnummer aus IDoc-Metadaten, die vor dem Parsen eines IDoc-Elements (BizTalk-XML-Code oder einfaches XML) abgerufen wird. Um diese Quelle außer Kraft zu setzen und stattdessen die Versionsnummer aus dem Kontrolldatensatz zu verwenden, gehen Sie zum Workflow-Designer und legen Sie in den Triggereingabeparametern die Eigenschaft EnforceControlRecordNamespace auf true fest.

    • Behandeln leerer Elemente

      Standardmäßig enthält der SAP-Trigger keine leeren Elemente in der Ausgabenutzlast. Um leere Elemente in die Triggerausgabe einzuschließen, wechseln Sie zum Workflow-Designer, und legen Sie in den Triggereingabeparametern die Eigenschaft "EnableEmptyXmlNode" auf "true" fest.

  • Integrierte Aktion zum Generieren eines Schemas

    • Sie können aus mehreren Vorgangstypen wie BAPI, IDoc, RFC und tRFC auswählen, verglichen mit der gleichen Aktion im verwalteten SAP-Connector, der den SapActionUris-Parameter und eine Dateisystem-Auswahlerfahrung verwendet.

    • Sie können einen Parameternamen direkt als benutzerdefinierten Wert angeben. Beispielsweise können Sie den Parameter RFC-Name aus der Aktion RFC aufrufen angeben. Beim Vergleich müssen Sie im SAP-verwalteten Connector einen komplexen Aktions-URI-Parameternamen angeben.

    • Diese Aktion unterstützt entwurfsbedingt nicht das Generieren mehrerer Schemas für RFCs, BAPIs oder IDocs in einer einzelnen Aktionsausführung, was vom verwalteten SAP-Connector unterstützt wird. Diese Funktionalitätsänderung verhindert jetzt Versuche, große Mengen von Inhalten in einem einzigen Aufruf zu senden.

Connectorparameter

Neben einfachen Zeichenfolgen- und Zahleneingaben werden vom SAP-Connector auch die folgenden Tabellenparameter (Type=ITAB-Eingaben) akzeptiert:

  • Direktionale Tabellenparameter (Ein- und Ausgabe) für ältere SAP-Releases
  • Parameteränderungen, welche die direktionalen Tabellenparameter bei neueren SAP-Releases ersetzen.
  • Hierarchische Tabellenparameter

Bekannte Probleme und Einschränkungen

SAP-verwalteter Connector

  • Der SAP-Connector unterstützt derzeit keine SAP-Router-Zeichenfolgen. Das lokale Datengateway muss in einem virtuellen Netzwerk vorhanden sein, in dem das Gateway direkt das SAP-System erreichen kann, das Sie verbinden möchten.

  • Im allgemeinen unterstützt der SAP-Trigger keine Datengatewaycluster. In einigen Failoverfällen unterscheidet sich der Datengatewayknoten, der mit dem SAP-System kommuniziert, von dem aktiven Knoten. Dies führt zu unerwartetem Verhalten.

    • In Szenarien für das Senden von Nachrichten werden Datengatewaycluster im Failovermodus unterstützt.

    • Datengatewaycluster im Lastenausgleichsmodus werden von zustandsbehafteten SAP-Aktionen nicht unterstützt. Zustandsbehaftete Kommunikationen müssen auf demselben Datengatewayclusterknoten verbleiben. Verwenden Sie das Datengateway entweder im Nicht-Clustermodus oder in einem Cluster, der nur für Failover eingerichtet ist. Dieses Szenario gilt beispielsweise für die folgenden Aktionen:

      • Alle Aktionen, die einen Sitzungs-ID-Wert angeben
      • [BAPI] Vorgang committen
      • [BAPI] Rollback für Transaktion ausführen
      • [BAPI - RFC] Stateful-Sitzung schließen
      • [BAPI - RFC] Zustandsbehaftete Sitzung erstellen
  • In der Aktion mit dem Namen [BAPI] Call method in SAP führt das AutoCommit-Feature keinen Commit für die BAPI-Änderungen durch, wenn mindestens eine Warnung im CallBapiResponse-Objekt vorhanden ist, das von der Aktion zurückgegeben wird. Führen Sie die folgenden Schritte aus, um BAPI-Änderungen trotz Warnungen zu committen:

    1. Erstellen Sie eine Sitzung explizit mithilfe der Aktion mit dem Namen [BAPI - RFC] Zustandsbehaftete Sitzung erstellen.
    2. Deaktivieren Sie in der Aktion "[BAPI]-Aufrufmethode in SAP" die Option "Auto Commit" .
    3. Rufen Sie stattdessen die Aktion [BAPI] Committransaktion auf.

IP-basierte Verbindungen mit SAP Message Server (Konfiguration mit Lastenausgleich)

Wenn Sie eine IP-Adresse angeben, um sich mit einem SAP Message Server zu verbinden, z. B. mit einem Lastenausgleicher, kann die Verbindung dennoch mit einer Fehlermeldung wie "hostname SAPDBSERVER01.example.com unknown" fehlschlagen. Der Nachrichtenserver weist den SAP Connector an, einen Hostnamen für die Verbindung mit dem Back-End SAP Anwendungsserver oder dem Server hinter dem Lastenausgleich zu verwenden. Wenn der Hostname von DNS nicht aufgelöst werden kann, schlägt die Verbindung fehl.

Für dieses Problem gibt es die folgenden Problemumgehungen oder Lösungen:

  • Stellen Sie sicher, dass der Client, der die Verbindung herstellt, z. B. der Computer mit dem lokalen Datengateway für den SAP-Connector, die vom Nachrichtenserver zurückgegebenen Hostnamen auflösen kann.

  • Ändern Sie in der Transaktion RZ11 die SAP-Einstellung ms/lg_with_hostname=0 oder fügen Sie sie hinzu.

Problemkontext oder Hintergrund

SAP hat den .NET-Connector (NCo) auf Version 3.1 aktualisiert. Dabei wurde die Art und Weise geändert, wie der Connector Verbindungen zu Back-End-Servern von Nachrichtenservern anfordert. Der Connector verwendet jetzt eine neue API für die Auflösung des Anwendungsservers durch den Nachrichtenserver, es sei denn, Sie zwingen den Connector durch die Einstellung ms/lg_with_hostname=0 zur Verwendung der alten API. Weitere Informationen finden Sie im SAP KB-Artikel 3305039 – SMLG IP-Adresseinstellung wird bei der Anmeldung in der Logon-Gruppe nicht berücksichtigt.

Voraussetzungen

  • Ein Azure-Konto und ein Azure-Abonnement. Wenn Sie noch kein Azure-Abonnement haben, melden Sie sich für ein kostenloses Azure-Konto an.

  • Der SAP-Anwendungsserver oder SAP-Nachrichtenserver, auf den Sie aus Azure Logic Apps zugreifen möchten.

    • Richten Sie Ihren SAP-Server und Ihr Benutzerkonto ein, um die Verwendung von RFC zu ermöglichen.

      Weitere Informationen, die die unterstützten Benutzerkontotypen und die mindest erforderliche Autorisierung für jeden Aktionstyp (RFC, BAPI, IDoc) enthalten, finden Sie unter SAP-Hinweis: 460089 – Mindestautorisierungsprofile für externe RFC-Programme.

    • Ihr SAP-Benutzerkonto benötigt für die folgenden Vorgänge Zugriff auf die Funktionsgruppe RFC_METADATA und die entsprechenden Funktionsmodule:

      Operationen Zugriff auf Funktionsmodule
      RFC-Aktionen RFC_GROUP_SEARCH und DD_LANGU_TO_ISOLA
      BAPI-Aktionen BAPI_TRANSACTION_COMMIT, BAPI_TRANSACTION_ROLLBACK, RPY_BOR_TREE_INIT, SWO_QUERY_METHODS und SWO_QUERY_API_METHODS
      IDoc-Aktionen IDOCTYPES_LIST_WITH_MESSAGES, IDOCTYPES_FOR_MESTYPE_READ, INBOUND_IDOCS_FOR_TID, OUTBOUND_IDOCS_FOR_TID, GET_STATUS_FROM_IDOCNR und IDOC_RECORD_READ
      Aktion Lesen der SAP-Tabelle Entweder RFC BBP_RFC_READ_TABLE oder RFC_READ_TABLE
      Gewähren Sie Ihrer SAP-Verbindung strikten Mindestzugriff auf den SAP-Server RFC_METADATA_GET und RFC_METADATA_GET_TIMESTAMP
  • Der Logic Apps-Workflow, aus dem Sie auf Ihren SAP-Server zugreifen möchten.

  • Standardmäßig sind die integrierten SAP-Connectorvorgänge zustandslos. Um diese Vorgänge im zustandsbehafteten Modus auszuführen, lesen Sie Aktivieren des zustandsbehafteten Modus für zustandslose integrierte Connectors.

    Zustandsbehaftete Kommunikation muss während der Verarbeitung bei derselben Workflowinstanz verbleiben. Eine Standard-Logik-App kann die Aufskalierung verwenden, um die Workload bei Bedarf über mehrere Workflowinstanzen zu verteilen. Diese Anforderung gilt für die folgenden Arten von Vorgängen:

    • Alle Aktionen, die einen Sitzungs-ID-Wert angeben, z. B. die [BAPI]-Commit-Transaktion.

    • Alle Aktionen, die einen Transaktions-ID-Wert angeben, mit Ausnahme der folgenden Aktionen: [IDOC - RFC] Transaktions-ID bestätigen und [IDoc] IDoc-Liste für Transaktion abrufen.

    • Antworten auf SAP-Server

  • Um entweder den von SAP verwalteten oder den eingebauten Connectortrigger mit dem Namen Wenn eine Nachricht empfangen wird zu verwenden, führen Sie die folgenden Aufgaben aus:

    • Richten Sie Ihre SAP-Gatewaysicherheitsberechtigungen oder die Zugriffssteuerungsliste (Access Control List, ACL) ein. Öffnen Sie im Dialogfeld Gateway-Monitor (T-Code SMGW), in dem die Dateien secinfo und reginfo angezeigt werden, das Menü Springen, und wählen Sie Expertenfunktionen>Externe Sicherheit>Pflege ACL Dateien aus.

      Folgende Berechtigungseinstellung ist erforderlich:

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

      Die Zeile weist das folgende Format auf:

      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>

      Wenn Sie die SAP-Gatewaysicherheitsberechtigungen nicht konfigurieren, erhalten Sie möglicherweise den folgenden Fehler:

      Registrierung von tp Microsoft.PowerBI.EnterpriseGateway < vom Host Hostnamen> nicht zulässig

      Weitere Informationen finden Sie im SAP KB-Artikel 1850230 – GW: "Registrierung der TP-Programm-ID <> nicht zulässig".

    • Richten Sie die Sicherheitsprotokollierung für Ihr SAP-Gateway ein, die Ihnen bei der Suche nach Problemen mit der Zugriffssteuerungsliste hilft. Weitere Informationen finden Sie im SAP-Hilfeartikel zum Einrichten der Gatewayprotokollierung.

    • Erstellen Sie im Dialogfeld Konfiguration von RFC-Verbindungen (T-Code: SM59) eine RFC-Verbindung des Typs TCP/IP. Stellen Sie sicher, dass der Aktivierungstyp auf Registriertes Serverprogramm festgelegt ist. Legen Sie den Wert Kommunikationstyp mit Zielsystem der RFC-Verbindung auf Unicode fest.

    • Wenn Sie diesen SAP-Trigger mit auf FlatFile festgelegtem IDOC Format-Parameter zusammen mit der Flatfile-Decodierungsaktion verwenden, müssen Sie die Eigenschaft early_terminate_optional_fields in Ihrem Flatfileschema verwenden, indem Sie den Wert auf true festlegen.

      Diese Anforderung besteht, weil der von SAP im tRFC-Aufruf IDOC_INBOUND_ASYNCHRONOUS gesendete IDoc-Flatfile-Datensatz nicht auf die volle SDATA-Feldlänge aufgefüllt ist. Azure Logic Apps stellt die ursprünglichen IDoc-Flatfiledaten ohne Auffüllung bereit, so wie sie von SAP empfangen wurden. Wenn Sie diesen SAP-Trigger mit der Flatfile-Decodierungsaktion kombinieren, muss das für die Aktion bereitgestellte Schema übereinstimmen.

    • In Verbrauchs- und Standardworkflows verwendet der von SAP verwaltete Trigger mit dem Namen Wenn eine Nachricht empfangen wird denselben URI-Speicherort, um ein Webhookabonnement zu erneuern oder zu kündigen. Der Erneuerungsvorgang verwendet die HTTP-Methode PATCH, während der Abmeldevorgang die HTTP-Methode DELETE verwendet. Dieses Verhalten kann dazu führen, dass ein Verlängerungsvorgang im Verlauf Ihres Triggers als Abmeldevorgang angezeigt wird, doch der Vorgang ist immer noch eine Verlängerung, weil der Trigger PATCH als HTTP-Methode verwendet, nicht DELETE.

      In Standardworkflows verwendet der integrierte SAP-Trigger mit dem Namen Wenn eine Nachricht empfangen wird stattdessen den Azure Functions-Trigger und zeigt nur die tatsächlichen Rückrufe von SAP an.

    • Für den integrierten SAP-Konnektortrigger namens „Wenn eine Nachricht empfangen wird“ müssen Sie die Integration des virtuellen Netzwerks und privater Ports aktivieren, indem Sie die Schritte im Aktivieren des Zustandsmodus für zustandslose integrierte Konnektoren in Azure Logic Apps ausführen. Andernfalls könnte der Aktion Antworten auf SAP-Server ohne diese Anforderungen der notwendige Zustand fehlen, um korrekt zu funktionieren.

      Um den Trigger lokal auszulösen, können Sie den Workflow in Visual Studio Code ausführen. Informationen zu Visual Studio Code-Setupanforderungen und weitere Informationen finden Sie unter Erstellen von Standardworkflows in Azure Logic Apps mit Visual Studio Code. Sie müssen auch die folgenden Umgebungsvariablen auf dem Computer einrichten, auf dem Sie Visual Studio Code installieren:

    • WEBSITE_PRIVATE_IP: Legen Sie den Wert für diese Umgebungsvariable auf 127.0.0.1 als localhost-Adresse fest.
    • WEBSITE_PRIVATE_PORTS: Legen Sie diesen Umgebungsvariablenwert auf zwei freie und nutzbare Ports auf Ihrem lokalen Computer fest, und trennen Sie die Werte durch ein Komma (,), z. B. 8080,8088.
  • Der Nachrichteninhalt, der an Ihren SAP-Server gesendet werden soll, z. B. eine IDoc-Beispieldatei. Diese Inhalte müssen im XML-Format vorliegen und den Namespace der SAP-Aktion enthalten, die Sie verwenden möchten. Sie können IDocs mit einem Flatfile-Schema senden, indem Sie sie mit einem XML-Umschlag umschließen.

  • Wenn Sie IDocs aus Ihrem Logik-App-Workflow an SAP senden möchten, ändern Sie den SAP-Verarbeitungsmodus von der Standardeinstellung Trigger immediately in Trigger by background program, sodass kein Timeout für den Workflow auftritt.

    Wenn Ihr SAP-System geladen ist, ruft das in die Warteschlange eingereihte IDoc ein Timeout auf. Ein Beispielszenario ist, wenn Ihr Workflow einen Batch von IDocs gleichzeitig an SAP sendet. Der Standardverarbeitungsmodus bewirkt, dass Ihr SAP-System den eingehenden Anruf für die IDoc-Übertragung blockiert, bis eine IDoc-Verarbeitung abgeschlossen ist. In Azure Logic Apps gilt für Workflowaktionen standardmäßig ein Timeout von 2 Minuten.

    Führen Sie die folgenden Schritte aus, um den Verarbeitungsmodus Ihres SAP-Systems zu ändern:

    1. Suchen Sie in SAP das SAP-Partnerprofil, und öffnen Sie die Einstellungen Partner profiles. Sie können den Transaktionscode (T-Code) we20 mit dem Präfix /n verwenden.

    2. Ändern Sie auf der Registerkarte Inbound options unter Processing by Function Module die Einstellung von Trigger immediately in Trigger by background program.

      Mit der Einstellung Trigger by background program kann der zugrunde liegende tRFC-Aufruf für den IDoc-Datentransport (IDOC_INBOUND_ASYNCHRONOUS) sofort abgeschlossen werden, anstatt die Verbindung zu blockieren, bis die IDoc-Verarbeitung abgeschlossen ist. Diese Einstellung funktioniert jedoch nur, wenn das IDoc nicht das Segment zum Überschreiben des Express-Verhaltens enthält, wie im SAP-KB-Artikel Nr. 1777090 beschrieben: IDocs are processed immediately despite having the "Trigger by background program" option selected in WE20 (IDocs werden sofort verarbeitet, obwohl die Option „Trigger by background program“ in WE20 aktiviert ist.).

    Weitere Informationen finden Sie in den folgenden Ressourcen:

Voraussetzungen für Netzwerkkonnektivität

Das SAP-System erfordert Netzwerkkonnektivität vom Host der SAP .NET Connector (NCo)-Bibliothek:

  • Für Verbrauchs-Logik-App-Workflows in Azure Logic Apps mit mehreren Mandanten hostet das lokale Datengateway die SAP .NET Connector (NCo)-Bibliothek. Wenn Sie einen lokalen Datengatewaycluster verwenden, ist für alle Knoten des Clusters eine Netzwerkverbindung mit dem SAP-System erforderlich.

  • Bei Standard-Logik-App-Workflows in Azure Logic Apps mit einem Mandanten hostet die Logik-App-Ressource die SAP .NET Connector (NCo)-Bibliothek. Daher muss die Logik-App-Ressource selbst die Integration virtueller Netzwerke aktivieren, und dieses virtuelle Netzwerk muss über Netzwerkkonnektivität mit dem SAP-System verfügen.

Die für das SAP-System erforderliche Netzwerkkonnektivität umfasst die folgenden Server und Dienste:

  • SAP-Anwendungsserver, Dispatcherdienst (für alle Anmeldetypen)

    Ihr SAP-System kann mehrere SAP-Anwendungsserver enthalten. Der Host der SAP .NET Connector (NCo)-Bibliothek benötigt Zugriff auf jeden Server und seine Dienste.

  • SAP-Nachrichtenserver, Nachrichtendienst (für Anmeldetyp Gruppe)

    Der Nachrichtenserver und der Dienst werden an einen oder mehrere Dispatcherdienste des Anwendungsservers umgeleitet. Der Host der SAP .NET Connector (NCo)-Bibliothek benötigt Zugriff auf jeden Server und seine Dienste.

  • SAP-Gatewayserver, Gatewaydienst

  • SAP-Gatewayserver, sicherer Gatewaydienst

    Die für das SAP-System erforderliche Netzwerkkonnektivität umfasst auch diesen Server und Dienst für die Verwendung mit Secure Network Communications (SNC).

Die Umleitung von Anforderungen von Anwendungsserver und Dispatcherdienst zu Gatewayserver und Gatewaydienst erfolgt automatisch innerhalb der SAP .NET Connector (NCo)-Bibliothek. Diese Umleitung erfolgt auch dann, wenn in den Verbindungsparametern nur die Dispatcherdienstinformationen des Anwendungsservers bereitgestellt werden.

Wenn Sie einen Lastenausgleich vor Ihrem SAP-System verwenden, müssen Sie alle Dienste an ihre jeweiligen Server umleiten.

Weitere Informationen zu SAP-Diensten und -Ports finden Sie unter TCP/IP Ports aller SAP-Produkte.

Hinweis

Stellen Sie sicher, dass Sie die Netzwerkkonnektivität über den Host der SAP .NET Connector (NCo)-Bibliothek aktiviert haben und dass die erforderlichen Ports für Firewalls und Netzwerksicherheitsgruppen geöffnet sind. Andernfalls erhalten Sie von der Komponente NI (Netzwerkschnittstelle) Fehler wie Partner nicht erreicht und Fehlertext wie WSAECONNREFUSED: Verbindung abgelehnt.

Voraussetzungen für die SAP-NCo-Clientbibliothek

Um den SAP-Connector zu verwenden, müssen Sie die SAP-Connector NCo-Clientbibliothek für Microsoft .NET 3.1 installieren. In der folgenden Liste werden die Voraussetzungen für die SAP NCo-Clientbibliothek basierend auf dem Workflow beschrieben, in dem Sie den SAP-Connector verwenden:

  • Version:

    • Stellen Sie für Workflows der Verbrauchslogik-App, die das lokale Datengateway verwenden, sicher, dass Sie die neueste 64-Bit-Version installieren, SAP Connector für Microsoft .NET 3.1.3.0 für Windows 64-Bit (x64). Das lokale Datengateway kann nur unter 64-Bit-Systemen ausgeführt werden. Die Installation der nicht unterstützten 32-Bit-Version führt zu einem Fehler „Ungültiges Image“.

    • Für Standard-Logik-App-Workflows können Sie die neueste 64-Bit- oder 32-Bit-Version für SAP-Connector (NCo 3.1) für Microsoft .NET 3.1.3.0, kompiliert mit .NET Framework 4.6.2 installieren. Stellen Sie jedoch sicher, dass Sie die Version installieren, die mit der Konfiguration in Ihrer Standard-Logik-App-Ressource übereinstimmt. Um die von Ihrer Logik-App verwendete Version zu überprüfen, führen Sie diese Schritte aus:

      1. Öffnen Sie im Azure-Portal Ihre Ressource vom Typ „Logic App (Standard)“.

      2. Wählen Sie im Logik-App-Menü unter EinstellungenKonfiguration aus.

      3. Wählen Sie auf der Seite Konfiguration die Registerkarte Allgemeine Einstellungen aus. Überprüfen Sie unter Plattformeinstellungen, ob der Wert für die Plattform auf 64 Bit oder 32 Bit eingestellt ist.

      4. Stellen Sie sicher, dass Sie die Version von SAP-Connector (NCo 3.1) für Microsoft .NET 3.1.3.0 kompiliert mit .NET Framework 4.6.2 installieren, die Ihrer Plattformkonfiguration entspricht.

  • Kopieren Sie die Assemblydateien (DLL) aus dem Standardinstallationsordner der Clientbibliothek gemäß Ihrem Szenario wie folgt an einen anderen Speicherort. Wenn Sie optional nur den verwalteten SAP-Connector verwenden, wählen Sie beim Installieren der SAP-NCo-Clientbibliothek die Option Registrierung des globalen Assemblycache aus. Der integrierte SAP-Connector unterstützt derzeit keine GAC-Registrierung.

    • Kopieren Sie für einen Verbrauchsworkflow, der in Azure Logic Apps mit mehreren Mandanten ausgeführt wird und Ihr lokales Datengateway verwendet, die folgenden Assemblydateien (DLL) in den Installationsordner des lokalen Datengateways, z. B. C:\Programme\Lokales Datengateway. Die Clientbibliothek SAP NCo 3.0 enthält die folgenden Assemblys:

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

      Überprüfen Sie, ob Sie die Assemblydateien in den Installationsordner des Datengateways kopiert haben. Andernfalls schlägt Ihre SAP-Verbindung möglicherweise mit der folgenden Fehlermeldung fehl: Überprüfen Sie Ihre Kontoinformationen und/oder Berechtigungen, und versuchen Sie es erneut. Sie können weitere Probleme mithilfe des .NET-Assemblybindungsprotokoll-Viewers beheben. Mit diesem Tool können Sie überprüfen, ob sich Ihre Assemblydateien am richtigen Speicherort befinden.

    • Kopieren Sie für Standardworkflows die folgenden Assemblydateien (.dll) an einen Speicherort, von dem Sie sie in Ihre Logik-App-Ressource im Azure-Portal oder in Ihr lokales Logik-App-Projekt in Visual Studio Code hochladen können. Die Clientbibliothek SAP NCo 3.1 enthält die folgenden Assemblys:

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

Zwischen der SAP-NCo-Clientbibliothek, dem .NET Framework, der .NET-Runtime und dem Datengateway bestehen die folgenden Beziehungen:

  • Sowohl der SAP-Adapter von Microsoft als auch der Gatewayhostdienst verwenden .NET Framework 4.7.2.

  • Der SAP .NET-Connector für .NET Framework 4.0 funktioniert mit Prozessen, die die .NET Runtime 4.0 bis 4.8 verwenden.

  • Der SAP .NET-Connector für .NET Framework 2.0 funktioniert mit Prozessen, die die .NET-Laufzeit 2.0 bis 3.5 verwenden. Er kann jedoch nicht mehr mit dem neuesten Gateway verwendet werden.

SNC-Voraussetzungen

Für Verbrauchsworkflows in Azure Logic Apps mit mehreren Mandanten, die das lokale Datengateway und optional SNC verwenden, müssen Sie auch die folgenden Einstellungen konfigurieren.

  • Die Version Ihrer SNC-Bibliothek und die zugehörigen Abhängigkeiten müssen mit Ihrer SAP-Umgebung kompatibel sein. Sie können das lokale Datengateway und die Datengatewayprotokolle auch verwenden, um etwaige Probleme mit der Bibliothekskompatibilität zu behandeln.

  • Stellen Sie sicher, dass Sie die folgenden Assemblydateien (DLL) aus der Clientbibliothek SAP NCo 3.0 in den Installationsordner des lokalen Datengateways kopiert haben, z. B. C:\Programme\Lokales Datengateway.

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • Für das Hilfsprogramm SAPGENPSE müssen Sie speziell sapgenpse.exeverwenden.

  • Wenn Sie eine Persönliche Sicherheitsumgebung (PSE) mit Ihrer Verbindung bereitstellen, müssen Sie die PSE und SECUDIR für Ihr lokales Datengateway nicht kopieren und einrichten.

  • Wenn Sie SNC über ein externes Sicherheitsprodukt wie sapseculib, Kerberos oder NTLM aktivieren, stellen Sie sicher, dass die SNC-Bibliothek auf demselben Computer wie Ihre Datengatewayinstallation vorhanden ist. Kopieren Sie für diese Aufgabe die Binärdateien der SNC-Bibliothek in denselben Ordner wie die Datengatewayinstallation auf Ihrem lokalen Computer, z. B. C:\Programme\Lokales Datengateway.

    Hinweis

    Legen Sie auf dem Computer mit der Datengatewayinstallation und der SNC-Bibliothek nicht die Umgebungsvariablen für SNC_LIB und SNC_LIB_64 fest. Anderenfalls haben diese Variablen Vorrang vor dem Wert der SNC-Bibliothek, der über den Connector übergeben wird.

  • Stellen Sie bei Verwendung von SNC mit einmaligem Anmelden (Single Sign-on, SSO) sicher, dass der Datengatewaydienst als Benutzender ausgeführt wird, der dem SAP-Benutzenden zugeordnet ist. Wählen Sie zum Ändern des Standardkontos für das Gateway-Dienstkonto die Option Konto ändern und geben Sie die Benutzeranmeldeinformationen ein.

    Screenshot der Seite

Weitere Informationen zum Aktivieren von SNC finden Sie unter Enable Secure Network Communications (SNC).

Voraussetzungen für die Azure Logic Apps-Umgebung

Für einen Verbrauchsworkflow in Azure Logic Apps mit mehreren Mandanten kann der verwaltete SAP-Connector über ein lokales Datengateway in SAP-Systeme integriert werden. Ein Beispiel: In Szenarien, in denen eine Nachricht von Ihrem Workflow an ein SAP-System gesendet wird, agiert das Datengateway als RFC-Client und leitet die von Ihrem Workflow erhaltenen Anforderungen an SAP weiter. In Szenarien, in denen Ihr Workflow eine Nachricht von SAP empfängt, fungiert das Datengateway wiederum als RFC-Server, der Anforderungen von SAP empfängt und an Ihren Workflow weiterleitet.

  1. Auf einem Hostcomputer oder einem virtuellen Computer, der sich in demselben virtuellen Netzwerk befindet wie das SAP-System, zu dem Sie eine Verbindung herstellen möchten, sollten Sie das lokale Datengateway herunterladen und es installieren.

    Das Gateway hilft Ihnen, sicher auf lokale Daten und Ressourcen zuzugreifen. Stellen Sie sicher, dass Sie eine unterstützte Version des Gateways verwenden. Führen Sie bei einem Problem mit dem Gateway ein Upgrade auf die neueste Version durch, die möglicherweise Updates zur Behebung des Problems enthält.

  2. Erstellen Sie eine Azure-Gatewayressource für Ihre lokale Datengatewayinstalllation im Azure-Portal.

  3. Laden Sie die neueste SAP-NCo-Clientbibliothek herunter, und installieren Sie sie auf demselben Computer, auf dem sich bereits Ihre lokale Datengatewayinstallation befindet.

  4. Konfigurieren Sie für den Hostcomputer mit ihrer lokalen Datengatewayinstallation die Netzwerkhostnamen und die Auflösung der Dienstnamen.

    • Wenn Sie planen, die Host- oder Dienstnamen für die Verbindung aus Azure Logic Apps zu verwenden, müssen Sie für jede SAP-Anwendung, jede Nachricht und jeden Gatewayserver mit ihren jeweiligen Diensten die Namensauflösung einrichten:

      • Richten Sie die Auflösung des Netzwerk-Hostnamens in der Datei %windir%\System32\drivers\etc\hosts oder in dem DNS-Server ein, der für den Hostcomputer Ihrer lokalen Datengatewayinstallation verfügbar ist.

      • Richten Sie die Auflösung des Dienstnamens in der Datei %windir%\System32\drivers\etc\services ein.

    • Wenn Sie nicht planen, Netzwerk-Hostnamen oder Dienstnamen für die Verbindung zu verwenden, können Sie stattdessen Host-IP-Adressen und Dienstportnummern verwenden.

    • Verfügen Sie noch nicht über einen DNS-Eintrag für Ihr SAP-System? Hier sehen Sie einen Beispieleintrag für die hosts-Datei:

      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
      

      Die folgende Liste zeigt einen Beispielsatz von Einträgen für die Dienstdateien:

      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
      

Aktivieren der Secure Network Communications (SNC)

Für einen Verbrauchsworkflow, der in Azure Logic Apps mit mehreren Mandanten ausgeführt wird, können Sie SNC für die Authentifizierung aktivieren. Dies gilt nur, wenn Sie das Datengateway verwenden. Bevor Sie beginnen, stellen Sie sicher, dass Sie alle erforderlichen Voraussetzungen und Voraussetzungen für SNC erfüllt haben.

Weitere Informationen zu SNC finden Sie unter Erste Schritte mit SAP SNC für RFC-Integrationen – SAP-Blog.

  1. Öffnen Sie im Azure-Portal Ihre Verbrauchslogik-App und deren Workflow im Workflow-Designer.

  2. Fügen Sie einen von SAP verwalteten Connectorvorgang hinzu, oder bearbeiten Sie die Verbindung für einen vorhandenen Vorgang.

  3. Geben Sie im Feld „Informationen zur SAP-Verbindung“ die erforderlichen Informationen an.

    Hinweis

    Für Authentifizierungstyp ist Basic derzeit die einzige verfügbare Option. Die Felder SAP-Benutzername und SAP-Kennwort sind optional. Wenn Sie keinen Benutzernamen und kein Kennwort angeben, verwendet der Connector zur Authentifizierung das Clientzertifikat, das in einem späteren Schritt bereitgestellt wird.

    Screenshot von SAP-Verbindungsparametern in Verbrauchsworkflows

  4. Um SNC zu aktivieren, wählen Sie im Feld „Informationen zur SAP-Verbindung“ die Option SNC verwenden aus und geben die erforderlichen Informationen an:

    Parameter Beschreibung
    SNC-Bibliothek Geben Sie einen der folgenden Wert ein:

    – Den Namen für Ihre SNC-Bibliothek, z. B. sapsnc.dll
    – Den relativen Pfad zum Speicherort der NCo-Installation, z. B. .\security\sapsnc.dll
    – Den absoluten Pfad zum Speicherort der NCo-Installation, z. B. c:\security\sapsnc.dll
    SNC-SSO Wählen Sie entweder Anmelden mit der SNC-Identität oder Anmelden mit dem auf RFC-Ebene angegebenen Benutzernamen/Kennwort aus.

    In der Regel wird die SNC-Identität verwendet, um die aufrufende Funktion zu authentifizieren. Sie können sich stattdessen mit Benutzernamen und Kennwort authentifizieren, aber dieser Parameterwert ist weiterhin verschlüsselt.
    SNC Mein Name Diesen Wert können Sie in den meisten Fällen weglassen. Die installierte SNC-Lösung kennt in der Regel den eigenen SNC-Namen. Wenn Ihre Lösung mehrere Identitäten unterstützt, müssen Sie möglicherweise die Identität angeben, die für dieses bestimmte Ziel oder diesen bestimmten Server verwendet werden soll.
    Name des SNC-Partners Geben Sie den Namen für den Back-End-SNC ein, z. B. p:CN=DV3, OU=LA, O=MS, C=US.
    SNC-Qualität des Schutzes Wählen Sie die Servicequalität aus, die für die SNC-Kommunikation dieses bestimmten Ziels oder Servers verwendet werden soll. Das Back-End-System definiert den Standardwert. Das für SNC verwendete Sicherheitsprodukt definiert den Maximalwert.
    SNC-Zertifikat Geben Sie den base64-codierten öffentlichen Schlüssel für das Zertifikat ein, mit dem Ihr Client für SAP identifiziert werden soll.

    Hinweis: Stellen Sie sicher, dass Sie diese Anleitung befolgen:

    - Schließen Sie weder die PEM-Kopfzeile noch die PEM-Fußzeile ein.

    – Geben Sie hier nicht den privaten Schlüssel für das Clientzertifikat ein. Ihre persönliche Sicherheitsumgebung (Personal Security Environment, PSE) muss den übereinstimmenden privaten Schlüssel für dieses Zertifikat enthalten und kann andere private Zertifikate enthalten. Weitere Informationen finden Sie im nächsten Parameter.
    PSE Geben Sie Ihre SNC Personal Security Environment (PSE) als Base64-codierte Binärdatei ein.

    – Ihre PSE muss den privaten Schlüssel für das Clientzertifikat enthalten, wobei der Fingerabdruck mit dem öffentlichen Schlüssel für das Clientzertifikat im SNC Certificate-Parameter übereinstimmt.

    – Auch wenn Ihre PSE mehrere Clientzertifikate enthalten kann, erstellen Sie stattdessen separate Arbeitsabläufe, um verschiedene Clientzertifikate zu verwenden.

    Screenshot: SAP-Verbindungsparametern mit aktiviertem SNC in einem Verbrauchsworkflow

  5. Wählen Sie Neu erstellen aus, um die Erstellung der Verbindung abzuschließen.

    Wenn die Parameter korrekt sind, wird die Verbindung erstellt. Sollte ein Problem mit den Parametern bestehen, zeigt das Dialogfeld für die Verbindungserstellung eine Fehlermeldung an. Sie können eine lokale Datengatewayinstallation und die lokalen Protokolle dieses Gateways nutzen, um Probleme mit Verbindungsparametern zu beheben.

Konvertieren einer binären PSE-Datei in das Base64-codierte Format

  1. Verwenden Sie zum Beispiel ein PowerShell-Skript:

    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. Speichern Sie das Skript als Datei pseConvert.ps1, und rufen Sie es dann auf, z. B:

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

    Wenn der Parameter für den Ausgabepfad nicht angegeben wird, wird die Ausgabe des Skripts an die Konsole Zeilenumbrüche enthalten. Entfernen Sie die Zeilenumbrüche der Base64-codierten Zeichenfolge für den Eingabeparameter der Verbindung.

Einrichten und Testen des Sendens von IDocs aus SAP an Ihren Workflow

Um IDocs von SAP an Ihren Logik-App-Workflow zu senden, führen Sie die folgenden Schritte aus, um Ihre SAP-Konfiguration mit Ihrem Logik-App-Workflow einzurichten und zu testen. Diese Schritte gelten nur für Tests, da Produktionsumgebungen eine andere Konfiguration erfordern.

Um IDocs von SAP an Ihren Workflow zu senden, müssen Sie die Mindestkonfiguration einrichten, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie ein RFC-Ziel.
  2. Erstellen Sie eine Advanced Business Application Programming (ABAP)-Verbindung.
  3. Erstellen Sie einen Empfängerport.
  4. Erstellen Sie einen Absenderport.
  5. Erstellen Sie einen logischen Systempartner.
  6. Erstellen Sie ein Partnerprofil.
  7. Testen des Sendens von Nachrichten.

Erstellen eines RFC-Ziels

Dieses Ziel identifiziert Ihren Logik-App-Workflow als Empfängerport.

  1. Öffnen Sie in SAP die Einstellungen Konfiguration von RFC-Verbindungen. Sie können den Transaktionscode (T-Code) sm59 mit dem Präfix /n verwenden.

  2. Wählen Sie TCP/IP-Verbindungen>Erstellen aus.

  3. Erstellen Sie ein neues RFC-Ziel mit den folgenden Einstellungen:

    1. Geben Sie bei RFC-Ziel einen Namen ein.

    2. Wählen Sie auf der Registerkarte Technische Einstellungen für Aktivierungstyp die Option Registriertes Serverprogramm aus.

    3. Geben Sie bei Programm-ID einen Wert ein. Auf Ihrem SAP-Server wird der Auslöser des Workflows mithilfe dieses Bezeichners registriert.

      Wichtig

      Die SAP-Programm-ID berücksichtigt die Groß-/Kleinschreibung. Stellen Sie sicher, dass Sie beim Konfigurieren Ihres Workflows und des SAP-Servers für Ihre Programm-ID stets dieselbe Groß-/Kleinschreibung verwenden. Andernfalls erhalten Sie möglicherweise die folgenden Fehler im tRFC-Monitor (T-Code SM58), wenn Sie versuchen, ein IDoc an SAP zu senden:

      • Funktion IDOC_INBOUND_ASYNCHRONOUS nicht gefunden
      • Nicht-ABAP-RFC-Client (Partnertyp) nicht unterstützt

      Weitere Informationen von SAP finden Sie in den folgenden Hinweisen:

    4. Wählen Sie auf der Registerkarte Unicode für Kommunikationstyp mit Zielsystem die Option Unicode aus.

      Hinweis

      SAP-.NET-Clientbibliotheken unterstützen nur Unicode-Zeichen. Wenn Sie beim Senden von IDocs aus SAP an Azure Logic Apps den Fehler Nicht-ABAP-RFC-Client (Partnerart) wird nicht unterstützt erhalten, überprüfen Sie, ob der Wert für den Kommunikationstyp mit Zielsystem auf Unicode festgelegt ist.

  4. Speichern Sie die Änderungen.

  5. Registrieren Sie die neue Programm-ID bei Azure Logic Apps, indem Sie einen Logik-App-Workflow erstellen, der mit dem von SAP verwalteten Trigger Beim Empfang einer Nachricht gestartet wird.

    Auf diese Weise registriert Azure Logic Apps die Programm-ID im SAP-Gateway, wenn Sie Ihren Workflow speichern.

  6. Überprüfen Sie den Registrierungsstatus im Triggerverlauf des Workflows, gegebenenfalls in den SAP-Adapterprotokollen des lokalen Datengateways und in den Ablaufverfolgungsprotokollen des SAP-Gateways.

    Im Feld des SAP-Gateway-Monitors (T-Code: SMGW) wird die neue Registrierung unter Angemeldete Clients als Registrierter Server angezeigt.

  7. Um die Verbindung zu testen, wählen Sie unter Ihrem neuen RFC-Ziel die Option Verbindungstest aus.

Erstellen einer ABAP-Verbindung

Dieses Ziel identifiziert Ihr SAP-System als Absenderport.

  1. Öffnen Sie in SAP die Einstellungen Konfiguration von RFC-Verbindungen. Sie können den Transaktionscode (T-Code) sm59 mit dem Präfix /n verwenden.

  2. Wählen Sie ABAP-Verbindungen>Erstellen aus.

  3. Geben Sie für RFC-Ziel den Bezeichner für Ihr SAP-Testsystem ein.

  4. Lassen Sie unter Technische Einstellungen den Zielhost leer, um eine lokale Verbindung mit dem SAP-System herzustellen.

  5. Speichern Sie die Änderungen.

  6. Um Ihre Verbindung zu testen, wählen Sie Verbindungstest aus.

Erstellen eines Sendeports

  1. Öffnen Sie in SAP die Einstellungen fürPorts In der IDoc-Verarbeitung. Sie können den Transaktionscode (T-Code) we21 mit dem Präfix /n verwenden.

  2. Wählen Sie Ports>Transaktions-RFC>Erstellen aus.

  3. Wählen Sie im daraufhin geöffneten Feld den eigenen Portnamen aus.

  4. Geben Sie für Ihren Testport einen Namen ein, der mit SAP beginnt. Speichern Sie die Änderungen.

    Alle Namen von Sendeports müssen mit den Buchstaben SAP beginnen, z. B. SAPTEST.

  5. Geben Sie in den Einstellungen für Ihren neuen Sendeport für RFC-Ziel den Bezeichner für Ihre ABAP-Verbindung ein.

  6. Speichern Sie die Änderungen.

Erstellen eines Empfangsports

  1. Öffnen Sie in SAP die Einstellungen fürPorts In der IDoc-Verarbeitung. Sie können den Transaktionscode (T-Code) we21 mit dem Präfix /n verwenden.

  2. Wählen Sie Ports>Transaktions-RFC>Erstellen aus.

  3. Wählen Sie im daraufhin geöffneten Feld den eigenen Portnamen aus. Geben Sie für Ihren Testport einen Namen ein. Speichern Sie die Änderungen.

  4. Geben Sie in den Einstellungen für Ihren neuen Empfangsport für RFC-Ziel den Bezeichner für Ihr RFC-Testziel ein.

  5. Speichern Sie die Änderungen.

Erstellen eines logischen Systempartners

  1. Öffnen Sie in SAP die Einstellungen zu Änderungsansicht „Logische Systeme“: Übersicht. Sie können den Transaktionscode (T-Code) bd54 verwenden.

  2. Akzeptieren Sie die folgende angezeigte Warnmeldung: Vorsicht: Die Tabelle ist clientübergreifend.

  3. Wählen Sie oberhalb der Liste, in der Ihre vorhandenen logischen Systeme angezeigt werden, Neue Einträge aus.

  4. Geben Sie für Ihr neues logisches System einen Log.System-Bezeichner und eine kurze Namen-Beschreibung ein. Speichern Sie die Änderungen.

  5. Wenn die Aufforderung für Workbench angezeigt wird, erstellen Sie eine neue Anforderung, indem Sie eine Beschreibung angeben, oder wenn Sie bereits eine Anforderung erstellt haben, überspringen Sie diesen Schritt.

  6. Nachdem Sie die Workbench-Anforderung erstellt haben, verknüpfen Sie diese Anforderung mit der Tabellenaktualisierungsanforderung. Um zu bestätigen, dass Ihre Tabelle aktualisiert wurde, speichern Sie Ihre Änderungen.

Erstellen von Partnerprofilen

Für Produktionsumgebungen müssen Sie die folgenden zwei Partnerprofile erstellen:

  • Ein Profil für den Absender, bei dem es sich um Ihre Organisation und Ihr SAP-System handelt.
  • Ein Profil für den Empfänger, bei dem es sich um Ihre Logik-App-Ressource und Ihren Workflow handelt.
  1. Öffnen Sie in SAP die Einstellungen für Partnerprofile . Sie können den Transaktionscode (T-Code) we20 mit dem Präfix /n verwenden.

  2. Wählen Sie unter Partnerprofile die Option Partnertyp-LS>Erstellen aus.

  3. Erstellen Sie ein neues Partnerprofil mit den folgenden Einstellungen:

    Einstellung Beschreibung
    Partner-Nr. Geben Sie den Bezeichner Ihres logischen Systempartners ein.
    Partn. type Geben Sie LS ein.
    Agent Geben Sie den Bezeichner für das SAP-Benutzerkonto ein, das verwendet werden soll, wenn Sie Programmbezeichner für Azure Logic Apps oder andere Nicht-SAP-Systeme registrieren.
  4. Speichern Sie die Änderungen.

    Wenn Sie den logischen Systempartner nicht erstellt haben, erhalten Sie die Fehlermeldung Geben Sie eine gültige Partnernummer ein.

  5. Wählen Sie in den Einstellungen Ihres Partnerprofils unter Ausgehende Parameter die Option Ausgehenden Parameter erstellen aus.

  6. Erstellen Sie einen neuen ausgehenden Parameter mit den folgenden Einstellungen:

  7. Speichern Sie die Änderungen.

Testen des Sendens von Nachrichten

  1. Öffnen Sie in SAP die Einstellungen für Testtool für die IDoc-Verarbeitung. Sie können den Transaktionscode (T-Code) we19 mit dem Präfix /n verwenden.

  2. Wählen Sie unter Vorlage für Test die Option Via Nachrichtentyp aus. Geben Sie Ihren Nachrichtentyp ein, z. B. CREMAS. Klicken Sie auf Erstellen.

  3. Bestätigen Sie die Meldung Welcher IDoc-Typ? , indem Sie Weiter auswählen.

  4. Wählen Sie den Konten EDIDC aus. Geben Sie die geeigneten Werte für Ihren Empfangs- und Sendeport ein. Wählen Sie Weiter.

  5. Wählen Sie Standardmäßige ausgehende Verarbeitung aus.

  6. Um die ausgehende IDoc-Verarbeitung zu starten, wählen Sie Weiter aus.

    Wenn das Tool die Verarbeitung beendet hat, wird die Meldung IDoc an SAP-System oder externes Programm gesendet angezeigt.

  7. Um eine Überprüfung auf Verarbeitungsfehler durchzuführen, verwenden Sie den Transaktionscode (T-Code) sm58 mit dem Präfix /n.

Erstellen von Workflows für gängige SAP-Szenarien

Die Anleitung zum Erstellen von Workflows für gängige SAP-Integrationsworkloads finden Sie in den folgenden Schritten:

Erstellen von Workflows für erweiterte SAP-Szenarien

Suchen nach erweiterten Fehlerprotokollen (nur verwalteter Connector)

Wenn Sie den von SAP verwalteten Connector verwenden, finden Sie vollständige Fehlermeldungen, indem Sie die erweiterten Protokolle Ihres SAP-Adapters überprüfen. Sie können auch eine erweiterte Protokolldatei für den SAP-Connector aktivieren.

  • Für lokale Datengatewayreleases ab April 2020 und früher sind Protokolle standardmäßig deaktiviert.

  • Für lokale Datengatewayreleases ab Juni 2020 und später können Sie Gatewayprotokolle in den App-Einstellungen aktivieren.

    • Der Standardprotokolliergrad ist Warnung.

    • Wenn Sie Zusätzliche Protokollierung in den Einstellungen für die Diagnose der lokalen Datengateway-App aktivieren, wird der Protokolliergrad auf Information erhöht.

    • Um den Protokolliergrad auf Ausführlich zu erhöhen, aktualisieren Sie die folgende Einstellung in Ihrer Konfigurationsdatei. Normalerweise befindet sich die Konfigurationsdatei unter C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

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

Einrichten der erweiterten SAP-Protokollierung im lokalen Datengateway (nur verwalteter Connector)

Wenn Sie ein lokales Datengateway für Azure Logic Apps verwenden, können Sie eine erweiterte Protokolldatei für den SAP-Connector konfigurieren. Sie können Ihr lokales Datengateway verwenden, um Ereignisse der Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW) in rotierende Protokolldateien umzuleiten, die in die ZIP-Protokollierungsdateien Ihres Gateways eingeschlossen werden.

Sie können alle Konfigurations- und Dienstprotokolle Ihres Gateways aus den Einstellungen der Gateway-App in eine ZIP-Datei exportieren.

Hinweis

Die erweiterte Protokollierung kann die Leistung Ihres Workflows beeinträchtigen, wenn sie immer aktiviert ist. Es ist eine bewährte Methode, erweiterte Protokolldateien zu deaktivieren, nachdem Sie mit der Analyse und Behebung eines Problems fertig sind.

Erfassen von ETW-Ereignissen

Als optionale erweiterte Protokollierungsaufgabe können Sie ETW-Ereignisse direkt erfassen und dann die Daten in Azure-Diagnose in Event Hubs nutzen oder Ihre Daten in Azure Monitor-Protokollen erfassen. Weitere Informationen finden Sie unter Bewährte Methoden für das Sammeln und Speichern von Daten.

Sie können PerfView verwenden, um mit den sich ergebenden ETL-Dateien zu arbeiten, oder Sie können ein eigenes Programm schreiben. In der folgenden exemplarischen Vorgehensweise wird PerfView verwendet:

  1. Wählen Sie im PerfView-Menü Erfassen>Sammeln aus, um die Ereignisse zu erfassen.

  2. Geben Sie im Parameter Zusätzlicher Anbieter*Microsoft-LobAdapter ein, um den SAP-Anbieter für die Erfassung von SAP-Adapterereignissen anzugeben. Wenn Sie diese Informationen nicht angeben, enthält Ihre Ablaufverfolgung nur allgemeine ETW-Ereignisse.

  3. Übernehmen Sie alle anderen Standardeinstellungen. Wenn Sie möchten, können Sie den Dateinamen oder den Speicherort im Parameter Datendatei ändern.

  4. Wählen Sie Sammlung starten aus, um Ihre Ablaufverfolgung zu beginnen.

  5. Nachdem Sie Ihr Problem reproduzieren oder genügend Analysedaten sammeln, wählen Sie "Sammlung beenden" aus.

  6. Um Ihre Daten mit einer anderen Partei zu teilen, z. B. den Azure-Supporttechnikern, komprimieren Sie die ETL-Datei.

  7. So zeigen Sie den Inhalt Ihrer Ablaufverfolgung an

    1. Wählen Sie in PerfView "Datei>öffnen " und dann die von Ihnen generierte ETL-Datei aus.

    2. In der PerfView-Randleiste wird der Abschnitt Ereignisse unter Ihrer ETL-Datei angezeigt.

    3. Filtern Sie unter Filter nach Microsoft-LobAdapter, um nur relevante Ereignisse und Gatewayprozesse anzuzeigen.

Testen Ihres Workflows

Je nachdem, ob Sie über einen Verbrauchsworkflow in Azure Logic Apps mit mehreren Mandanten oder einen Standardworkflow in Azure Logic Apps mit einem einzelnen Mandanten verfügen, führen Sie die entsprechenden Schritte aus:

  1. Wenn Ihre Logik-App-Ressource nicht aktiviert ist, wählen Sie im Menü der Logik-App die Option Übersicht aus. Wählen Sie auf der Symbolleiste Aktivieren aus.

  2. Wählen Sie auf der Symbolleiste des Designers die Option Ausführen>Ausführen aus, um Ihren Workflow manuell zu starten.

  3. Senden Sie eine Nachricht aus Ihrem SAP-System, um Ihren Logik-App-Workflow auszulösen.

  4. Kehren Sie zur Übersichtsseite Ihrer Logik-App zurück. Suchen Sie unter Verlauf der Ausführungen alle neuen Ausführungen für Ihren Workflow.

  5. Öffnen Sie die letzte Ausführung, die eine manuelle Ausführung anzeigt. Suchen und überprüfen Sie den Abschnitt „Triggerausgaben“.

Aktivieren der Protokollierung und Ablaufverfolgung der SAP-Clientbibliothek (NCo) (nur integrierter Connector)

Wenn Sie Probleme mit dieser Komponente untersuchen müssen, können Sie eine benutzerdefinierte, auf einer Textdatei basierende NCo-Ablaufverfolgung einrichten, die der SAP- oder Microsoft-Support möglicherweise von Ihnen anfordern wird. Standardmäßig ist diese Funktionalität deaktiviert, da sich das Aktivieren dieser Ablaufverfolgung negativ auf die Leistung auswirken und den Speicherplatz des Anwendungshosts schnell verbrauchen kann.

Sie können diese Ablaufverfolgungsfunktionalität auf Anwendungsebene steuern, indem Sie die folgenden Einstellungen hinzufügen:

  1. Öffnen Sie im Azure-Portal Ihre Ressource vom Typ „Logic App (Standard)“.

  2. Wählen Sie im Menü der Logik-App unter Einstellungen die Option Umgebungsvariablen aus, um die Anwendungseinstellungen zu überprüfen.

  3. Fügen Sie auf der Seite Umgebungsvariablen auf der Registerkarte Appeinstellungen die folgenden Anwendungseinstellungen hinzu:

    • SAP_RFC_TRACE_DIRECTORY: Das Verzeichnis, in dem die NCo-Ablaufverfolgungsdateien gespeichert werden sollen, z. B. C:\home\LogFiles\NCo.

    • SAP_RFC_TRACE_LEVEL: Die NCo-Ablaufverfolgungsebene mit Level4 als vorgeschlagenen Wert für die typische ausführliche Protokollierung. Der SAP- oder Microsoft-Support verlangt möglicherweise, dass Sie eine andere Ablaufverfolgungsebene festlegen.

      Hinweis

      Für Standardlogik-App-Workflows, die die Laufzeitversion 1.69.0 oder höher verwenden, können Sie die Protokollierung für mehrere Ablaufverfolgungsebenen aktivieren, indem Sie jede Ebene durch ein Komma (,) trennen.

      Führen Sie die folgenden Schritte aus, um die Laufzeitversion Ihres Workflows zu finden:

      1. Wählen Sie im Azure-Portal in Ihrem Workflowmenü die Option Übersicht aus.
      2. Suchen Sie im Abschnitt Essentials die Eigenschaft Laufzeitversion.
    • SAP_CPIC_TRACE_LEVEL: Die Trace-Stufe der Common Programming Interface for Communication (CPI-C) mit Verbose als vorgeschlagenem Wert für die typische ausführliche Protokollierung. Der SAP- oder Microsoft-Support verlangt möglicherweise, dass Sie eine andere Ablaufverfolgungsebene festlegen.

    Weitere Informationen zum Hinzufügen von Anwendungseinstellungen finden Sie unter Bearbeiten von Host- und App-Einstellungen für Standard-Logik-App-Workflows.

  4. Speichern Sie die Änderungen. In diesem Schritt wird die Anwendung neu gestartet.

Verfügbare Ablaufverfolgungsebenen

NCo Ablaufverfolgungsebenen

Wert Beschreibung
Ebene 1 Die Ebene für die Ablaufverfolgung von Remote-Funktionsaufrufen.
Ebene 2 Die Ebene für die Ablaufverfolgung von Remote-Funktionsaufrufen und öffentlichen API-Methodenaufrufen.
Stufe3 Die Ebene für die Ablaufverfolgung von Remote-Funktionsaufrufen, öffentlichen API-Methodenaufrufen und internen API-Methodenaufrufen.
Ebene 4 Die Ebene für die Ablaufverfolgung von Remote-Funktionsaufrufen, öffentlichen API-Methodenaufrufen, internen API-Methodenaufrufen, Hex-Speicherabbildern für das RFC-Protokoll und netzwerkbezogene Informationen.
Sperren Schreibt Daten in die Ablaufverfolgungsdateien, die anzeigen, wenn Threads Sperren für Objekte anfordern, abrufen und freigeben.
Metadaten Verfolgt die Metadaten nach, die an einem Remote-Funktionsaufruf für jeden Aufruf beteiligt sind.
Keine Die Ebene zum Unterdrücken der gesamten Ablaufverfolgungsausgabe.
Parameterdaten Verfolgt die während jedes Remote-Funktionsaufrufs gesendeten und empfangenen Containerdaten nach.
Leistung Schreibt Daten in die Ablaufverfolgungsdateien, die bei der Analyse von Leistungsproblemen helfen können.
PublicAPI Verfolgt die meisten Methoden der öffentlichen API nach, mit Ausnahme von Gettern, Settern oder verwandten Methoden.
InternalAPI Verfolgt die meisten Methoden der internen API nach, mit Ausnahme von Gettern, Settern oder verwandten Methoden.
RemoteFunctionCall Verfolgt Remote-Funktionsaufrufe nach.
RfcData Verfolgt die Bytes nach, die während jedes Remote-Funktionsaufrufs gesendet und empfangen werden.
Sitzungsanbieter Verfolgt alle Methoden der derzeit verwendeten Implementierung von ISessionProvider nach.
SetValue (Setzwert) Schreibt Informationen in die Ablaufverfolgungsdateien über Werte, die für Parameter von Funktionen oder Feldern von Strukturen oder Tabellen festgelegt sind.

CPIC Ablaufverfolgungsebenen

Wert Beschreibung
Aus Keine Protokollierung
Grundlegend Basic Protokollierung
Ausführlich Ausführliche Protokollierung
VerboseWithData Ausführliche Protokollierung mit allen Serverantwortabbildern

Anzeigen der Ablaufverfolgung

  1. Wählen Sie im Ressourcenmenü der Standard-Logik-App unter Entwicklungstools die Option Erweiterte Tools>Go aus.

  2. Wählen Sie auf der Symbolleiste Kudu die Option Debugging-Konsole>CMD aus.

  3. Browsen Sie zum Ordner für die Anwendungseinstellung mit dem Namen $SAP_RFC_TRACE_DIRECTORY.

    Ein neuer Ordner mit dem Namen NCo oder dem von Ihnen verwendeten Ordnernamen wird für den zuvor von Ihnen festgelegten Anwendungseinstellungswert C:\home\LogFiles\NCo angezeigt.

  4. Öffnen Sie den Ordner $SAP_RFC_TRACE_DIRECTORY, der die folgenden Dateien enthält:

    • NCo-Ablaufverfolgungsprotokolle: Eine Datei mit dem Namen dev_nco_rfc.log, eine oder mehrere Dateien mit dem Namen nco_rfc_NNNN.log und eine oder mehrere Dateien mit dem Namen nco_rfc_NNNN.trc, Dateien mit dem Threadbezeichner NNNN.

    • CPIC-Ablaufverfolgungsprotokolle: Eine oder mehrere Dateien mit dem Namen nco_cpic_NNNN.trc, Dateien mit dem Threadbezeichner NNNN.

  5. Um den Inhalt in einer Protokoll- oder Ablaufverfolgungsdatei anzuzeigen, wählen Sie die Schaltfläche Bearbeiten neben einer Datei aus.

    Hinweis

    Wenn Sie eine aktuell geöffnete oder vom Logik-App-Workflow verwendete Protokoll- oder Ablaufverfolgungsdatei herunterladen, kann der Download zu einer leeren Datei führen.

Aktivieren der Ablaufverfolgung der SAP Common Crypto Library (CCL) (nur integrierter Connector)

Wenn Sie Probleme mit der Kryptografiebibliothek untersuchen müssen, während Sie die SNC-Authentifizierung verwenden, können Sie die benutzerdefinierte textdateibasierte CCL-Ablaufverfolgung (Common Crypto Library) einrichten. Sie können die CCL-Protokolle verwenden, um SNC-Authentifizierungsprobleme zu beheben, oder sie bei Bedarf mit microsoft- oder SAP-Support teilen. Standardmäßig ist diese Funktionalität deaktiviert, da sich das Aktivieren dieser Ablaufverfolgung negativ auf die Leistung auswirken und den Speicherplatz des Anwendungshosts schnell verbrauchen kann.

Sie können diese Ablaufverfolgungsfunktionalität auf Anwendungsebene steuern, indem Sie die folgenden Einstellungen hinzufügen:

  1. Öffnen Sie im Azure-Portal Ihre Ressource vom Typ „Logic App (Standard)“.

  2. Wählen Sie im Ressourcenmenü der Standard-Logik-App unter Entwicklungstools die Option Erweiterte Tools>Go aus.

  3. Wählen Sie auf der Symbolleiste Kudu die Option Debugging-Konsole>CMD aus.

  4. Navigieren Sie zu einem Speicherort unter C:\home\site\wwwroot, und erstellen Sie eine Textdatei, z. B. CCLPROFILE.txt.

    Weitere Informationen zu den Protokollierungsparametern finden Sie im SAP KB-Artikel 3192871 – Überprüfen der CommonCryptoLib-Versionsinformationen im ABAP-System. Im Folgenden sehen Sie ein Beispiel für eine Ablaufverfolgungskonfiguration:

    ccl/trace/directory=C:\home\LogFiles\CCLLOGS
    ccl/trace/level=4
    ccl/trace/rotatefilesize=10000000
    ccl/trace/rotatefilenumber=10
    
  5. Wählen Sie im Menü der Logik-App unter Einstellungen die Option Umgebungsvariablen aus, um die Anwendungseinstellungen zu überprüfen.

  6. Fügen Sie auf der Seite Umgebungsvariablen auf der Registerkarte App-Einstellungen die folgenden Anwendungseinstellung hinzu:

    CCL_PROFILE: Das Verzeichnis, in dem CCLPROFILE.txt erstellt wurde, z. B. C:\home\site\wwwroot\CCLPROFILE.txt.

  7. Speichern Sie die Änderungen. In diesem Schritt wird die Anwendung neu gestartet.

Anzeigen der Ablaufverfolgung

  1. Wählen Sie im Ressourcenmenü der Standard-Logik-App unter Entwicklungstools die Option Erweiterte Tools>Go aus.

  2. Wählen Sie auf der Symbolleiste Kudu die Option Debugging-Konsole>CMD aus.

  3. Navigieren Sie zum Ordner für den Parameter $ccl/trace/directory, der aus der CCLPROFILE.txt-Datei stammt.

    In der Regel lauten die Namen der Ablaufverfolgungsdateien sec-Microsoft.Azure.Work-$processId.trc und sec-sapgenpse.exe-$processId.trc.

    Ihr Logik-App-Workflow führt die SNC-Authentifizierung in einem zweistufigen Prozess durch:

    1. Ihr Logik-App-Workflow ruft sapgenpse.exe auf, um eine Datei cred_v2 aus der PSE-Datei zu generieren.

      Die Ablaufverfolgungen im Zusammenhang mit diesem Schritt finden Sie in einer Datei namens sec-sapgenpse.exe-$processId.trc.

    2. Der Logik-App-Workflow authentifiziert den Zugriff auf Ihren SAP-Server, indem er die generierte Datei cred_v2 nutzt, wobei die SAP-Clientbibliothek die Common Crypto Library aufruft.

      Die Ablaufverfolgungen im Zusammenhang mit diesem Schritt finden Sie in einer Datei namens sec-Microsoft.Azure.Work-$processId.trc.

Senden von SAP-Telemetriedaten für lokales Datengateway an Azure Application Insights

Seit dem Update vom August 2021 für das lokale Datengateway können SAP-Connectorvorgänge Telemetriedaten aus der SAP-NCo-Clientbibliothek und Ablaufverfolgungen vom Microsoft-SAP-Adapter an Application Insights senden. Dieses Feature ist eine Funktion in Azure Monitor. Die Telemetrie umfasst in erster Linie die folgenden Daten:

  • Metriken und Ablaufverfolgungen basierend auf SAP-NCo-Metriken und -Monitoren.
  • Ablaufverfolgungen vom Microsoft-SAP-Adapter

Metriken und Ablaufverfolgungen aus der SAP-NCo-Clientbibliothek

SAP NCo-basierte Metriken sind numerische Werte, die je nach Nutzung und Verfügbarkeit von Ressourcen im lokalen Datengateway über einen bestimmten Zeitraum variieren können. Sie können diese Metriken verwenden, um die Systemintegrität besser zu verstehen und Warnungen zu Folgendem zu erstellen:

  • Abnahme der Systemgesundheit
  • Ungewöhnliche Ereignisse
  • Schwere Systemlast

Diese Informationen werden an die Application Insights-Tabelle namens customMetrics gesendet. Standardmäßig werden Metriken in 30-Sekunden-Intervallen gesendet.

SAP NCo-basierte Ablaufverfolgungen enthalten Textinformationen, die mit Metriken verwendet werden. Diese Informationen werden an die Application Insights-Tabelle namens traces gesendet. Standardmäßig werden Ablaufverfolgungen in 10-Minuten-Intervallen gesendet.

SAP-NCo-Metriken und -Ablaufverfolgungen basieren auf SAP-NCo-Metriken, insbesondere auf den folgenden NCo-Klassen:

  • RfcDestinationMonitor
  • RfcConnectionMonitor
  • RfcServerMonitor
  • RfcRepositoryMonitor

Weitere Informationen zu den Metriken, die jede Klasse bereitstellt, finden Sie in der SAP NCo-Dokumentation.

Einrichten der SAP-Telemetrie für Application Insights

Bevor Sie SAP-Telemetrie für Ihre Gatewayinstallation an Application Insights senden können, müssen Sie Ihre Application Insights-Ressource erstellen und einrichten. Weitere Informationen finden Sie in der folgenden Dokumentation:

Führen Sie die folgenden Schritte aus, um das Senden von SAP-Telemetriedaten an Application Insights zu aktivieren:

  1. Laden Sie das NuGet-Paket für Microsoft.ApplicationInsights.EventSourceListener.dll von diesem Speicherort herunter: https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.

  2. Fügen Sie die heruntergeladene Datei dem Installationsverzeichnis Ihres lokalen Datengateways hinzu, z. B. C:\Programme\On-Premises Data Gateway.

  3. Überprüfen Sie in Ihrem lokalen Datengateway-Installationsverzeichnis, ob die Datei Microsoft.ApplicationInsights.dll die gleiche Versionsnummer hat wie die Microsoft.ApplicationInsights.EventSourceListener.dll-Datei, die Sie hinzugefügt haben. Das Gateway verwendet derzeit Version 2.14.0.

  4. Fügen Sie in der Datei ApplicationInsights.config Ihren Application Insights Instrumentierungsschlüssel hinzu, indem Sie die Auskommentierung der Zeile mit dem Element <InstrumentationKey></InstrumentationKey> aufheben. Ersetzen Sie den Platzhalter your-Application-Insights-instrumentation-key durch Ihren Schlüssel, z. B.:

    <?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. In der Datei ApplicationInsights.config können Sie den erforderlichen Level-Wert für Ablaufverfolgungen für Ihre SAP-Connectorvorgänge gemäß Ihren Anforderungen ändern, z. B.:

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

    Weitere Informationen finden Sie in der folgenden Dokumentation:

  6. Starten Sie den lokalen Datengatewaydienst neu, nachdem Sie die Änderungen angewendet haben.

Überprüfen von Metriken in Application Insights

Wenn Ihre SAP-Vorgänge in Ihrem Logik-App-Workflow ausgeführt werden, können Sie die Telemetriedaten überprüfen, die an Application Insights gesendet wurden.

  1. Öffnen Sie die Application Insights-Ressource im Azure-Portal.

  2. Wählen Sie im Ressourcenmenü unter Überwachung die Option Protokolle aus.

    Der folgende Screenshot zeigt das Azure-Portal, in dem die Ressource "Application Insights" die Seite "Protokolle " geöffnet hat:

    Screenshot: Azure-Portal mit Application Insights-Instanz, in der die Seite „Protokolle“ zum Erstellen von Abfragen geöffnet ist

  3. Auf der Seite "Protokolle" können Sie basierend auf Ihren spezifischen Anforderungen eine Abfrage erstellen, die die Kusto Query Language (KQL) verwendet.

    Sie können ein Abfragemuster verwenden, das der folgenden Beispielabfrage ähnelt:

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. Nachdem Sie die Abfrage ausgeführt haben, überprüfen Sie die Ergebnisse.

    Der folgende Screenshot zeigt die Metrikergebnistabelle der Beispielabfrage:

    Screenshot: Application Insights mit der Metrik-Ergebnistabelle.

    Kolumne Beschreibung
    MaxUsedCount "Die maximale Anzahl von Clientverbindungen, die gleichzeitig vom überwachten Ziel verwendet wurden." wie in der SAP NCo-Dokumentation beschrieben. An diesem Wert können Sie die Anzahl gleichzeitig geöffneter Verbindungen ablesen.
    valueCount Zeigt 2 für jeden Lesevorgang an, da Metriken in 30-Sekunden-Intervallen generiert werden. Application Insights aggregiert diese Metriken im Minutentakt.
    DestinationName Enthält eine Zeichenfolge, bei der es sich um einen internen Namen des Microsoft SAP-Adapters handelt.

    Um dieses RFC-Ziel (Remote Function Call) besser zu verstehen, verwenden Sie diesen Wert mit traces, z. B.:

    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
    

Sie können auch Metrikdiagramme oder Warnungen erstellen, indem Sie diese Funktionen in Application Insights verwenden, z. B.:

Screenshot: Application Insights mit den Ergebnissen im Diagrammformat.

Ablaufverfolgungen vom Microsoft-SAP-Adapter

Sie können Ablaufverfolgungen, die vom Microsoft-SAP-Adapter gesendet werden, verwenden, um Nachanalysen von Problemen durchzuführen und interne Systemfehler zu finden, die möglicherweise bei SAP-Connectorvorgängen auftreten. In diesem Ablaufverfolgungen ist message auf "n\a" festgelegt, da sie aus einem früheren Ereignisquellframework stammen, das vor Application Insights existierte, z. B.:

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"

Der folgende Screenshot zeigt die Tabelle mit den Ablaufverfolgungsergebnisse der Beispielabfrage:

Screenshot: Application Insights mit der Tabelle mit Ablaufverfolgungsergebnissen