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


JSON és XML átalakítása Folyékony sablonok használatával leképezésként munkafolyamatokban az Azure Logic Apps használatával

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

Ha alapszintű JSON-átalakításokat szeretne végrehajtani a logikai alkalmazás munkafolyamataiban, használhat beépített adatműveleteket, például a Compose műveletet vagy a JSON-elemzési műveletet. Egyes forgatókönyvek azonban speciális és összetett átalakításokat igényelhetnek, amelyek olyan elemeket tartalmaznak, mint például az iterációk, a vezérlőfolyamatok és a változók. JSON-ról JSON-ra, JSON-ról szövegre, XML-ről JSON-ra vagy XML-szöveggé történő átalakításhoz létrehozhat egy sablont, amely leírja a szükséges leképezést vagy átalakítást a Liquid nyílt forráskódú sablonnyelv használatával. Ezt a sablont akkor választhatja ki, ha liquid beépített műveletet ad hozzá a munkafolyamathoz. A Liquid-műveleteket több-bérlős Használat logikai alkalmazás munkafolyamataiban és az egybérlős Standard logikai alkalmazás munkafolyamataiban is használhatja.

Bár nem érhetők el folyékony triggerek, a forrás JSON- vagy XML-tartalom betáplálásához bármilyen eseményindítót vagy műveletet használhat a munkafolyamatba. Használhat például egy beépített összekötő-eseményindítót, az Azure Logic Appshez elérhető felügyelt vagy Azure által üzemeltetett összekötő-eseményindítót, vagy akár egy másik alkalmazást is.

Ez a cikk a következő feladatok elvégzését mutatja be:

  • Liquid-sablon létrehozása.
  • Töltse fel a sablont az integrációs fiókba a Használat logikai alkalmazás munkafolyamataihoz vagy a Standard logikai alkalmazás erőforrásához, hogy bármilyen gyermek munkafolyamatban használhassa.
  • Liquid-művelet hozzáadása a munkafolyamathoz.
  • Válassza ki a használni kívánt sablont térképként.

További információkért tekintse át a következő dokumentációt:

Előfeltételek

  • Azure-fiók és -előfizetés. Ha még nincs előfizetése, regisztráljon egy ingyenes Azure-fiókra.

  • A logikai alkalmazás erőforrása és munkafolyamata. A folyékony műveletekhez nem érhetők el eseményindítók, ezért a munkafolyamatnak minimálisan tartalmaznia kell egy eseményindítót.

    Ha nem rendelkezik logikaialkalmazás-erőforrással és munkafolyamattal, hozza létre őket most a kívánt logikai alkalmazás lépéseinek követésével:

  • Integrációs fiók erőforrása. Erre az erőforrásra általában akkor van szükség, ha nagyvállalati integrációs és B2B-munkafolyamatokban használható összetevőket szeretne definiálni és tárolni.

    Fontos

    Az együttműködéshez az integrációs fióknak és a logikai alkalmazás erőforrásának ugyanabban az Azure-előfizetésben és Azure-régióban kell lennie.

    • A használatalapú logikai alkalmazás munkafolyamatához az integrációs fióknak szüksége van a logikai alkalmazás erőforrására mutató hivatkozásra.

    • Standard logikaialkalmazás-munkafolyamatok esetén az integrációs fiókot összekapcsolhatja a logikai alkalmazás erőforrásával, térképeket tölthet fel közvetlenül a logikai alkalmazás erőforrására vagy mindkettőre az alábbi forgatókönyvek alapján:

      • Ha már rendelkezik integrációs fiókkal a szükséges vagy használni kívánt összetevőkkel, összekapcsolhatja az integrációs fiókot több Standard logikai alkalmazás-erőforrással, ahol használni szeretné az összetevőket. Így nem kell térképeket feltöltenie az egyes logikai alkalmazásokba. További információ: A logikai alkalmazás erőforrásának csatolása az integrációs fiókhoz.

      • A Liquid beépített összekötővel kiválaszthatja a korábban a logikai alkalmazás erőforrására vagy egy csatolt integrációs fiókba feltöltött térképet, de mindkettőt nem. Ezután ezeket az összetevőket az összes gyermek munkafolyamatban használhatja ugyanazon a logikai alkalmazás-erőforráson belül.

      Így ha nincs vagy szüksége van integrációs fiókra, használhatja a feltöltési lehetőséget. Ellenkező esetben használhatja a csatolási lehetőséget. Bármelyik módon is használhatja ezeket az összetevőket az összes gyermek munkafolyamatban ugyanazon a logikai alkalmazás-erőforráson belül.

  • Alapszintű ismeretek a Liquid-sablon nyelvéről. Az Azure Logic Apps a DotLiquid 2.0.361-et használja.

    Feljegyzés

    A JSON-ra való átalakítás nevű Liquid-művelet a Liquid DotLiquid-implementációt követi, amely bizonyos esetekben eltér a Liquid Shopify-implementációjától. További információkért tekintse meg a Liquid-sablonokkal kapcsolatos szempontokat.

  • Telepítsen vagy használjon olyan eszközt, amely HTTP-kéréseket küldhet a megoldás teszteléséhez, például:

    Figyelemfelhívás

    Olyan helyzetekben, ahol bizalmas adatokkal rendelkezik, például hitelesítő adatokkal, titkos kulcsokkal, hozzáférési jogkivonatokkal, API-kulcsokkal és más hasonló információkkal, mindenképpen használjon olyan eszközt, amely a szükséges biztonsági funkciókkal védi az adatokat. Az eszköznek offline vagy helyileg kell működnie, és nem kell bejelentkeznie egy online fiókba, és nem kell szinkronizálnia az adatokat a felhőbe. Ha ilyen jellemzőkkel rendelkező eszközt használ, azzal csökkentheti a bizalmas adatok nyilvános felfedésének kockázatát.

