Delen via


Werkstromen maken voor algemene SAP-integratiescenario's in Azure Logic Apps

Van toepassing op: Azure Logic Apps (Verbruik + Standard)

Deze handleiding laat zien hoe u voorbeeldwerkstromen voor logische apps maakt voor enkele veelvoorkomende SAP-integratiescenario's met behulp van Azure Logic Apps en de SAP-connector.

Zowel de werkstromen voor de logische app Standard als het verbruik bieden de door SAP beheerde connector die wordt gehost en uitgevoerd in multitenant Azure. Standaardwerkstromen bieden ook de ingebouwde SAP-serviceproviderconnector die wordt gehost en uitgevoerd in Azure Logic Apps met één tenant. Zie de technische naslaginformatie voor connectoren voor meer informatie.

Vereisten

  • Installeer of gebruik een hulpprogramma waarmee HTTP-aanvragen kunnen worden verzonden om uw oplossing te testen, bijvoorbeeld:

    Let op

    Voor scenario's waarin u gevoelige gegevens hebt, zoals referenties, geheimen, toegangstokens, API-sleutels en andere vergelijkbare informatie, moet u een hulpprogramma gebruiken waarmee uw gegevens worden beveiligd met de benodigde beveiligingsfuncties, offline of lokaal werken, uw gegevens niet worden gesynchroniseerd met de cloud en u zich niet hoeft aan te melden bij een onlineaccount. Op deze manier vermindert u het risico dat gevoelige gegevens openbaar worden gemaakt voor het publiek.

Berichten ontvangen van SAP

Het volgende voorbeeld van een werkstroom voor logische apps wordt geactiveerd wanneer de SAP-trigger van de werkstroom een bericht van een SAP-server ontvangt.

Een SAP-trigger toevoegen

Volg de bijbehorende stappen op basis van of u een werkstroom Verbruik hebt in multitenant Azure Logic Apps of een Standaardwerkstroom in Azure Logic Apps met één tenant:

  1. Open in Azure Portal uw logische app Verbruik en een lege werkstroom in de ontwerpfunctie.

  2. Volg deze algemene stappen in de ontwerpfunctie om de door SAP beheerde connectortrigger toe te voegen met de naam Wanneer een bericht wordt ontvangen.

  3. Als u hierom wordt gevraagd, geeft u de volgende verbindingsgegevens op voor uw on-premises SAP-server. Selecteer Maken als u klaar bent. Ga anders verder met de volgende stap om uw SAP-trigger in te stellen.

    Parameter Vereist Beschrijving
    Verbindingsnaam Ja Geef een naam op voor de verbinding.
    Gegevensgateway Ja 1. Selecteer voor Abonnement het Azure-abonnement voor de gegevensgatewayresource die u in Azure Portal hebt gemaakt voor de installatie van uw gegevensgateway.

    2. Selecteer uw gegevensgatewayresource in Azure voor Verbindingsgateway.
    Client Ja De SAP-client-id die moet worden gebruikt om verbinding te maken met uw SAP-server
    Verificatietype Ja Het verificatietype dat moet worden gebruikt voor uw verbinding, moet Basic (gebruikersnaam en wachtwoord) zijn. Zie Secure Network Communications (SNC) inschakelen om een SNC-verbinding te maken.
    SAP-gebruikersnaam Ja De gebruikersnaam voor uw SAP-server
    SAP-wachtwoord Ja Het wachtwoord voor uw SAP-server
    Aanmeldingstype Ja Selecteer toepassingsserver of groep (berichtserver) en configureer vervolgens de bijbehorende vereiste parameters, ook al worden ze optioneel weergegeven:

    Toepassingsserver:
    - AS-host: de hostnaam voor uw SAP-toepassingsserver
    - AS-service: de servicenaam of het poortnummer voor uw SAP-toepassingsserver
    - AS-systeemnummer: het systeemnummer van uw SAP-server, dat varieert van 00 tot 99

    Groep:
    - MS Server-host: de hostnaam voor uw SAP-berichtserver
    - MS-servicenaam of poortnummer: de servicenaam of het poortnummer voor uw SAP-berichtserver
    - MS-systeem-id: de systeem-id voor uw SAP-server
    - MS-aanmeldingsgroep: de aanmeldingsgroep voor uw SAP-server. Op uw SAP-server kunt u de waarde voor de aanmeldingsgroep vinden of bewerken door het dialoogvenster CCMS: Aanmeldingsgroepen (T-Code SMLG) onderhouden te openen. Raadpleeg SAP Note 26317 - Instellen voor aanmeldingsgroep voor automatische taakverdeling voor meer informatie.
    Veilig typen Nee Deze optie is beschikbaar voor compatibiliteit met eerdere versies en controleert alleen de lengte van de tekenreeks. Standaard wordt sterk typen gebruikt om te controleren op ongeldige waarden door XML-validatie uit te voeren op basis van het schema. Dit gedrag kan u helpen bij het detecteren van problemen eerder. Meer informatie over de instelling Veilig typen.
    SNC gebruiken Nee Zie Secure Network Communications (SNC) inschakelen om een SNC-verbinding te maken.

Zie Aan de slag met SAP SNC voor RFC-integraties - SAP-blog voor meer informatie over SNC.

Zie Standaardverbindingsgegevens voor andere optionele beschikbare verbindingsparameters.

Nadat Azure Logic Apps uw verbinding heeft ingesteld en getest, wordt het informatievak voor triggers weergegeven. Zie Problemen met verbindingen oplossen voor meer informatie over eventuele verbindingsproblemen.

  1. Geef op basis van uw SAP-serverconfiguratie en -scenario de benodigde parameterwaarden op voor de trigger Wanneer een bericht wordt ontvangen en voeg eventuele andere beschikbare triggerparameters toe die u in uw scenario wilt gebruiken.

    Notitie

    Deze SAP-trigger is een webhook-trigger, geen polling-trigger en bevat geen opties voor het opgeven van een pollingschema. Wanneer u bijvoorbeeld de beheerde SAP-connector gebruikt met de on-premises gegevensgateway, wordt de trigger alleen aangeroepen vanuit de gegevensgateway wanneer een bericht binnenkomt, zodat er geen polling nodig is.

    Parameter Vereist Beschrijving
    GatewayHost Ja De registratiegatewayhost voor de SAP RFC-server
    GatewayService Ja De registratiegatewayservice voor de SAP RFC-server
    ProgramId Ja De programma-id van de registratiegateway voor de SAP RFC-server.

    Opmerking: deze waarde is hoofdlettergevoelig. Zorg ervoor dat u consistent dezelfde case-indeling gebruikt voor de waarde van de programma-id wanneer u uw werkstroom voor logische apps en SAP-server configureert. Als u een IDoc naar SAP probeert te verzenden, kan de tRFC Monitor (T-Code SM58) de volgende fouten weergeven (koppelingen vereisen SAP-aanmelding):

    - Functie IDOC_INBOUND_ASYNCHRONOUS niet gevonden (2399329)
    - Niet-ABAP RFC-client (partnertype) wordt niet ondersteund (353597)
    DegreeOfParallelism Nee Het aantal aanroepen dat parallel moet worden verwerkt. Als u deze parameter wilt toevoegen en de waarde wilt wijzigen, selecteert u DegreeOfParallelism in de lijst Nieuwe parameter toevoegen en voert u de nieuwe waarde in.
    SapActions Nee Filter de berichten die u van uw SAP-server ontvangt op basis van een lijst met SAP-acties. Als u deze parameter wilt toevoegen, selecteert u SapActions in de lijst Nieuwe parameter toevoegen. Gebruik in de nieuwe sectie SapActions voor de parameter SapActions - 1 de bestandskiezer om een SAP-actie te selecteren of handmatig een actie op te geven. Zie Berichtschema's voor IDoc-bewerkingen voor meer informatie over de SAP-actie.
    IDoc-indeling Nee De indeling die moet worden gebruikt voor het ontvangen van IDocs. Als u deze parameter wilt toevoegen, selecteert u in de lijst Nieuwe parameters toevoegen de IDoc-indeling.

    - Als u IDocs als SAP plain XML wilt ontvangen, selecteert u SapPlainXml in de lijst IDoc-indeling.

    - Als u IDocs als een plat bestand wilt ontvangen, selecteert u FlatFile in de lijst IDoc-indeling.

    - Opmerking: Als u ook de actie Plat bestand decoderen in uw werkstroom gebruikt, moet u in het schema van het platte bestand de eigenschap early_terminate_optional_fields gebruiken en de waarde instellen op waar. Deze vereiste is nodig omdat de IDoc-gegevensrecord van het platte bestand dat door SAP wordt verzonden op de benoemde tRFC-aanroep IDOC_INBOUND_ASYNCHRONOUS , niet is opgevuld met de volledige lengte van het SDATA-veld. Azure Logic Apps biedt de oorspronkelijke IDoc-gegevens van het platte bestand zonder opvulling zoals ontvangen van SAP. Wanneer u deze SAP-trigger combineert met de actie Plat bestand decoderen, moet het schema dat aan de actie is opgegeven, overeenkomen.
    IDOCS ontvangen met niet-uitgebrachte segmenten Nee Ontvang IDocs met of zonder niet-uitgebrachte segmenten. Als u deze parameter wilt toevoegen en de waarde wilt wijzigen, selecteert u Ontvangen IDOCS met niet-uitgebrachte segmenten in de lijst Nieuwe parameters toevoegen en selecteert u Ja of Nee.
    SncPartnerNames Nee De lijst met SNC-partners die gemachtigd zijn om de trigger aan te roepen op het niveau van de SAP-clientbibliotheek. Alleen de vermelde partners zijn geautoriseerd door de SNC-verbinding van de SAP-server. Als u deze parameter wilt toevoegen, selecteert u in de lijst Nieuwe parameter toevoegen de optie SncPartnerNames. Zorg ervoor dat u elke naam invoert, gescheiden door een verticale balk (|).

    In het volgende voorbeeld ziet u een in feite geconfigureerde door SAP beheerde trigger in een werkstroom verbruik:

    Schermopname van de in feite geconfigureerde trigger voor een door SAP beheerde connector in de werkstroom Verbruik.

    In het volgende voorbeeld ziet u een door SAP beheerde trigger waarin u berichten kunt filteren door SAP-acties te selecteren:

    Schermopname van het selecteren van een SAP-actie om berichten in een werkstroom Verbruik te filteren.

    Of door handmatig een actie op te geven:

    Schermopname van het handmatig invoeren van de SAP-actie voor het filteren van berichten in een werkstroom Verbruik.

    In het volgende voorbeeld ziet u hoe de actie wordt weergegeven wanneer u de trigger instelt om meer dan één bericht te ontvangen:

    Schermopname van een voorbeeldtrigger die meerdere berichten ontvangt in een werkstroom Verbruik.

  2. Sla uw werkstroom op zodat u berichten van uw SAP-server kunt ontvangen. Selecteer in de werkbalk van de ontwerper Opslaan.

    Uw werkstroom is nu klaar om berichten van uw SAP-server te ontvangen.

  3. Nadat de trigger is geactiveerd en uw werkstroom wordt uitgevoerd, controleert u de triggergeschiedenis van de werkstroom om te bevestigen dat de triggerregistratie is geslaagd.

