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


Kapcsolódó üzenetek küldése sorrendben Sequential Convoyjal az Azure Logic Apps és az Azure Service Bus használatával

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

Ha korrelált üzeneteket kell küldenie egy adott sorrendben, az Azure Service Bus-összekötő használatával követheti a szekvenciális konvojmintát az Azure Logic Apps 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 egy "1. munkamenet" nevű munkamenethez 10 üzenete van, és egy "2. munkamenet" nevű munkamenethez 5 üzenete van, amelyek mindegyike ugyanarra a Service Bus-üzenetsorra kerül. 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ó futtatja, 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 olyan logikai alkalmazást, amely ezt a mintát valósítja meg a rendelési sorrendben történő kézbesítéssel service bus-munkamenetek sablon használatával. Ez a sablon egy logikai alkalmazás munkafolyamatát határozza meg, amely a Service Bus-összekötő Amikor üzenet érkezik egy üzenetsorba (betekintő-zárolás) eseményindítójával kezdődik, amely üzeneteket fogad egy Service Bus-üzenetsorból. A logikai alkalmazás az alábbi magas szintű lépéseket hajtja végre:

  • Munkamenet inicializálása a Service Bus-üzenetsorból beolvasott üzenet alapján.

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

A sablon JSON-fájljának áttekintéséhez tekintse át a GitHub: service-bus-sessions.json című témakört.

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 Portalra. Keresse meg és válassza ki a Service Bus-névteret.

  2. A névtér menü Beállítások területén válassza a Megosztott hozzáférési szabályzatok lehetőséget. A Jogcímek csoportban 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 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 csoportjában 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 üzenetkezelő entitáshoz, például üzenetsorhoz, keresse meg a paramétert a EntityPath 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ált használatával Service Bus-munkamenetek sablon használatával, amely tartalmazza a munkafolyamat-minta implementálására szolgáló eseményindítót és műveleteket. 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. Az Azure Portalon hozzon létre egy üres logikai alkalmazást. Az Azure kezdőlapján válassza az Erőforrás-integrációs>>logikai alkalmazás létrehozása lehető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 azt a sablont, amely a service bus-munkamenetek használatával korrelál a rendelésen belüli kézbesítéssel.

    Válassza a

  3. Amikor megjelenik a megerősítést kérő 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 az alakzatban megjelenő pluszjelet (+).

    Válassza a

  5. Most hozzon létre egy Service Bus-kapcsolatot a következő lehetőségek választásával:

    • 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 neveként adja meg a kapcsolat nevét. Kapcsolati sztring esetén illessze be a névteret kapcsolati sztring, és válassza a Létrehozás lehetőséget, például:

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

        Tipp.

        Ha nem rendelkezik ezzel a kapcsolati sztring, megtudhatja, hogyan keresheti meg és másolhatja a Service Bus-névteret 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 neveként adja meg a kapcsolat nevét. Service Bus-névtér esetén válassza ki a Service Bus-névteret, például:

        Adja meg a kapcsolat nevét, és válassza a Service Bus névterét

      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ályzatot, majd a

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

    A Logic App Designer most a Service Bus-munkamenetek sablonjával jeleníti meg a korrelált rendelésközi 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 implementálják.

Most már többet is megtudhat a sablon eseményindítójáról és műveleteiről, vagy előrelépve megadhatja a logikai alkalmazássablon értékeit.

Sablon összefoglalása

Az alábbiakban a Service Bus-munkamenetek sablonnal összekapcsolt rendelési kézbesítés felső szintű munkafolyamata 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 betekintő-zárolás 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 az inicializálási változóművelet létrehoz egy logikai változót, amely a következő feltételek teljesülése esetén van beállítvafalse:

– A munkamenetben nem olvasható több ü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ő Catch hatókörmű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 azokat a műveleteket tartalmazza, 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

A hatókörművelet legfelső szintű folyamata Try 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 az üzenetsor munkamenetének első üzenetét kezelni szeretne. A munkamenet azonosítója határozza meg a munkamenetet.

Ebben a sablonban egy Service Bus-művelet elküldi az első üzenetet egy Service Bus-témakörnek. További 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: Folytassa az üzenet feldolgozását. További információ: 1. ág: A kezdeti üzenet befejezése az üzenetsorban.

