Megosztás a következőn keresztül:


Kapcsolódó üzenetek küldése sorrendben egy szekvenciális konvoj használatával az Azure Logic Appsben Azure Service Bus

A következőkre vonatkozik: Azure Logic Apps (használat)

Ha egy adott sorrendben kell elküldenie a korrelált üzeneteket, kövesse a szekvenciális konvojmintát az Azure Logic AppsAzure Service Bus-összekötő használatával történő használatakor. A korrelált üzeneteknek van egy tulajdonsága, amely meghatározza az üzenetek közötti kapcsolatot, például a Service Bus munkamenetének azonosítóját.

Tegyük fel például, hogy 10 üzenete van egy "1. munkamenet" nevű munkamenethez, és 5 üzenete van egy "2. munkamenet" nevű munkamenethez, amelyek mind ugyanarra a Service Bus-üzenetsorra lesznek elküldve. Létrehozhat egy logikai alkalmazást, amely az üzenetsorból származó üzeneteket dolgozza fel, így az "1. munkamenet" összes üzenetét egyetlen eseményindító-futtatás kezeli, a "2. munkamenet" összes üzenetét pedig a következő eseményindító-futtatás kezeli.

Általános szekvenciális konvojminta

Ez a cikk bemutatja, hogyan hozhat létre egy olyan logikai alkalmazást, amely ezt a mintát implementálja a Rendelésközi kézbesítés a Service Bus-munkamenetek sablonnal való használatával. Ez a sablon egy logikai alkalmazás munkafolyamatát határozza meg, amely a Service Bus-összekötő Üzenet fogadása üzenetsorba (peek-lock) eseményindítójával kezdődik, amely egy Service Bus-üzenetsorból fogad üzeneteket. Az alábbi magas szintű lépéseket hajtja végre ez a logikai alkalmazás:

  • Munkamenet inicializálása egy üzenet alapján, amelyet az eseményindító a Service Bus-üzenetsorból olvas be.

  • Olvassa el és dolgozza fel az üzenetsor ugyanazon munkamenetének összes üzenetét az aktuális munkafolyamat futtatása során.

A sablon JSON-fájljának áttekintéséhez lásd : GitHub: service-bus-sessions.json.

További információ: Szekvenciális konvojminta – Azure Architecture Cloud Design Patterns.

Előfeltételek

A Service Bus-névtérhez való hozzáférés ellenőrzése

Ha nem biztos abban, hogy a logikai alkalmazás rendelkezik-e engedélyekkel a Service Bus-névtér eléréséhez, erősítse meg ezeket az engedélyeket.

  1. Jelentkezzen be az Azure Portal. Keresse meg és válassza ki a Service Bus-névteret.

  2. A névtér menü Beállítások csoportjában válassza a Megosztott hozzáférési szabályzatok lehetőséget. A Jogcímek területen ellenőrizze, hogy rendelkezik-e a névtér kezelésével kapcsolatos engedélyekkel.

    A Service Bus-névtér engedélyeinek kezelése

  3. Most szerezze be a Service Bus-névtér kapcsolati sztring. Ezt a sztringet később is használhatja, amikor kapcsolatot hoz létre a névtérrel a logikai alkalmazásból.

    1. A Megosztott hozzáférési szabályzatok panel Házirend területén válassza a RootManageSharedAccessKey lehetőséget.

    2. Az elsődleges kapcsolati sztring mellett válassza a másolás gombot. Mentse a kapcsolati sztring későbbi használatra.

      Service Bus-névtér másolása kapcsolati sztring

    Tipp

    Annak ellenőrzéséhez, hogy a kapcsolati sztring társítva van-e a Service Bus-névtérhez vagy egy üzenetküldési entitáshoz, például egy üzenetsorhoz, keressen rá a EntityPath paraméter kapcsolati sztring. Ha ezt a paramétert találja, a kapcsolati sztring egy adott entitáshoz tartozik, és nem a megfelelő sztring a logikai alkalmazáshoz.

Logikai alkalmazás létrehozása