IDoc-pakketten ontvangen van SAP

Voor het ontvangen van IDoc-pakketten, die batches of groepen IDocs zijn, heeft de SAP-trigger geen extra configuratie nodig. Als u echter elk item in een IDoc-pakket wilt verwerken nadat de trigger het pakket heeft ontvangen, moet u nog enkele stappen implementeren om het pakket op te splitsen in afzonderlijke IDocs door SAP in te stellen om IDocs in pakketten te verzenden.

In de volgende voorbeeldwerkstroom ziet u hoe u afzonderlijke IDocs uit een pakket extraheert met behulp van de xpath() functie:

  1. Voordat u begint, hebt u een werkstroom voor de logische app Verbruik of Standard nodig met een SAP-trigger. Als uw werkstroom nog niet met deze trigger begint, volgt u de vorige stappen in deze handleiding om de SAP-trigger toe te voegen die berichten aan uw werkstroom kan ontvangen.

  2. Als u onmiddellijk wilt reageren op uw SAP-server met de status van de SAP-aanvraag, voegt u de volgende antwoordactie toe op basis van of u een door SAP beheerde trigger of een ingebouwde SAP-trigger gebruikt:

    • Door SAP beheerde trigger: Voeg voor deze trigger een antwoordactie toe aan uw werkstroom.

      Gebruik in de actie Antwoord een van de volgende statuscodes (statusCode):

      Statuscode Beschrijving
      202 Geaccepteerd De aanvraag is geaccepteerd voor verwerking, maar de verwerking is nog niet voltooid.
      204 Geen inhoud De server heeft de aanvraag voltooid en er is geen aanvullende inhoud die moet worden verzonden in de hoofdtekst van de nettolading van het antwoord.
      200 OK Deze statuscode bevat altijd een nettolading, zelfs als de server een nettoladingtekst van nul lengte genereert.
    • Ingebouwde SAP-trigger: Voor deze trigger voegt u de actie Reageren op SAP-server toe aan uw werkstroom.

    Notitie

    Als best practice voegt u de reactieactie direct na de trigger toe om het communicatiekanaal met uw SAP-server vrij te maken.

  3. Haal de hoofdnaamruimte op uit de XML-IDoc die uw werkstroom ontvangt van SAP.

    1. Als u deze naamruimte wilt extraheren uit het XML-document en de naamruimte wilt opslaan in een lokale tekenreeksvariabele, voegt u de actie Variabele initialiseren toe.

    2. Wijzig de naam van de actie in Naamruimte ophalen voor hoofdknooppunt in ontvangen IDoc.

    3. Geef een naam op voor de variabele en stel het type in op Tekenreeks.

    4. Open in de parameter Waarde van de actie de optie in het invoervak, open de expressie of functie-editor en maak de volgende expressie met behulp van de xpath() functie:

      xpath(xml(triggerBody()?['Content']), 'namespace-uri(/*)')

      Werkstroom verbruik

      Schermopname van de expressie voor het ophalen van de naamruimte van het hoofdknooppunt van ontvangen IDoc voor een verbruikswerkstroom.

      Standaardwerkstroom

      Schermopname van de expressie voor het ophalen van de naamruimte van het hoofdknooppunt van ontvangen IDoc voor een Standaardwerkstroom.

      Wanneer u klaar bent, wordt de expressie omgezet en wordt deze nu weergegeven als de volgende indeling:

      Schermopname van de opgeloste expressie die de naamruimte van het hoofdknooppunt van ontvangen IDoc ophaalt.

  4. Als u een afzonderlijke IDoc wilt extraheren door de IDoc-verzameling op te slaan in een lokale matrixvariabele, voert u de volgende stappen uit:

    1. Voeg nog een initialisatievariabeleactie toe.

    2. Wijzig de naam van de titel van de actie in Matrix ophalen met IDoc-gegevenselementen.

    3. Geef een naam op voor de variabele en stel het type in op Matrix.

      De matrixvariabele maakt elke IDoc beschikbaar voor uw werkstroom om afzonderlijk te verwerken door de verzameling te inventariseren.

    4. Selecteer in de parameter Waarde van de actie in het invoervak, open de expressie of functie-editor en maak de volgende xpath() expressie:

      xpath(xml(triggerBody()?['Content']), '/*[local-name()="Receive"]/*[local-name()="idocData"]')

      Wanneer u klaar bent, wordt de expressie omgezet en wordt deze nu weergegeven als de volgende indeling:

      Werkstroom verbruik

      Schermopname van de expressie voor het ophalen van een matrix met IDocs voor een werkstroom Verbruik.

      In dit voorbeeld draagt de volgende werkstroom elke IDoc over naar een SFTP-server met behulp van een besturingsactie met de naam Voor elk en de SFTP-SSH-actie met de naam Bestand maken. Elke IDoc moet de hoofdnaamruimte bevatten, wat de reden is waarom de bestandsinhoud in een <Receive></Receive> element wordt verpakt, samen met de hoofdnaamruimte voordat de IDoc naar de downstream-app wordt verzonden, of SFTP-server in dit geval.

      Schermopname van het verzenden van een IDoc naar een SFTP-server vanuit een werkstroom Verbruik.

      Notitie

      Voor Verbruikswerkstromen is dit patroon beschikbaar als een quickstart-sjabloon, die u kunt selecteren in de sjabloongalerie wanneer u een resource voor logische app Verbruik maakt en een lege werkstroom maakt. Als de werkstroomontwerper is geopend, selecteert u sjablonen op de werkbalk van de ontwerper.

      Schermopname van het selecteren van de sjabloon voor het verkrijgen van een IDoc-batch.

      Standaardwerkstroom

      Schermopname van de expressie om een matrix van IDocs op te halen voor een Standaardwerkstroom.

      In dit voorbeeld draagt de volgende werkstroom elke IDoc over naar een SFTP-server met behulp van een besturingsactie met de naam Voor elk en de SFTP-SSH-actie met de naam Bestand maken. Elke IDoc moet de hoofdnaamruimte bevatten, wat de reden is waarom de bestandsinhoud in een <Receive></Receive> element wordt verpakt, samen met de hoofdnaamruimte voordat de IDoc naar de downstream-app wordt verzonden, of SFTP-server in dit geval.

      Schermopname van het verzenden van een IDoc naar een SFTP-server vanuit een Standard-werkstroom.


Ontvangen berichten filteren met SAP-acties