- 2. ág: Hagyja abba az üzenetet, ha valami nem sikerül, és engedje fel a felvételt egy másik trigger futtatásával. További információ: 2. ág: A kezdeti üzenet feladása az üzenetsorból.

Mindkét elérési út később csatlakozik az üzenetsor záró munkamenetéhez, és a következő sorban ismertetett sikeres műveletet hajtja végre.

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

– 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 a sikeresen lekért üzenetet, és eltávolítja az üzenetet az üzenetsorból az újrafeldolgozás megakadályozása érdekében. További 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 a hurok továbbra is üzeneteket kap, amíg az üzenetek léteznek, vagy amíg egy óra el nem telik. Az ebben a ciklusban található műveletekkel kapcsolatos további információkért lásd : Bár a munkamenetnek több üzenete van az üzenetsorban.
Set isDone = true Ha nincs több üzenet, ez a változóművelet a következőre truevan állítvaisDone: .
Renew session lock until cancelled Ez a amíg a hurok gondoskodik arról, hogy a munkamenet-zárolást ez a logikai alkalmazás megtartsa, amíg az üzenetek léteznek, vagy amíg egy óra el nem telik. A ciklus műveleteiről további információt a munkamenet-zárolás megújítása a megszakításig című témakörben talál.

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

Ha az első üzenetet kezelő művelet meghiúsul, a Service Bus művelet, a kezdeti üzenet feladása az üzenetsorból, egy másik munkafolyamat-példány üzenetének kiadása a felvételhez és a feldolgozáshoz. További részletekért lásd : A kezdeti üzenet kezelése.

"Catch" hatókör

Ha a Try hatókör műveletei sikertelenek, a logikai alkalmazásnak továbbra is be kell zárnia a munkamenetet. A Catch hatókörművelet akkor fut, amikor a Try hatókörművelet állapota FailedSkipped, vagy TimedOut. A hatókör egy hibaüzenetet ad vissza, amely tartalmazza a probléma helyét tartalmazó munkamenet-azonosítót, és leállítja a logikai alkalmazást.

A hatókörművelet legfelső szintű folyamata Catch a részletek összecsukásakor:

Név Leírás
Close a session in a queue and fail Ez a Service Bus-művelet bezárja a munkamenetet az üzenetsorban, hogy a munkamenet-zárolás ne maradjon nyitva. Részletekért lásd : Munkamenet bezárása egy üzenetsorban, és sikertelen.
Find failure msg from 'Try' block Ez a Szűrőtömb művelet létrehoz egy tömböt 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. További információt a "Try" blokk hibakeresési msg-jének megkeresése című témakörben talál.
Select error details Ez a kijelölési 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 hibaadatokból létrehozott JSON-objektumot tartalmaz. A részletekért lásd a Hiba részleteinek kiválasztása című témakört.
Terminate Ez a művelet leállítja a munkafolyamat futtatását, megszakítja a folyamatban lévő műveleteket, kihagyja a fennmaradó műveleteket, és visszaadja a megadott állapotot, a munkamenet azonosítóját és a Select error details műveletből eredő hibát. További részletekért lásd: A logikai alkalmazás leállítja a elemet.

A sablon befejezése

Ha service bus-munkamenetek sablonnal szeretné megadni az eseményindító és a műveletek értékeit a rendelésközi kézbesítéshez, 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, amelyeket csillag (*csillag) jelöl.

A munkamenet inicializálása

  • Ha üzenet érkezik egy üzenetsorba (peek-lock) eseményindítóban, adja meg ezt az információt, hogy a sablon inicializálhassa a munkamenetet a Munkamenet-azonosító tulajdonság használatával, például:

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

    Feljegyzés

    Kezdetben a lekérdezési időköz három percre van beállítva, hogy a logikai alkalmazás ne fusson gyakrabban a vártnál, és váratlan számlázási díjakat eredményezzen. 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 Igen <üzenetsor neve> 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 Igen 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ásához 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 beállítást 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 az Azure Service Busból 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 Apps és az Azure Service Bus használatával.

    Intervallum Igen <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 üzenet keresésekor használandó ismétlődés időegysége.

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

    További eseményindító-információkért lásd: Service Bus – Üzenet fogadása üzenetsorban (betekintő-zárolás). Az eseményindító egy ServiceBusMessage-t ad ki.

