Dela via


Skapa arbetsflöden för vanliga SAP-integreringsscenarier i Azure Logic Apps

Gäller för: Azure Logic Apps (Förbrukning + Standard)

Den här instruktionsguiden visar hur du skapar exempelarbetsflöden för logikappar för några vanliga SAP-integreringsscenarier med hjälp av Azure Logic Apps och SAP-anslutningsappen.

Arbetsflöden för både standard- och förbrukningslogikappen erbjuder den SAP-hanterade anslutningsappen som finns och körs i Azure med flera klientorganisationer. Standardarbetsflöden erbjuder också den inbyggda SAP-tjänstleverantörsanslutningen som finns och körs i Azure Logic Apps med en enda klientorganisation. Om du skapar och är värd för ett förbrukningsarbetsflöde i en integrationstjänstmiljö (ISE) kan du också använda SAP-anslutningsappens ISE-inbyggda version. Mer information finns i Anslut eller teknisk referens.

Förutsättningar

Innan du börjar bör du granska och uppfylla kraven för SAP-anslutningsappen för ditt specifika scenario.

Ta emot meddelanden från SAP

I följande exempel utlöses logikappens arbetsflöde när arbetsflödets SAP-utlösare tar emot ett meddelande från en SAP-server.

Lägga till en SAP-utlösare

Baserat på om du har ett förbrukningsarbetsflöde i Azure Logic Apps för flera klientorganisationer eller ett Standard-arbetsflöde i Azure Logic Apps med en enda klient följer du motsvarande steg:

  1. I Azure-portalen öppnar du logikappen Förbrukning och ett tomt arbetsflöde i designern.

  2. I designern följer du de här allmänna stegen för att lägga till utlösaren för SAP-hanterad anslutningsapp med namnet När ett meddelande tas emot.

  3. Om du uppmanas att göra det anger du följande anslutningsinformation för din lokala SAP-server. Välj Skapa när du är klar. Annars fortsätter du med nästa steg för att konfigurera SAP-utlösaren.

    Parameter Obligatoriskt Beskrivning
    Anslutningens namn Ja Ange ett namn på anslutningen.
    Data Gateway Ja 1. För Prenumeration väljer du Azure-prenumerationen för den datagatewayresurs som du skapade i Azure-portalen för din datagatewayinstallation.

    2. För Anslut ion Gateway väljer du din datagatewayresurs i Azure.
    Client Ja DET SAP-klient-ID som ska användas för att ansluta till DIN SAP-server
    Autentiseringstyp Ja Den autentiseringstyp som ska användas för anslutningen, som måste vara Basic (användarnamn och lösenord). Information om hur du skapar en SNC-anslutning finns i Aktivera säker nätverkskommunikation (SNC).
    SAP-användarnamn Ja Användarnamnet för SAP-servern
    SAP-lösenord Ja Lösenordet för SAP-servern
    Inloggningstyp Ja Välj antingen Programserver eller Grupp (meddelandeserver) och konfigurera sedan motsvarande obligatoriska parametrar, även om de visas som valfria:

    Programserver:
    - AS-värd: Värdnamnet för DIN SAP-programserver
    - AS-tjänst: Tjänstnamnet eller portnumret för DIN SAP-programserver
    - AS-systemnummer: SAP-serverns systemnummer, som sträcker sig från 00 till 99

    Grupp:
    - MS Server-värd: Värdnamnet för sap-meddelandeservern
    - MS-tjänstnamn eller portnummer: Tjänstnamn eller portnummer för SAP-meddelandeservern
    - MS System-ID: System-ID för DIN SAP-server
    - MS-inloggningsgrupp: Inloggningsgruppen för DIN SAP-server. På SAP-servern kan du hitta eller redigera värdet För inloggningsgrupp genom att öppna dialogrutan CCMS: Maintain Logon Groups (T-Code SMLG). Mer information finns i SAP Note 26317 – Konfigurera för inloggningsgrupp för automatisk belastningsutjämning.
    Valv att skriva Nej Det här alternativet är tillgängligt för bakåtkompatibilitet och kontrollerar endast stränglängden. Som standard används stark skrivning för att söka efter ogiltiga värden genom att utföra XML-validering mot schemat. Det här beteendet kan hjälpa dig att identifiera problem tidigare. Läs mer om inställningen Valv att skriva.
    Använda SNC Nej Information om hur du skapar en SNC-anslutning finns i Aktivera säker nätverkskommunikation (SNC).

    Andra valfria tillgängliga anslutningsparametrar finns i Standardanslutningsinformation.

    När Azure Logic Apps har konfigurerat och testar anslutningen visas informationsrutan utlösare. Mer information om eventuella anslutningsproblem finns i Felsöka anslutningar.

  4. Baserat på konfigurationen och scenariot för SAP-servern anger du de nödvändiga parametervärdena för utlösaren När ett meddelande tas emot och lägger till andra tillgängliga utlösarparametrar som du vill använda i ditt scenario.

    Kommentar

    Den här SAP-utlösaren är en webhook-baserad utlösare, inte en avsökningsutlösare, och innehåller inte alternativ för att ange ett avsökningsschema. När du till exempel använder den hanterade SAP-anslutningsappen med den lokala datagatewayen anropas utlösaren endast från datagatewayen när ett meddelande kommer, så ingen avsökning krävs.

    Parameter Obligatoriskt Beskrivning
    GatewayHost Ja Registreringsgatewayvärden för SAP RFC-servern
    GatewayService Ja Registreringsgatewaytjänsten för SAP RFC-servern
    ProgramId Ja Program-ID för registreringsgateway för SAP RFC-servern.

    Obs! Det här värdet är skiftlägeskänsligt. Kontrollera att du konsekvent använder samma skiftlägesformat för program-ID-värdet när du konfigurerar logikappens arbetsflöde och SAP-server. Om du försöker skicka en IDoc till SAP kan tRFC Monitor (T-Code SM58) visa följande fel (länkar kräver SAP-inloggning):

    - Det går inte att hitta funktionen IDOC_INBOUND_ASYNCHRONOUS (2399329)
    - Icke-ABAP RFC-klient (partnertyp) stöds inte (353597)
    DegreeOfParallelism Nej Antalet anrop som ska bearbetas parallellt. Om du vill lägga till den här parametern och ändra värdet går du till listan Lägg till ny parameter , väljer DegreeOfParallelism och anger det nya värdet.
    SapActions Nej Filtrera de meddelanden som du får från SAP-servern baserat på en lista över SAP-åtgärder. Om du vill lägga till den här parametern går du till listan Lägg till ny parameter och väljer SapActions. I det nya avsnittet SapActions använder du filväljaren för att välja en SAP-åtgärd eller ange en åtgärd manuellt för parametern SapActions - 1 . Mer information om SAP-åtgärden finns i Meddelandescheman för IDoc-åtgärder.
    IDoc-format Nej Det format som ska användas för att ta emot IDocs. Om du vill lägga till den här parametern går du till listan Lägg till ny parameter och väljer IDoc-format.

    – Om du vill ta emot IDocs som sap plain XML väljer du SapPlainXml i listan IDoc-format.

    – Om du vill ta emot IDocs som en flat fil väljer du FlatFile i listan IDoc-format.

    - Obs! Om du också använder åtgärden Flat File Decode i arbetsflödet måste du använda egenskapen early_terminate_optional_fields och ange värdet till true i ditt flata filschema. Det här kravet är nödvändigt eftersom den flata IDoc-dataposten som skickas av SAP på tRFC-anropet med namnet IDOC_INBOUND_ASYNCHRONOUS inte är vadderad till den fullständiga SDATA-fältlängden. Azure Logic Apps tillhandahåller originaldata för flatfil-IDoc utan utfyllnad som tagits emot från SAP. När du kombinerar den här SAP-utlösaren med åtgärden Flat File Decode måste det schema som anges för åtgärden matcha.
    Ta emot IDOCS med outgivna segment Nej Ta emot IDocs med eller utan outgivna segment. Om du vill lägga till den här parametern och ändra värdet i listan Lägg till ny parameter väljer du Ta emot IDOCS med ej leasade segment och väljer Ja eller Nej.
    SncPartnerNames Nej Listan över SNC-partner som har behörighet att anropa utlösaren på SAP-klientbiblioteksnivå. Endast de listade partnerna auktoriseras av SAP-serverns SNC-anslutning. Om du vill lägga till den här parametern går du till listan Lägg till ny parameter och väljer SncPartnerNames. Ange varje namn avgränsat med ett lodrätt fält (|).

    I följande exempel visas en i princip konfigurerad SAP-hanterad utlösare i ett förbrukningsarbetsflöde:

    Screenshot shows basically configured SAP managed connector trigger in Consumption workflow.

    I följande exempel visas en SAP-hanterad utlösare där du kan filtrera meddelanden genom att välja SAP-åtgärder:

    Screenshot shows selecting an SAP action to filter messages in a Consumption workflow.

    Eller genom att ange en åtgärd manuellt:

    Screenshot shows manually entering the SAP action to filter messages in a Consumption workflow.

    I följande exempel visas hur åtgärden visas när du konfigurerar utlösaren för att ta emot fler än ett meddelande:

    Screenshot shows example trigger that receives multiple messages in a Consumption workflow.

  5. Spara arbetsflödet så att du kan börja ta emot meddelanden från SAP-servern. I verktygsfältet för designern väljer du Spara.

    Arbetsflödet är nu redo att ta emot meddelanden från SAP-servern.

  6. När utlösaren har utlösts och kört arbetsflödet granskar du arbetsflödets utlösarhistorik för att bekräfta att utlösarregistreringen lyckades.