1. lépés: A sablon létrehozása

Mielőtt végrehajthat egy Liquid-átalakítást a logikai alkalmazás munkafolyamatában, először létre kell hoznia egy Liquid-sablont, amely meghatározza a kívánt leképezést.

  1. Hozza létre a JSON-átalakítás térképeként használt Liquid-sablont. Tetszőleges szerkesztőeszközt használhat.

    A cikkben szereplő JSON-ról JSON-ra történő átalakítási példa a következő folyékony mintasablont használja:

    {%- assign deviceList = content.devices | Split: ', ' -%}
    
    {
       "fullName": "{{content.firstName | Append: ' ' | Append: content.lastName}}",
       "firstNameUpperCase": "{{content.firstName | Upcase}}",
       "phoneAreaCode": "{{content.phone | Slice: 1, 3}}",
       "devices" : [
          {%- for device in deviceList -%}
             {%- if forloop.Last == true -%}
             "{{device}}"
             {%- else -%}
             "{{device}}",
             {%- endif -%}
          {%- endfor -%}
       ]
    }
    
  2. Mentse a sablont a Liquid sablon (.liquid) fájlkiterjesztéssel. Ez a példa neve SimpleJsonToJsonTemplate.liquid.

2. lépés: Folyékony sablon feltöltése

A Liquid-sablon létrehozása után most a következő forgatókönyv alapján kell feltöltenie a sablont:

Sablon feltöltése integrációs fiókba

  1. Az Azure Portalon jelentkezzen be az Azure-fiók hitelesítő adataival.

  2. Az Azure Portal keresőmezőjében adja meg az integrációs fiókokat, és válassza az Integrációs fiókok lehetőséget.

    Képernyőkép az Azure Portal keresőmezőről, amelyen beírt integrációs fiókok és kiválasztott integrációs fiókok láthatók.

  3. Keresse meg és válassza ki az integrációs fiókot.

    Képernyőkép az integrációs fiókok panelről, amelyen az integrációs fiók van kiválasztva.

  4. Az integrációs fiók navigációs menüjében, a Beállítások területen válassza a Térképek lehetőséget.

    Képernyőkép az integrációs fiók navigációs menüjéről, amelyen a Térképek van kiválasztva.

  5. A Térképek panelen válassza a Hozzáadás lehetőséget. Adja meg a következő információkat a térképről:

    Tulajdonság Érték Leírás
    Név JsonToJsonTemplate A térkép neve, amely JsonToJsonTemplate ebben a példában
    Térkép típusa Folyadék A térkép típusa. A JSON-ról JSON-ra történő átalakításhoz a Liquid lehetőséget kell választania.
    Térkép SimpleJsonToJsonTemplate.liquid Az átalakításhoz használandó meglévő Liquid-sablon vagy térképfájl, amely ebben a példában a SimpleJsonToJsonTemplate.liquid . A fájl megkereséséhez használhatja a fájlválasztót. A térkép méretkorlátjaiért tekintse meg a korlátokat és a konfigurációt.

    Képernyőkép a Térkép hozzáadása panelről az új sablon feltöltésével.

Sablon feltöltése a Standard logikai alkalmazásba

  1. Nyissa meg a Standard logikai alkalmazás erőforrását az Azure Portalon. Győződjön meg arról, hogy az erőforrás szintjén van, nem pedig a munkafolyamat szintjén.

  2. Az erőforrás oldalsáv menüjében, az Összetevők területen válassza a Térképek lehetőséget.

  3. A Térképek panel eszköztárán válassza a Hozzáadás lehetőséget.

  4. A Térkép hozzáadása panelen húzza a fájlt a feltöltési mezőbe, vagy válassza a Tallózás a fájlok között lehetőséget.

    Miután a térképfájl feltöltése befejeződött, a térkép megjelenik a Térképek listában. Az integrációs fiók Áttekintés lapján, az Összetevők területen a feltöltött térkép is megjelenik.