Als u de door SAP beheerde connector onder de trigger in uw werkstroom gebruikt, stelt u een manier in om ongewenste acties van uw SAP-server expliciet uit te filteren op basis van de naamruimte van het hoofdknooppunt in de ontvangen XML-nettolading. U kunt een lijst (matrix) opgeven met één of meerdere SAP-acties. Deze matrix is standaard leeg, wat betekent dat uw werkstroom alle berichten van uw SAP-server ontvangt zonder te filteren. Wanneer u het matrixfilter instelt, ontvangt de trigger alleen berichten van de opgegeven SAP-actietypen en worden alle andere berichten van uw SAP-server geweigerd. Dit filter heeft echter geen invloed op het feit of het typen van de ontvangen nettolading zwak of sterk is. Sap-actiefilters vindt plaats op het niveau van de SAP-adapter voor uw on-premises gegevensgateway. Lees hoe u IDocs vanuit SAP verzendt naar Azure Logic Apps voor meer informatie.

Asynchroon aanvraag-antwoordpatroon instellen voor triggers

De door SAP beheerde connector ondersteunt het asynchrone aanvraagantwoordpatroon van Azure voor Azure Logic Apps-triggers. U kunt dit patroon gebruiken om geslaagde aanvragen te maken die anders mislukken met het standaard synchrone aanvraag-antwoordpatroon.

Notitie

In werkstromen met meerdere antwoordacties moeten alle antwoordacties hetzelfde aanvraagantwoordpatroon gebruiken. Als uw werkstroom bijvoorbeeld gebruikmaakt van een schakeloptie met meerdere mogelijke antwoordacties , moet u alle antwoordacties instellen om hetzelfde aanvraagantwoordpatroon te gebruiken, synchroon of asynchroon.

Als u een asynchroon antwoord voor uw antwoordactie inschakelt, kan uw werkstroom reageren met een antwoord van 202 Geaccepteerd na het accepteren van een aanvraag voor verwerking. Het antwoord bevat een locatieheader die u kunt gebruiken om de uiteindelijke status van uw aanvraag op te halen.

Volg deze stappen om een asynchroon aanvraagantwoordpatroon voor uw werkstroom te configureren met behulp van de SAP-connector:

  1. Open uw werkstroom voor logische apps in de ontwerpfunctie. Controleer of uw werkstroom begint met een SAP-trigger.

  2. Zoek in uw werkstroom de actie Antwoord en open de instellingen van die actie.

  3. Volg de bijbehorende stappen op basis van of u een werkstroom Verbruik of Standaard hebt:

    • Verbruik: Schakel onder Asynchroon antwoord de instelling uit naar Aan en selecteer Gereed.
    • Standaard: Vouw netwerken uit en schakel onder Asynchroon antwoord de instelling uit naar Aan.
  4. Sla uw werkstroom op.

IDocs verzenden naar SAP

Als u een werkstroom voor een logische app wilt maken die een IDoc naar een SAP-server verzendt en een antwoord retourneert, volgt u deze voorbeelden:

  1. Maak een werkstroom voor logische apps die wordt geactiveerd door een HTTP-aanvraag.
  2. Voeg een SAP-actie toe aan uw werkstroom voor het verzenden van een IDoc naar SAP.
  3. Voeg een antwoordactie toe aan uw werkstroom.
  4. Maak een RFC-aanvraagantwoordpatroon (Remote Function Call) als u een RFC gebruikt om antwoorden van SAP ABAP te ontvangen.
  5. Test uw werkstroom.

De aanvraagtrigger toevoegen

Als u wilt dat uw werkstroom IDocs van SAP via XML HTTP ontvangt, kunt u de ingebouwde trigger Aanvraag gebruiken. Met deze trigger wordt een eindpunt gemaakt met een URL waar uw SAP-server HTTP POST-aanvragen naar uw werkstroom kan verzenden. Wanneer uw werkstroom deze aanvragen ontvangt, wordt de trigger geactiveerd en wordt de volgende stap in uw werkstroom uitgevoerd.

Als u IDocs wilt ontvangen via Common Programming Interface Communication (CPIC) als gewone XML of als een plat bestand, raadpleegt u de sectie Bericht ontvangen van SAP.

Volg de bijbehorende stappen op basis van of u een werkstroom Verbruik hebt in multitenant Azure Logic Apps of een Standaardwerkstroom in Azure Logic Apps met één tenant:

  1. Maak in Azure Portal een resource voor de logische app Verbruik en een lege werkstroom in de ontwerpfunctie.

  2. Volg deze algemene stappen in de ontwerpfunctie om de ingebouwde aanvraagtrigger te zoeken en toe te voegen met de naam Wanneer een HTTP-aanvraag wordt ontvangen.

    Schermopname van de aanvraagtrigger voor een verbruikswerkstroom.

  3. Sla uw werkstroom op. Selecteer in de werkbalk van de ontwerper Opslaan.

    Met deze stap wordt een eindpunt-URL gegenereerd waar uw trigger aanvragen van uw SAP-server kan ontvangen, bijvoorbeeld:

    Schermopname van de gegenereerde eindpunt-URL van de aanvraagtrigger voor het ontvangen van aanvragen in een werkstroom Verbruik.

Een SAP-actie toevoegen om een IDoc te verzenden

Maak vervolgens een actie om uw IDoc naar SAP te verzenden wanneer de aanvraagtrigger van de werkstroom wordt geactiveerd. Volg de bijbehorende stappen op basis van of u een werkstroom Verbruik hebt in multitenant Azure Logic Apps of een Standaardwerkstroom in Azure Logic Apps met één tenant:

  1. Selecteer nieuwe stap in de werkstroomontwerper onder de aanvraagtrigger.

  2. Volg deze algemene stappen in de ontwerpfunctie om de door SAP beheerde actie met de naam Bericht verzenden naar SAP te zoeken en toe te voegen.

  3. Als u hierom wordt gevraagd, geeft u de volgende verbindingsgegevens op voor uw on-premises SAP-server. Selecteer Maken als u klaar bent. Ga anders verder met de volgende stap om de SAP-actie in te stellen.

    Parameter Vereist Beschrijving
    Verbindingsnaam Ja Geef een naam op voor de verbinding.
    Gegevensgateway Ja 1. Selecteer voor Abonnement het Azure-abonnement voor de gegevensgatewayresource die u in Azure Portal hebt gemaakt voor de installatie van uw gegevensgateway.

    2. Selecteer uw gegevensgatewayresource in Azure voor Verbindingsgateway.
    Client Ja De SAP-client-id die moet worden gebruikt om verbinding te maken met uw SAP-server
    Verificatietype Ja Het verificatietype dat moet worden gebruikt voor uw verbinding, moet Basic (gebruikersnaam en wachtwoord) zijn. Zie Secure Network Communications (SNC) inschakelen om een SNC-verbinding te maken.
    SAP-gebruikersnaam Ja De gebruikersnaam voor uw SAP-server
    SAP-wachtwoord Ja Het wachtwoord voor uw SAP-server
    Aanmeldingstype Ja Selecteer toepassingsserver of groep (berichtserver) en configureer vervolgens de bijbehorende vereiste parameters, ook al worden ze optioneel weergegeven:

    Toepassingsserver:
    - AS-host: de hostnaam voor uw SAP-toepassingsserver
    - AS-service: de servicenaam of het poortnummer voor uw SAP-toepassingsserver
    - AS-systeemnummer: het systeemnummer van uw SAP-server, dat varieert van 00 tot 99

    Groep:
    - MS Server-host: de hostnaam voor uw SAP-berichtserver
    - MS-servicenaam of poortnummer: de servicenaam of het poortnummer voor uw SAP-berichtserver
    - MS-systeem-id: de systeem-id voor uw SAP-server
    - MS-aanmeldingsgroep: de aanmeldingsgroep voor uw SAP-server. Op uw SAP-server kunt u de waarde voor de aanmeldingsgroep vinden of bewerken door het dialoogvenster CCMS: Aanmeldingsgroepen (T-Code SMLG) onderhouden te openen. Raadpleeg SAP Note 26317 - Instellen voor aanmeldingsgroep voor automatische taakverdeling voor meer informatie.
    Veilig typen Nee Deze optie is beschikbaar voor compatibiliteit met eerdere versies en controleert alleen de lengte van de tekenreeks. Standaard wordt sterk typen gebruikt om te controleren op ongeldige waarden door XML-validatie uit te voeren op basis van het schema. Dit gedrag kan u helpen bij het detecteren van problemen eerder. Meer informatie over de instelling Veilig typen.
    SNC gebruiken Nee Zie Secure Network Communications (SNC) inschakelen om een SNC-verbinding te maken.

Zie Aan de slag met SAP SNC voor RFC-integraties - SAP-blog voor meer informatie over SNC.

Zie Standaardverbindingsgegevens voor andere optionele beschikbare verbindingsparameters.

Nadat Azure Logic Apps uw verbinding heeft ingesteld en getest, wordt het informatievak van de SAP-actie weergegeven. Zie Problemen met verbindingen oplossen voor meer informatie over eventuele verbindingsproblemen.

