Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Amikor logikaialkalmazás-munkafolyamatot hoz létre az Azure Logic Appsben, a munkafolyamat egy mögöttes JavaScript Object Notation (JSON) definícióval rendelkezik, amely leírja a munkafolyamatot futtató tényleges logikát. A munkafolyamat-definíció egy olyan struktúrát követ, amely a Munkafolyamatdefiníció nyelvi sémája alapján van érvényesítve. Ez a hivatkozás áttekintést nyújt erről a struktúráról, valamint arról, hogy a séma hogyan határozza meg az attribútumokat a munkafolyamat-definícióban.
Munkafolyamat-definíciós struktúra
A munkafolyamat-definíciók mindig tartalmaznak egy eseményindítót, amely példányosítja a munkafolyamatot, valamint egy vagy több olyan műveletet, amely az eseményindító elindítása után fut.
A munkafolyamat-definíciók magas szintű struktúrája a következő:
"definition": {
"$schema": "<workflow-definition-language-schema-version>",
"actions": { "<workflow-action-definitions>" },
"contentVersion": "<workflow-definition-version-number>",
"outputs": { "<workflow-output-definitions>" },
"parameters": { "<workflow-parameter-definitions>" },
"staticResults": { "<static-results-definitions>" },
"triggers": { "<workflow-trigger-definitions>" }
}
| Attribute | Required | Description |
|---|---|---|
definition |
Yes | A munkafolyamat-definíció kezdő eleme |
$schema |
Csak akkor, ha külsőleg hivatkozik egy munkafolyamat-definícióra | A munkafolyamat-definíció nyelvének verzióját leíró JSON-sémafájl helye, amelyet itt talál: https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json |
actions |
No | A munkafolyamat-futtatókörnyezetben végrehajtandó egy vagy több művelet definíciói. További információ: Triggerek és műveletek. Műveletek maximális száma: 250 |
contentVersion |
No | A munkafolyamat-definíció verziószáma, amely alapértelmezés szerint "1.0.0.0". A munkafolyamat üzembe helyezésekor a megfelelő definíció azonosításához és megerősítéséhez adjon meg egy használandó értéket. |
outputs |
No | A munkafolyamat-futtatásból visszatérni kívánt kimenetek definíciói. További információ: Kimenetek. Kimenetek maximális száma: 10 |
parameters |
No | Egy vagy több paraméter definíciói, amelyek a logikai alkalmazás futtatókörnyezetében használandó értékeket adják át. További információért lásd: Paraméterek. Maximális paraméterek: 50 |
staticResults |
No | A műveletek által visszaadott egy vagy több statikus eredmény definíciói utánzatkimenetként, ha a statikus eredmények engedélyezve vannak ezeken a műveleteken. Minden műveletdefinícióban a runtimeConfiguration.staticResult.name attribútum a staticResults-en belüli megfelelő definícióra hivatkozik. További információ: Statikus eredmények. |
triggers |
No | A munkafolyamatot kiváltó egy vagy több trigger definíciója. Több eseményindítót is definiálhat, de csak a munkafolyamat-definíció nyelvével, vizuálisan nem a munkafolyamat-tervezőn keresztül. További információ: Triggerek és műveletek. Maximális kiváltók: 10 |
Eseményindítók és műveletek
A munkafolyamat-definícióban a triggers és actions szakaszok határozzák meg a munkafolyamat végrehajtása során történő hívásokat. A szakaszok szintaxisát és további információit a Munkafolyamat-eseményindítók és -műveletek című témakörben találja.
Parameters
A telepítési életciklus általában különböző fejlesztési, tesztelési, előkészítési és éles környezetet tartalmaz. A logikai alkalmazások különböző környezetekben való üzembe helyezésekor valószínűleg különböző értékeket, például kapcsolati sztringeket szeretne használni az üzembe helyezés igényeinek megfelelően. Előfordulhat, hogy olyan értékekkel rendelkezik, amelyeket újra szeretne használni a munkafolyamatban anélkül, hogy kemény kódolást használna, vagy amelyek gyakran változnak. A munkafolyamat-definíció szakaszában meghatározhatja parameters vagy szerkesztheti a munkafolyamat futásidejében használt értékek paramétereit. Ezeket a paramétereket először meg kell határoznia, mielőtt hivatkozhat ezekre a paraméterekre a munkafolyamat-definíció más részein.
A paraméterdefiníció általános felépítése:
"parameters": {
"<parameter-name>": {
"type": "<parameter-type>",
"defaultValue": <default-parameter-value>,
"allowedValues": [ <array-with-permitted-parameter-values> ],
"metadata": {
"description": "<parameter-description>"
}
}
},
| Attribute | Required | Típus | Description |
|---|---|---|---|
| < paraméter neve> | Yes | String | A definiálni kívánt paraméter neve |
| < paramétertípus> | Yes | int, float, string, bool, tömb, objektum, biztonságos karakterlánc, biztonságos objektum Megjegyzés: Az összes jelszóhoz, kulcshoz és titkos kódhoz használja a securestring típusokat secureobject , mert a művelet nem adja vissza ezeket a GET típusokat. A paraméterek biztonságossá tételével kapcsolatos további információkért tekintse meg a műveleti és bemeneti paraméterek biztonsági ajánlásait. |
A paraméter típusa |
| < default-parameter-value> | Yes | Akárcsak type |
Az alapértelmezett paraméterérték, amelyet akkor kell használni, ha a munkafolyamat példányosításakor nincs megadva érték. Az defaultValue attribútumra azért van szükség, hogy a munkafolyamat-tervező megfelelően tudja megjeleníteni a paramétert, de megadhat egy üres értéket. |
| < tömb-with-permitted-parameter-values> | No | Array | A paraméter által elfogadható értékeket tartalmazó tömb |
| < paraméter leírása> | No | JSON-objektum | Egyéb paraméteradatok, például a paraméter leírása |
Ezután hozzon létre egy Azure Resource Manager-sablont a munkafolyamat-definícióhoz, definiáljon olyan sablonparamétereket, amelyek elfogadják az üzembe helyezéskor használni kívánt értékeket, cserélje le a rögzített értékeket sablon- vagy munkafolyamat-definíciós paraméterekre mutató hivatkozásokkal, és tárolja az üzembe helyezéskor használandó értékeket egy külön paraméterfájlban. Így egyszerűbben módosíthatja ezeket az értékeket a paraméterfájlon keresztül anélkül, hogy frissítenie és újra üzembe kellene helyeznie a logikai alkalmazást. A bizalmas vagy biztonságos információk, például felhasználónevek, jelszavak és titkos kódok esetén ezeket az értékeket az Azure Key Vaultban tárolhatja, és a paraméterfájl lekérheti ezeket az értékeket a kulcstartóból. További információ és példák a paraméterek sablon- és munkafolyamat-definíciós szinteken való definiálásáról: Áttekintés: A logikai alkalmazások üzembe helyezésének automatizálása Azure Resource Manager-sablonokkal.
Statikus eredmények
Az attribútumban staticResults adja meg a művelet mintaképét outputs , és status hogy a művelet akkor tér vissza, ha a művelet statikus eredménybeállítása be van kapcsolva. A művelet definíciójában az runtimeConfiguration.staticResult.name attribútum a belső staticResultsstatikus eredménydefiníció nevére hivatkozik. Megtudhatja, hogyan tesztelheti a logikai alkalmazás munkafolyamatait a modelladatokkal statikus eredmények beállításával.
"definition": {
"$schema": "<...>",
"actions": { "<...>" },
"contentVersion": "<...>",
"outputs": { "<...>" },
"parameters": { "<...>" },
"staticResults": {
"<static-result-definition-name>": {
"outputs": {
<output-attributes-and-values-returned>,
"headers": { <header-values> },
"statusCode": "<status-code-returned>"
},
"status": "<action-status>"
}
},
"triggers": { "<...>" }
}
| Attribute | Required | Típus | Description |
|---|---|---|---|
| < static-result-definition-name> | Yes | String | Egy statikus eredménydefiníció neve, amelyre egy műveletdefiníció hivatkozhat egy runtimeConfiguration.staticResult objektumon keresztül. További információ: Futtatókörnyezet konfigurációs beállításai. Tetszőleges egyedi nevet használhat. Ez az egyedi név alapértelmezés szerint egy számmal van hozzáfűzve, amely szükség szerint növekszik. |
| < output-attributes-and-values-returned> | Yes | Varies | Az attribútumok követelményei a különböző feltételektől függően változnak. Például, amikor a statusSucceeded, a outputs attribútum olyan attribútumokat és értékeket tartalmaz, amelyeket a művelet tesztkimenetként ad vissza. Ha igen statusFailed, az outputs attribútum tartalmazza az errors attribútumot, amely egy vagy több hibaobjektumot message tartalmazó tömb, amely hibainformációval rendelkezik. |
| < fejlécértékek> | No | JSON | A művelet által visszaadott fejlécértékek |
| < status-code-returned> | Yes | String | A művelet által visszaadott állapotkód |
| < művelet állapota> | Yes | String | A művelet állapota, például SucceededFailed |
Ebben a HTTP-műveletdefinícióban például az attribútum annak az runtimeConfiguration.staticResult.name attribútumnak a HTTP0 hivatkozására hivatkozikstaticResults, amelyben a művelethez tartozó makettkimenetek definiálva vannak. Az runtimeConfiguration.staticResult.staticResultOptions attribútum azt adja meg, hogy a statikus eredménybeállítás a HTTP-műveleten van Enabled .
"actions": {
"HTTP": {
"inputs": {
"method": "GET",
"uri": "https://www.microsoft.com"
},
"runAfter": {},
"runtimeConfiguration": {
"staticResult": {
"name": "HTTP0",
"staticResultOptions": "Enabled"
}
},
"type": "Http"
}
},
Az HTTP-művelet a HTTP0 definícióban lévő staticResults kimeneteket adja vissza. Ebben a példában az állapotkód esetében a makett kimenete OK. Fejlécértékek esetén a hamis kimenet "Content-Type": "application/JSON". A művelet állapota esetén a modell kimenete .Succeeded
"definition": {
"$schema": "<...>",
"actions": { "<...>" },
"contentVersion": "<...>",
"outputs": { "<...>" },
"parameters": { "<...>" },
"staticResults": {
"HTTP0": {
"outputs": {
"headers": {
"Content-Type": "application/JSON"
},
"statusCode": "OK"
},
"status": "Succeeded"
}
},
"triggers": { "<...>" }
},
Expressions
A JSON használatával a tervezéskor meglévő literális értékekkel rendelkezhet, például:
"customerName": "Sophia Owen",
"rainbowColors": ["red", "orange", "yellow", "green", "blue", "indigo", "violet"],
"rainbowColorsCount": 7
Olyan értékekkel is rendelkezhet, amelyek futási időig nem léteznek. Ezeknek az értékeknek a megjelenítéséhez használhat kifejezéseket, amelyeket futásidőben értékelnek ki. A kifejezés olyan sorozat, amely egy vagy több függvényt, operátort, változót, explicit értéket vagy állandót tartalmazhat. A munkafolyamat-definícióban bármely JSON-sztring értékben használhat kifejezéseket a @ jel használatával. Egy JSON-értéket képviselő kifejezés kiértékelésekor a rendszer a @ karakter eltávolításával nyeri ki a kifejezés törzsét, és mindig egy másik JSON-értéket eredményez.
A korábban definiált customerName tulajdonság esetében például lekérheti a tulajdonság értékét a paraméterek() függvény használatával egy kifejezésben, és hozzárendelheti az értéket a accountName tulajdonsághoz:
"customerName": "Sophia Owen",
"accountName": "@parameters('customerName')"
A sztring interpolációja lehetővé teszi, hogy a @ karakter és a kapcsos zárójelek ({}) által burkolt sztringeken belül több kifejezést is használjon. A szintaxis a következő:
@{ "<expression1>", "<expression2>" }
Az eredmény mindig egy sztring, így ez a képesség hasonló a concat() függvényhez, például:
"customerName": "First name: @{parameters('firstName')} Last name: @{parameters('lastName')}"
Ha egy szó szerinti karakterlánc kezdődik az @ karakterrel, akkor előtagként adjon hozzá egy másik @ karaktert a feloldáshoz: @@
Az alábbi példák a kifejezések kiértékelésének módját mutatják be:
| JSON-érték | Result |
|---|---|
| "Sophia Owen" | Adja vissza a következő karaktereket: "Sophia Owen" |
| "array[1]" | A következő karaktereket adja vissza: "tömb[1]" |
| "@@" | Ezeket a karaktereket adja vissza egy karakteres sztringként: "@" |
| " @" | Ezeket a karaktereket adja vissza két karakteres sztringként: ' @' |
Ezekhez a példákhoz tegyük fel, hogy a "myBirthMonth" értéke "január" és "myAge" egyenlő a 42-es számmal:
"myBirthMonth": "January",
"myAge": 42
Az alábbi példák a következő kifejezések kiértékelésének módját mutatják be:
| JSON-kifejezés | Result |
|---|---|
| "@parameters('myBirthMonth')" | Adja vissza ezt a karakterláncot: "január" |
| "@{parameters('myBirthMonth')}" | Adja vissza ezt a karakterláncot: "január" |
| "@parameters('myAge')" | Adja vissza ezt a számot: 42 |
| "@{parameters('myAge')}" | Adja vissza ezt a számot sztringként: "42" |
| "Az életkorom @{parameters('myAge')}" | Adja meg ezt a karakterláncot: "Az életkorom 42" |
| "@concat('Az életkorom ', string(parameters('myAge')))" | Adja meg ezt a karakterláncot: "Az életkorom 42" |
| "Az életkorom @@{parameters('myAge')}" | Adja vissza ezt a sztringet, amely a következő kifejezést tartalmazza: "Az életkorom @{parameters('myAge')}" |
Amikor vizuálisan dolgozik a munkafolyamat-tervezőben, kifejezéseket hozhat létre a kifejezésszerkesztővel, például:
Ha elkészült, a kifejezés megjelenik a munkafolyamat-definíció megfelelő tulajdonságánál, például az itt lévő searchQuery tulajdonságnál.
"Search_tweets": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['x']['connectionId']"
}
}
},
"method": "get",
"path": "/searchtweets",
"queries": {
"maxResults": 20,
"searchQuery": "Azure @{concat('firstName','', 'LastName')}"
}
},
Outputs
outputs A szakaszban adja meg azokat az adatokat, amelyeket a munkafolyamat a futtatás befejezésekor vissza tud adni. Ha például egy adott állapotot vagy értéket szeretne nyomon követni az egyes futtatásokból, adja meg, hogy a munkafolyamat kimenete ezeket az adatokat adja vissza.
Note
Amikor egy szolgáltatás REST API-jából érkező kérelmekre válaszol, ne használja outputs. Ehelyett használja a Response művelet típusát.
További információ: Munkafolyamat-eseményindítók és műveletek.
A kimeneti definíciók általános struktúrája:
"outputs": {
"<key-name>": {
"type": "<key-type>",
"value": "<key-value>"
}
}
| Attribute | Required | Típus | Description |
|---|---|---|---|
| < kulcsnév> | Yes | String | A kimeneti visszatérési érték kulcsneve |
| < kulcstípus> | Yes | int, float, string, securestring, bool, array, JSON object | A kimeneti visszatérési érték típusa |
| < kulcs-érték> | Yes | Ugyanaz, mint a <kulcstípus> | A kimeneti visszatérési érték |
A munkafolyamat-futtatás kimenetének lekéréséhez tekintse át a logikai alkalmazás futtatási előzményeit és részleteit az Azure Portalon, vagy használja a Workflow REST API-t. A kimenetet külső rendszereknek is átadhatja, például a Power BI-t, hogy irányítópultokat hozhasson létre.
Operators
A kifejezésekben és függvényekben az operátorok meghatározott feladatokat hajtanak végre, például egy tulajdonságra vagy egy tömb értékének hivatkozására.
| Operator | Task |
|---|---|
' |
Ha sztringkonstanst szeretne használni bemenetként vagy kifejezésekben és függvényekben, akkor a sztringet csak egyetlen idézőjellel kell körülvenni, például '<myString>'. Ne használjon idézőjeleket (""), amelyek ütköznek egy teljes kifejezés JSON-formázásával. Például: Igen: length('Hello') Nem: length("Hello") Tömbök vagy számok átadásakor nincs szükség keretező írásjelekre. Például: Igen: hossz([1, 2, 3]) Nem: hossz("[1, 2, 3]") |
[] |
Ha egy tömbben vagy egy JSON-objektumon belül egy adott pozícióban (indexben) lévő értékre szeretne hivatkozni, használjon szögletes zárójeleket, például: – A tömb második elemének lekérése: myArray[1] – JSON-objektum tulajdonságainak elérése: 1. példa: setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>) 2. példa: lastIndexOf(triggerBody()?['subject'],'some string') |
. |
Ha egy objektum egyik tulajdonságára szeretne hivatkozni, használja a pont operátort. Például a name tulajdonság lekéréséhez egy customer JSON-objektumból: "parameters('customer').name" |
? |
Ha egy objektum tulajdonságára szeretne hivatkozni futásidejű hiba vagy a munkafolyamat meghibásodása nélkül, használja a tulajdonságot megelőző kérdőjel operátort (?más néven null figyelmen kívül hagyási operátort). Ez az operátor lehetővé teszi egy tulajdonság vagy tömbelem biztonságos elérését, ha a szülőobjektum vagy a hivatkozott tulajdonság tartalmazhatja null vagy hiányzik. – Ha az operátor ? előtt null megjelenő szülőobjektum hiányzik vagy hiányzik a hivatkozott tulajdonságból, a teljes kifejezés a munkafolyamat meghiúsulása helyett ad visszanull. – Ha az objektum vagy tulajdonság létezik, a kifejezés a tulajdonság értékét adja vissza. Tegyük fel például, hogy a következő kifejezéssel rendelkezik: triggerBody()?['ContentData'] - Ha triggerBody() egy objektumot ad vissza a ContentData tulajdonságból, az objektum értékét kapja meg. - Ha triggerBody() hiányzik vagy hiányzik null a ContentData tulajdonság, a függvény a null hibaüzenettel adja vissza a függvény. Az ? operátor a hozzáférési tulajdonságok biztonságos láncát is lehetővé teszi, és az alábbi esetekben hasznos: – Az opcionális JSON-mezőkkel működő kifejezések kezelése. – Olyan összekötőkimenetek kezelése, amelyek bizonyos tulajdonságokat kihagyhatnak. - Kerülje a törékeny kifejezéseket a feltételes logikában. A tulajdonsághozzáférés láncolásához és az eseményindítók null kimeneteinek kezeléséhez például a következő kifejezést használhatja: coalesce(trigger().outputs?.body?['<property-name>'], '<property-default-value>') |
Functions
Egyes kifejezések olyan futtatókörnyezeti műveletekből szerzik be az értékeiket, amelyek még nem léteznek a munkafolyamat-definíció futtatásakor. Ha kifejezésben szeretne hivatkozni ezekre az értékekre, használhatja a munkafolyamat-definíciós nyelv által biztosított függvényeket .