Vytváření pracovních postupů pro běžné scénáře integrace SAP v Azure Logic Apps

Platí pro: Azure Logic Apps (Consumption + Standard)

Tento návod ukazuje, jak vytvořit ukázkové pracovní postupy aplikací logiky pro některé běžné scénáře integrace SAP pomocí Azure Logic Apps a konektoru SAP.

Pracovní postupy aplikací logiky Standard i Consumption nabízejí spravovaný konektor SAP, který je hostovaný a spuštěný v Azure s více tenanty. Standardní pracovní postupy také nabízejí integrovaný konektor poskytovatele služeb SAP, který je hostovaný a spuštěný v Azure Logic Apps s jedním tenantem. Pokud vytváříte a hostujete pracovní postup Consumption v prostředí integrační služby (ISE), můžete také použít nativní verzi konektoru SAP. Další informace najdete v Připojení o technické reference.

Požadavky

Než začnete, nezapomeňte zkontrolovat a splnit požadavky konektoru SAP pro váš konkrétní scénář.

Příjem zpráv ze systému SAP

Následující příklad pracovního postupu aplikace logiky se aktivuje, když trigger SAP pracovního postupu obdrží zprávu ze serveru SAP.

Přidání triggeru SAP

Na základě toho, jestli máte pracovní postup Consumption v Azure Logic Apps s více tenanty nebo standardní pracovní postup v Azure Logic Apps s jedním tenantem, postupujte podle odpovídajících kroků:

  1. Na webu Azure Portal otevřete aplikaci logiky Consumption a prázdný pracovní postup v návrháři.

  2. V návrháři podle těchto obecných kroků přidejte trigger spravovaného konektoru SAP s názvem Při přijetí zprávy.

  3. Pokud se zobrazí výzva, zadejte následující informace o připojení pro místní server SAP. Až budete hotovi, vyberte Vytvořit. V opačném případě pokračujte dalším krokem a nastavte trigger SAP.

    Parametr Požadováno Popis
    Název připojení Ano Zadejte název připojení.
    Brána dat Ano 1. V části Předplatné vyberte předplatné Azure pro prostředek brány dat, který jste vytvořili na webu Azure Portal pro instalaci brány dat.

    2. V Připojení ion Gateway vyberte prostředek brány dat v Azure.
    Klient Ano ID klienta SAP, které se má použít pro připojení k serveru SAP
    Typ ověření Ano Typ ověřování, který se má použít pro vaše připojení, musí být Základní (uživatelské jméno a heslo). Pokud chcete vytvořit připojení SNC, přečtěte si téma Povolení zabezpečené síťové komunikace (SNC).
    Uživatelské jméno SAP Ano Uživatelské jméno pro server SAP
    Heslo SAP Ano Heslo pro server SAP
    Typ přihlášení Ano Vyberte aplikační server nebo skupinu (Server zpráv) a pak nakonfigurujte odpovídající požadované parametry, i když jsou volitelné:

    Aplikační server:
    - Hostitel AS: Název hostitele aplikačního serveru SAP
    - Služba AS: Název služby nebo číslo portu aplikačního serveru SAP
    - As System Number: Systémové číslo serveru SAP, které se pohybuje od 00 do 99

    Skupina:
    - Hostitel serveru MS: Název hostitele pro server zpráv SAP
    - Název služby MS nebo číslo portu: Název služby nebo číslo portu pro server zpráv SAP
    - ID systému MS: ID systému pro váš server SAP
    - Přihlašovací skupina MS: Přihlašovací skupina pro váš server SAP. Na serveru SAP můžete najít nebo upravit hodnotu přihlašovací skupiny otevřením dialogového okna CCMS: Udržovat přihlašovací skupiny (T-Code SMLG). Další informace najdete v SAP Note 26317 – nastavení pro skupinu LOGON pro automatické vyrovnávání zatížení.
    psaní Sejf No Tato možnost je k dispozici pro zpětnou kompatibilitu a kontroluje pouze délku řetězce. Ve výchozím nastavení se silné psaní používá ke kontrole neplatných hodnot provedením ověření XML ve schématu. Toto chování vám může pomoct odhalit problémy dříve. Přečtěte si další informace o nastavení Sejf Psaní.
    Použití SNC No Pokud chcete vytvořit připojení SNC, přečtěte si téma Povolení zabezpečené síťové komunikace (SNC).

    Další volitelné dostupné parametry připojení najdete v tématu Výchozí informace o připojení.

    Jakmile Azure Logic Apps nastaví a otestuje vaše připojení, zobrazí se informační okno triggeru. Další informace o všech problémech s připojením, ke kterým může dojít, najdete v tématu Řešení potíží s připojeními.

  4. Na základě konfigurace a scénáře serveru SAP zadejte potřebné hodnoty parametrů pro trigger Při přijetí zprávy a přidejte všechny další dostupné parametry triggeru, které chcete použít ve vašem scénáři.

    Poznámka:

    Tento trigger SAP je trigger založený na webhooku, ne trigger dotazování a neobsahuje možnosti pro zadání plánu dotazování. Pokud například používáte spravovaný konektor SAP s místní bránou dat, aktivační událost se volá z brány dat jenom v případě, že přijde zpráva, takže není nutné cyklické dotazování.

    Parametr Požadováno Popis
    GatewayHost Ano Hostitel registrační brány pro server SAP RFC
    GatewayService Ano Služba registrační brány pro server SAP RFC
    Id programu Ano ID programu registrační brány pro server SAP RFC.

    Poznámka: V této hodnotě se rozlišují malá a velká písmena. Při konfiguraci pracovního postupu aplikace logiky a serveru SAP se ujistěte, že pro hodnotu ID programu konzistentně používáte stejný formát případu. Jinak se při pokusu o odeslání IDoc do SAP může monitorování TRFC (T-Code SM58) zobrazit následující chyby (odkazy vyžadují přihlášení SAP):

    - IDOC_INBOUND_ASYNCHRONOUS funkce nebyla nalezena (2399329)
    - Klient RFC bez jazyk ABAP (typ partnera) není podporovaný (353597)
    DegreeOfParallelism No Počet volání, která se mají zpracovat paralelně Chcete-li přidat tento parametr a změnit hodnotu, v seznamu Přidat nový parametr vyberte DegreeOfParallelism a zadejte novou hodnotu.
    SapActions No Vyfiltrujte zprávy, které obdržíte ze serveru SAP, na základě seznamu akcí SAP. Pokud chcete přidat tento parametr, v seznamu Přidat nový parametr vyberte SapActions. V nové části SapActions pro parametr SapActions – 1 použijte výběr souboru k výběru akce SAP nebo ručně zadejte akci. Další informace o akci SAP naleznete v tématu Schémata zpráv pro operace IDoc.
    Formát IDoc No Formát, který se má použít pro příjem IDocs. Chcete-li přidat tento parametr, v seznamu Přidat nový parametr vyberte IDoc Format.

    - Pokud chcete dostat IDocs jako SAP plain XML, v seznamu IDoc Format vyberte SapPlainXml.

    - Pokud chcete dostat IDocs jako plochý soubor, v seznamu IDoc Format vyberte FlatFile.

    - Poznámka: Pokud v pracovním postupu používáte také akci Dekódování plochého souboru, musíte ve schématu plochých souborů použít vlastnost early_terminate_optional_fields a nastavit hodnotu na true. Tento požadavek je nutný, protože datový záznam IDoc s plochým souborem odesílaným SAP na volání IDOC_INBOUND_ASYNCHRONOUS tRFC není vycpaný na celou délku pole SDATA. Azure Logic Apps poskytuje původní data IDoc s plochým souborem bez odsazení odsazení ze SAP. Pokud tento trigger SAP zkombinujete s akcí Dekódování plochého souboru, musí se schéma poskytnuté akci shodovat.
    Příjem IDOCS s nerelementovanými segmenty No Přijímat IDocs s nerelementovanými segmenty nebo bez. Pokud chcete přidat tento parametr a změnit hodnotu, vyberte v seznamu Přidat nový parametr možnost Přijmout IDOCS s neuvolněnými segmenty a vyberte Ano nebo Ne.
    SncPartnerNames No Seznam partnerů SNC, kteří mají oprávnění volat trigger na úrovni klientské knihovny SAP. Připojení SNC serveru SAP povoluje pouze uvedené partnery. Chcete-li přidat tento parametr, v seznamu Přidat nový parametr vyberte SncPartnerNames. Nezapomeňte zadat každý název oddělený svislým pruhem (|).

    Následující příklad ukazuje v podstatě nakonfigurovaný trigger spravovaný sap v pracovním postupu Consumption:

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

    Následující příklad ukazuje trigger spravovaný sap, ve kterém můžete filtrovat zprávy výběrem akcí SAP:

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

    Nebo ručním zadáním akce:

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

    Následující příklad ukazuje, jak se akce zobrazí při nastavení triggeru pro příjem více než jedné zprávy:

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

  5. Uložte pracovní postup, abyste mohli začít přijímat zprávy ze serveru SAP. Na panelu nástrojů návrháře vyberte Uložit.

    Váš pracovní postup je teď připravený přijímat zprávy ze serveru SAP.

  6. Jakmile se trigger aktivuje a spustí váš pracovní postup, zkontrolujte historii aktivačních událostí pracovního postupu a ověřte, že registrace triggeru proběhla úspěšně.