Ta emot IDoc-paket från SAP

För att ta emot IDoc-paket, som är batchar eller grupper av IDocs, behöver SAP-utlösaren inte extra konfiguration. Men för att bearbeta varje objekt i ett IDoc-paket när utlösaren har tagit emot paketet måste du implementera ytterligare några steg för att dela upp paketet i enskilda IDocs genom att konfigurera SAP för att skicka IDocs i paket.

Följande exempelarbetsflöde visar hur du extraherar enskilda IDocs från ett paket med hjälp xpath() av funktionen:

  1. Innan du börjar behöver du ett arbetsflöde för förbrukning eller standardlogikapp med en SAP-utlösare. Om arbetsflödet inte redan börjar med den här utlösaren följer du föregående steg i den här guiden för att lägga till SAP-utlösaren som kan ta emot meddelanden i arbetsflödet.

  2. Om du vill svara på SAP-servern omedelbart med SAP-begärandestatus lägger du till följande svarsåtgärd baserat på om du använder en SAP-hanterad utlösare eller en inbyggd SAP-utlösare:

    • SAP-hanterad utlösare: För den här utlösaren lägger du till en svarsåtgärd i arbetsflödet.

      I åtgärden Svar använder du någon av följande statuskoder (statusCode):

      Statuskod beskrivning
      202 Accepterad Begäran accepterades för bearbetning, men bearbetningen är inte slutförd ännu.
      204 Inget innehåll Servern har slutfört begäran och det finns inget ytterligare innehåll att skicka i svarsnyttolastens brödtext.
      200 OK Den här statuskoden innehåller alltid en nyttolast, även om servern genererar en nyttolasttext med noll längd.
    • Inbyggd SAP-utlösare: För den här utlösaren lägger du till åtgärden Svara på SAP-server i arbetsflödet.

    Kommentar

    Vi rekommenderar att du lägger till svarsåtgärden direkt efter utlösaren för att frigöra kommunikationskanalen med DIN SAP-server.

  3. Hämta rotnamnområdet från XML-IDoc:t som arbetsflödet tar emot från SAP.

    1. Om du vill extrahera det här namnområdet från XML-dokumentet och lagra namnområdet i en lokal strängvariabel lägger du till åtgärden Initiera variabel .

    2. Byt namn på åtgärdens rubrik till Hämta namnrymd för rotnod i mottagen IDoc.

    3. Ange ett namn för variabeln och ange typen till Sträng.

    4. I åtgärdens värdeparameter väljer du i redigeringsrutan, öppnar uttrycket eller funktionsredigeraren och skapar följande uttryck med hjälp av xpath() funktionen:

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

      Arbetsflöde för förbrukning

      Screenshot shows the expression to get the root node namespace from received IDoc for a Consumption workflow.

      Standardarbetsflöde

      Screenshot shows the expression to get the root node namespace from received IDoc for a Standard workflow.

      När du är klar löser uttrycket och visas nu som följande format:

      Screenshot shows the resolved expression that gets the root node namespace from received IDoc.

  4. Så här extraherar du en enskild IDoc genom att lagra IDoc-samlingen i en lokal matrisvariabel:

    1. Lägg till ytterligare en åtgärd för att initiera variabeln .

    2. Byt namn på åtgärdens rubrik till Hämta matris med IDoc-dataelement.

    3. Ange ett namn för variabeln och ange typen till Matris.

      Matrisvariabeln gör varje IDoc tillgänglig för arbetsflödet att bearbeta individuellt genom att räkna upp över samlingen.

    4. I åtgärdens värdeparameter väljer du i redigeringsrutan, öppnar uttrycket eller funktionsredigeraren och skapar följande xpath() uttryck:

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

      När du är klar löser uttrycket och visas nu som följande format:

      Arbetsflöde för förbrukning

      Screenshot shows the expression to get an array of IDocs for a Consumption workflow.

      I det här exemplet överför följande arbetsflöde varje IDoc till en SFTP-server med hjälp av en kontrollåtgärd med namnet För varje och SFTP-SSH-åtgärden med namnet Skapa fil. Varje IDoc måste innehålla rotnamnområdet, vilket är anledningen till att filinnehållet omsluts i ett <Receive></Receive> element tillsammans med rotnamnområdet innan IDoc skickas till den underordnade appen eller SFTP-servern i det här fallet.

      Screenshot shows sending an IDoc to an SFTP server from a Consumption workflow.

      Kommentar

      För arbetsflöden för förbrukning är det här mönstret tillgängligt som en snabbstartsmall, som du kan välja från mallgalleriet när du skapar en förbrukningslogikappresurs och ett tomt arbetsflöde. Eller när arbetsflödesdesignern är öppen väljer du Mallar i designerverktygsfältet.

      Screenshot that shows selecting the template for getting an IDoc batch.

      Standardarbetsflöde

      Screenshot shows the expression to get an array of IDocs for a Standard workflow.

      I det här exemplet överför följande arbetsflöde varje IDoc till en SFTP-server med hjälp av en kontrollåtgärd med namnet För varje och SFTP-SSH-åtgärden med namnet Skapa fil. Varje IDoc måste innehålla rotnamnområdet, vilket är anledningen till att filinnehållet omsluts i ett <Receive></Receive> element tillsammans med rotnamnområdet innan IDoc skickas till den underordnade appen eller SFTP-servern i det här fallet.

      Screenshot shows sending an IDoc to an SFTP server from a Standard workflow.