Ebben a szakaszban egy logikai alkalmazást hoz létre a rendelési sorrendben történő kézbesítés korrelációja service bus-munkamenetek sablon használatával , amely tartalmazza a munkafolyamat-minta implementálásának eseményindítóját és műveleteit. Emellett létre kell hoznia egy kapcsolatot a Service Bus-névtérrel, és meg kell adnia a használni kívánt Service Bus-üzenetsor nevét.

  1. A Azure Portal hozzon létre egy üres logikai alkalmazást. Az Azure kezdőlapján válassza azErőforrás-integrációs>>logikai alkalmazáslétrehozásalehetőséget.

  2. A sablongyűjtemény megjelenése után görgessen végig a videón és a gyakori eseményindítók szakaszain. A Sablonok szakaszban válassza ki a Service Bus-munkamenetek használatával korrelált rendelésen belüli kézbesítést ismertető sablont.

    Válassza a

  3. Amikor megjelenik a megerősítési mező, válassza a Sablon használata lehetőséget.

  4. A Logic App Designer Service Bus alakzatában válassza a Folytatás lehetőséget, majd válassza ki az alakzatban megjelenő pluszjelet (+).

    Válassza a

  5. Most hozzon létre egy Service Bus-kapcsolatot a következő lehetőségek egyikével:

    • A Service Bus-névtérből korábban másolt kapcsolati sztring használatához kövesse az alábbi lépéseket:

      1. Válassza a Kapcsolatadatok manuális megadása lehetőséget.

      2. A Kapcsolat neve mezőben adja meg a kapcsolat nevét. A Kapcsolati sztring mezőbe illessze be a névteret kapcsolati sztring, majd válassza a Létrehozás lehetőséget, például:

        Adja meg a kapcsolat nevét és a Service Bus kapcsolati sztring

    • A Service Bus-névtér aktuális Azure-előfizetésből való kiválasztásához kövesse az alábbi lépéseket:

      1. A Kapcsolat neve mezőben adja meg a kapcsolat nevét. A Service Bus-névtér esetében válassza ki a Service Bus-névteret, például:

        Adja meg a kapcsolat nevét, és válassza a Service Bus-névtér lehetőséget

      2. Amikor megjelenik a következő panel, válassza ki a Service Bus-szabályzatot, és válassza a Létrehozás lehetőséget.

        Válassza a Service Bus-szabályzat, majd a

  6. Ha végzett, válassza a Folytatás lehetőséget.

    A Logic App Designer mostantól a Service Bus-munkamenetek sablonjával jeleníti meg a korrelált rendelésen belüli kézbesítést , amely egy előre kitöltött munkafolyamatot tartalmaz egy eseményindítóval és műveletekkel, köztük két hatókört, amelyek a Try-Catch mintát követő hibakezelést valósítanak meg.

Most többet is megtudhat a sablon eseményindítójáról és műveleteiről, vagy továbbléphet a logikai alkalmazássablon értékeinek megadásához.

Sablon összegzése

Az alábbiakban a rendelési sorrendben történő kézbesítéshez kapcsolódó, service bus-munkamenetek sablont használó legfelső szintű munkafolyamat látható, amikor a részletek összecsukva vannak:

A sablon legfelső szintű munkafolyamata

Név Leírás
When a message is received in a queue (peek-lock) A megadott ismétlődés alapján ez a Service Bus-eseményindító ellenőrzi a megadott Service Bus-üzenetsort minden üzenetnél. Ha egy üzenet szerepel az üzenetsorban, az eseményindító aktiválódik, amely létrehoz és futtat egy munkafolyamat-példányt.

A peek-lock kifejezés azt jelenti, hogy az eseményindító kérést küld egy üzenet lekérésére az üzenetsorból. Ha létezik üzenet, az eseményindító lekéri és zárolja az üzenetet, hogy a zárolási időszak lejártáig ne történjen más feldolgozás az üzeneten. A részletekért inicializálja a munkamenetet.

Init isDone Ez a változó inicializálása művelet létrehoz egy logikai változót, amely a következő feltételek teljesülése esetén van beállítva false és jelzi:

– A munkamenetben nincs több elolvasható üzenet.
– A munkamenet-zárolást már nem kell megújítani, hogy az aktuális munkafolyamat-példány befejeződjön.

További információ: A munkamenet inicializálása.