Příjem paketů IDoc ze SAP

Pokud chcete přijímat pakety IDoc, což jsou dávky nebo skupiny IDocs, trigger SAP nepotřebuje další konfiguraci. Pokud ale chcete zpracovat každou položku v paketu IDoc po přijetí paketu triggerem, musíte implementovat několik dalších kroků pro rozdělení paketu do jednotlivých IDocs nastavením SAP pro odesílání IDocs v paketech.

Následující příklad pracovního postupu ukazuje, jak extrahovat jednotlivé IDocs z paketu pomocí xpath() funkce:

  1. Než začnete, potřebujete pracovní postup aplikace logiky Consumption nebo Standard s triggerem SAP. Pokud váš pracovní postup ještě nezačíná s tímto triggerem, postupujte podle předchozích kroků v tomto průvodci a přidejte trigger SAP, který může přijímat zprávy do pracovního postupu.

  2. Pokud chcete okamžitě odpovědět na server SAP se stavem požadavku SAP, přidejte následující akci odpovědi na základě toho, jestli používáte trigger spravovaný SAP nebo předdefinovaný trigger SAP:

    • Trigger spravovaný sap: Pro tento trigger přidejte do pracovního postupu akci Odpovědi.

      V akci Odpověď použijte jeden z následujících stavových kódů (statusCode):

      Stavový kód Popis
      202 Přijato Žádost byla přijata ke zpracování, ale zpracování ještě není dokončené.
      204 Bez obsahu Server požadavek úspěšně splnil a v těle datové části odpovědi neexistuje žádný další obsah.
      200 OK Tento stavový kód vždy obsahuje datovou část, i když server vygeneruje tělo datové části nulové délky.
    • Předdefinovaná aktivační událost SAP: Pro tuto aktivační událost přidejte do pracovního postupu akci Odpovědět na server SAP.

    Poznámka:

    Osvědčeným postupem je přidat akci odpovědi hned po triggeru a uvolnit komunikační kanál se serverem SAP.

  3. Získejte kořenový obor názvů z IDoc XML, který váš pracovní postup obdrží ze SAP.

    1. Chcete-li extrahovat tento obor názvů z dokumentu XML a uložit obor názvů do místní řetězcové proměnné, přidejte akci Inicializovat proměnnou .

    2. Přejmenujte název akce na Získání oboru názvů pro kořenový uzel v přijatéM souboru IDoc.

    3. Zadejte název proměnné a nastavte typ na String.

    4. V parametru Value akce vyberte uvnitř textového pole, otevřete výraz nebo editor funkcí a pomocí funkce vytvořte následující výrazxpath():

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

      Pracovní postup Consumption

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

      Standardní pracovní postup

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

      Až budete hotovi, výraz se přeloží a zobrazí se jako následující formát:

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

  4. Pokud chcete extrahovat jednotlivý IDoc uložením kolekce IDoc do místní proměnné pole, postupujte takto:

    1. Přidejte další akci inicializovat proměnnou .

    2. Přejmenujte název akce na Získání pole s datovými prvky IDoc.

    3. Zadejte název proměnné a nastavte typ na Array.

      Proměnná pole zpřístupňuje každý IDoc vašemu pracovnímu postupu ke zpracování jednotlivě pomocí výčtu kolekce.

    4. V parametru Value akce vyberte uvnitř textového pole, otevřete výraz nebo editor funkcí a vytvořte následující xpath() výraz:

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

      Až budete hotovi, výraz se přeloží a zobrazí se jako následující formát:

      Pracovní postup Consumption

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

      V tomto příkladu následující pracovní postup přenese každý IDoc na server SFTP pomocí akce ovládacího prvku s názvem Pro každý a akce SFTP-SSH s názvem Vytvořit soubor. Každý IDoc musí obsahovat kořenový obor názvů, což je důvod, proč je obsah souboru zabalen uvnitř <Receive></Receive> elementu spolu s kořenovým oborem názvů před odesláním IDoc do podřízené aplikace nebo serveru SFTP v tomto případě.

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

      Poznámka:

      U pracovních postupů Consumption je tento vzor k dispozici jako šablona rychlého startu, kterou si můžete vybrat z galerie šablon při vytváření prostředku aplikace logiky Consumption a prázdného pracovního postupu. Nebo když je návrhář pracovního postupu otevřený, na panelu nástrojů návrháře vyberte Šablony.

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

      Standardní pracovní postup

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

      V tomto příkladu následující pracovní postup přenese každý IDoc na server SFTP pomocí akce ovládacího prvku s názvem Pro každý a akce SFTP-SSH s názvem Vytvořit soubor. Každý IDoc musí obsahovat kořenový obor názvů, což je důvod, proč je obsah souboru zabalen uvnitř <Receive></Receive> elementu spolu s kořenovým oborem názvů před odesláním IDoc do podřízené aplikace nebo serveru SFTP v tomto případě.

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