Schermopname van een verbruikswerkstroom met de door SAP beheerde actie Verzenden naar SAP.

  1. Zoek en selecteer in de actie Verzenden naar SAP een beschikbare SAP-actie op uw SAP-server om de IDoc te verzenden.

    De actie Verzenden naar SAP is algemeen en kan een bericht verzenden voor BAPI, IDoc, RFC of tRFC, maar u moet eerst het berichttype en de SAP-actie selecteren die u wilt gebruiken.

    1. Selecteer in het invoervak van de SAP-actieparameter het mappictogram. Selecteer in de lijst die wordt geopend BAPI, IDOC, RFC of TRFC. In dit voorbeeld wordt IDOC geselecteerd. Als u een ander type selecteert, worden de beschikbare SAP-acties gewijzigd op basis van uw selectie.

      Notitie

      Als de fout Ongeldige gateway (500) of Ongeldige aanvraag (400) wordt weergegeven, raadpleegt u de fout 500 Ongeldige gateway of 400 Ongeldige aanvraag.

      Schermopname van het selecteren van IDOC voor een verbruikswerkstroom.

    2. Blader door de mappen van de SAP-actietypen met behulp van de pijlen om de SAP-actie te zoeken en te selecteren die u wilt gebruiken.

      In dit voorbeeld selecteert u ORDERS>ORDERS05>720>Verzenden.

      Schermopname van het vinden van een actie Orders voor een werkstroom Verbruik.

      Als u de gewenste actie niet kunt vinden, kunt u handmatig een pad invoeren, bijvoorbeeld:

      Schermopname van het handmatig invoeren van een pad naar een actietype Orders voor een werkstroom Verbruik.

      Tip

      Voor de PARAMETER SAP-actie kunt u de expressie-editor gebruiken om de parameterwaarde op te geven. Op die manier kunt u dezelfde SAP-actie gebruiken voor verschillende berichttypen.

      Raadpleeg berichtschema's voor IDoc-bewerkingen voor meer informatie over IDoc-berichten.

    3. Neem in de actie Verzenden naar SAP de hoofdtekst van de aanvraagtrigger op.

      1. Selecteer in de parameter Invoerbericht in het invoervak om de lijst met dynamische inhoud te openen.

      2. Selecteer hoofdtekst in de lijst met dynamische inhoud, onder Wanneer een HTTP-aanvraag wordt ontvangen. Het veld Hoofdtekst bevat de hoofdtekstuitvoer van de aanvraagtrigger .

        Notitie

        Als het veld Hoofdtekst niet wordt weergegeven in de lijst, selecteert u naast het label Wanneer een HTTP-aanvraag wordt ontvangen meer.

      Schermopname van het selecteren van de uitvoer van de aanvraagtrigger met de naam Body for Consumption Workflow.

      De actie Verzenden naar SAP bevat nu de hoofdtekstinhoud van de aanvraagtrigger en verzendt die uitvoer naar uw SAP-server, bijvoorbeeld:

      Schermopname van de voltooide SAP-actie voor de werkstroom Verbruik.

  2. Sla uw werkstroom op.

Plat bestand IDocs verzenden naar SAP-server (alleen beheerde connector)

Als u een IDoc wilt verzenden met behulp van een plat bestandsschema wanneer u de door SAP beheerde connector gebruikt, kunt u de IDoc inpakken in een XML-envelop en de algemene stappen volgen om een SAP-actie toe te voegen om een IDoc te verzenden, maar met de volgende wijzigingen.

Notitie

Als u de ingebouwde SAP-connector gebruikt, moet u ervoor zorgen dat u geen platte IDoc in een XML-envelop verpakt.

IDoc verpakken met XML-envelop

  1. Gebruik in de SAP-actie die u gebruikt om het bericht te verzenden de volgende URI:

    http://Microsoft.LobServices.Sap/2007/03/Idoc/SendIdoc

  2. Maak het invoerbericht op met een XML-envelop.

In het volgende voorbeeld ziet u een voorbeeld van een XML-nettolading:

<SendIdoc xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/">
  <idocData>EDI_DC 3000000001017945375750 30INVOIC011BTSVLINV30KUABCABCFPPC LDCA X004010810 4 SAPMSX LSEDI ABCABCFPPC 000d3ae4-723e-1edb-9ca4-cc017365c9fd 20210217054521INVOICINVOIC01ZINVOIC2RE 20210217054520