Try Ez a hatókörművelet az üzenetek feldolgozásához futtatott műveleteket tartalmazza. Ha probléma merül fel a Try hatókörben, az azt követő CatchHatókör művelet kezeli ezt a problémát. További információ: "Kipróbálás" hatókör.
Catch Ez a hatókörművelet tartalmazza azokat a műveleteket, amelyek akkor futnak, ha probléma merül fel az előző Try hatókörben. További információ: "Catch" hatókör.

"Kipróbálás" hatókör

Íme a legfelső szintű folyamat a Tryhatókörműveletben a részletek összecsukásakor:

Név Leírás
Send initial message to topic Ezt a műveletet lecserélheti arra a műveletre, amelyet kezelni szeretne az üzenetsor munkamenetének első üzenetével. A munkamenet-azonosító határozza meg a munkamenetet.

Ebben a sablonban egy Service Bus-művelet elküldi az első üzenetet egy Service Bus-témakörnek. Részletekért lásd : A kezdeti üzenet kezelése.

(párhuzamos ág) Ez a párhuzamos ágművelet két elérési utat hoz létre:

- 1. ág: Az üzenet feldolgozásának folytatása. További információ: 1. ág: Kezdeti üzenet befejezése az üzenetsorban.

- 2. ág: Hagyja abba az üzenetet, ha valami probléma merül fel, és engedje fel a felvételt egy másik eseményindító futtatásával. További információ: 2. ág: A kezdeti üzenet elhagyása az üzenetsorból.

Mindkét elérési út később csatlakozik az üzenetsor munkamenetének bezárása és a sikeres művelet során, amelyet a következő sorban ismertetünk.

Close a session in a queue and succeed Ez a Service Bus-művelet összekapcsolja a korábban leírt ágakat, és az alábbi események valamelyike után bezárja a munkamenetet az üzenetsorban:

– A munkafolyamat befejezi az üzenetsorban elérhető üzenetek feldolgozását.
– A munkafolyamat megszakítja a kezdeti üzenetet, mert hiba történt.

További részletekért lásd: Munkamenet bezárása az üzenetsorban, és sikeres.

1. ág: Az üzenetsor kezdeti üzenetének befejezése

Név Leírás
Complete initial message in queue Ez a Service Bus-művelet befejezettként jelöli meg a sikeresen lekért üzenetet, és eltávolítja az üzenetet az üzenetsorból az újrafeldolgozás megakadályozása érdekében. Részletekért lásd : A kezdeti üzenet kezelése.
While there are more messages for the session in the queue Ez a Amíg hurok továbbra is üzeneteket kap, amíg az üzenetek léteznek, vagy amíg egy óra el nem telik. Az ebben a hurokban található műveletekkel kapcsolatos további információkért lásd: A munkamenetnek több üzenete van az üzenetsorban.
Set isDone = true Ha nincs több üzenet, a Változó beállítása művelet értékre truevan állítvaisDone.
Renew session lock until cancelled Ez az Until hurok biztosítja, hogy a munkamenet-zárolást ez a logikai alkalmazás őrizte-e meg, amíg az üzenetek léteznek, vagy amíg egy óra el nem telik. Az ebben a ciklusban végrehajtott műveletekkel kapcsolatos további információkért lásd: Munkamenet-zárolás megújítása megszakításig.

2. ág: A kezdeti üzenet feladása az üzenetsorból

Ha az első üzenetet kezelő művelet meghiúsul, a Service Bus-művelet, a Kezdeti üzenet elvetése az üzenetsorból, egy másik munkafolyamat-példány futtatásának üzenetét adja ki a felvételhez és a feldolgozáshoz. Részletekért lásd : A kezdeti üzenet kezelése.

"Catch" hatókör

Ha a hatókörben végrehajtott Try műveletek sikertelenek, a logikai alkalmazásnak továbbra is be kell zárnia a munkamenetet. A Catchhatókörművelet akkor fut, amikor a Try hatókörművelet a következő állapotot eredményezi: Failed, Skippedvagy TimedOut. A hatókör egy hibaüzenetet ad vissza, amely tartalmazza azt a munkamenet-azonosítót, ahol a probléma történt, és leállítja a logikai alkalmazást.