Filtrování přijatých zpráv pomocí akcí SAP

Pokud používáte spravovaný konektor SAP nebo konektor SAP verze ISE, nastavte v rámci triggeru v pracovním postupu způsob, jak explicitně vyfiltrovat všechny nežádoucí akce ze serveru SAP na základě oboru názvů kořenového uzlu v přijaté datové části XML. Seznam (pole) můžete poskytnout s jednou nebo několika akcemi SAP. Ve výchozím nastavení je toto pole prázdné, což znamená, že váš pracovní postup přijímá všechny zprávy ze serveru SAP bez filtrování. Když nastavíte filtr pole, trigger přijme zprávy pouze ze zadaných typů akcí SAP a odmítne všechny ostatní zprávy ze serveru SAP. Tento filtr ale nemá vliv na to, jestli je zadávání přijaté datové části slabé nebo silné. Filtrování akcí SAP probíhá na úrovni adaptéru SAP pro vaši místní bránu dat. Další informace najdete v tématu testování odesílání IDocs do Azure Logic Apps ze SAP.

Nastavení vzoru asynchronní odpovědi na požadavek pro triggery

Spravovaný konektor SAP podporuje model asynchronní odpovědi na žádosti a odpovědi Azure pro triggery Azure Logic Apps. Tento model můžete použít k vytvoření úspěšných požadavků, které by jinak selhaly s výchozím vzorem synchronní odpovědi na požadavek.

Poznámka:

V pracovních postupech s více akcemi odpovědi musí všechny akce odpovědi používat stejný vzor odpovědi na požadavek. Pokud například váš pracovní postup používá ovládací prvek přepínače s několika možnými akcemi odpovědi , musíte nastavit všechny akce odpovědi tak, aby používaly stejný vzor odpovědi požadavku, buď synchronní, nebo asynchronní.

Pokud pro akci Odpověď povolíte asynchronní odpověď, pracovní postup může po přijetí žádosti o zpracování odpovědět s odpovědí 202 Přijato. Odpověď obsahuje hlavičku umístění, kterou můžete použít k načtení konečného stavu vaší žádosti.

Pokud chcete nakonfigurovat vzor asynchronní odpovědi na požadavek pro váš pracovní postup pomocí konektoru SAP, postupujte takto:

  1. V návrháři otevřete pracovní postup aplikace logiky. Ověřte, že váš pracovní postup začíná triggerem SAP.

  2. V pracovním postupu vyhledejte akci Odpověď a otevřete ji Nastavení.

  3. Na základě toho, jestli máte pracovní postup Consumption nebo Standard, postupujte podle odpovídajících kroků:

    • Spotřeba: V části Asynchronní odpověď vypněte nastavení z Vypnuto na Zapnuto a vyberte Hotovo.
    • Standardní: Rozbalte sítě a v části Asynchronní odpověď vypněte nastavení z Vypnuto na Zapnuto.
  4. Uložte pracovní postup.

Odeslání IDocs do SAP

Pokud chcete vytvořit pracovní postup aplikace logiky, který odešle IDoc na server SAP a vrátí odpověď, postupujte podle těchto příkladů:

  1. Vytvořte pracovní postup aplikace logiky aktivovaný požadavkem HTTP.
  2. Přidejte do pracovního postupu akci SAP pro odeslání IDoc do SAP.
  3. Přidejte do pracovního postupu akci odpovědi.
  4. Pokud k příjmu odpovědí ze sap jazyk ABAP používáte RFC, vytvořte vzor odpovědi RFC (remote function call).
  5. Otestujte svůj pracovní postup.

Přidání triggeru požadavku

Pokud chcete, aby váš pracovní postup přijímal IDocs ze SAP přes XML HTTP, můžete použít předdefinovaný trigger požadavku. Tento trigger vytvoří koncový bod s adresou URL, kde server SAP může odesílat požadavky HTTP POST do pracovního postupu. Když pracovní postup obdrží tyto požadavky, aktivuje se trigger a spustí další krok v pracovním postupu.

Pokud chcete přijímat IDocs přes běžnou komunikaci programovacího rozhraní (CPIC) jako prostý XML nebo jako plochý soubor, přečtěte si část Příjem zprávy ze SAP.