Filtrera mottagna meddelanden med SAP-åtgärder

Om du använder DEN SAP-hanterade anslutningsappen eller DEN ISE-versionerade SAP-anslutningsappen, under utlösaren i arbetsflödet, konfigurerar du ett sätt att uttryckligen filtrera bort oönskade åtgärder från DIN SAP-server, baserat på rotnodens namnområde i den mottagna XML-nyttolasten. Du kan ange en lista (matris) med en enda eller flera SAP-åtgärder. Som standard är den här matrisen tom, vilket innebär att arbetsflödet tar emot alla meddelanden från SAP-servern utan filtrering. När du konfigurerar matrisfiltret tar utlösaren endast emot meddelanden från de angivna SAP-åtgärdstyperna och avvisar alla andra meddelanden från SAP-servern. Det här filtret påverkar dock inte om inmatningen av den mottagna nyttolasten är svag eller stark. Sap-åtgärdsfiltrering sker på nivån för SAP-adaptern för din lokala datagateway. Mer information finns i testa hur du testar att skicka IDocs till Azure Logic Apps från SAP.

Konfigurera asynkront mönster för begäran-svar för utlösare

DEN SAP-hanterade anslutningsappen stöder Azures asynkrona mönster för begärandesvar för Azure Logic Apps-utlösare. Du kan använda det här mönstret för att skapa lyckade begäranden som annars skulle misslyckas med standardmönstret för synkron begärandesvar.

Kommentar

I arbetsflöden med flera svarsåtgärder måste alla svarsåtgärder använda samma mönster för begäran-svar. Om arbetsflödet till exempel använder en växelkontroll med flera möjliga svarsåtgärder måste du konfigurera alla svarsåtgärder för att använda samma mönster för begäran-svar, antingen synkront eller asynkront.

Om du aktiverar ett asynkront svar för din svarsåtgärd kan arbetsflödet svara med ett 202-accepterat svar efter att ha accepterat en begäran om bearbetning. Svaret innehåller en platsrubrik som du kan använda för att hämta det slutliga tillståndet för din begäran.

Följ dessa steg för att konfigurera ett asynkront mönster för svar på begäran för arbetsflödet med hjälp av SAP-anslutningsappen:

  1. Öppna arbetsflödet för logikappen i designern. Bekräfta att arbetsflödet börjar med en SAP-utlösare.

  2. Leta reda på åtgärden Svar i arbetsflödet och öppna åtgärdens Inställningar.

  3. Baserat på om du har ett förbruknings- eller standardarbetsflöde följer du motsvarande steg:

    • Förbrukning: Under Asynkront svar ändrar du inställningen från Av till och väljer Klar.
    • Standard: Expandera Nätverk och under Asynkront svar aktiverar du inställningen från Av till .
  4. Spara arbetsflödet.

Skicka IDocs till SAP

Följ dessa exempel för att skapa ett logikapparbetsflöde som skickar en IDoc till en SAP-server och returnerar ett svar:

  1. Skapa ett arbetsflöde för logikappen som utlöses av en HTTP-begäran.
  2. Lägg till en SAP-åtgärd i arbetsflödet för att skicka en IDoc till SAP.
  3. Lägg till en svarsåtgärd i arbetsflödet.
  4. Skapa ett rfc-mönster (remote function call) för begärandesvar om du använder en RFC för att ta emot svar från SAP ABAP.
  5. Testa arbetsflödet.

Lägg till utlösaren Förfrågning

Om du vill att arbetsflödet ska ta emot IDocs från SAP via XML HTTP kan du använda den inbyggda utlösaren Förfrågning. Den här utlösaren skapar en slutpunkt med en URL där SAP-servern kan skicka HTTP POST-begäranden till arbetsflödet. När arbetsflödet tar emot dessa begäranden utlöses utlösaren och kör nästa steg i arbetsflödet.

Om du vill ta emot IDocs via Common Programming Interface Communication (CPIC) som vanlig XML eller som en platt fil läser du avsnittet Ta emot meddelande från SAP.

