在 Azure Logic Apps 中使用工作流程動作建立或聯結平行分支
適用於:Azure Logic Apps (使用量 + 標準)
根據預設,邏輯應用程式中的動作會依序執行。 若要將動作組織成個別的分支,並同時執行這些分支,您可以建立平行分支,然後稍後在工作流程中聯結這些分支。
本指南說明如何在工作流程中建立平行分支,並重新聯結這些分支,如此高階圖表所示:
提示
如果您的工作流程觸發程序收到陣列,而且您想要針對陣列中的每個項目執行工作流程執行個體,而不是建立平行分支,則可以改用 SplitOn 觸發程序屬性來將該陣列解除批次。
必要條件
Azure 訂用帳戶。 如果您沒有訂用帳戶,請註冊一個免費的 Azure 帳戶。
開頭為觸發程序和您想要的動作的邏輯應用程式工作流程。 確定您的工作流程包含您要在其中新增平行分支的動作。
使用平行分支的考量
只有在其 runAfter 屬性值符合父動作的已完成狀態時,平行分支才會執行。 例如,開頭為 branchAction1 和 branchAction2 的分支,只有在 parentAction 完成且狀態為成功時才會執行。
您的工作流程會等候相同層級的所有平行分支完成,再執行聯結這些分支的動作。
新增平行分支動作
在 Azure 入口網站中,在設計工具中開啟您的標準邏輯應用程式和工作流程。
在您要新增平行分支的動作之間,將指標移至連接箭號上方。
選取出現的加號 (+),然後選取 [新增平行分支]。
現在,新增您想要在平行分支中執行的動作。 在 [新增動作] 窗格和搜尋方塊中,尋找並選取您想要的動作。
選取的動作現在會出現在平行分支中,例如:
若要將另一個動作新增至平行分支,請在您要新增動作的動作底下,選取加號 (+) 符號,然後選取 [新增動作]。
在 [選擇作業] 搜尋方塊中,尋找並選取您想要的動作。
您選取的動作現在會出現目前的分支中,例如:
若要將分支合併回去,則加入您的平行分支。
平行分支定義 (JSON)
如果是在程式碼檢視中作業,可以改為在邏輯應用程式工作流程的 JSON 定義中定義平行結構,例如:
{
"triggers": {
"myTrigger": {}
},
"actions": {
"parentAction": {
"type": "<action-type>",
"inputs": {},
"runAfter": {}
},
"branchAction1": {
"type": "<action-type>",
"inputs": {},
"runAfter": {
"parentAction": [
"Succeeded"
]
}
},
"branchAction2": {
"type": "<action-type>",
"inputs": {},
"runAfter": {
"parentAction": [
"Succeeded"
]
}
}
},
"outputs": {}
}
加入平行分支
若要將平行分支合併在一起,只需在所有分支下新增另一個動作。 只有在前述所有平行分支都完成執行之後,此動作才會執行。
在 Azure 入口網站中,開啟您的標準邏輯應用程式和工作流程,其中有您要在設計工具中聯結的平行分支。
在您想要聯結的任何平行分支下,選取加號 (+),然後選取 [新增動作]。
在 [新增動作] 窗格和搜尋方塊中,尋找並選取您要用於聯結分支的動作。
在設計工具上,選取先前新增的動作。 動作的資訊窗格開啟之後,選取 [設定]。
在 [設定] 窗格的 [執行時間點] 底下,開啟 [選取動作] 清單,然後選取每個分支中必須完成,聯結動作才能執行的最後一個動作。
您實際上是指定聯結動作只在所有選取的動作完成執行之後才會執行。
當您完成時,選取的動作現在會出現在您要聯結的平行分支底下,例如:
加入定義 (JSON)
如果是在程式碼檢視中作業,可以改為在邏輯應用程式工作流程的 JSON 定義中定義聯結動作,例如:
{
"triggers": {
"myTrigger": { }
},
"actions": {
"parentAction": {
"type": "<action-type>",
"inputs": { },
"runAfter": {}
},
"branchAction1": {
"type": "<action-type>",
"inputs": { },
"runAfter": {
"parentAction": [
"Succeeded"
]
}
},
"branchAction2": {
"type": "<action-type>",
"inputs": { },
"runAfter": {
"parentAction": [
"Succeeded"
]
}
},
"joinAction": {
"type": "<action-type>",
"inputs": { },
"runAfter": {
"branchAction1": [
"Succeeded"
],
"branchAction2": [
"Succeeded"
]
}
}
},
"outputs": {}
}