Na základě toho, jestli máte pracovní postup Consumption v Azure Logic Apps s více tenanty nebo standardní pracovní postup v Azure Logic Apps s jedním tenantem, postupujte podle odpovídajících kroků:

  1. Na webu Azure Portal vytvořte prostředek aplikace logiky Consumption a prázdný pracovní postup v návrháři.

  2. V návrháři pomocí těchto obecných kroků vyhledejte a přidejte předdefinovaný trigger požadavku s názvem Při přijetí požadavku HTTP.

    Screenshot shows the Request trigger for a Consumption workflow.

  3. Uložte pracovní postup. Na panelu nástrojů návrháře vyberte Uložit.

    Tento krok vygeneruje adresu URL koncového bodu, kde trigger může přijímat požadavky ze serveru SAP, například:

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

Přidání akce SAP pro odeslání IDoc

Potom vytvořte akci, která odešle IDoc do SAP, když se aktivuje žádost pracovního postupu. Na základě toho, jestli máte pracovní postup Consumption v Azure Logic Apps s více tenanty nebo standardní pracovní postup v Azure Logic Apps s jedním tenantem, postupujte podle odpovídajících kroků:

  1. V návrháři pracovního postupu pod triggerem Požadavku vyberte Nový krok.

  2. V návrháři postupujte podle těchto obecných kroků a najděte a přidejte akci spravovanou SAP s názvem Odeslat zprávu do SAP.

  3. Pokud se zobrazí výzva, zadejte následující informace o připojení pro místní server SAP. Až budete hotovi, vyberte Vytvořit. V opačném případě pokračujte dalším krokem a nastavte akci SAP.

    Parametr Požadováno Popis
    Název připojení Ano Zadejte název připojení.
    Brána dat Ano 1. V části Předplatné vyberte předplatné Azure pro prostředek brány dat, který jste vytvořili na webu Azure Portal pro instalaci brány dat.

    2. V Připojení ion Gateway vyberte prostředek brány dat v Azure.
    Klient Ano ID klienta SAP, které se má použít pro připojení k serveru SAP
    Typ ověření Ano Typ ověřování, který se má použít pro vaše připojení, musí být Základní (uživatelské jméno a heslo). Pokud chcete vytvořit připojení SNC, přečtěte si téma Povolení zabezpečené síťové komunikace (SNC).
    Uživatelské jméno SAP Ano Uživatelské jméno pro server SAP
    Heslo SAP Ano Heslo pro server SAP
    Typ přihlášení Ano Vyberte aplikační server nebo skupinu (Server zpráv) a pak nakonfigurujte odpovídající požadované parametry, i když jsou volitelné:

    Aplikační server:
    - Hostitel AS: Název hostitele aplikačního serveru SAP
    - Služba AS: Název služby nebo číslo portu aplikačního serveru SAP
    - As System Number: Systémové číslo serveru SAP, které se pohybuje od 00 do 99

    Skupina:
    - Hostitel serveru MS: Název hostitele pro server zpráv SAP
    - Název služby MS nebo číslo portu: Název služby nebo číslo portu pro server zpráv SAP
    - ID systému MS: ID systému pro váš server SAP
    - Přihlašovací skupina MS: Přihlašovací skupina pro váš server SAP. Na serveru SAP můžete najít nebo upravit hodnotu přihlašovací skupiny otevřením dialogového okna CCMS: Udržovat přihlašovací skupiny (T-Code SMLG). Další informace najdete v SAP Note 26317 – nastavení pro skupinu LOGON pro automatické vyrovnávání zatížení.
    psaní Sejf No Tato možnost je k dispozici pro zpětnou kompatibilitu a kontroluje pouze délku řetězce. Ve výchozím nastavení se silné psaní používá ke kontrole neplatných hodnot provedením ověření XML ve schématu. Toto chování vám může pomoct odhalit problémy dříve. Přečtěte si další informace o nastavení Sejf Psaní.
    Použití SNC No Pokud chcete vytvořit připojení SNC, přečtěte si téma Povolení zabezpečené síťové komunikace (SNC).

    Další volitelné dostupné parametry připojení najdete v tématu Výchozí informace o připojení.

    Jakmile Azure Logic Apps nastaví a otestuje vaše připojení, zobrazí se okno s informacemi o akci SAP. Další informace o všech problémech s připojením, ke kterým může dojít, najdete v tématu Řešení potíží s připojeními.

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

  4. V akci Odeslat do SAP vyhledejte a vyberte dostupnou akci SAP na vašem serveru SAP, která odešle IDoc.

    Akce Odeslat do SAP je obecná a může odeslat zprávu pro BAPI, IDoc, RFC nebo tRFC, ale musíte nejprve vybrat typ zprávy a akci SAP, která se má použít.

    1. V textovém poli parametru akce SAP vyberte ikonu složky. V seznamu, který se otevře, vyberte BAPI, IDOC, RFC nebo TRFC. Tento příklad vybere IDOC. Pokud vyberete jiný typ, změní se dostupné akce SAP na základě vašeho výběru.

      Poznámka:

      Pokud se zobrazí chyba Chybná brána (500) nebo Chybný požadavek (400), podívejte se na chybu 500 Chybná brána nebo 400 Chybná žádost.

      Screenshot shows selecting IDOC for a Consumption workflow.

    2. Pomocí šipek procházejte složky typů akcí SAP a vyhledejte a vyberte akci SAP, kterou chcete použít.

      Tento příklad vybere OBJEDNÁVKY>ORDERS05>720>Odeslat.

      Screenshot shows finding an Orders action for a Consumption workflow.

      Pokud požadovanou akci nemůžete najít, můžete cestu zadat ručně, například:

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

      Tip

      Pro parametr akce SAP můžete k zadání hodnoty parametru použít editor výrazů. Tímto způsobem můžete použít stejnou akci SAP pro různé typy zpráv.

      Další informace o zprávách IDoc naleznete v schématech zpráv pro operace IDoc.

    3. Do akce Odeslat do SAP zahrňte výstup textu z triggeru požadavku.

      1. V parametru Vstupní zpráva vyberte uvnitř pole pro úpravy a otevřete seznam dynamického obsahu.

      2. V seznamu dynamického obsahu v části Při přijetí požadavku HTTP vyberte Text. Pole Text obsahuje výstup textu z triggeru požadavku.

        Poznámka:

        Pokud se pole Text nezobrazí v seznamu, vedle popisku Při přijetí požadavku HTTP vyberte Zobrazit více.

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

      Akce Odeslat do SAP teď obsahuje základní obsah z triggeru požadavku a odešle tento výstup na server SAP, například:

      Screenshot shows completed SAP action for Consumption workflow.

  5. Uložte pracovní postup.

Odeslání plochých souborů IDocs na server SAP (jenom spravovaný konektor)

Pokud chcete odeslat IDoc pomocí plochého schématu souborů při použití spravovaného konektoru SAP, můžete zabalit IDoc do obálky XML a podle obecných kroků přidat akci SAP pro odeslání IDoc, ale s následujícími změnami.

Poznámka:

Pokud používáte integrovaný konektor SAP, ujistěte se, že nezabalíte plochý soubor IDoc do obálky XML.

Zabalení IDoc s obálkou XML

  1. V akci SAP, kterou používáte k odeslání zprávy, použijte následující identifikátor URI:

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

  2. Naformátujte vstupní zprávu obálkou XML.

Následující příklad ukazuje ukázkovou datovou část XML:

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

Přidání akce odpovědi

Teď nastavte pracovní postup tak, aby vrátil výsledky ze serveru SAP původnímu žadateli. Pro tento úkol postupujte takto:

  1. V návrháři pracovního postupu pod akcí SAP vyberte Nový krok.

  2. V návrháři vyhledejte a přidejte integrovanou akci Požadavku s názvem Odpověď podle těchto obecných kroků.

  3. V akci Odpověď u parametru Text vyberte uvnitř pole pro úpravy a otevřete seznam dynamického obsahu.

  4. V seznamu dynamického obsahu v části Odeslat zprávu do SAP vyberte Text. Pole Tělo obsahuje výstup textu z akce SAP.

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

  5. Uložte pracovní postup.

Vytvoření vzoru žádosti a odpovědi rfc (remote function call)

Pokud potřebujete přijímat odpovědi pomocí vzdáleného volání funkce (RFC) do Azure Logic Apps ze sap jazyk ABAP, musíte pro pracovní postupy Consumption, které používají spravovaný konektor SAP a konektor SAP ve verzi ISE. Pokud chcete v pracovním postupu při použití triggeru požadavku přijmout IDocs, ujistěte se, že první akce pracovního postupu je akce Odpovědi, která používá stavový kód 200 OK bez jakéhokoli obsahu. Tento doporučený krok okamžitě dokončí asynchronní přenos logické jednotky SAP (LUW) přes tRFC, který opustí konverzaci SAP CPIC znovu k dispozici. Pak můžete do pracovního postupu přidat další akce pro zpracování přijatého IDoc bez blokování pozdějších přenosů.

Poznámka:

Trigger SAP obdrží IDocs přes tRFC, který nemá parametr odpovědi podle návrhu.

Pokud chcete implementovat vzor požadavků a odpovědí, musíte nejprve pomocí příkazu zjistit schéma generate schema RFC. Vygenerované schéma má dva možné kořenové uzly:

  • Uzel požadavku, což je volání, které obdržíte ze SAP
  • Uzel odpovědi, což je vaše odpověď zpět na SAP

V následujícím příkladu STFC_CONNECTION vygeneruje modul RFC vzor požadavku a odpovědi. Xml požadavku se analyzuje a extrahuje hodnotu uzlu, kde požadavky <ECHOTEXT>SAP . Odpověď vloží aktuální časové razítko jako dynamickou hodnotu. Při odeslání STFC_CONNECTION dokumentu RFC z pracovního postupu aplikace logiky do SAP obdržíte podobnou odpověď.

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

Otestování pracovního postupu

  1. Pokud prostředek aplikace logiky Consumption ještě není povolený, vyberte v nabídce aplikace logiky přehled. Na panelu nástrojů vyberte Povolit.

  2. Na panelu nástrojů návrháře vyberte Spustit spuštění triggeru>a spusťte pracovní postup ručně.

  3. Pokud chcete simulovat datovou část triggeru webhooku, odešlete požadavek HTTP POST na adresu URL koncového bodu určenou triggerem požadavku vašeho pracovního postupu. Nezapomeňte do žádosti zahrnout obsah zprávy. K odeslání požadavku použijte nástroj, jako je klient rozhraní API Postman.

    V tomto příkladu požadavek HTTP POST odešle soubor IDoc, který musí být ve formátu XML a zahrnout obor názvů pro vybranou akci SAP, například:

    <?xml version="1.0" encoding="UTF-8" ?>
    <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/2/ORDERS05//720/Send">
      <idocData>
        <...>
      </idocData>
    </Send>
    
  4. Po odeslání požadavku HTTP počkejte na odpověď z pracovního postupu.

    Poznámka:

    Pokud se všechny kroky potřebné pro odpověď nedokončí v rámci limitu časového limitu požadavku, může dojít k vypršení časového limitu pracovního postupu. Pokud k této podmínce dojde, můžou se požadavky zablokovat. Pokud chcete pomoct s diagnostikou problémů, zjistěte, jak můžete kontrolovat a monitorovat pracovní postupy aplikací logiky.

Teď jste vytvořili pracovní postup, který může komunikovat se serverem SAP. Teď, když jste pro svůj pracovní postup nastavili připojení SAP, můžete zkusit experimentovat s BAPI a RFC.

Sejf psaní

Při vytváření připojení pro spravovanou operaci SAP se ve výchozím nastavení používá silné psaní ke kontrole neplatných hodnot provedením ověření XML ve schématu. Toto chování vám může pomoct odhalit problémy dříve. Možnost Sejf Psaní je k dispozici pro zpětnou kompatibilitu a kontroluje pouze délku řetězce. Pokud zvolíte Sejf Psaní, typ DATS a typ TIMS v SAP se považují za řetězce, nikoli jako jejich ekvivalenty XML, xs:date a xs:timekde xmlns:xs="http://www.w3.org/2001/XMLSchema". Sejf psaní má vliv na chování pro všechny generování schématu, odeslat zprávu pro datovou část "byla odeslána" i odpověď "byla přijata" a aktivační událost.

Při použití silného psaní (Sejf Psaní není povoleno), schéma mapuje typy DATS a TIMS na jednodušší typy XML:

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

Při odesílání zpráv pomocí silného psaní odpovídá odpověď DATS a TIMS odpovídající formát typu XML:

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

Pokud je povoleno psaní Sejf, schéma mapuje typy DATS a TIMS na pole řetězců XML s omezením délky, například:

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

Když se odesílají zprávy s povoleným Sejf Psaní, vypadá odpověď DATS a TIMS jako v tomto příkladu:

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

Pokročilé scénáře

Změna hlaviček jazyka pro odesílání dat do SAP

Když se připojíte k SAP z Azure Logic Apps, angličtina je výchozím jazykem používaným připojením SAP k odesílání dat na server SAP. Spravovaný konektor SAP a integrovaný konektor SAP ale zpracovávají změny a ukládání jazyka používaného různými způsoby.

  • Když vytvoříte připojení s integrovaným konektorem SAP, parametry připojení umožňují zadat a uložit hodnotu parametru jazyka jako součást parametrů připojení SAP.

  • Když vytvoříte připojení ke spravovanému konektoru SAP, parametry připojení nemají parametr jazyka. Během této doby tedy nemůžete zadat ani jazyk, který se má použít k odesílání dat na server SAP. Místo toho konektor v době návrhu pracovního postupu i v době běhu používá místní jazyk webového prohlížeče z každého požadavku odeslaného na váš server. Pokud je například váš prohlížeč nastavený na portugalštinu, Azure Logic Apps vytvoří a otestuje připojení SAP s portugalštinou, ale neuloží připojení s tímto jazykem.

    Jazyk připojení ale můžete nastavit pomocí standardní hlavičky Accept-Language HTTP s příchozími požadavky. Většina webových prohlížečů přidá hlavičku Accept-Language na základě nastavení národního prostředí. Při vytváření nového připojení SAP v návrháři pracovního postupu použije webový prohlížeč tuto hlavičku. Můžete tedy aktualizovat nastavení webového prohlížeče tak, aby používal preferovaný jazyk, nebo můžete vytvořit připojení SAP pomocí Azure Resource Manageru místo návrháře pracovního postupu.

    Můžete například odeslat požadavek s Accept-Language hlavičkou do pracovního postupu aplikace logiky pomocí triggeru požadavku s názvem Při přijetí požadavku HTTP. Všechny akce v pracovním postupu obdrží hlavičku. Sap pak používá zadané jazyky ve svých systémových zprávách, jako jsou chybové zprávy BAPI. Pokud hlavičku Accept-Language nezadáte za běhu, použije se ve výchozím nastavení angličtina.

    Pokud používáte hlavičku Accept-Language , může se zobrazit následující chyba: Zkontrolujte prosím informace o účtu nebo oprávnění a zkuste to znovu. V tomto případě místo toho zkontrolujte protokoly chyb komponenty SAP. K chybě skutečně dochází v komponentě SAP, která používá hlavičku, takže se může zobrazit jedna z těchto chybových zpráv:

    • "SAP. Middleware. Připojení or. RfcLogonException: Vyberte jeden z nainstalovaných jazyků"

    • "SAP. Middleware. Připojení or. RfcAbapMessageException: Vyberte jeden z nainstalovaných jazyků"

Potvrzení transakce samostatně a explicitně

Když odesíláte transakce do SAP z Azure Logic Apps, dojde k této výměně ve dvou krocích, jak je popsáno v dokumentu SAP, transakčních serverových programech RFC.

Ve výchozím nastavení akce spravovaného konektoru SAP s názvem Odeslat zprávu do SAP zpracovává kroky pro přenos funkce a potvrzení transakce v jednom volání. Můžete také oddělit tyto kroky. Funkce oddělení postupu přenosu a potvrzení je užitečná ve scénářích, kdy nechcete duplikovat transakce v SAP. Mezi takové scénáře patří selhání, ke kterým dochází kvůli příčinám, jako jsou problémy se sítí.

Můžete odeslat IDoc bez automatického potvrzení transakce pomocí akce sap spravovaného konektoru s názvem [IDOC] Odeslat dokument do SAP. Transakce pak můžete explicitně potvrdit pomocí akce spravovaného konektoru SAP s názvem [IDOC – RFC] Potvrzení ID transakce. Když váš pracovní postup zvlášť potvrdí transakci v jiném kroku, systém SAP transakci dokončí pouze jednou.

Ve standardních pracovních postupech má integrovaný konektor SAP také akce, které samostatně zpracovávají kroky přenosu a potvrzení, konkrétně [IDoc] Odeslat dokument do SAP a [IDOC – RFC] Potvrdit ID transakce.

Následující ukázkový pracovní postup ukazuje tento vzor:

  1. Vytvořte a otevřete aplikaci logiky Consumption nebo Standard s prázdným pracovním postupem v návrháři. Přidejte trigger požadavku.

  2. Chcete-li zabránit odesílání duplicitních IDocs do SAP, postupujte podle těchto alternativních kroků k vytvoření a použití ID transakce IDoc v akcích SAP.

  3. Přidejte akci SAP s názvem [IDOC] Odeslat dokument do SAP do pracovního postupu. Zadejte informace pro IDoc, který odešlete do systému SAP a následující hodnoty:

    Parametr Hodnota Popis
    Potvrdit TID Ne Nepotvrzujte automaticky ID transakce, které se explicitně provádí v samostatném kroku.
    IDENTIFIKÁTOR GUID ID transakce <IDoc-transaction-ID> Pokud se tento parametr nezobrazí automaticky, otevřete seznam Přidat nové parametry a vyberte parametr.

    Tuto hodnotu můžete zadat ručně nebo konektor může tento identifikátor GUID automaticky vygenerovat jako výstup akce [IDOC] Odeslat dokument do sap . Tento příklad ponechá tento parametr prázdný, aby automaticky vygeneroval identifikátor GUID.

    Pracovní postup Consumption

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

    Standardní pracovní postup

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

  4. Na akci SAP s názvem [IDOC] Odeslat dokument do SAP otevřete Nastavení a zkontrolujte zásady opakování.

    Výchozí možnost je doporučená zásada, ale můžete vybrat vlastní zásadu pro vaše konkrétní potřeby. Pokud se rozhodnete použít vlastní zásadu, nastavte aspoň jeden pokus o vyřešení dočasných výpadků sítě.

  5. Teď přidejte akci SAP s názvem [IDOC – RFC] Potvrdit ID transakce.

    1. V parametru ID transakce vyberte uvnitř pole pro úpravy a otevřete seznam dynamického obsahu.

    2. V seznamu v části [IDOC] Odeslat dokument do SAP vyberte hodnotu ID transakce, což je výstup z předchozí akce SAP.

      Pracovní postup Consumption

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

      Standardní pracovní postup

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

    Po spuštění tohoto kroku se aktuální transakce označí jako dokončená na obou koncích, na straně konektoru SAP a na straně systému SAP.