Baserat på om du har ett förbrukningsarbetsflöde i Azure Logic Apps för flera klientorganisationer eller ett Standard-arbetsflöde i Azure Logic Apps med en enda klient följer du motsvarande steg:

  1. I Azure-portalen skapar du en förbrukningslogikappresurs och ett tomt arbetsflöde i designern.

  2. I designern följer du de här allmänna stegen för att hitta och lägga till den inbyggda utlösaren Begäran med namnet När en HTTP-begäran tas emot.

    Screenshot shows the Request trigger for a Consumption workflow.

  3. Spara arbetsflödet. I verktygsfältet för designern väljer du Spara.

    Det här steget genererar en slutpunkts-URL där utlösaren kan ta emot begäranden från DIN SAP-server, till exempel:

    Screenshot shows the Request trigger's generated endpoint URL for receiving requests in a Consumption workflow.

Lägga till en SAP-åtgärd för att skicka en IDoc

Skapa sedan en åtgärd för att skicka din IDoc till SAP när arbetsflödets utlösare för begäran utlöses. Baserat på om du har ett förbrukningsarbetsflöde i Azure Logic Apps för flera klientorganisationer eller ett Standard-arbetsflöde i Azure Logic Apps med en enda klient följer du motsvarande steg:

  1. I arbetsflödesdesignern går du till utlösaren Begäran och väljer Nytt steg.

  2. I designern följer du de här allmänna stegen för att hitta och lägga till den HANTERADE SAP-åtgärden med namnet Skicka meddelande till SAP.

  3. Om du uppmanas att göra det anger du följande anslutningsinformation för din lokala SAP-server. Välj Skapa när du är klar. Annars fortsätter du med nästa steg för att konfigurera SAP-åtgärden.

    Parameter Obligatoriskt Beskrivning
    Anslutningens namn Ja Ange ett namn på anslutningen.
    Data Gateway Ja 1. För Prenumeration väljer du Azure-prenumerationen för den datagatewayresurs som du skapade i Azure-portalen för din datagatewayinstallation.

    2. För Anslut ion Gateway väljer du din datagatewayresurs i Azure.
    Client Ja DET SAP-klient-ID som ska användas för att ansluta till DIN SAP-server
    Autentiseringstyp Ja Den autentiseringstyp som ska användas för anslutningen, som måste vara Basic (användarnamn och lösenord). Information om hur du skapar en SNC-anslutning finns i Aktivera säker nätverkskommunikation (SNC).
    SAP-användarnamn Ja Användarnamnet för SAP-servern
    SAP-lösenord Ja Lösenordet för SAP-servern
    Inloggningstyp Ja Välj antingen Programserver eller Grupp (meddelandeserver) och konfigurera sedan motsvarande obligatoriska parametrar, även om de visas som valfria:

    Programserver:
    - AS-värd: Värdnamnet för DIN SAP-programserver
    - AS-tjänst: Tjänstnamnet eller portnumret för DIN SAP-programserver
    - AS-systemnummer: SAP-serverns systemnummer, som sträcker sig från 00 till 99

    Grupp:
    - MS Server-värd: Värdnamnet för sap-meddelandeservern
    - MS-tjänstnamn eller portnummer: Tjänstnamn eller portnummer för SAP-meddelandeservern
    - MS System-ID: System-ID för DIN SAP-server
    - MS-inloggningsgrupp: Inloggningsgruppen för DIN SAP-server. På SAP-servern kan du hitta eller redigera värdet För inloggningsgrupp genom att öppna dialogrutan CCMS: Maintain Logon Groups (T-Code SMLG). Mer information finns i SAP Note 26317 – Konfigurera för inloggningsgrupp för automatisk belastningsutjämning.
    Valv att skriva Nej Det här alternativet är tillgängligt för bakåtkompatibilitet och kontrollerar endast stränglängden. Som standard används stark skrivning för att söka efter ogiltiga värden genom att utföra XML-validering mot schemat. Det här beteendet kan hjälpa dig att identifiera problem tidigare. Läs mer om inställningen Valv att skriva.
    Använda SNC Nej Information om hur du skapar en SNC-anslutning finns i Aktivera säker nätverkskommunikation (SNC).

    Andra valfria tillgängliga anslutningsparametrar finns i Standardanslutningsinformation.

    När Azure Logic Apps har konfigurerat och testar anslutningen visas informationsrutan SAP-åtgärd. Mer information om eventuella anslutningsproblem finns i Felsöka anslutningar.

    Screenshot shows a Consumption workflow with the SAP managed action named Send message to SAP.

  4. I åtgärden Skicka meddelande till SAP letar du upp och väljer en tillgänglig SAP-åtgärd på SAP-servern för att skicka IDoc:t.

    Åtgärden Skicka meddelande till SAP är allmän och kan skicka ett meddelande för BAPI, IDoc, RFC eller tRFC, men du måste först välja meddelandetyp och SAP-åtgärd som ska användas.

    1. I redigeringsrutan för SAP-åtgärdsparametern väljer du mappikonen. I listan som öppnas väljer du BAPI, IDOC, RFC eller TRFC. I det här exemplet väljs IDOC. Om du väljer en annan typ ändras de tillgängliga SAP-åtgärderna baserat på ditt val.

      Kommentar

      Om du får felet Felaktig gateway (500) eller Felaktig begäran (400) läser du felet 500 Felaktig gateway eller 400 Felaktig begäran.

      Screenshot shows selecting IDOC for a Consumption workflow.

    2. Bläddra bland mapparna för SAP-åtgärdstyperna med hjälp av pilarna för att hitta och välj den SAP-åtgärd som du vill använda.

      I det här exemplet väljs BESTÄLLNINGAR>ORDERS05>720>Skicka.

      Screenshot shows finding an Orders action for a Consumption workflow.

      Om du inte hittar den åtgärd du vill använda kan du manuellt ange en sökväg, till exempel:

      Screenshot shows manually entering a path to an Orders action type for a Consumption workflow.

      Dricks

      För parametern SAP Action kan du använda uttrycksredigeraren för att ange parametervärdet. På så sätt kan du använda samma SAP-åtgärd för olika meddelandetyper.

      Mer information om IDoc-meddelanden finns i Meddelandescheman för IDoc-åtgärder.

    3. I åtgärden Skicka meddelande till SAP tar du med brödtextutdata från utlösaren Förfrågning.

      1. I parametern Indatameddelande väljer du i redigeringsrutan för att öppna listan med dynamiskt innehåll.

      2. I listan med dynamiskt innehåll går du till När en HTTP-begäran tas emot och väljer Brödtext. Fältet Brödtext innehåller brödtextutdata från utlösaren Förfrågning.

        Kommentar

        Om fältet Brödtext inte visas i listan bredvid etiketten När en HTTP-begäran tas emot väljer du Visa mer.

      Screenshot shows selecting the Request trigger's output named Body for Consumption workflow.

      Åtgärden Skicka meddelande till SAP innehåller nu brödtextinnehållet från utlösaren Förfrågning och skickar utdata till DIN SAP-server, till exempel:

      Screenshot shows completed SAP action for Consumption workflow.

  5. Spara arbetsflödet.