Itt látható a legfelső szintű folyamat a Catch hatókörműveletben a részletek összecsukásakor:

Név Leírás
Close a session in a queue and fail Ez a Service Bus-művelet lezárja a munkamenetet az üzenetsorban, hogy a munkamenet-zárolás ne maradjon nyitva. Részletekért lásd: Munkamenet bezárása az üzenetsorban, és sikertelen.
Find failure msg from 'Try' block Ez a Tömbszűrő művelet tömböt hoz létre a hatókörben lévő Try összes művelet bemeneteiből és kimeneteiből a megadott feltételek alapján. Ebben az esetben ez a művelet az állapotot eredményező Failed műveletek kimeneteit adja vissza. Részletekért lásd: Hibakeresési hiba a "Try" blokkból.
Select error details Ez a Kiválasztás művelet létrehoz egy tömböt, amely JSON-objektumokat tartalmaz a megadott feltételek alapján. Ezek a JSON-objektumok az előző művelet () által létrehozott tömb értékeiből épülnek fel. Find failure msg from 'Try' block Ebben az esetben ez a művelet egy tömböt ad vissza, amely az előző műveletből visszaadott hiba részleteiből létrehozott JSON-objektumot tartalmaz. Részletekért lásd: Hiba részleteinek kiválasztása.
Terminate Ez a Megszakítás művelet leállítja a munkafolyamat futtatását, megszakítja a folyamatban lévő műveleteket, kihagyja a többi műveletet, és visszaadja a megadott állapotot, a munkamenet azonosítóját és a Select error details műveletből származó hibát. Részletekért lásd a logikai alkalmazás leállítását ismertető cikket.

A sablon befejezése

Ha meg szeretné adni az eseményindító és a műveletek értékeit a Rendelésközi kézbesítés a Service Bus-munkamenetek használatával sablonban , kövesse az alábbi lépéseket. A logikai alkalmazás mentése előtt meg kell adnia az összes szükséges értéket, amelyet csillag (*) jelöl meg.

A munkamenet inicializálása

  • Az Üzenet fogadása üzenetsorba (peek-lock) eseményindító esetében adja meg ezt az információt, hogy a sablon inicializálni tudja a munkamenetet a Munkamenet-azonosító tulajdonság használatával, például:

    A Service Bus-eseményindító részletei a következőhöz:

    Megjegyzés

    Kezdetben a lekérdezési időköz három percre van beállítva, így a logikai alkalmazás nem fut a vártnál gyakrabban, és nem várt számlázási díjakat eredményez. Ideális esetben állítsa az időközt és a gyakoriságot 30 másodpercre, hogy a logikai alkalmazás azonnal aktiválódik egy üzenet érkezésekor.

    Tulajdonság Ehhez a forgatókönyvhöz szükséges Érték Leírás
    Üzenetsor neve Yes <queue-name> A korábban létrehozott Service Bus-üzenetsor neve. Ez a példa a "Fabrikam-Service-Bus-Queue" kifejezést használja.
    Üzenetsor típusa Yes Az elsődleges Service Bus-üzenetsor
    Munkamenet-azonosító Igen Következő elérhető Ez a beállítás minden eseményindító-futtatáshoz lekéri a munkamenetet a Service Bus üzenetsorában található üzenet munkamenet-azonosítója alapján. A munkamenet is zárolva van, így más logikai alkalmazás vagy más ügyfél nem tudja feldolgozni a munkamenethez kapcsolódó üzeneteket. A munkafolyamat későbbi műveletei feldolgozzák az adott munkamenethez társított összes üzenetet, a cikk későbbi részében leírtak szerint.

    Az alábbiakban további információt talál a munkamenet-azonosító egyéb beállításairól:

    - Nincs: Az alapértelmezett beállítás, amely nem eredményez munkameneteket, és nem használható a szekvenciális konvojminta implementálásához.

    - Egyéni érték megadása: Ezt a lehetőséget akkor használja, ha ismeri a használni kívánt munkamenet-azonosítót, és mindig futtatni szeretné az adott munkamenet-azonosító eseményindítóját.

    Megjegyzés: A Service Bus-összekötő egyszerre csak korlátozott számú egyedi munkamenetet menthet Azure Service Bus az összekötő gyorsítótárba. Ha a munkamenetek száma meghaladja ezt a korlátot, a régi munkamenetek törlődnek a gyorsítótárból. További információ: Exchange-üzenetek a felhőben az Azure Logic Appsszel és Azure Service Bus.

    Intervallum Yes <intervallumok száma> Az ismétlődések közötti időegységek száma az üzenet keresése előtt.
    Gyakoriság Igen Másodperc, perc, óra, nap, hét vagy hónap Az ismétlődés üzenet keresésekor használandó időegysége.

    Tipp: Időzóna vagy Kezdési idő hozzáadásához válassza ki ezeket a tulajdonságokat az Új paraméter hozzáadása listából.

    Az eseményindítóval kapcsolatos további információkért lásd: Service Bus – Üzenet üzenetsorba érkezésekor (betekintő-zárolás). Az eseményindító egy ServiceBusMessage kimenetet ad ki.

A munkamenet inicializálása után a munkafolyamat a Változó inicializálása művelettel létrehoz egy logikai változót, amely kezdetben értékre false van állítva, és jelzi, hogy a következő feltételek teljesülnek-e:

  • A munkamenetben nincs több elolvasható üzenet.

  • A munkamenet-zárolást már nem kell megújítani, hogy az aktuális munkafolyamat-példány befejeződjön.

Az

Ezután a Kipróbálás blokkban a munkafolyamat műveleteket hajt végre az első olvasott üzeneten.

A kezdeti üzenet kezelése

Az első művelet egy helyőrző Service Bus-művelet, a Kezdeti üzenet küldése a témakörbe, amelyet lecserélhet bármely más műveletre, amelyet az üzenetsor munkamenetének első üzenetét kezelni szeretne. A munkamenet-azonosító határozza meg azt a munkamenetet, ahonnan az üzenet származik.

A helyőrző Service Bus-művelet elküldi az első üzenetet egy Service Bus-témakörnek, amelyet a Munkamenet-azonosító tulajdonság határoz meg. Így az adott munkamenethez társított összes üzenet ugyanarra a témakörre kerül. A sablon későbbi műveleteinek munkamenet-azonosító tulajdonságai ugyanazt a munkamenet-azonosító értéket használják.

Service Bus-művelet részletei a következőhöz:

  1. A Service Bus művelet Kezdeti üzenet befejezése üzenetsorában adja meg a Service Bus-üzenetsor nevét, és tartsa meg az összes többi alapértelmezett tulajdonságértéket a műveletben.

    A Service Bus művelet részletei a következőhöz:

  2. A Service Bus műveletben hagyja el a kezdeti üzenetet az üzenetsorból, adja meg a Service Bus-üzenetsor nevét, és tartsa meg az összes többi alapértelmezett tulajdonságértéket a műveletben.

    A Service Bus művelet részletei a következőhöz:

Ezután meg kell adnia a szükséges információkat azokhoz a műveletekhez, amelyek a Kezdeti üzenet befejezése az üzenetsorban műveletet követik. A műveletekkel fog kezdődni a Bár több üzenet van a munkamenethez az üzenetsor-hurokban .

Bár a munkamenetnek több üzenete van az üzenetsorban

Ez a amíg a hurok le nem futtatja ezeket a műveleteket, amíg az üzenetek az üzenetsorban vannak, vagy amíg egy óra el nem telik. A hurok időkorlátjának módosításához szerkessze a hurok Időtúllépés tulajdonságát.

  • További üzenetek lekérése az üzenetsorból, amíg az üzenetek léteznek.

  • Ellenőrizze a fennmaradó üzenetek számát. Ha az üzenetek továbbra is léteznek, folytassa az üzenetek feldolgozását. Ha nincs több üzenet, a munkafolyamat a változót a isDone értékre trueállítja, és kilép a hurokból.