Vyhněte se odesílání duplicitních IDocs s proměnnou ID transakce

Pokud při odesílání duplicitních IDocs do SAP dochází k potížím s pracovním postupem, můžete vytvořit řetězcovou proměnnou, která slouží jako identifikátor transakce IDoc. Pomocí tohoto identifikátoru pak můžete zabránit duplicitním přenosům v sítích za podmínek, jako jsou dočasné výpadky, problémy se sítí nebo ztracené potvrzení.

  1. V návrháři po přidání triggeru požadavku a před přidáním akce SAP s názvem [IDOC] Odeslat dokument do SAP přidejte akci s názvem Inicializovat proměnnou do pracovního postupu.

  2. Přejmenujte akci na Vytvoření ID transakce IDoc.

  3. Do pole s informacemi o akci zadejte následující hodnoty parametrů:

    Parametr Hodnota Popis
    Jméno <variable-name> Název proměnné, například IDocTransactionID
    Typ Řetězec Typ proměnné
    Hodnota guid() Vyberte uvnitř textového pole, otevřete výraz nebo editor funkcí a zadejte guid(). Uloží vaše změny.

    Parametr Value je nyní nastaven na funkci guid(), která generuje identifikátor GUID.

    Pracovní postup Consumption

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

    Standardní pracovní postup

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

    Poznámka:

    Systémy SAP zapomenou identifikátor transakce po zadaném čase nebo ve výchozím nastavení 24 hodin. V důsledku toho SAP nikdy nepovede potvrdit identifikátor transakce, pokud je ID nebo IDENTIFIKÁTOR GUID neznámý. Pokud potvrzení identifikátoru transakce selže, znamená to, že komunikace se systémem SAP selhala předtím, než sap dokázal potvrzení potvrdit.

  4. Přidejte akci SAP s názvem [IDOC] Odeslat dokument do SAP do pracovního postupu. Zadejte informace pro IDoc, který odešlete do systému SAP a následující hodnoty:

    Parametr Hodnota Popis
    Potvrdit TID Ne Nepotvrzujte automaticky ID transakce, které se explicitně provádí v samostatném kroku.
    IDENTIFIKÁTOR GUID ID transakce <IDoc-transaction-ID> Pokud se tento parametr nezobrazí automaticky, otevřete seznam Přidat nové parametry a vyberte parametr. Pokud chcete vybrat proměnnou ID transakce, kterou jste vytvořili, postupujte takto:

    1. V parametru GUID ID transakce vyberte uvnitř pole pro úpravy a otevřete seznam dynamického obsahu.

    2. V seznamu v části Proměnné vyberte proměnnou, kterou jste vytvořili dříve, což je IDocTransactionID v tomto příkladu.

    Pracovní postup Consumption

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

    Standardní pracovní postup

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

  5. U akce spravované SAP s názvem [IDOC] Odeslat dokument do SAP otevřete Nastavení a zkontrolujte zásady opakování.

    Výchozí možnost je doporučená zásada, ale můžete vybrat vlastní zásadu pro vaše konkrétní potřeby. Pokud se rozhodnete použít vlastní zásadu, nastavte aspoň jeden pokus o vyřešení dočasných výpadků sítě.

    Poznámka:

    Pouze akce spravovaného konektoru aktuálně mají nastavení Zásady opakování, nikoli integrované konektory založené na poskytovateli služeb.

  6. Teď přidejte akci SAP s názvem [IDOC – RFC] Potvrdit ID transakce.

    1. V parametru ID transakce vyberte uvnitř pole pro úpravy a otevřete seznam dynamického obsahu.

    2. V seznamu v části Proměnné zadejte název proměnné, kterou jste vytvořili, což je IDocTransactionID v tomto příkladu.

      Pracovní postup Consumption

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

      Standardní pracovní postup

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

  7. Volitelně můžete ověřit odstranění duplicitních dat v testovacím prostředí.

    1. Přidejte další akci SAP s názvem [IDOC] Odeslat dokument do SAP. V parametru ID transakce vyberte identifikátor GUID ID transakce, který jste použili v předchozím kroku.

    2. Pokud chcete ověřit, které číslo IDoc se přiřadí po každém volání akce s názvem [IDOC] Odeslat dokument do SAP, přidejte akci s názvem [IDOC] Get IDOC list for transaction to your workflow with the same Transaction ID and the Receive direction.

      Pokud je stejné číslo IDoc vráceno pro obě volání, IDoc byl odstraněn.

Pokud odešlete stejný IDoc dvakrát, můžete ověřit, že SAP dokáže identifikovat duplicitu volání tRFC a vyřešit dvě volání na jednu příchozí IDoc zprávu.

Poradce při potížích

Problémy s připojením

Pokud při vytváření připojení dojde k následující chybě, dojde k problému s instalací klientské knihovny SAP NCo:

Test připojení se nezdařil. Chyba Nepovedlo se zpracovat požadavek. Podrobnosti o chybě: Nelze načíst soubor nebo sestavení sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken 50436dca5c7f7d23 nebo jednu z jejích závislostí. Systém nemůže najít zadaný soubor.“

Nezapomeňte nainstalovat požadovanou verzi klientské knihovny SAP NCo a splnit všechny ostatní požadavky.

Chyba 500 Chybná brána nebo 400 Chybný požadavek

Pokud se zobrazí chyba 500 Chybná brána nebo 400 Chybný požadavek se zprávou podobnou neznámé službě sapgw00, překlad názvů síťových služeb na číslo portu selhává, například:

{
   "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"
            }
         }
      }
   }
}
  • Možnost 1: V konfiguraci připojení rozhraní API a triggeru nahraďte název služby brány číslem portu. V příkladu chyby sapgw00 je třeba nahradit skutečným číslem portu, 3300například . Toto je jediná dostupná možnost ise.

  • Možnost 2: Pokud používáte místní bránu dat, můžete do mapování %windir%\System32\drivers\etc\services portů přidat název služby brány a restartovat službu místní brány dat, například:

    sapgw00  3300/tcp
    

Při překladu aplikačního serveru SAP nebo názvu serveru zpráv na IP adresu se může zobrazit podobná chyba. V případě ise musíte zadat IP adresu aplikačního serveru SAP nebo serveru zpráv. Pro místní bránu dat můžete místo toho přidat název do mapování %windir%\System32\drivers\etc\hostsIP adres, například:

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

Chyby při odesílání paketů IDoc ze SAP do triggeru

Pokud nemůžete odesílat pakety IDoc ze SAP do triggeru, zkontrolujte zprávu zamítnutí volání Transactional RFC (tRFC) v dialogovém okně SAP tRFC (T-Code SM58). V rozhraní SAP se můžou zobrazit následující chybové zprávy, které jsou oříznuté kvůli omezením podřetězce v poli Text stavu.

Definice segmentu nebo skupiny E2EDK36001 nebyla v metadatu IDoc nalezena.

Tato chybová zpráva znamená, že u jiných chyb dochází k očekávaným selháním. Například selhání vygenerování datové části XML IDoc, protože sap nevolní jeho segmenty. V důsledku toho chybí metadata typu segmentu požadovaná pro převod.

Pokud chcete mít tyto segmenty vydané sapem, obraťte se na jazyk ABAP inženýra pro váš systém SAP.

RequestContext v IReplyChannel byl uzavřen bez odeslání odpovědi

U spravovaného konektoru SAP a konektoru SAP s verzí ISE tato chybová zpráva znamená neočekávané chyby, ke které dojde, když obslužná rutina catch-all kanálu ukončí kanál kvůli chybě a znovu sestaví kanál tak, aby zpracovával další zprávy.

Poznámka:

Trigger spravovaný sap a triggery SAP založené na ISE jsou webhooky, které používají adaptér SAP založený na protokolu SOAP. Předdefinovaný trigger SAP je ale trigger založený na Azure Functions, který nepoužívá adaptér SAP SOAP a tato chybová zpráva se nezobrazí.

  • Chcete-li potvrdit, že váš pracovní postup obdržel IDoc, přidejte akci Odpovědi, která vrátí stavový kód 200 OK . Nechte tělo prázdné a neměňte ani nepřidávejte do záhlaví. IDoc se přenáší přes tRFC, což neumožňuje datovou část odpovědi.

  • Pokud chcete místo toho IDoc odmítnout, odpovězte na jiný stavový kód HTTP než 200 OK. Adaptér SAP pak vrátí výjimku zpět do SAP vaším jménem. Měli byste odmítnout pouze IDoc pro signalizaci chyb přenosu zpět do SAP, jako je chybný IDoc, že vaše aplikace nemůže zpracovat. Neměli byste odmítnout IDoc pro chyby na úrovni aplikace, jako jsou problémy s daty obsaženými v IDoc. Pokud zpozdíte přijetí přenosu pro ověřování na úrovni aplikace, může dojít k negativnímu výkonu kvůli blokování připojení při přenosu jiných IDocs.

  • Pokud se zobrazí tato chybová zpráva a dojde k systémovým selháním, které volají Azure Logic Apps, zkontrolujte, že jste nakonfigurovali nastavení sítě pro vaši místní službu brány dat pro vaše konkrétní prostředí. Pokud například vaše síťové prostředí vyžaduje použití proxy serveru pro volání koncových bodů Azure, musíte nakonfigurovat místní službu brány dat tak, aby používala váš proxy server. Další informace najdete v tématu Konfigurace proxy serveru.

  • Pokud se zobrazí tato chybová zpráva a dochází k přerušovaným selháním volání Azure Logic Apps, možná budete muset zvýšit počet opakování nebo také interval opakování pomocí následujících kroků:

    1. Zkontrolujte nastavení SAP v konfiguračním souboru místní služby brány dat s názvem Microsoft.PowerBI.EnterpriseGateway.exe.config.

      1. configuration Pod kořenový uzel přidejte configSections prvek, pokud žádný neexistuje.

      2. configSections Pod uzel přidejte section prvek s následujícími atributy, pokud neexistuje:name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"

        Důležité

        Neměňte atributy v existujících section prvcích, pokud už takové prvky existují.

        Pokud není v konfiguraci služby brány deklarován žádný jiný oddíl nebo skupina oddílů, vypadá váš configSections prvek jako následující verze:

        <configSections>
          <section name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"/>
        </configSections>
        
      3. configuration Pod kořenový uzel přidejte SapAdapterSection prvek, pokud žádný neexistuje.

      4. SapAdapterSection Pod uzel přidejte Broker prvek s následujícími atributy, pokud neexistuje:WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2"

        Důležité

        Změňte atributy elementu Broker , i když prvek již existuje.

        Prvek SapAdapterSection vypadá jako následující verze, pokud není v konfiguraci adaptéru SAP deklarován žádný jiný prvek nebo atribut:

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

        Nastavení počtu opakování vypadá takto WebhookRetryMaximumCount="2". Nastavení intervalu opakování vypadá takto WebhookRetryDefaultDelay="00:00:00.10" : formát HH:mm:ss.ffčasového rozsahu .

      Poznámka:

      Další informace o konfiguračním souboru najdete v tématu Schéma konfiguračního souboru pro rozhraní .NET Framework.

    2. Uloží vaše změny.

    3. Pokud používáte místní bránu dat, restartujte bránu.

Další kroky