Skicka flata fil-IDocs till SAP-servern (endast hanterad anslutningsapp)

Om du vill skicka en IDoc med ett platt filschema när du använder den hanterade SAP-anslutningsappen kan du omsluta IDoc i ett XML-kuvert och följa de allmänna stegen för att lägga till en SAP-åtgärd för att skicka en IDoc, men med följande ändringar.

Kommentar

Om du använder den inbyggda SAP-anslutningsappen kontrollerar du att du inte omsluter en platt fil-IDoc i ett XML-kuvert.

Radbryt IDoc med XML-kuvert

  1. I DEN SAP-åtgärd som du använder för att skicka meddelandet använder du följande URI:

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

  2. Formatera indatameddelandet med ett XML-kuvert.

I följande exempel visas en XML-exempelnyttolast:

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

Lägga till en svarsåtgärd

Konfigurera nu arbetsflödet så att resultatet från SAP-servern returneras till den ursprungliga beställaren. Följ dessa steg för den här uppgiften:

  1. I arbetsflödesdesignern går du till SAP-åtgärden och väljer Nytt steg.

  2. I designern följer du de här allmänna stegen för att hitta och lägga till den inbyggda åtgärden Begäran med namnet Svar.

  3. I åtgärden Svar för parametern Brödtext väljer du i redigeringsrutan för att öppna listan med dynamiskt innehåll.

  4. I listan med dynamiskt innehåll går du till Skicka meddelande till SAP och väljer Brödtext. Fältet Brödtext innehåller brödtextutdata från SAP-åtgärden.

    Screenshot shows selecting SAP action output named Body for Consumption workflow.

  5. Spara arbetsflödet.

Skapa ett rfc-mönster (remote function call) för begärandesvar

Om du behöver ta emot svar med hjälp av ett fjärrfunktionsanrop (RFC) till Azure Logic Apps från SAP ABAP måste du implementera ett begärande- och svarsmönster för de förbrukningsarbetsflöden som använder den SAP-hanterade anslutningsappen och DEN ISE-versionerade SAP-anslutningsappen. Om du vill ta emot IDocs i arbetsflödet när du använder utlösaren Förfrågning kontrollerar du att arbetsflödets första åtgärd är en svarsåtgärd som använder statuskoden 200 OK utan innehåll. Det här rekommenderade steget slutför omedelbart sap logisk arbetsenhet (LUW) asynkron överföring över tRFC, vilket lämnar SAP CPIC-konversationen tillgänglig igen. Du kan sedan lägga till fler åtgärder i arbetsflödet för bearbetning av mottagna IDoc utan att blockera senare överföringar.

Kommentar

SAP-utlösaren tar emot IDocs via tRFC, som inte har någon svarsparameter, avsiktligt.

Om du vill implementera ett mönster för begäran och svar måste du först identifiera RFC-schemat med kommandot generate schema. Det genererade schemat har två möjliga rotnoder:

  • Begärandenoden, som är det anrop som du tar emot från SAP
  • Svarsnoden, som är ditt svar tillbaka till SAP

I följande exempel STFC_CONNECTION genererar RFC-modulen ett mönster för begäran och svar. XML-begärandet parsas för att extrahera ett nodvärde där SAP begär <ECHOTEXT>. Svaret infogar den aktuella tidsstämpeln som ett dynamiskt värde. Du får ett liknande svar när du skickar en STFC_CONNECTION RFC från ett logikapparbetsflöde till 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>

Testa arbetsflödet

  1. Om din förbrukningslogikappresurs inte redan är aktiverad väljer du Översikt på logikappmenyn. I verktygsfältet väljer du Aktivera.

  2. I designerverktygsfältet väljer du Kör utlösarkörning> för att starta arbetsflödet manuellt.

  3. Om du vill simulera en webhook-utlösarnyttolast skickar du en HTTP POST-begäran till slutpunkts-URL:en som anges av arbetsflödets utlösare för begäran. Se till att inkludera meddelandeinnehållet i din begäran. Om du vill skicka begäran använder du ett verktyg som Postman API-klienten.

    I det här exemplet skickar HTTP POST-begäran en IDoc-fil, som måste vara i XML-format och inkludera namnområdet för den SAP-åtgärd som du valde, till exempel:

    <?xml version="1.0" encoding="UTF-8" ?>
    <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/2/ORDERS05//720/Send">
      <idocData>
        <...>
      </idocData>
    </Send>
    
  4. När du har skickat din HTTP-begäran väntar du på svaret från arbetsflödet.

    Kommentar

    Arbetsflödet kan överskrida tidsgränsen om alla steg som krävs för svaret inte har slutförts inom tidsgränsen för begäran. Om det här villkoret inträffar kan begäranden blockeras. Om du vill hjälpa dig att diagnostisera problem kan du lära dig hur du kan kontrollera och övervaka dina arbetsflöden för logikappar.

Nu har du skapat ett arbetsflöde som kan kommunicera med SAP-servern. Nu när du har konfigurerat en SAP-anslutning för arbetsflödet kan du prova att experimentera med BAPI och RFC.

Valv att skriva

När du skapar en anslutning för den HANTERADE SAP-åtgärden används som standard stark skrivning för att söka efter ogiltiga värden genom att utföra XML-validering mot schemat. Det här beteendet kan hjälpa dig att identifiera problem tidigare. Alternativet Valv att skriva är tillgängligt för bakåtkompatibilitet och kontrollerar endast stränglängden. Om du väljer Valv att skriva behandlas DATS-typen och TIMS-typen i SAP som strängar i stället för deras XML-motsvarigheter xs:date och xs:time, där xmlns:xs="http://www.w3.org/2001/XMLSchema". Valv att skriva påverkar beteendet för all schemagenerering, skicka meddelandet för både nyttolasten "har skickats" och svaret "tagits emot" och utlösaren.

När stark typning används (Valv inte är aktiverat) mappar schemat DATS- och TIMS-typerna till enklare XML-typer:

<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"/>

När du skickar meddelanden med stark typning följer DATS- och TIMS-svaret det matchande XML-typformatet:

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

När Valv inmatning är aktiverat mappar schemat DATS- och TIMS-typerna till XML-strängfält med endast längdbegränsningar, till exempel:

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

När meddelanden skickas med Valv Typning aktiverat ser DATS- och TIMS-svaret ut som i det här exemplet:

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

Avancerade scenarier

Ändra språkrubriker för att skicka data till SAP

När du ansluter till SAP från Azure Logic Apps är engelska standardspråket som används av SAP-anslutningen för att skicka data till DIN SAP-server. Den inbyggda SAP-anslutningsappen och den inbyggda SAP-anslutningsappen hanterar dock att ändra och spara det språk som används på olika sätt.

  • När du skapar en anslutning med den inbyggda SAP-anslutningsappen kan du med anslutningsparametrarna ange och spara värdet för språkparametern som en del av SAP-anslutningsparametrarna.

  • När du skapar en anslutning med den SAP-hanterade anslutningsappen har anslutningsparametrarna inte någon språkparameter. Under den här tiden kan du alltså inte ange eller det språk som ska användas för att skicka data till DIN SAP-server. I stället använder anslutningsappen webbläsarens lokala språk både när arbetsflödet utformas och körs från varje begäran som skickas till servern. Om webbläsaren till exempel är inställd på portugisiska skapar och testar Azure Logic Apps SAP-anslutningen med portugisiska, men sparar inte anslutningen till det språket.

    Du kan dock ange språket för anslutningen med hjälp av http-standardrubriken Accept-Language med dina inkommande begäranden. De flesta webbläsare lägger till en Accept-Language rubrik baserat på dina nationella inställningar. Webbläsaren tillämpar det här huvudet när du skapar en ny SAP-anslutning i arbetsflödesdesignern. Därför kan du antingen uppdatera webbläsarens inställningar så att de använder önskat språk, eller så kan du skapa din SAP-anslutning med Hjälp av Azure Resource Manager i stället för arbetsflödesdesignern.

    Du kan till exempel skicka en begäran med Accept-Language huvudet till logikappens arbetsflöde med hjälp av utlösaren Begäran med namnet När en HTTP-begäran tas emot. Alla åtgärder i arbetsflödet tar emot huvudet. Sedan använder SAP de angivna språken i sina systemmeddelanden, till exempel BAPI-felmeddelanden. Om du inte skickar ett Accept-Language huvud vid körning används engelska som standard.

    Om du använder Accept-Language huvudet kan du få följande fel: Kontrollera kontoinformationen och/eller behörigheterna och försök igen. I det här fallet kontrollerar du SAP-komponentens felloggar i stället. Felet inträffar faktiskt i SAP-komponenten som använder huvudet, så du kan få något av följande felmeddelanden:

    • "SAP. Middleware. Anslut eller. RfcLogonException: Välj ett av de installerade språken"

    • "SAP. Middleware. Anslut eller. RfcAbapMessageException: Välj ett av de installerade språken"

Bekräfta transaktionen separat och explicit

När du skickar transaktioner till SAP från Azure Logic Apps sker det här utbytet i två steg enligt beskrivningen i SAP-dokumentet Transactional RFC Server Programs.

Som standard hanterar sap-åtgärden för hanterad anslutningsapp med namnet Skicka meddelande till SAP båda stegen för att överföra funktionen och bekräfta transaktionen i ett enda anrop. Du har också möjlighet att frikoppla de här stegen. Möjligheten att frikoppla överförings- och bekräftelsestegen är användbar för scenarier där du inte vill duplicera transaktioner i SAP. Sådana scenarier omfattar fel som inträffar på grund av orsaker som nätverksproblem.

Du kan skicka en IDoc utan att automatiskt bekräfta transaktionen med hjälp av åtgärden för SAP-hanterad anslutningsapp med namnet [IDOC] Skicka dokumentet till SAP. Du kan sedan uttryckligen bekräfta transaktionen med hjälp av åtgärden för SAP-hanterad anslutningsapp med namnet [IDOC – RFC] Bekräfta transaktions-ID. När arbetsflödet bekräftar transaktionen separat i ett annat steg slutför SAP-systemet bara transaktionen en gång.

I Standard-arbetsflöden har den inbyggda SAP-anslutningsappen också åtgärder som separat hanterar överförings- och bekräftelsestegen, särskilt [IDoc] Skicka dokument till SAP och [IDOC – RFC] Bekräfta transaktions-ID.

Följande exempelarbetsflöde visar det här mönstret:

  1. Skapa och öppna en förbruknings- eller standardlogikapp med ett tomt arbetsflöde i designern. Lägg till utlösaren Förfrågning.

  2. Följ dessa alternativa steg för att skapa och använda ett IDoc-transaktions-ID i dina SAP-åtgärder för att undvika att skicka duplicerade IDoc:er till SAP.

  3. Lägg till SAP-åtgärden med namnet [IDOC] Skicka dokumentet till SAP i arbetsflödet. Ange informationen för den IDoc som du skickar till DITT SAP-system plus följande värden:

    Parameter Värde beskrivning
    Bekräfta TID Nej Bekräfta inte transaktions-ID:t automatiskt, vilket uttryckligen sker i ett separat steg.
    Transaktions-ID GUID <IDoc-transaction-ID> Om den här parametern inte visas automatiskt öppnar du listan Lägg till nya parametrar och väljer parametern.

    Du kan antingen ange det här värdet manuellt eller så kan anslutningsappen automatiskt generera detta GUID som utdata från åtgärden [IDOC] Skicka dokumentet till SAP . Det här exemplet lämnar den här parametern tom för att automatiskt generera GUID.

    Arbetsflöde för förbrukning

    Screenshot shows Consumption workflow with the action named IDOC Send document to SAP.

    Standardarbetsflöde

    Screenshot shows Standard workflow with the action named IDOC Send document to SAP.

  4. På SAP-åtgärden med namnet [IDOC] Skicka dokumentet till SAP öppnar du Inställningar för att granska återförsöksprincipen.

    Standardalternativet är den rekommenderade principen, men du kan välja en anpassad princip för dina specifika behov. Om du väljer att använda en anpassad princip konfigurerar du minst ett nytt försök att lösa tillfälliga nätverksfel.

  5. Lägg nu till SAP-åtgärden med namnet [IDOC – RFC] Bekräfta transaktions-ID.

    1. I parametern Transaktions-ID väljer du i redigeringsrutan för att öppna listan med dynamiskt innehåll.

    2. I listan under [IDOC] Skicka dokument till SAP väljer du värdet Transaktions-ID , som är utdata från den tidigare SAP-åtgärden.

      Arbetsflöde för förbrukning

      Screenshot shows Consumption workflow with action named Confirm transaction ID, which includes GUID output from previous action.

      Standardarbetsflöde

      Screenshot shows Standard workflow with action named Confirm transaction ID, which includes GUID output from previous action.

    När det här steget har körts markeras den aktuella transaktionen som slutförd i båda ändar, på SAP-anslutningssidan och på SAP-systemsidan.