A munkamenet inicializálása után a munkafolyamat az Inicializálás változó művelettel létrehoz egy logikai változót, amely kezdetben false a következő feltételek teljesülését jelzi:

  • A munkamenetben nem olvasható több üzenet.

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

A

Ezután a Próba 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ó azt a munkamenetet adja meg, 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.

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

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

    Service Bus-művelet részletei a

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

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

Ezután meg kell adnia a szükséges információkat az üzenetsor műveletében a Teljes kezdeti üzenetet követő műveletekhez. A műveletekkel kell kezdenie, amíg a munkamenethez több üzenet is szerepel 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 ciklus időkorlátjának módosításához szerkessze a ciklus 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 beállítja a isDone változót true, és kilép a ciklusból.

Ciklusig – Ü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.

    Feljegyzés

    Alapértelmezés szerint az üzenetek maximális száma van beállítva 175, de ezt a korlátot a Service Bus üzenetmérete és maximális üzenetméret tulajdonsága befolyásolja. További információkért tekintse meg az üzenetsor üzenetméretét.

    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 következőre true: .

    • A folyamatüzenetek, ha van feltétel , 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 következőre trueállítja: .

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

    Az If false (Ha hamis) szakaszban az egyes hurkok minden egyes üzenetet első, első előtti sorrendben (FIFO) dolgoznak fel. A hurok beállításaiban az Egyidejűség-vezérlés beállítás értéke van beállítva 1, így egyszerre csak egyetlen üzenet lesz feldolgozva.

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

    Service Bus-műveletek –

    Miután az üzenetsorban több üzenet érkezett 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 műveleteivel kapcsolatban, amíg a megszakított ciklus meg nem szűnik .

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

Ez a amíg a hurok gondoskodik arról, hogy a munkamenet-zárolást ez a logikai alkalmazás megtartsa, miközben az üzenetek az üzenetsorban vannak, vagy amíg egy óra el nem telik ezen műveletek futtatásával. A ciklus időkorlátjának módosításához szerkessze a ciklus 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 ideig. 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 a megfelelő módosítással optimalizálhatja.

  • Ellenőrizze, hogy a isDone változó be van-e állítva true.

    • Ha isDone be van állítva true, a munkafolyamat továbbra is dolgozza fel az üzeneteket, így a munkafolyamat megújítja a munkamenet zárolását az üzenetsorban, és újra ellenőrzi a ciklus állapotát.

      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 be van állítva true, a munkafolyamat nem újítja meg az üzenetsor munkamenetének zárolását, és kilép a ciklusból.

    Ciklusig –

A munkamenet zárolásának megújítása egy üzenetsorban

Ez a Service Bus-művelet megújítja az üzenetsor munkamenetének zárolását, miközben a munkafolyamat továbbra is üzeneteket dolgoz fel.

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

    Service Bus-művelet –

Ezután meg kell adnia a Service Bus-művelethez szükséges információkat, be kell zárnia egy munkamenetet az üzenetsoron, és sikeres lesz.

Munkamenet bezárása az ü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 –

A következő szakaszok a Catch szakasz műveleteit 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 legyen, 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 hiba vagy a hiba adataihoz.

Hiba msg keresése 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 a függvény ésitem() a equals() függvény használatával visszaadja az állapottal rendelkező Failed műveletek kimeneteit.

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űveletből visszaadott tömb hibaadatait Find failure msg from 'Try' block .

Hiba részleteinek kiválasztása

Ez a kijelölési művelet létrehoz egy tömböt, amely az előző művelet Find failure msg from 'Try' blockkimenete alapján JSON-objektumokat tartalmaz. Ez a művelet egy olyan tömböt ad vissza, amely csak a tömb egyes objektumaihoz 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 hibáról vagy hibáról.

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

Ez a művelet leállítja a logikai alkalmazás futtatását, és a logikai alkalmazás futásának állapotaként adja vissza Failed a munkamenet-azonosítót és a műveletből Select error details eredő hibát.

A logikai alkalmazás futtatásának leállításához szükséges művelet leállítása

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 most már 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