Hurokig – Üzenetek feldolgozása az üzenetsorban

  1. A Service Bus műveletben további üzenetek lekérése a munkamenetből, adja meg a Service Bus-üzenetsor nevét. Ellenkező esetben tartsa meg az összes többi alapértelmezett tulajdonságértéket a műveletben.

    Megjegyzés

    Alapértelmezés szerint az üzenetek maximális száma értékre 175van állítva, de ezt a korlátot a Service Bus üzenetmérete és maximális üzenetméret tulajdonsága befolyásolja. További információ: Üzenetméret egy üzenetsorhoz.

    Service Bus-művelet –

    Ezután a munkafolyamat a következő párhuzamos ágakra oszlik:

    • Ha hiba vagy hiba történik a további üzenetek keresése közben, állítsa a változót a isDone értékre true.

    • A Folyamatüzenetek, ha van feltételünk , ellenőrzi, hogy a fennmaradó üzenetek száma nulla-e. Ha hamis és több üzenet létezik, folytassa a feldolgozást. Ha igaz, és nincs több üzenet, a munkafolyamat a változót a isDone értékre trueállítja.

    Feltétel – Üzenetek feldolgozása, ha vannak

    Az If false (Ha hamis ) szakaszban az Egyes hurkok az egyes üzeneteket első lépésben, első sorrendben (FIFO) dolgozza fel. A hurok Beállításaiban az Egyidejűség-vezérlés beállítás értéke , 1így egyszerre csak egyetlen üzenet lesz feldolgozva.

  2. A Service Bus-műveleteknél fejezze be az üzenetet egy üzenetsorban , és hagyja abba az üzenetet az üzenetsorban, adja meg a Service Bus-üzenetsor nevét.

    Service Bus-műveletek –

    Miután az üzenetsorban több üzenet van a munkamenethez , a munkafolyamat a változót a isDone következőre trueállítja: .

Ezután meg kell adnia a szükséges információkat a munkamenet-zárolás megújítása a megszakított hurokig .

Munkamenet-zárolás megújítása megszakításig

Ez a amíg a hurok biztosítja, hogy a munkamenet-zárolást ez a logikai alkalmazás tartja, miközben az üzenetek az üzenetsorban vannak, vagy amíg egy óra el nem telik ezen műveletek futtatásával. A hurok időkorlátjának módosításához szerkessze a hurok Időtúllépés tulajdonságát.

  • Késleltetés 25 másodpercig vagy a feldolgozott üzenetsor zárolási időtúllépési időtartamánál rövidebb idő. A legkisebb zárolási időtartam 30 másodperc, így az alapértelmezett érték elegendő. A ciklus futási idejének számát azonban optimalizálhatja a megfelelő módosítással.

  • Ellenőrizze, hogy a isDone változó értéke true.

    • Ha isDone a értékre truevan állítva, a munkafolyamat továbbra is feldolgozta az üzeneteket, így a munkafolyamat megújítja az üzenetsor munkamenetének zárolását, és újra ellenőrzi a hurokfeltételt.

      Meg kell adnia a Service Bus-üzenetsor nevét a Service Bus műveletben, a zárolás megújítása az üzenetsor munkamenetében.

    • Ha isDone a értékre truevan állítva, a munkafolyamat nem újítja meg a zárolást az üzenetsorban lévő munkameneten, és kilép a hurokból.

    Hurokig –

Zárolás megújítása a munkameneten egy üzenetsorban

Ez a Service Bus-művelet megújítja az üzenetsor munkamenetének zárolását, miközben a munkafolyamat még dolgozik az üzeneteken.

  • A Service Bus műveletben az üzenetsor munkamenetének zárolásának megújítása során adja meg a Service Bus-üzenetsor nevét.

    Service Bus-művelet –

Ezután meg kell adnia a Service Bus művelethez szükséges információkat, lezár egy munkamenetet az üzenetsorban, és sikeres lesz.

Munkamenet bezárása egy üzenetsorban, és sikeres

Ez a Service Bus-művelet bezárja a munkamenetet az üzenetsorban, miután a munkafolyamat befejezte az üzenetsor összes elérhető üzenetének feldolgozását, vagy a munkafolyamat megszakítja a kezdeti üzenetet.

  • A Service Bus műveletben zárjon be egy munkamenetet egy üzenetsorban, és sikeres legyen, adja meg a Service Bus-üzenetsor nevét.

    Service Bus-művelet –