3. lépés: A Liquid átalakítási művelet hozzáadása

Az alábbi lépések bemutatják, hogyan adhat hozzá folyékony átalakítási műveletet a Használat és a Standard logikai alkalmazás munkafolyamataihoz.

  1. Az Azure Portalon nyissa meg a Consumption logikai alkalmazás erőforrását.

  2. Az erőforrás oldalsávjának Fejlesztői eszközök csoportjában válassza ki a tervezőt a munkafolyamat megnyitásához.

  3. Ha a munkafolyamat nem rendelkezik eseményindítóval vagy a munkafolyamathoz szükséges egyéb műveletekkel, először vegye fel ezeket a műveleteket. A folyékony műveletekhez nincs elérhető eseményindító.

    Ez a példa a HTTP-kérés fogadásakor elnevezett Kérelem eseményindítóval folytatódik.

  4. Az eseményindító alatt válassza a Művelet hozzáadása lehetőséget. A keresőmezőbe írja be a folyadékot.

  5. A műveletek listájában válassza ki a használni kívánt Liquid műveletet.

    Ez a példa továbbra is a JSON átalakítása JSON-ra nevű műveletet használja.

    Képernyőkép a Consumption munkafolyamat-tervezőről, a kiválasztott Liquid művelettel.

  6. A művelet Content tulajdonságában adja meg az eseményindító vagy az átalakítani kívánt korábbi művelet JSON-kimenetét az alábbi lépések végrehajtásával.

    1. A Tartalom mezőben válassza ki a dinamikus tartalomlista (villám ikon) vagy a kifejezésszerkesztő (függvényikon) megnyitásának lehetőségeit. A dinamikus tartalomlista megnyitásához válassza a villám ikont.

    2. A dinamikus tartalomlistában válassza ki az átalakítani kívánt JSON-adatokat.

      Ebben a példában a dinamikus tartalomlistában a HTTP-kérés fogadásakor válassza ki a Törzs jogkivonatot, amely az eseményindító törzstartalom-kimenetét jelöli.

      Képernyőkép a Használati munkafolyamatról, a Liquid action

  7. A Térkép listában válassza ki a Liquid-sablont.

    Ez a példa a JsonToJsonTemplate nevű sablonnal folytatódik.

    Képernyőkép a Fogyasztási munkafolyamatról, a Liquid akció Map tulajdonságáról és a kiválasztott sablonról.

    Feljegyzés

    Ha a térképek listája üres, akkor vagy a logikai alkalmazás erőforrása nem kapcsolódik az integrációs fiókhoz, vagy az integrációs fiók nem tartalmaz térképfájlokat.

  8. Mentse a munkafolyamatot. A tervező eszköztárán válassza a Mentés lehetőséget.

A munkafolyamat tesztelése

A munkafolyamat aktiválásához kövesse az alábbi lépéseket:

  1. A Kérelem eseményindítóban keresse meg a HTTP URL-tulajdonságot , és másolja ki az URL-címet.

  2. Nyissa meg a HTTP-kérési eszközt, és annak utasításait használva küldjön HTTP-kérést a másolt URL-címre, beleértve azt a módszert is, amelyet a kérésindító elvár.

    Ez a példa az POST URL-címmel rendelkező metódust használja.

  3. Adja meg az átalakítandó JSON-bemenetet, például:

    {
       "devices": "Surface, Mobile, Desktop computer, Monitors",
       "firstName": "Dean",
       "lastName": "Ledet",
       "phone": "(111)0001111"
    }
    
  4. A munkafolyamat futtatása után nyissa meg a munkafolyamat futtatási előzményeit, és vizsgálja meg a JSON átalakítása JSON-művelet bemeneteivé és kimeneteivé, például:

    Képernyőkép a példakimenetről.

Egyéb folyadékátalakítások

A Liquid használatával más átalakításokat is végrehajthat, például:

JSON átalakítása szöveggé

Az alábbi Liquid-sablon a JSON szöveggé alakítására mutat példát:

{{content.firstName | Append: ' ' | Append: content.lastName}}

Az alábbi példa a minta bemeneteit és kimeneteit mutatja be:

A JSON-szöveg átalakítása példakimenetét bemutató képernyőkép.

XML átalakítása JSON-ra

Az alábbi Liquid-sablon az XML-ről JSON-ra történő példaátalakítást mutatja be:

[{% JSONArrayFor item in content -%}
      {{item}}
  {% endJSONArrayFor -%}]