Undvik att skicka duplicerade IDocs med en transaktions-ID-variabel

Om du får problem med att arbetsflödet skickar duplicerade IDoc:er till SAP kan du skapa en strängvariabel som fungerar som IDoc-transaktionsidentifierare. Du kan sedan använda den här identifieraren för att förhindra duplicerade nätverksöverföringar under förhållanden som tillfälliga avbrott, nätverksproblem eller förlorade bekräftelser.

  1. När du har lagt till utlösaren Förfrågning i designern och innan du lägger till SAP-åtgärden med namnet [IDOC] Skicka dokumentet till SAP lägger du till åtgärden Initialize variable (Initiera variabel) i arbetsflödet.

  2. Byt namn på åtgärden till Skapa IDoc-transaktions-ID.

  3. Ange följande parametervärden i åtgärdsinformationsrutan:

    Parameter Värde Beskrivning
    Namn <variabelnamn> Ett namn på variabeln, till exempel IDocTransactionID
    Typ Sträng Variabeltypen
    Värde guid() Välj i redigeringsrutan, öppna uttrycket eller funktionsredigeraren och ange guid(). Spara dina ändringar.

    Parametern Value är nu inställd på funktionen guid(), som genererar ett GUID.

    Arbetsflöde för förbrukning

    Screenshot shows Consumption workflow with the action named Create transaction ID.

    Standardarbetsflöde

    Screenshot shows Standard workflow with the action named Create transaction ID.

    Kommentar

    SAP-system glömmer en transaktionsidentifierare efter en angiven tid eller 24 timmar som standard. Därför misslyckas SAP aldrig med att bekräfta en transaktionsidentifierare om ID:t eller GUID:t är okänt. Om bekräftelsen för en transaktionsidentifierare misslyckas indikerar det här felet att kommunikation med SAP-systemet misslyckades innan SAP kunde bekräfta bekräftelsen.

  4. Lägg till SAP-åtgärden med namnet [IDOC] Skicka dokumentet till SAP i arbetsflödet. Ange informationen för den IDoc som du skickar till DITT SAP-system plus följande värden:

    Parameter Värde beskrivning
    Bekräfta TID Nej Bekräfta inte transaktions-ID:t automatiskt, vilket uttryckligen sker i ett separat steg.
    Transaktions-ID GUID <IDoc-transaction-ID> Om den här parametern inte visas automatiskt öppnar du listan Lägg till nya parametrar och väljer parametern. Följ dessa steg för att välja den transaktions-ID-variabel som du skapade:

    1. I parametern Transaktions-ID GUID väljer du i redigeringsrutan för att öppna listan med dynamiskt innehåll.

    2. I listan under Variabler väljer du den variabel som du skapade tidigare, som är IDocTransactionID i det här exemplet.

    Arbetsflöde för förbrukning

    Screenshot shows Consumption workflow with action named IDOC Send document to SAP.

    Standardarbetsflöde

    Screenshot shows Standard workflow with action named IDOC Send document to SAP.

  5. För den SAP-hanterade åtgärden med namnet [IDOC] Skicka dokumentet till SAP öppnar du Inställningar för att granska återförsöksprincipen.

    Standardalternativet är den rekommenderade principen, men du kan välja en anpassad princip för dina specifika behov. Om du väljer att använda en anpassad princip konfigurerar du minst ett nytt försök att lösa tillfälliga nätverksfel.

    Kommentar

    Endast åtgärder för hanterade anslutningsappar har för närvarande inställningen Återförsöksprincip, inte inbyggda, tjänstleverantörsbaserade anslutningsappar.

  6. Lägg nu till SAP-åtgärden med namnet [IDOC – RFC] Bekräfta transaktions-ID.

    1. I parametern Transaktions-ID väljer du i redigeringsrutan för att öppna listan med dynamiskt innehåll.

    2. I listan under Variabler anger du namnet på variabeln som du skapade, som är IDocTransactionID i det här exemplet.

      Arbetsflöde för förbrukning

      Screenshot shows Consumption workflow with action named Confirm transaction ID using a variable.

      Standardarbetsflöde

      Screenshot shows Standard workflow with action named Confirm transaction ID using a variable.

  7. Du kan också verifiera dedupliceringen i testmiljön.

    1. Lägg till en annan SAP-åtgärd med namnet [IDOC] Skicka dokumentet till SAP. I parametern Transaktions-ID väljer du det transaktions-ID GUID som du använde i föregående steg.

    2. Om du vill verifiera vilket IDoc-nummer som tilldelas efter varje anrop till åtgärden [IDOC] Skicka dokument till SAP lägger du till åtgärden [IDOC] Hämta IDOC-lista för transaktionen i arbetsflödet med samma transaktions-ID och riktningen Ta emot .

      Om samma IDoc-nummer returneras för båda anropen deduplicerades IDoc.

Om du skickar samma IDoc två gånger kan du verifiera att SAP kan identifiera dupliceringen av tRFC-anropet och matcha de två anropen till ett enda inkommande IDoc-meddelande.

Felsöka problem

Anslutningsproblem

Om du får följande fel när anslutningen skapas finns det ett problem med installationen av SAP NCo-klientbiblioteket:

Testanslutningen misslyckades. Felet "Det gick inte att bearbeta begäran. Felinformation: "det gick inte att läsa in filen eller sammansättningen "sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken 50436dca5c7f7d23" eller något av dess beroenden. Det går inte att hitta den angivna filen.

Se till att installera den version av SAP NCo-klientbiblioteket som krävs och uppfylla alla andra krav.

Fel vid felaktig 500-gateway eller 400

Om du får ett fel med 500 Felaktig gateway eller 400 Felaktig begäran med ett meddelande som liknar tjänsten "sapgw00" okänd misslyckas nätverkstjänstens namnmatchning till portnummer, till exempel:

{
   "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"
            }
         }
      }
   }
}
  • Alternativ 1: I api-anslutningen och utlösarkonfigurationen ersätter du gatewaytjänstens namn med dess portnummer. I exempelfelet sapgw00 måste ersättas med ett verkligt portnummer, till exempel 3300. Det här är det enda tillgängliga alternativet för ISE.

  • Alternativ 2: Om du använder den lokala datagatewayen kan du lägga till gatewaytjänstens namn i portmappningen i %windir%\System32\drivers\etc\services och sedan starta om den lokala datagatewaytjänsten, till exempel:

    sapgw00  3300/tcp
    

Du kan få ett liknande fel när SAP-programservern eller meddelandeserverns namn matchar IP-adressen. För ISE måste du ange IP-adressen för SAP-programservern eller meddelandeservern. För den lokala datagatewayen kan du i stället lägga till namnet i IP-adressmappningen i %windir%\System32\drivers\etc\hosts, till exempel:

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

Fel vid sändning av IDoc-paket från SAP till utlösaren

Om du inte kan skicka IDoc-paket från SAP till utlösaren läser du meddelandet Transactional RFC (tRFC) call rejection i dialogrutan SAP tRFC (T-Code SM58). I SAP-gränssnittet kan du få följande felmeddelanden, som klipps av på grund av delsträngsgränserna i fältet Statustext .

Segment- eller gruppdefinitionen E2EDK36001 hittades inte i IDoc-meta

Det här felmeddelandet innebär att förväntade fel inträffar med andra fel. Det går till exempel inte att generera en IDoc XML-nyttolast eftersom dess segment inte släpps av SAP. Därför saknas de segmenttypsmetadata som krävs för konvertering.

Om du vill att dessa segment ska släppas av SAP kontaktar du ABAP-teknikern för ditt SAP-system.

RequestContext på IReplyChannel stängdes utan att ett svar skickades

För SAP-hanterad anslutningsapp och ISE-versionerad SAP-anslutning innebär det här felmeddelandet att oväntade fel inträffar när catch-all-hanteraren för kanalen avslutar kanalen på grund av ett fel och återskapar kanalen för att bearbeta andra meddelanden.

Kommentar

SAP-hanterad utlösare och ISE-versionerade SAP-utlösare är webhooks som använder DET SOAP-baserade SAP-adaptern. Den inbyggda SAP-utlösaren är dock en Azure Functions-baserad utlösare som inte använder ett SOAP SAP-kort och inte får det här felmeddelandet.

  • Om du vill bekräfta att arbetsflödet tog emot IDoc lägger du till en svarsåtgärd som returnerar en 200 OK-statuskod . Lämna brödtexten tom och ändra eller lägg inte till i rubrikerna. IDoc:t transporteras via tRFC, vilket inte tillåter en nyttolast för svar.

  • Om du vill avvisa IDoc i stället svarar du med någon annan HTTP-statuskod än 200 OK. SAP-adaptern returnerar sedan ett undantag tillbaka till SAP för din räkning. Du bör bara avvisa IDoc för att signalera transportfel tillbaka till SAP, till exempel en felaktig IDoc som programmet inte kan bearbeta. Du bör inte avvisa en IDoc för fel på programnivå, till exempel problem med data som finns i IDoc:t. Om du fördröjer godkännandet av transport för validering på programnivå kan det uppstå negativa prestanda på grund av att anslutningen blockeras från att transportera andra IDocs.

  • Om du får det här felmeddelandet och upplever systemfel som anropar Azure Logic Apps kontrollerar du att du har konfigurerat nätverksinställningarna för din lokala datagatewaytjänst för din specifika miljö. Om din nätverksmiljö till exempel kräver att en proxy används för att anropa Azure-slutpunkter måste du konfigurera din lokala datagatewaytjänst för att använda proxyn. Mer information finns i Proxykonfiguration.

  • Om du får det här felmeddelandet och får tillfälliga fel som anropar Azure Logic Apps kan du behöva öka antalet återförsök eller försöka igen genom att följa dessa steg:

    1. Kontrollera SAP-inställningarna i konfigurationsfilen för din lokala datagatewaytjänst med namnet Microsoft.PowerBI.EnterpriseGateway.exe.config.

      1. Under rotnoden configuration lägger du till ett configSections element, om det inte finns något.

      2. configSections Under noden lägger du till ett section element med följande attribut, om det inte finns något:name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"

        Viktigt!

        Ändra inte attributen i befintliga section element om sådana element redan finns.

        Elementet configSections ser ut som följande version om inget annat avsnitt eller någon annan avsnittsgrupp deklareras i gatewaytjänstkonfigurationen:

        <configSections>
          <section name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"/>
        </configSections>
        
      3. Under rotnoden configuration lägger du till ett SapAdapterSection element, om det inte finns något.

      4. SapAdapterSection Under noden lägger du till ett Broker element med följande attribut, om det inte finns något:WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2"

        Viktigt!

        Ändra attributen för elementet Broker , även om elementet redan finns.

        Elementet SapAdapterSection ser ut som följande version om inget annat element eller attribut deklareras i SAP-adapterkonfigurationen:

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

        Inställningen antal återförsök ser ut som WebhookRetryMaximumCount="2". Inställningen för återförsöksintervall ser ut som WebhookRetryDefaultDelay="00:00:00.10" där tidsintervallformatet är HH:mm:ss.ff.

      Kommentar

      Mer information om konfigurationsfilen finns i Konfigurationsfilschema för .NET Framework.

    2. Spara dina ändringar.

    3. Om du använder den lokala datagatewayen startar du om gatewayen.

Nästa steg