Az alábbi szakaszok a szakasz műveleteit Catch ismertetik, amelyek a munkafolyamatban előforduló hibákat és kivételeket kezelik.

Munkamenet bezárása egy üzenetsorban, és sikertelen

Ez a Service Bus-művelet mindig a hatókör első műveleteként Catch fut, és bezárja a munkamenetet az üzenetsorban.

  • A Service Bus műveletben zárjon be egy munkamenetet egy üzenetsorban, és sikertelen, adja meg a Service Bus-üzenetsor nevét.

    Service Bus-művelet –

Ezután a munkafolyamat létrehoz egy tömböt, amely a hatókör összes műveletének Try bemeneteit és kimeneteit tartalmazza, hogy a logikai alkalmazás hozzáférhessen a bekövetkezett hibával vagy hibával kapcsolatos információkhoz.

Hibakeresési msg a "Try" blokkból

Ez a Szűrőtömb művelet létrehoz egy tömböt, amely a függvény használatával a megadott feltételek alapján a hatókörben lévő Try összes művelet bemeneteit és kimeneteit tartalmazzaresult(). Ebben az esetben ez a művelet az állapotú műveletek Failed kimeneteit adja vissza a függvény és item()a equals() függvény használatával.

Szűrőtömbművelet –

A művelet JSON-definíciója a következő:

"Find_failure_msg_from_'Try'_block": {
   "inputs": {
      "from": "@Result('Try')",
      "where": "@equals(item()['status'], 'Failed')"
   },
   "runAfter": {
      "Close_the_session_in_the_queue_and_fail": [
         "Succeeded"
      ]
   },
   "type": "Query"
},

Ezután a munkafolyamat létrehoz egy tömböt egy JSON-objektummal, amely tartalmazza a művelet által visszaadott tömb hibaadatait Find failure msg from 'Try' block .

Hiba részleteinek kiválasztása

Ez a Kijelölés művelet létrehoz egy tömböt, amely JSON-objektumokat tartalmaz az előző művelet kimenete alapján. Find failure msg from 'Try' block Ez a művelet egy tömböt ad vissza, amely csak a tömb minden objektumához megadott tulajdonságokkal rendelkezik. Ebben az esetben a tömb tartalmazza a művelet nevét és a hiba eredményének tulajdonságait.

Művelet kiválasztása –

A művelet JSON-definíciója a következő:

"Select_error_details": {
   "inputs": {
      "from": "@body('Find_failure_msg_from_''Try''_block')[0]['outputs']",
      "select": {
         "action": "@item()['name']",
         "errorResult": "@item()"
      }
   },
   "runAfter": {
      "Find_failure_msg_from_'Try'_block": [
         "Succeeded"
      ]
   },
   "type": "Select"
},

Ezután a munkafolyamat leállítja a logikai alkalmazás futtatását, és visszaadja a futtatás állapotát, valamint további információt a bekövetkezett hibáról vagy hibáról.

Logikai alkalmazás futtatásának leálltatása

Ez a Megszakítás művelet leállítja a logikai alkalmazás futtatását, és visszaadja Failed a logikai alkalmazás futásának állapotát a munkamenet-azonosítóval és a műveletből származó hibával Select error details együtt.

Művelet leállítása a logikai alkalmazás futtatásának leállításához

A művelet JSON-definíciója a következő:

"Terminate": {
   "description": "This Failure Termination only runs if the Close Session upon Failure action runs - otherwise the LA will be terminated as Success",
   "inputs": {
      "runError": {
         "code": "",
         "message": "There was an error processing messages for Session ID @{triggerBody()?['SessionId']}. The following error(s) occurred: @{body('Select_error_details')['errorResult']}"
         },
         "runStatus": "Failed"
      },
      "runAfter": {
         "Select_error_details": [
            "Succeeded"
         ]
      },
      "type": "Terminate"
   }
},

Logikai alkalmazás mentése és futtatása

A sablon befejezése után mentheti a logikai alkalmazást. A tervező eszköztárán válassza a Mentés lehetőséget.

A logikai alkalmazás teszteléséhez küldjön üzeneteket a Service Bus-üzenetsorba.

Következő lépések