E2EDK010013000000001017945375000001E2EDK01001000000010 ABCABC1.00000 0060 INVO9988298128 298.000 298.000 LB Z4LR EN 0005065828 L
E2EDKA1 3000000001017945375000002E2EDKA1 000000020 RS ABCABCFPPC 0005065828 ABCABCABC ABCABC Inc. Limited Risk Distributor ABCABC 1950 ABCABCABCA Blvd ABCABAABCAB L5N8L9 CA ABCABC E ON V-ABCABC LDCA
E2EDKA1 3000000001017945375000003E2EDKA1 000000020 AG 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000004E2EDKA1 000000020 RE 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000005E2EDKA1 000000020 RG 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000006E2EDKA1 000000020 WE 0005001847 41 ABCABC ABCABC INC (ABCABC) DC A. ABCABCAB 88 ABCABC CRESCENT ABCABAABCAB L5R 4A2 CA ABCABC 111-111-1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000007E2EDKA1 000000020 Z3 0005533050 ABCABCABC ABCABC Inc. ABCA Bank Swift Code -ABCABCABCAB Sort Code - 1950 ABCABCABCA Blvd. Acc No -1111111111 ABCABAABCAB L5N8L9 CA ABCABC E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000008E2EDKA1 000000020 BK 1075 ABCABCABC ABCABC Inc 1950 ABCABCABCA Blvd ABCABAABCAB ON L5N 8L9 CA ABCABC (111) 111-1111 (111) 111-1111 ON
E2EDKA1 3000000001017945375000009E2EDKA1 000000020 CR 1075 CONTACT ABCABCABC 1950 ABCABCABCA Blvd ABCABAABCAB ON L5N 8L9 CA ABCABC (111) 111-1111 (111) 111-1111 ON
E2EDK02 3000000001017945375000010E2EDK02 000000020 0099988298128 20210217
E2EDK02 3000000001017945375000011E2EDK02 000000020 00140-N6260-S 20210205
E2EDK02 3000000001017945375000012E2EDK02 000000020 0026336270425 20210217
E2EDK02 3000000001017945375000013E2EDK02 000000020 0128026580537 20210224
E2EDK02 3000000001017945375000014E2EDK02 000000020 01740-N6260-S
E2EDK02 3000000001017945375000015E2EDK02 000000020 900IAC
E2EDK02 3000000001017945375000016E2EDK02 000000020 901ZSH
E2EDK02 3000000001017945375000017E2EDK02 000000020 9078026580537 20210217
E2EDK03 3000000001017945375000018E2EDK03 000000020 02620210217
E2EDK03 3000000001017945375000019E2EDK03 000000020 00120210224
E2EDK03 3000000001017945375000020E2EDK03 000000020 02220210205
E2EDK03 3000000001017945375000021E2EDK03 000000020 01220210217
E2EDK03 3000000001017945375000022E2EDK03 000000020 01120210217
E2EDK03 3000000001017945375000023E2EDK03 000000020 02420210217
E2EDK03 3000000001017945375000024E2EDK03 000000020 02820210418
E2EDK03 3000000001017945375000025E2EDK03 000000020 04820210217
E2EDK17 3000000001017945375000026E2EDK17 000000020 001DDPDelivered Duty Paid
E2EDK17 3000000001017945375000027E2EDK17 000000020 002DDPdestination
E2EDK18 3000000001017945375000028E2EDK18 000000020 00160 0 Up to 04/18/2021 without deduction
E2EDK28 3000000001017945375000029E2EDK28 000000020 CA BOFACATT Bank of ABCABAB ABCABC ABCABAB 50127217 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000030E2EDK28 000000020 CA 026000082 ABCAbank ABCABC ABCABAB 201456700OLD ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000031E2EDK28 000000020 GB ABCAGB2L ABCAbank N.A ABCABA E14, 5LB GB63ABCA18500803115593 ABCABCABC ABCABC Inc. GB63ABCA18500803115593
E2EDK28 3000000001017945375000032E2EDK28 000000020 CA 020012328 ABCABANK ABCABC ABCABAB ON M5J 2M3 2014567007 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000033E2EDK28 000000020 CA 03722010 ABCABABC ABCABABC Bank of Commerce ABCABAABCAB 64-04812 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000034E2EDK28 000000020 IE IHCC In-House Cash Center IHCC1075 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000035E2EDK28 000000020 CA 000300002 ABCAB Bank of ABCABC ABCABAB 0021520584OLD ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000036E2EDK28 000000020 US USCC US Cash Center (IHC) city USCC1075 ABCABCABC ABCABC Inc.
E2EDK29 3000000001017945375000037E2EDK29 000000020 0064848944US A CAD CA ABCABC CA United States US CA A Air Air
E2EDKT1 3000000001017945375000038E2EDKT1 000000020 ZJ32E EN
E2EDKT2 3000000001017945375000039E2EDKT2 000038030 GST/HST877845941RT0001 *
E2EDKT2 3000000001017945375000040E2EDKT2 000038030 QST1021036966TQ0001 *
E2EDKT1 3000000001017945375000041E2EDKT1 000000020 Z4VL
E2EDKT2 3000000001017945375000042E2EDKT2 000041030 0.000 *
E2EDKT1 3000000001017945375000043E2EDKT1 000000020 Z4VH
E2EDKT2 3000000001017945375000044E2EDKT2 000043030 *
E2EDK14 3000000001017945375000045E2EDK14 000000020 008LDCA
E2EDK14 3000000001017945375000046E2EDK14 000000020 00710
E2EDK14 3000000001017945375000047E2EDK14 000000020 00610
E2EDK14 3000000001017945375000048E2EDK14 000000020 015Z4F2
E2EDK14 3000000001017945375000049E2EDK14 000000020 0031075
E2EDK14 3000000001017945375000050E2EDK14 000000020 021M
E2EDK14 3000000001017945375000051E2EDK14 000000020 0161075
E2EDK14 3000000001017945375000052E2EDK14 000000020 962M
E2EDP010013000000001017945375000053E2EDP01001000000020 000011 2980.000 EA 298.000 LB MOUSE 298.000 Z4TN 4260
E2EDP02 3000000001017945375000054E2EDP02 000053030 00140-N6260-S 00000120210205 DFUE
E2EDP02 3000000001017945375000055E2EDP02 000053030 0026336270425 00001120210217
E2EDP02 3000000001017945375000056E2EDP02 000053030 0168026580537 00001020210224
E2EDP02 3000000001017945375000057E2EDP02 000053030 9100000 00000120210205 DFUE
E2EDP02 3000000001017945375000058E2EDP02 000053030 911A 00000120210205 DFUE
E2EDP02 3000000001017945375000059E2EDP02 000053030 912PP 00000120210205 DFUE
E2EDP02 3000000001017945375000060E2EDP02 000053030 91300 00000120210205 DFUE
E2EDP02 3000000001017945375000061E2EDP02 000053030 914CONTACT ABCABCABC 00000120210205 DFUE
E2EDP02 3000000001017945375000062E2EDP02 000053030 963 00000120210205 DFUE
E2EDP02 3000000001017945375000063E2EDP02 000053030 965 00000120210205 DFUE
E2EDP02 3000000001017945375000064E2EDP02 000053030 9666336270425 00000120210205 DFUE
E2EDP02 3000000001017945375000065E2EDP02 000053030 9078026580537 00001020210205 DFUE
E2EDP03 3000000001017945375000066E2EDP03 000053030 02920210217
E2EDP03 3000000001017945375000067E2EDP03 000053030 00120210224
E2EDP03 3000000001017945375000068E2EDP03 000053030 01120210217
E2EDP03 3000000001017945375000069E2EDP03 000053030 02520210217
E2EDP03 3000000001017945375000070E2EDP03 000053030 02720210217
E2EDP03 3000000001017945375000071E2EDP03 000053030 02320210217
E2EDP03 3000000001017945375000072E2EDP03 000053030 02220210205
E2EDP19 3000000001017945375000073E2EDP19 000053030 001418VVZ
E2EDP19 3000000001017945375000074E2EDP19 000053030 002RJR-00001 AB ABCABCABC Mouse FORBUS BLUETOOTH
E2EDP19 3000000001017945375000075E2EDP19 000053030 0078471609000
E2EDP19 3000000001017945375000076E2EDP19 000053030 003889842532685
E2EDP19 3000000001017945375000077E2EDP19 000053030 011CN
E2EDP26 3000000001017945375000078E2EDP26 000053030 00459064.20
E2EDP26 3000000001017945375000079E2EDP26 000053030 00352269.20
E2EDP26 3000000001017945375000080E2EDP26 000053030 01052269.20
E2EDP26 3000000001017945375000081E2EDP26 000053030 01152269.20
E2EDP26 3000000001017945375000082E2EDP26 000053030 0126795.00
E2EDP26 3000000001017945375000083E2EDP26 000053030 01552269.20
E2EDP26 3000000001017945375000084E2EDP26 000053030 00117.54
E2EDP26 3000000001017945375000085E2EDP26 000053030 00252269.20
E2EDP26 3000000001017945375000086E2EDP26 000053030 940 2980.000
E2EDP26 3000000001017945375000087E2EDP26 000053030 939 2980.000
E2EDP05 3000000001017945375000088E2EDP05 000053030 + Z400MS List Price 52269.20 17.54 1 EA CAD 2980
E2EDP05 3000000001017945375000089E2EDP05 000053030 + XR1 Tax Jur Code Level 6795.00 13.000 52269.20
E2EDP05 3000000001017945375000090E2EDP05 000053030 + Tax Subtotal1 6795.00 2.28 1 EA CAD 2980
E2EDP05 3000000001017945375000091E2EDP05 000053030 + Taxable Amount + TaxSubtotal1 59064.20 19.82 1 EA CAD 2980
E2EDP04 3000000001017945375000092E2EDP04 000053030 CX 13.000 6795.00 7000000000
E2EDP04 3000000001017945375000093E2EDP04 000053030 CX 0 0 7001500000
E2EDP04 3000000001017945375000094E2EDP04 000053030 CX 0 0 7001505690
E2EDP28 3000000001017945375000095E2EDP28 000053030 00648489440000108471609000 CN CN ABCAB ZZ 298.000 298.000 LB US 400 United Stat KY
E2EDPT1 3000000001017945375000096E2EDPT1 000053030 0001E EN
E2EDPT2 3000000001017945375000097E2EDPT2 000096040 AB ABCABCABC Mouse forBus Bluetooth EN/XC/XD/XX Hdwr Black For Bsnss *
E2EDS01 3000000001017945375000098E2EDS01 000000020 0011
E2EDS01 3000000001017945375000099E2EDS01 000000020 01259064.20 CAD
E2EDS01 3000000001017945375000100E2EDS01 000000020 0056795.00 CAD
E2EDS01 3000000001017945375000101E2EDS01 000000020 01159064.20 CAD
E2EDS01 3000000001017945375000102E2EDS01 000000020 01052269.20 CAD
E2EDS01 3000000001017945375000103E2EDS01 000000020 94200000 CAD
E2EDS01 3000000001017945375000104E2EDS01 000000020 9440.00 CAD
E2EDS01 3000000001017945375000105E2EDS01 000000020 9450.00 CAD
E2EDS01 3000000001017945375000106E2EDS01 000000020 94659064.20 CAD
E2EDS01 3000000001017945375000107E2EDS01 000000020 94752269.20 CAD
E2EDS01 3000000001017945375000108E2EDS01 000000020 EXT
Z2XSK010003000000001017945375000109Z2XSK01000000108030 Z400 52269.20
Z2XSK010003000000001017945375000110Z2XSK01000000108030 XR1 13.000 6795.00 CX
</idocData>
</SendIdoc>

Een antwoordactie toevoegen

Stel nu uw werkstroom in om de resultaten van uw SAP-server te retourneren aan de oorspronkelijke aanvrager. Voer voor deze taak de volgende stappen uit:

  1. Selecteer nieuwe stap in de werkstroomontwerper onder de SAP-actie.

  2. Volg deze algemene stappen in de ontwerpfunctie om de ingebouwde actie Aanvraag met de naam Antwoord te zoeken en toe te voegen.

  3. Selecteer in de actie Antwoord voor de parameter Hoofdtekst in het invoervak om de lijst met dynamische inhoud te openen.

  4. Selecteer hoofdtekst in de lijst met dynamische inhoud, onder Bericht verzenden naar SAP. Het veld Hoofdtekst bevat de hoofdtekstuitvoer van de SAP-actie.

    Schermopname van het selecteren van SAP-actie-uitvoer met de naam Body for Consumption Workflow.

  5. Sla uw werkstroom op.

Een rfc-aanvraag-antwoordpatroon (Remote Function Call) maken

Voor de verbruikswerkstromen die gebruikmaken van de door SAP beheerde connector, moet u een aanvraag- en antwoordpatroon implementeren als u antwoorden moet ontvangen met behulp van een externe functie-aanroep (RFC) naar Azure Logic Apps van SAP ABAP. Als u IDocs in uw werkstroom wilt ontvangen wanneer u de aanvraagtrigger gebruikt, moet u ervoor zorgen dat de eerste actie van de werkstroom een antwoordactie is die gebruikmaakt van de statuscode 200 OK zonder inhoud. Deze aanbevolen stap voltooit onmiddellijk de asynchrone overdracht van SAP Logical Unit of Work (LUW) via tRFC, waardoor het SAP CPIC-gesprek opnieuw beschikbaar blijft. Vervolgens kunt u meer acties toevoegen aan uw werkstroom voor het verwerken van de ontvangen IDoc zonder latere overdrachten te blokkeren.

Notitie

De SAP-trigger ontvangt IDocs via tRFC, die standaard geen antwoordparameter heeft.

Als u een aanvraag- en antwoordpatroon wilt implementeren, moet u eerst het RFC-schema detecteren met behulp van de generate schema opdracht. Het gegenereerde schema heeft twee mogelijke hoofdknooppunten:

  • Het aanvraagknooppunt, de aanroep die u ontvangt van SAP
  • Het antwoordknooppunt, dat is uw antwoord terug naar SAP

In het volgende voorbeeld genereert de STFC_CONNECTION RFC-module een aanvraag- en antwoordpatroon. De aanvraag-XML wordt geparseerd om een knooppuntwaarde te extraheren waarbij SAP-aanvragen <ECHOTEXT>. Het antwoord voegt de huidige tijdstempel in als een dynamische waarde. U ontvangt een vergelijkbaar antwoord wanneer u een STFC_CONNECTION RFC verzendt vanuit een werkstroom van een logische app naar SAP.

<STFC_CONNECTIONResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
  <ECHOTEXT>@{first(xpath(xml(triggerBody()?['Content']), '/*[local-name()="STFC_CONNECTION"]/*[local-name()="REQUTEXT"]/text()'))}</ECHOTEXT>
  <RESPTEXT>Azure Logic Apps @{utcNow()}</RESPTEXT>
</STFC_CONNECTIONResponse>

Uw werkstroom testen

  1. Als de resource van de logische app Verbruik nog niet is ingeschakeld, selecteert u Overzicht in het menu van de logische app. Selecteer Inschakelen op de werkbalk.

  2. Selecteer Uitvoeren uitvoeren> op de werkbalk van de ontwerpfunctie om uw werkstroom handmatig te starten.

  3. Als u een nettolading van een webhooktrigger wilt simuleren en de werkstroom wilt activeren, verzendt u een HTTP-aanvraag naar de eindpunt-URL die is gemaakt door de aanvraagtrigger van uw werkstroom, inclusief de methode die de aanvraagtrigger verwacht, met behulp van uw HTTP-aanvraagprogramma en de bijbehorende instructies. Zorg ervoor dat u uw berichtinhoud opneemt bij uw aanvraag.

    In dit voorbeeld worden de POST-methode en de eindpunt-URL gebruikt om een IDoc-bestand te verzenden, dat de XML-indeling moet hebben en de naamruimte moet bevatten voor de SAP-actie die u hebt geselecteerd, bijvoorbeeld:

    <?xml version="1.0" encoding="UTF-8" ?>
    <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/2/ORDERS05//720/Send">
      <idocData>
        <...>
      </idocData>
    </Send>
    
  4. Nadat u uw HTTP-aanvraag hebt verzonden, wacht u op het antwoord van uw werkstroom.

U hebt nu een werkstroom gemaakt die IDocs kan verzenden en met uw SAP-server kan communiceren. Nu u een SAP-verbinding voor uw werkstroom hebt ingesteld, kunt u experimenteren met BAPI en RFC.

Time-outproblemen voor werkstromen

Er treedt een time-out op voor uw werkstroom in een van de volgende scenario's:

  • Alle stappen die nodig zijn voor het antwoord, worden niet binnen de time-outlimiet van de aanvraag voltooid. Als deze voorwaarde zich voordoet, worden aanvragen mogelijk geblokkeerd. Lees hoe u uw werkstromen voor logische apps controleert en bewaakt om u te helpen bij het diagnosticeren van problemen.

  • De verwerkingsmodus van uw SAP-systeem is ingesteld op de standaardinstelling trigger onmiddellijk , waardoor uw SAP-systeem de inkomende aanroep voor IDoc-overdracht blokkeert totdat een IDoc klaar is met verwerken.

    Als uw SAP-systeem onder belasting is, bijvoorbeeld wanneer uw werkstroom een batch IDocs allemaal tegelijk naar SAP verzendt, roept de in de wachtrij geplaatste IDoc een time-out aan. De standaardverwerkingsmodus zorgt ervoor dat uw SAP-systeem de inkomende oproep voor IDoc-overdracht blokkeert totdat een IDoc klaar is met verwerken. In Azure Logic Apps hebben werkstroomacties standaard een time-out van 2 minuten.

    Volg de stappen in de sectie Vereisten waarmee de instelling wordt gewijzigd in Trigger by background program om dit probleem op te lossen.

Veilig typen

Wanneer u een verbinding voor de door SAP beheerde bewerking maakt, wordt standaard sterk typen gebruikt om te controleren op ongeldige waarden door XML-validatie uit te voeren op basis van het schema. Dit gedrag kan u helpen bij het detecteren van problemen eerder. De optie Veilig typen is beschikbaar voor compatibiliteit met eerdere versies en controleert alleen de tekenreekslengte. Als u Veilig typen kiest, worden het DATS-type en TIMS-type in SAP behandeld als tekenreeksen in plaats van als xml-equivalenten, xs:date en xs:timewaarxmlns:xs="http://www.w3.org/2001/XMLSchema". Veilig typen is van invloed op het gedrag voor het genereren van alle schema's, het verzendbericht voor zowel de nettolading 'verzonden' als het antwoord 'ontvangen' en de trigger.

Wanneer sterk typen wordt gebruikt (Veilig typen is niet ingeschakeld), worden de TYPEN DATS en TIMS toegewezen aan eenvoudigere XML-typen:

<xs:element minOccurs="0" maxOccurs="1" name="UPDDAT" nillable="true" type="xs:date"/>
<xs:element minOccurs="0" maxOccurs="1" name="UPDTIM" nillable="true" type="xs:time"/>

Wanneer u berichten verzendt met sterke typen, voldoet het ANTWOORD DATS en TIMS aan de overeenkomende XML-typeindeling:

<DATE>9999-12-31</DATE>
<TIME>23:59:59</TIME>

Wanneer Veilig typen is ingeschakeld, worden de TYPEN DATS en TIMS alleen toegewezen aan XML-tekenreeksvelden met lengtebeperkingen, bijvoorbeeld:

<xs:element minOccurs="0" maxOccurs="1" name="UPDDAT" nillable="true">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="8" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="UPDTIM" nillable="true">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="6" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Wanneer berichten worden verzonden waarvoor Veilig typen is ingeschakeld, ziet het ANTWOORD DATS en TIMS er als volgt uit:

<DATE>99991231</DATE>
<TIME>235959</TIME>

Geavanceerde scenario's

Taalheaders wijzigen voor het verzenden van gegevens naar SAP

Wanneer u verbinding maakt met SAP vanuit Azure Logic Apps, is het Engels de standaardtaal die wordt gebruikt door de SAP-verbinding voor het verzenden van gegevens naar uw SAP-server. De door SAP beheerde connector en de ingebouwde SAP-connector verwerken echter het wijzigen en opslaan van de taal die op verschillende manieren wordt gebruikt.

  • Wanneer u een verbinding maakt met de ingebouwde SAP-connector, kunt u met de verbindingsparameters de taalparameterwaarde opgeven en opslaan als onderdeel van de SAP-verbindingsparameters.

  • Wanneer u een verbinding maakt met de door SAP beheerde connector, hebben de verbindingsparameters geen taalparameter. Gedurende deze tijd kunt u dus niet opgeven of de taal die moet worden gebruikt voor het verzenden van gegevens naar uw SAP-server. In plaats daarvan gebruikt de connector in zowel de ontwerptijd als de uitvoeringstijd van de werkstroom de lokale taal van uw webbrowser van elke aanvraag die naar uw server wordt verzonden. Als uw browser bijvoorbeeld is ingesteld op Portugees, maakt en test Azure Logic Apps de SAP-verbinding met portugees, maar slaat de verbinding met die taal niet op.

    U kunt de taal voor uw verbinding echter instellen met behulp van de standaard HTTP-header Accept-Language met uw inkomende aanvragen. De meeste webbrowsers voegen een Accept-Language koptekst toe op basis van uw landinstellingen. In de webbrowser wordt deze header toegepast wanneer u een nieuwe SAP-verbinding maakt in de werkstroomontwerper. U kunt de instellingen van uw webbrowser dus bijwerken om uw voorkeurstaal te gebruiken, of u kunt uw SAP-verbinding maken met Behulp van Azure Resource Manager in plaats van de werkstroomontwerper.

    U kunt bijvoorbeeld een aanvraag met de Accept-Language header verzenden naar de werkstroom van uw logische app met behulp van de aanvraagtrigger met de naam Wanneer een HTTP-aanvraag wordt ontvangen. Alle acties in uw werkstroom ontvangen de header. Vervolgens gebruikt SAP de opgegeven talen in de systeemberichten, zoals BAPI-foutberichten. Als u geen header tijdens runtime doorgeeft Accept-Language , wordt standaard Engels gebruikt.

    Als u de Accept-Language header gebruikt, krijgt u mogelijk de volgende fout: controleer uw accountgegevens en/of machtigingen en probeer het opnieuw. In dit geval controleert u in plaats daarvan de foutenlogboeken van het SAP-onderdeel. De fout treedt daadwerkelijk op in het SAP-onderdeel dat gebruikmaakt van de header, zodat u mogelijk een van deze foutberichten krijgt:

    • "SAP. Middleware.Connector.RfcLogonException: Selecteer een van de geïnstalleerde talen"

    • "SAP. Middleware.Connector.RfcAbapMessageException: Selecteer een van de geïnstalleerde talen"

Transactie afzonderlijk en expliciet bevestigen

Wanneer u transacties verzendt naar SAP vanuit Azure Logic Apps, vindt deze uitwisseling plaats in twee stappen, zoals beschreven in het SAP-document transactionele RFC Server-programma's.

Standaard verwerkt de actie van de door SAP beheerde connector met de naam Bericht verzenden naar SAP zowel de stappen voor het overdragen van de functie als bevestigt u de transactie in één aanroep. U kunt deze stappen ook loskoppelen. De mogelijkheid om de overdrachts- en bevestigingsstappen los te koppelen is handig voor scenario's waarin u geen transacties in SAP wilt dupliceren. Dergelijke scenario's omvatten fouten die optreden als gevolg van oorzaken zoals netwerkproblemen.

U kunt een IDoc verzenden zonder de transactie automatisch te bevestigen met behulp van de sap managed connector-actie met de naam [IDOC] Document verzenden naar SAP. Vervolgens kunt u de transactie expliciet bevestigen met behulp van de sap managed connector-actie met de naam [IDOC - RFC] Transactie-id bevestigen. Wanneer uw werkstroom de transactie in een andere stap afzonderlijk bevestigt, voltooit het SAP-systeem de transactie slechts één keer.

In standaardwerkstromen heeft de ingebouwde SAP-connector ook acties die de overdrachts- en bevestigingsstappen afzonderlijk verwerken, met name [IDoc] Document verzenden naar SAP en [IDOC - RFC] Transactie-id bevestigen.

In de volgende voorbeeldwerkstroom ziet u dit patroon:

  1. Maak en open een logische app Verbruik of Standaard met een lege werkstroom in de ontwerpfunctie. Voeg de aanvraagtrigger toe.

  2. Volg deze alternatieve stappen om een IDoc-transactie-id te maken en te gebruiken in uw SAP-acties om dubbele IDocs naar SAP te verzenden.

  3. Voeg de SAP-actie met de naam [IDOC] Document verzenden naar SAP toe aan uw werkstroom. Geef de informatie op voor de IDoc die u naar uw SAP-systeem verzendt plus de volgende waarden:

    Parameter Weergegeven als Beschrijving
    TID bevestigen Nee Bevestig niet automatisch de transactie-id, die expliciet in een afzonderlijke stap plaatsvindt.
    GUID van transactie-id <IDoc-transaction-ID> Als deze parameter niet automatisch wordt weergegeven, opent u de lijst Nieuwe parameters toevoegen en selecteert u de parameter.

    U kunt deze waarde handmatig opgeven of de connector kan deze GUID automatisch genereren als uitvoer van de [IDOC] Document verzenden naar SAP-actie . In dit voorbeeld blijft deze parameter leeg om automatisch de GUID te genereren.

    Werkstroom verbruik

    Schermopname van de werkstroom Verbruik met de actie IDOC-document verzenden naar SAP.

    Standaardwerkstroom

    Schermopname van de Standaardwerkstroom met de actie IDOC-document verzenden naar SAP.

  4. Open Instellingen in de SAP-actie met de naam [IDOC] Naar SAP verzenden om het beleid voor opnieuw proberen te controleren.

    De standaardoptie is het aanbevolen beleid, maar u kunt een aangepast beleid selecteren voor uw specifieke behoeften. Als u een aangepast beleid wilt gebruiken, moet u ten minste één nieuwe poging instellen om tijdelijke netwerkstoringen te verhelpen.

  5. Voeg nu de SAP-actie toe met de naam [IDOC - RFC] Bevestig transactie-id.

    1. Selecteer in de parameter Transactie-id in het invoervak om de lijst met dynamische inhoud te openen.

    2. Selecteer in de lijst onder [IDOC] Document verzenden naar SAP de waarde transactie-id . Dit is de uitvoer van de vorige SAP-actie.

      Werkstroom verbruik

      Schermopname van de werkstroom Verbruik met de actie Transactie-id bevestigen, die GUID-uitvoer van de vorige actie bevat.

      Standaardwerkstroom

      Schermopname van de standaardwerkstroom met de actie Transactie-id bevestigen, die GUID-uitvoer van de vorige actie bevat.

    Nadat deze stap is uitgevoerd, wordt de huidige transactie gemarkeerd als voltooid aan beide uiteinden, aan de zijde van de SAP-connector en aan de SAP-systeemzijde.

Vermijd het verzenden van dubbele IDocs met een transactie-id-variabele

Als u een probleem ondervindt met het verzenden van dubbele IDocs naar SAP in uw werkstroom, kunt u een tekenreeksvariabele maken die fungeert als een IDoc-transactie-id. U kunt deze id vervolgens gebruiken om dubbele netwerkoverdrachten te voorkomen in omstandigheden zoals tijdelijke storingen, netwerkproblemen of verloren bevestigingen.

  1. Voeg in de ontwerpfunctie, nadat u de aanvraagtrigger hebt toegevoegd, en voordat u de SAP-actie met de naam [IDOC] Document verzenden naar SAP toevoegt, de actie Initialize-variabele toe aan uw werkstroom.

  2. Wijzig de naam van de actie in IDoc-transactie-id maken.

  3. Geef in het informatievak van de actie de volgende parameterwaarden op:

    Parameter Weergegeven als Beschrijving
    Naam <naam van variabele> Een naam voor uw variabele, bijvoorbeeld IDocTransactionID
    Type Tekenreeks Het type variabele
    Value guid() Selecteer in het invoervak, open de expressie of functie-editor en voer guid()in. Sla uw wijzigingen op.

    De waardeparameter is nu ingesteld op de guid() -functie, waarmee een GUID wordt gegenereerd.

    Werkstroom verbruik

    Schermopname van de werkstroom Verbruik met de actie Transactie-id maken.

    Standaardwerkstroom

    Schermopname van de Standaardwerkstroom met de actie Transactie-id maken.

    Notitie

    SAP-systemen vergeten een transactie-id na een opgegeven tijd of 24 uur standaard. Als gevolg hiervan kan SAP nooit een transactie-id bevestigen als de id of GUID onbekend is. Als bevestiging voor een transactie-id mislukt, geeft deze fout aan dat de communicatie met het SAP-systeem is mislukt voordat SAP de bevestiging kon bevestigen.

  4. Voeg de SAP-actie met de naam [IDOC] Document verzenden naar SAP toe aan uw werkstroom. Geef de informatie op voor de IDoc die u naar uw SAP-systeem verzendt plus de volgende waarden:

    Parameter Weergegeven als Beschrijving
    TID bevestigen Nee Bevestig niet automatisch de transactie-id, die expliciet in een afzonderlijke stap plaatsvindt.
    GUID van transactie-id <IDoc-transaction-ID> Als deze parameter niet automatisch wordt weergegeven, opent u de lijst Nieuwe parameters toevoegen en selecteert u de parameter. Voer de volgende stappen uit om de variabele transactie-id te selecteren die u hebt gemaakt:

    1. Selecteer in de GUID-parameter transactie-id in het invoervak om de lijst met dynamische inhoud te openen.

    2. Selecteer in de lijst onder Variabelen de variabele die u eerder hebt gemaakt. Dit is IDocTransactionID in dit voorbeeld.

    Werkstroom verbruik

    Schermopname van de werkstroom Verbruik met de actie IDOC-document verzenden naar SAP.

    Standaardwerkstroom

    Schermopname van de Standaardwerkstroom met de actie IDOC Send document to SAP.

  5. Voor de door SAP beheerde actie met de naam [IDOC] Document verzenden naar SAP, opent u Instellingen om het beleid voor opnieuw proberen te controleren.

    De standaardoptie is het aanbevolen beleid, maar u kunt een aangepast beleid selecteren voor uw specifieke behoeften. Als u een aangepast beleid wilt gebruiken, moet u ten minste één nieuwe poging instellen om tijdelijke netwerkstoringen te verhelpen.

    Notitie

    Alleen acties voor beheerde connectors hebben momenteel de beleidsinstelling Opnieuw proberen, niet ingebouwde connectors op basis van serviceproviders.

  6. Voeg nu de SAP-actie toe met de naam [IDOC - RFC] Bevestig transactie-id.

    1. Selecteer in de parameter Transactie-id in het invoervak om de lijst met dynamische inhoud te openen.

    2. Voer in de lijst, onder Variabelen, de naam in voor de variabele die u hebt gemaakt. Dit is IDocTransactionID in dit voorbeeld.

      Werkstroom verbruik

      Schermopname van de werkstroom Verbruik met de actie Transactie-id bevestigen met behulp van een variabele.

      Standaardwerkstroom

      Schermopname van de Standaardwerkstroom met de actie Transactie-id bevestigen met behulp van een variabele.

  7. Valideer desgewenst de ontdubbeling in uw testomgeving.

    1. Voeg nog een SAP-actie toe met de naam [IDOC] Document verzenden naar SAP. Selecteer in de parameter Transactie-id de GUID van de transactie-id die u in de vorige stap hebt gebruikt.

    2. Als u wilt controleren welk IDoc-nummer wordt toegewezen na elke aanroep naar de actie met de naam [IDOC] Document verzenden naar SAP, voegt u de actie met de naam [IDOC] IDOC ophalen voor transactie naar uw werkstroom met dezelfde transactie-id en de ontvangstrichting toe.

      Als hetzelfde IDoc-nummer wordt geretourneerd voor beide aanroepen, is de IDoc ontdubbeld.

Als u dezelfde IDoc twee keer verzendt, kunt u valideren dat SAP de duplicatie van de tRFC-aanroep kan identificeren en de twee aanroepen naar één binnenkomend IDoc-bericht kan oplossen.

Problemen oplossen

Verbindingsproblemen

Als u tijdens het maken van de verbinding de volgende fout ontvangt, bestaat er een probleem met de installatie van de SAP NCo-clientbibliotheek:

De testverbinding is mislukt. Fout ' Kan aanvraag niet verwerken. Foutdetails: 'kan bestand of assembly 'sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken 50436dca5c7f7d23' of een van de bijbehorende afhankelijkheden niet laden. Het systeem kan het opgegeven bestand niet vinden.'.'

Zorg ervoor dat u de vereiste versie van de SAP NCo-clientbibliotheek installeert en voldoet aan alle andere vereisten.

Fout 500 Ongeldige gateway of 400 Ongeldige aanvraag

Als u een fout van 500 Ongeldige gateway of 400 Ongeldige aanvraag ontvangt met een bericht dat vergelijkbaar is met 'sapgw00' onbekend, mislukt de naamomzetting van de netwerkservice naar poortnummer, bijvoorbeeld:

{
   "body": {
      "error": {
         "code": 500,
         "source": "EXAMPLE-FLOW-NAME.eastus.environments.microsoftazurelogicapps.net",
         "clientRequestId": "00000000-0000-0000-0000-000000000000",
         "message": "BadGateway",
         "innerError": {
            "error": {
               "code": "UnhandledException",
               "message": "\nERROR service 'sapgw00' unknown\nTIME Wed Nov 11 19:37:50 2020\nRELEASE 721\nCOMPONENT NI (network interface)\nVERSION 40\nRC -3\nMODULE ninti.c\nLINE 933\nDETAIL NiPGetServByName: 'sapgw00' not found\nSYSTEM CALL getaddrinfo\nCOUNTER 1\n\nRETURN CODE: 20"
            }
         }
      }
   }
}
  • Optie 1: Vervang in uw API-verbinding en triggerconfiguratie de naam van de gatewayservice door het poortnummer. In de voorbeeldfout sapgw00 moet bijvoorbeeld worden vervangen door een echt poortnummer 3300.

  • Optie 2: Als u de on-premises gegevensgateway gebruikt, kunt u de naam van de gatewayservice toevoegen aan de poorttoewijzing en %windir%\System32\drivers\etc\services vervolgens de on-premises gegevensgatewayservice opnieuw starten, bijvoorbeeld:

    sapgw00  3300/tcp
    

Er kan een vergelijkbare fout optreden wanneer de naam van de SAP-toepassingsserver of berichtserver wordt omgezet in het IP-adres. Voor de on-premises gegevensgateway kunt u in plaats daarvan de naam toevoegen aan de IP-adrestoewijzing in %windir%\System32\drivers\etc\hosts, bijvoorbeeld:

10.0.1.9 SAPDBSERVER01 # SAP System Server VPN IP by computer name
10.0.1.9 SAPDBSERVER01.someguid.xx.xxxxxxx.cloudapp.net # SAP System Server VPN IP by fully qualified computer name

Fouten bij het verzenden van IDoc-pakketten van SAP naar uw trigger

Als u geen IDoc-pakketten van SAP naar uw trigger kunt verzenden, controleert u het bericht transactionele RFC (tRFC) dat wordt geweigerd in het dialoogvenster SAP tRFC (T-Code SM58). In de SAP-interface worden mogelijk de volgende foutberichten weergegeven, die zijn geknipt vanwege de subtekenreekslimieten voor het veld Statustekst .

Het segment of de groepsdefinitie E2EDK36001 is niet gevonden in de IDoc-meta

Dit foutbericht betekent dat er verwachte fouten optreden met andere fouten. De fout bij het genereren van een IDoc XML-nettolading is bijvoorbeeld mislukt omdat de segmenten niet door SAP worden vrijgegeven. Als gevolg hiervan ontbreken de metagegevens van het segmenttype die nodig zijn voor conversie.

Als u deze segmenten wilt laten uitbrengen door SAP, neemt u contact op met de ABAP-engineer voor uw SAP-systeem.

De RequestContext op de IReplyChannel is gesloten zonder een antwoord te verzenden

Voor de beheerde SAP-connector betekent dit foutbericht dat er onverwachte fouten optreden wanneer de catch-all-handler voor het kanaal het kanaal beëindigt vanwege een fout en het kanaal opnieuw opbouwt om andere berichten te verwerken.

Notitie

De door SAP beheerde trigger is een webhooktrigger die gebruikmaakt van de SOAP-SAP-adapter. De ingebouwde SAP-trigger is echter een op Azure Functions gebaseerde trigger die geen SOAP SAP-adapter gebruikt en dit foutbericht niet krijgt.

  • Als u wilt bevestigen dat uw werkstroom de IDoc heeft ontvangen, voegt u een antwoordactie toe die een statuscode van 200 OK retourneert. Laat de hoofdtekst leeg en wijzig of voeg deze niet toe aan de kopteksten. De IDoc wordt vervoerd via tRFC, wat geen nettolading van een antwoord toestaat.

  • Als u in plaats daarvan de IDoc wilt weigeren, reageert u met een andere HTTP-statuscode dan 200 OK. De SAP-adapter retourneert vervolgens namens u een uitzondering naar SAP. U moet de IDoc alleen afwijzen om transportfouten terug te sturen naar SAP, zoals een verkeerd gerouteerde IDoc die uw toepassing niet kan verwerken. U moet een IDoc niet afwijzen voor fouten op toepassingsniveau, zoals problemen met de gegevens in de IDoc. Als u de transportacceptatie voor validatie op toepassingsniveau vertraagt, kunnen er negatieve prestaties optreden als gevolg van het blokkeren van uw verbinding met het transport van andere IDocs.

  • Als u dit foutbericht ontvangt en systeemfouten ondervindt bij het aanroepen van Azure Logic Apps, controleert u of u de netwerkinstellingen voor uw on-premises gegevensgatewayservice voor uw specifieke omgeving hebt geconfigureerd. Als uw netwerkomgeving bijvoorbeeld het gebruik van een proxy vereist om Azure-eindpunten aan te roepen, moet u uw on-premises gegevensgatewayservice configureren om uw proxy te gebruiken. Raadpleeg proxyconfiguratie voor meer informatie.

  • Als u dit foutbericht ontvangt en af en toe fouten ondervindt bij het aanroepen van Azure Logic Apps, moet u mogelijk het aantal nieuwe pogingen verhogen of ook het interval voor opnieuw proberen door de volgende stappen uit te voeren:

    1. Controleer de SAP-instellingen in uw configuratiebestand voor de on-premises gegevensgatewayservice met de naam Microsoft.PowerBI.EnterpriseGateway.exe.config.

      1. Voeg onder het configuration hoofdknooppunt een configSections element toe als er geen bestaat.

      2. Voeg onder het configSections knooppunt een section element toe met de volgende kenmerken, als er geen bestaat: name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"

        Belangrijk

        Wijzig de kenmerken in bestaande section elementen niet als deze al bestaan.

        Uw configSections element ziet eruit als de volgende versie, als er geen andere sectie of sectiegroep wordt gedeclareerd in de configuratie van de gatewayservice:

        <configSections>
          <section name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"/>
        </configSections>
        
      3. Voeg onder het configuration hoofdknooppunt een SapAdapterSection element toe als er geen bestaat.

      4. Voeg onder het SapAdapterSection knooppunt een Broker element toe met de volgende kenmerken, als er geen bestaat: WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2"

        Belangrijk

        Wijzig de kenmerken voor het Broker element, zelfs als het element al bestaat.

        Het SapAdapterSection element ziet eruit als de volgende versie, als er geen ander element of kenmerk wordt gedeclareerd in de CONFIGURATIE van de SAP-adapter:

        <SapAdapterSection>
          <Broker WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2" />
        </SapAdapterSection>
        

        De instelling voor het aantal nieuwe pogingen ziet er als WebhookRetryMaximumCount="2"volgt uit. De intervalinstelling voor opnieuw proberen ziet eruit zoals WebhookRetryDefaultDelay="00:00:00.10" de tijdsperiodenotatie is HH:mm:ss.ff.

      Notitie

      Raadpleeg het configuratiebestandschema voor .NET Framework voor meer informatie over het configuratiebestand.

    2. Sla uw wijzigingen op.

    3. Als u de on-premises gegevensgateway gebruikt, start u de gateway opnieuw op.

Volgende stappen