A JSONArrayFor hurok egy egyéni hurkozási mechanizmus AZ XML-bemenethez, így JSON-hasznos adatokat hozhat létre, amelyek elkerülik a záró vesszőt. Emellett az where egyéni hurokozási mechanizmus feltétele az XML-elem nevének összehasonlítására szolgál, nem pedig az elem értékének, mint a többi Liquid-szűrőnek. További információkért lásd : Részletes elemzés a set-body szabályzatról – Dolgok gyűjteményei.

Az alábbi példa a minta bemeneteit és kimeneteit mutatja be:

Képernyőkép az XML-ről JSON-átalakításra vonatkozó példakimenetről.

XML átalakítása szöveggé

Az alábbi Liquid-sablon az XML szöveggé alakítására mutat példát:

{{content.firstName | Append: ' ' | Append: content.lastName}}

Az alábbi példa a minta bemeneteit és kimeneteit mutatja be:

Képernyőkép az XML-szöveg átalakítása példakimenetről

Likvid sablonokkal kapcsolatos szempontok

  • A folyékony sablonok az Azure Logic Apps térképeinek fájlméretkorlátait követik.

  • A JSON átalakítása JSON-ra művelet a Liquid DotLiquid implementációja alapján történik. Ez a megvalósítás a Liquid Shopify-implementációjának .NET-keretrendszer portja, és adott esetekben eltérő.

    Az alábbi lista az ismert különbségeket ismerteti:

    • A JSON átalakítása JSON-ra natív módon egy sztringet ad ki, amely tartalmazhat JSON-t, XML-t, HTML-t stb. A Liquid művelet csak azt jelzi, hogy a Liquid-sablon várt szöveges kimenete egy JSON-sztring. A művelet arra utasítja a logikai alkalmazást, hogy JSON-objektumként elemezze a bemenetet, és egy burkolót alkalmazzon, hogy a Liquid értelmezni tudja a JSON-struktúrát. Az átalakítás után a művelet arra utasítja a logikai alkalmazást, hogy elemezni fogja a Liquidből JSON-ba irányuló szöveges kimenetet.

      A DotLiquid nem ismeri natív módon a JSON-t, ezért ügyeljen arra, hogy elkerülje a fordított perjel karaktert (\) és a többi fenntartott JSON-karaktert.

    • Ha a sablon folyékony szűrőket használ, győződjön meg arról, hogy követi a DotLiquid és a C# elnevezési konvencióit, amelyek mondatburkolatot használnak. Az összes Liquid-átalakítás esetében győződjön meg arról, hogy a sablon szűrőnevei mondatburkolatot is használnak. Ellenkező esetben a szűrők nem működnek.

      Ha például a szűrőt replace használja, használja Replacea nem replace. Ugyanez a szabály érvényes, ha példákat próbál ki a DotLiquid online felületén. További információ: Shopify Liquid szűrők és DotLiquid Liquid szűrők. A Shopify specifikációja példákat tartalmaz az egyes szűrőkhöz, így összehasonlítás céljából ezeket a példákat a DotLiquid – Online kipróbálás webhelyen is kipróbálhatja.

    • A json Shopify bővítményszűrők szűrője jelenleg nincs implementálva a DotLiquidben. Ez a szűrő általában a JSON-sztringelemzés szöveges kimenetének előkészítésére használható, de ehelyett a szűrőt Replace kell használnia.

    • A DotLiquid implementáció standard Replace szűrője reguláris kifejezés (RegEx) egyeztetést használ, míg a Shopify implementáció egyszerű sztringegyeztetést használ. Úgy tűnik, hogy mindkét implementáció ugyanúgy működik, amíg regEx-fenntartott karaktert vagy feloldó karaktert nem használ az egyezés paraméterben.

      Például a RegEx által fenntartott fordított perjel (\) feloldó karakterének feloldásához használja | Replace: '\\', '\\', és ne | Replace: '\', '\\'. Ezek a példák azt mutatják be, hogy a Replace szűrő hogyan viselkedik másképp, amikor megpróbálja kikerülni a fordított perjel karaktert. Bár ez a verzió sikeresen működik:

      { "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\\', '\\' | Replace: '"', '\"'}}"}

      Ezzel az eredménnyel:

      { "SampleText": "The quick brown fox \"jumped\" over the sleeping dog\\\\"}

      Ez a verzió nem működik:

      { "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\', '\\' | Replace: '"', '\"'}}"}

      Ezzel a hibával:

      { "SampleText": "Liquid error: parsing "\" - Illegal \ at end of pattern."}

      További információ: Standard szűrő cseréje RegEx-mintaegyezés használatával....

    • A Sort DotLiquid implementáció szűrője egy tömb vagy gyűjtemény elemeit rendezi tulajdonság szerint, de az alábbi különbségekkel: