在 Azure Logic Apps 中執行資料作業
適用於:Azure Logic Apps (使用量 + 標準)
本操作指南說明如何透過下列方式在邏輯應用程式工作流程中使用資料:
- 根據包含不同資料類型的多個輸入建立字串或 JavaScript 物件標記法 (JSON) 物件。 其後,您可以使用此字串作為單一輸入,而無須重複輸入相同的內容。
- 根據 JavaScript 物件標記法 (JSON) 物件屬性建立易記的權杖,以便在您的工作流程中輕鬆使用這些屬性。
- 根據陣列建立 HTML 或 CSV 資料表。
- 根據指定的篩選條件或條件,根據其他陣列來建立陣列。
- 根據另一個陣列中所有項目的指定屬性建立陣列。
- 根據陣列中的所有項目建立字串,並使用指定的字元來分隔這些項目。
如需使用資料的其他方式,請檢閱 Azure Logic Apps 所提供的資料操作函式。
必要條件
Azure 帳戶和訂用帳戶。 如果您沒有訂用帳戶,請註冊一個免費的 Azure 帳戶。
用於執行資料作業的邏輯應用程式工作流程。 此工作流程必須已有觸發程序作為工作流程的第一個步驟。 「取用」和「標準」邏輯應用程式工作流程都支援本指南中所述的資料作業。
所有資料作業只能當成動作使用。 因此,在使用這些動作之前,您的工作流程必須已由觸發程序啟動,並包含建立輸出以供資料作業使用的任何其他動作。
資料作業動作
下列各節彙整了您可以使用的資料作業,並根據作業所操作的來源資料類型進行編排,但每項描述會依字母順序顯示。
JSON 動作
下列動作可協助您使用 JavaScript 物件標記法 (JSON) 格式的資料。
動作 | 描述 |
---|---|
組成 | 從可具有各種資料類型的多個輸入建立訊息或字串。 其後,您可以使用此字串作為單一輸入,而無須重複輸入相同的內容。 例如,您可以從多種輸入建立單一 JSON 訊息。 |
剖析 JSON | 為 JSON 內容中的屬性建立易記的權杖,以便在您的邏輯應用程式中輕鬆使用這些屬性。 |
若要建立更複雜的 JSON 轉換,請參閱使用 Liquid 範本執行進階的 JSON 轉換。
陣列動作
下列動作可協助您使用陣列中的資料。
動作 | 描述 |
---|---|
建立 CSV 資料表 | 從陣列建立逗號分隔值 (CSV) 資料表。 |
建立 HTML 資料表 | 從陣列建立 HTML 資料表。 |
篩選陣列 | 根據指定的篩選條件或條件,從陣列建立陣列子集。 |
聯結 | 從陣列中的所有項目建立字串,並使用指定的字元來分隔每個項目。 |
選取 | 從不同陣列中所有項目的指定屬性建立陣列。 |
撰寫動作
若要從多個輸入建構單一輸出 (例如 JSON 物件),您可以使用名為撰寫的動作。 您的輸入可具有多種不同類型,例如整數、布林值、陣列、JSON 物件,以及 Azure Logic Apps 所支援的任何其他原生類型,例如二進位檔與 XML。 接著,您可以在撰寫動作之後的動作中使用其輸出。 撰寫動作也可讓您在建立邏輯應用程式的工作流程時,無需重複輸入相同的內容。
例如,您可以從多個變數建構 JSON 訊息,例如,以字串變數儲存人員的名字和姓氏,並以整數變數儲存人員的年齡。 在此範例中,撰寫指令會接受下列輸入:
{ "age": <ageVar>, "fullName": "<lastNameVar>, <firstNameVar>" }
並建立下列輸出:
{"age":35,"fullName":"Owens,Sophia"}
若要嘗試撰寫動作,請使用工作流程設計工具進行下列步驟。 或者,如果您偏好在程式碼檢視編輯器中工作,您可以將本指南中的範例撰寫和將變數初始化動作定義複製到您自己的邏輯應用程式基礎工作流程定義中:資料作業程式碼範例 - 撰寫。 如需基礎 JSON 工作流程定義中撰寫動作的詳細資訊 ,請參閱撰寫動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,從設計工具開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站和範例工作流程搭配週期性觸發程序,後面接著數個將變數初始化動作。 這些動作依設定會建立兩個字串變數和一個整數變數。
在您要建立輸出的工作流程中,依照下列其中一個步驟操作:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭頭上,如此就會出現加號 (+)。 選取加號標誌,然後選取新增動作。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入撰寫。
從動作清單中,選取名為 [撰寫] 的動作。
在 [輸入] 方塊中,輸入用於建立輸出的輸入。
針對此範例,請選取 [輸入] 方塊內部,藉此開啟動態內容清單。 從該清單中,選取先前建立的變數:
下列螢幕擷取畫面顯示已完成的範例撰寫動作:
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認撰寫動作建立的結果是否符合預期,請將包含撰寫動作輸出的通知傳送給自己。
在您的工作流程中,新增可將撰寫動作的結果傳送給您自己的動作。
此範例接下來會使用名為傳送電子郵件的 Office 365 Outlook 動作。
在此動作中,針對您想要顯示結果的每個方塊,選取各個方塊內部,隨即會開啟動態內容清單。 從該清單中,選取 [撰寫] 動作底下的 [輸出]。
針對此範例,結果會出現在電子郵件的內文中,因此請將 [輸出] 欄位新增至 [主體] 方塊。
儲存您的工作流程,然後手動執行工作流程。 在設計工具的工具列上,選取 [執行觸發程序]>[執行]。
如果您使用 Office 365 Outlook 動作,則會產生類似下列螢幕擷取畫面的結果:
建立 CSV 資料表動作
若要從陣列中的 JavaScript 物件標記法 (JSON) 物件建立含有其屬性和值的逗號分隔值 (CSV) 資料表,請使用名為 [建立 CSV 資料表] 的動作。 接著,您可以在建立 CSV 資料表動作之後的動作中使用產生的資料表。
若要嘗試建立 CSV 資料表動作,請使用工作流程設計工具進行下列步驟。 或者,如果您偏好在程式碼檢視編輯器中工作,您可以將本指南中的範例建立 CSV 資料表和將變數初始化動作定義複製到您自己的邏輯應用程式基礎工作流程定義中:資料作業程式碼範例 - 建立 CSV 資料表。 如需在基礎 JSON 工作流程定義中建立 CSV 資料表動作的詳細資訊,請參閱資料表動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,從設計工具開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站和範例工作流程搭配週期性觸發程序,後面接著將變數初始化動作。 此動作依設定會建立一個變數,且其初始值為陣列,含有 JSON 格式的一些屬性和值。
在您要建立 CSV 資料表的工作流程中,依照下列其中一個步驟操作:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭頭上,如此就會出現加號 (+)。 選取加號標誌,然後選取新增動作。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入建立 csv 資料表。
從 [動作] 清單中,選取名為 [建立 CSV 資料表] 的動作。
在 [來源] 方塊中,輸入用來建立資料表的陣列或運算式。
針對此範例,請選取 [來源] 方塊內部,藉此開啟動態內容清單。 從該清單中,選取先前建立的變數:
注意
若要為 JSON 物件中的屬性建立易記的權杖,以便您可以選取這些屬性作為輸入,請先使用名為剖析 JSON 的動作,再使用建立 CSV 資料表動作。
下列螢幕擷取畫面顯示已完成的範例建立 CSV 資料表動作:
儲存您的工作流程您 在設計師工具列上選取儲存。
自訂資料表格式
根據預設,Columns 屬性會設定為根據陣列項目自動建立資料表資料行。 若要指定自訂的標頭和值,請遵循下列步驟:
如果 [資料行] 屬性未出現在動作資訊方塊中,請從 [新增參數] 清單中選取 [資料行]。
開啟 [資料行] 清單,然後選取 [自訂]。
在 Header 屬性中,指定要改用的自訂標頭文字。
在 Value 屬性中,指定要改用的自訂值。
若要從陣列傳回值,您可以使用 函式搭配 [建立 CSV 資料表]item()
動作。 在 For_each
迴圈中,您可以使用items()
函式。
例如,假設您所需的資料表資料行只有屬性值,而沒有陣列中的屬性名稱。 若要只傳回這些值,請遵循下列步驟,在設計工具檢視或程式碼檢視中進行處理。
此範例會傳回下列結果:
Apples,1
Oranges,2
在設計工具檢視中進行處理
在 [建立 CSV 資料表] 動作中,將 [標頭] 資料 行保留空白。 在 [值] 資料行中的每個資料列上,取值您所需的每個陣列屬性。 [值] 下的每個資料列都會傳回所指定陣列屬性的所有值,並成為資料表中的資料行。
針對每個所需的陣列屬性,在 [標題] 資料行中選取編輯方塊內部,隨即會開啟動態內容清單。
從該清單中,選取 [運算式] 以改為開啟運算式編輯器。
在運算式編輯器中,輸入下列運算式,但將
<array-property-name>
取代為所需值的陣列屬性名稱。語法:
item()?['<array-property-name>']
範例:
item()?['Description']
item()?['Product_ID']
對每個陣列屬性重複上述步驟。 完成時,您的動作會如下列範例所示:
若要將運算式解析為更具描述性的版本,請切換至程式碼檢視並返回設計工具檢視,然後重新開啟摺疊的動作:
[建立 CSV 資料表] 動作現在會顯示如下範例:
在程式碼檢視中進行處理
在動作的 JSON 定義中,於 columns
陣列內,將 header
屬性設定為空字串。 針對每個 value
屬性,取值您所需的每個陣列屬性。
從設計工具切換至程式碼檢視。
- 取用:在設計工具的工具列上,選取 [程式碼檢視]。
- 標準:在工作流程導覽功能表上,於 [設計工具] 底下,選取 [程式碼]。
在程式碼編輯器中,尋找動作的
columns
陣列。 針對您想要的每個陣列值資料列,請新增空白的header
屬性,並為value
屬性新增下列運算式:語法:
{ "header": "", "value": "@item()?['<array-property-name>']" }
範例:
"Create_CSV_table": { "inputs": { "columns": [ { "header": "", "value": "@item()?['Description']" }, { "header": "", "value": "@item()?['Product_ID']" } ], "format": "CSV", "from": "@variables('myJSONArray')" } }
切換回設計工具檢視以檢閱結果。
測試工作流程
若要確認建立 CSV 資料表動作建立的結果是否符合預期,請將包含建立 CSV 資料表動作輸出的通知傳送給自己。
在您的工作流程中,新增可將建立 CSV 資料表動作的結果傳送給您自己的動作。
此範例接下來會使用名為傳送電子郵件的 Office 365 Outlook 動作。
在此動作中,針對您想要顯示結果的每個方塊,選取方塊內部,隨即會開啟動態內容清單。 在 [建立 CSV 資料表] 動作下,選取 [輸出]。
注意
如果動態內容清單顯示找不到任何的輸出符合此輸入格式的訊息,請選取清單中 [建立 CSV 資料表] 標籤旁 的 [查看更多]。
儲存您的工作流程,然後手動執行工作流程。 在設計工具的工具列上,選取 [執行觸發程序]>[執行]。
如果您使用 Office 365 Outlook 動作,則會產生類似下列螢幕擷取畫面的結果:
注意
如果您的資料表以不正確的格式傳回,請參閱如何檢查資料表資料格式設定。
建立 HTML 資料表動作
若要從陣列中的 JavaScript 物件標記法 (JSON) 物件建立含有其屬性和值的 HTML 資料表,請使用 [建立 HTML 資料表] 動作。 接著,您可以在建立 HTML 資料表動作之後的動作中使用產生的資料表。
若要嘗試建立 HTML 資料表動作,請使用工作流程設計工具進行下列步驟。 或者,如果您偏好在程式碼檢視編輯器中工作,您可以將本指南中的範例建立 HTML 資料表和將變數初始化動作定義複製到您自己的邏輯應用程式基礎工作流程定義中:資料作業程式碼範例 - 建立 HTML 資料表。 如需在基礎 JSON 工作流程定義中建立 HTML 資料表動作的詳細資訊,請參閱資料表動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,從設計工具開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站和範例工作流程搭配週期性觸發程序,後面接著將變數初始化動作。 此動作依設定會建立一個變數,且其初始值為陣列,含有 JSON 格式的一些屬性和值。
在您要建立 HTML 資料表的工作流程中,依照下列其中一個步驟操作:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭頭上,如此就會出現加號 (+)。 選取加號標誌,然後選取新增動作。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入建立 html 資料表。
從 [動作] 清單中,選取名為 [建立 HTML 資料表] 的動作。
在 [來源] 方塊中,輸入用來建立資料表的陣列或運算式。
針對此範例,請選取 [來源] 方塊內部,藉此開啟動態內容清單。 從該清單中,選取先前建立的變數:
注意
若要為 JSON 物件中的屬性建立易記的權杖,以便您可以選取這些屬性作為輸入,請先使用名為剖析 JSON 的動作,再使用建立 HTML 資料表動作。
下列螢幕擷取畫面顯示已完成的範例建立 HTML 資料表動作:
儲存您的工作流程您 在設計師工具列上選取儲存。
自訂資料表格式
根據預設,Columns 屬性會設定為根據陣列項目自動建立資料表資料行。 若要指定自訂的標頭和值,請遵循下列步驟:
開啟 [資料行] 清單,然後選取 [自訂]。
在 Header 屬性中,指定要改用的自訂標頭文字。
在 Value 屬性中,指定要改用的自訂值。
若要從陣列傳回值,您可以使用 函式搭配 [建立 HTML 資料表]item()
動作。 在 For_each
迴圈中,您可以使用items()
函式。
例如,假設您所需的資料表資料行只有屬性值,而沒有陣列中的屬性名稱。 若要只傳回這些值,請遵循下列步驟,在設計工具檢視或程式碼檢視中進行處理。
此範例會傳回下列結果:
Apples,1
Oranges,2
在設計工具檢視中進行處理
在 [建立 HTML 資料表] 動作中,將 [標頭] 資料行保留空白。 在 [值] 資料行中的每個資料列上,取值您所需的每個陣列屬性。 [值] 下的每個資料列都會傳回所指定陣列屬性的所有值,並成為資料表中的資料行。
針對每個所需的陣列屬性,在 [標題] 資料行中選取編輯方塊內部,隨即會開啟動態內容清單。
從該清單中,選取 [運算式] 以改為開啟運算式編輯器。
在運算式編輯器中,輸入下列運算式,但將
<array-property-name>
取代為所需值的陣列屬性名稱,接著選取 [確定]。 如需詳細資訊,請參閱 item() 函式。語法:
item()?['<array-property-name>']
範例:
item()?['Description']
item()?['Product_ID']
對每個陣列屬性重複上述步驟。 完成時,您的動作會如下列範例所示:
若要將運算式解析為更具描述性的版本,請切換至程式碼檢視並返回設計工具檢視,然後重新開啟摺疊的動作:
[建立 HTML 資料表] 動作現在會顯示如下範例:
在程式碼檢視中進行處理
在動作的 JSON 定義中,於 columns
陣列內,將 header
屬性設定為空字串。 針對每個 value
屬性,取值您所需的每個陣列屬性。
從設計工具切換至程式碼檢視。
- 取用:在設計工具的工具列上,選取 [程式碼檢視]。
- 標準:在工作流程導覽功能表上,於 [設計工具] 底下,選取 [程式碼]。
在程式碼編輯器中,尋找動作的
columns
陣列。 針對您想要的每個陣列值資料列,請新增空白的header
屬性,並為value
屬性新增下列運算式:語法:
{ "header": "", "value": "@item()?['<array-property-name>']" }
範例:
"Create_HTML_table": { "inputs": { "columns": [ { "header": "", "value": "@item()?['Description']" }, { "header": "", "value": "@item()?['Product_ID']" } ], "format": "HTML", "from": "@variables('myJSONArray')" } }
切換回設計工具檢視以檢閱結果。
測試工作流程
若要確認建立 HTML 資料表動作建立的結果是否符合預期,請將包含建立 HTML 資料表動作輸出的通知傳送給自己。
在您的工作流程中,新增可將建立 HTML 資料表動作的結果傳送給您自己的動作。
此範例接下來會使用名為傳送電子郵件的 Office 365 Outlook 動作。
在此動作中,針對您想要顯示結果的每個方塊,選取各個方塊內部,隨即會開啟動態內容清單。 從該清單中,在 [建立 HTML 資料表] 動作下,選取 [輸出]。
注意
如果動態內容清單顯示找不到任何的輸出符合此輸入格式的訊息,請選取清單中 [建立 HTML 資料表] 標籤旁 的 [查看更多]。
當您在電子郵件動作中包含 HTML 資料表輸出時,請確定在電子郵件動作的進階選項中,將 [是 HTML] 屬性設定為 [是]。 如此,電子郵件動作即會正確格式化 HTML 資料表。 但是如果您的資料表以不正確的格式傳回,請參閱如何檢查資料表資料格式設定。
儲存您的工作流程,然後手動執行工作流程。 在設計工具的工具列上,選取 [執行觸發程序]>[執行]。
如果您使用 Office 365 Outlook 動作,則會產生類似下列螢幕擷取畫面的結果:
篩選陣列動作
若要根據子集項目符合特定準則的現有陣列建立子集陣列,請使用篩選陣列動作。 接著,您可以在篩選陣列動作的後續動作中使用篩選出的陣列。
若要嘗試篩選陣列動作,請使用工作流程設計工具進行下列步驟。 或者,如果您偏好在程式碼檢視編輯器中工作,您可以將本指南中的範例篩選陣列和將變數初始化動作定義複製到您自己的邏輯應用程式基礎工作流程定義中:資料作業程式碼範例 - 篩選陣列。 如需基礎 JSON 工作流程定義中篩選陣列動作的詳細資訊,請參閱查詢動作。
注意
任何在您的條件中使用篩選文字,都會區分大小寫。 此外,此動作不可變更陣列中各個項目的格式或元件。
若要讓動作使用篩選陣列動作的陣列輸出,這些動作必須將陣列作為輸入,或者您可能必須將輸出陣列轉換為其他相容的格式。
如果您呼叫 HTTP 端點並接收 JSON 回應,請使用 [剖析 JSON] 動作來處理 JSON 回應。 否則,[篩選陣列] 動作只能讀取回應本文,而無法讀取 JSON 承載的結構。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,從設計工具開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站和範例工作流程搭配週期性觸發程序,後面接著將變數初始化動作。 此動作依設定會建立初始值包含一些範例整數值的陣列。
注意
雖然此範例使用簡單的整數陣列,但在可根據物件的屬性和值進行篩選的 JSON 物件陣列中,此動作將特別有用。
在您要建立已篩選陣列的工作流程中,依照下列其中一個步驟操作:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭頭上,如此就會出現加號 (+)。 選取加號標誌,然後選取新增動作。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入篩選陣列。
從動作清單中,選取名為 [篩選陣列] 的動作。
在 [來源] 方塊中,輸入要當成篩選條件的陣列或運算式。
針對此範例,請選取 [來源] 方塊,藉此開啟動態內容清單。 從該清單中,選取先前建立的變數:
針對條件,請指定要比較的陣列項目、選取比較運算子,並指定比較值。
此範例使用 item() 函式來存取陣列中的每個項目,而篩選陣列動作會搜尋值大於一的陣列項目。 下列螢幕擷取畫面顯示已完成的範例篩選陣列動作:
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認篩選陣列動作建立的結果是否符合預期,請將包含篩選陣列動作輸出的通知傳送給自己。
在您的工作流程中,新增可將篩選陣列動作的結果傳送給您自己的動作。
此範例接下來會使用名為傳送電子郵件的 Office 365 Outlook 動作。
在此動作中,完成下列步驟:
針對您想要顯示結果的每個方塊,選取各個方塊內部,隨即會開啟動態內容清單。
從該清單中,選取 [運算式] 以改為開啟運算式編輯器。
若要從篩選陣列動作取得陣列輸出,請輸入下列運算式,該運算式會根據篩選陣列動作名稱使用 actionBody() 函式,然後選取 [確定]。
actionBody('Filter_array')
解析的運算式會指定在傳送時,在電子郵件本文中顯示篩選陣列的輸出:
儲存您的工作流程,然後手動執行工作流程。 在設計工具的工具列上,選取 [執行觸發程序]>[執行]。
如果您使用 Office 365 Outlook 動作,則會產生類似下列螢幕擷取畫面的結果:
[聯結] 動作
若要建立包含陣列中所有項目的字串,並以特定分隔符號字元分隔這些項目,請使用 [聯結] 動作。 接著,您可以在聯結動作的後續動作中使用該字串。
若要嘗試聯結動作,請使用工作流程設計工具進行下列步驟。 或者,如果您偏好在程式碼檢視編輯器中工作,您可以將本指南中的範例聯結和將變數初始化動作定義複製到您自己的邏輯應用程式基礎工作流程定義中:資料作業程式碼範例 - 聯結。 如需基礎工作流程定義中聯結動作的詳細資訊,請參閱聯結動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,從設計工具開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站和範例工作流程搭配週期性觸發程序,後面接著將變數初始化動作。 此動作依設定會建立一個變數,其初始值是包含一些範例整數值的陣列。
在您要從陣列建立字串的工作流程中,依照下列其中一個步驟操作:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭頭上,如此就會出現加號 (+)。 選取加號標誌,然後選取新增動作。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入聯結。
從動作清單中,選取名為 [聯結] 的動作。
在 [來源] 方塊中,提供您要聯結為字串的項目所屬陣列。
針對此範例,請選取 [來源] 方塊內部,藉此開啟動態內容清單。 從該清單中,選取先前建立的變數:
在 [聯結對象] 方塊中,輸入要用來分隔每個陣列項目的字元。
此範例使用冒號 (:) 作為分隔符號。
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認聯結動作建立的結果是否符合預期,請將包含聯結動作輸出的通知傳送給自己。
在您的工作流程中,新增可將聯結動作的結果傳送給您自己的動作。
此範例接下來會使用名為傳送電子郵件的 Office 365 Outlook 動作。
在此動作中,針對您想要顯示結果的每個方塊,選取各個方塊內部,隨即會開啟動態內容清單。 從該清單中,選取 [聯結] 動作底下的 [輸出]。
注意
如果動態內容清單顯示找不到任何的輸出符合此輸入格式的訊息,請選取清單中 [聯結] 標籤旁 的 [查看更多]。
儲存您的工作流程,然後手動執行工作流程。 在設計工具的工具列上,選取 [執行觸發程序]>[執行]。
如果您使用 Office 365 Outlook 動作,則會產生類似下列螢幕擷取畫面的結果:
剖析 JSON 動作
若要參考或存取 JavaScript 物件標記法 (JSON) 內容中的屬性,您可以使用 [剖析 JSON] 動作為這些屬性建立易記的欄位或權杖。 如此一來,當您為工作流程後續動作指定輸入時,便可從動態內容清單中選取這些屬性。 針對此動作,您可以提供 JSON 結構描述,或從範例 JSON 內容或承載產生 JSON 結構描述。
若要嘗試剖析 JSON 動作,請使用工作流程設計工具進行下列步驟。 或者,如果您偏好在程式碼檢視編輯器中工作,您可以將本指南中的範例剖析 JSON 和將變數初始化動作定義複製到您自己的邏輯應用程式基礎工作流程定義中:資料作業程式碼範例 - 剖析 JSON。 如需與基礎工作流程定義中的這個動作有關的詳細資訊,請參閱剖析 JSON 動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,從設計工具開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站和範例工作流程搭配週期性觸發程序,後面接著將變數初始化動作。 此動作依設定會建立變數,其初始值是下列 JSON 物件,包含屬性和值:
{ "Member": { "Email": "Sophia.Owen@fabrikam.com", "FirstName": "Sophia", "LastName": "Owen" } }
在您要剖析 JSON 物件的工作流程中,依照下列其中一個步驟操作:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭頭上,如此就會出現加號 (+)。 選取加號標誌,然後選取新增動作。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入剖析 json。
從動作清單中,選取名為 [剖析 JSON] 的動作。
在 [內容] 方塊中,輸入您要剖析的 JSON 物件。
針對此範例,請選取 [內容] 方塊內部,藉此開啟動態內容清單。 從該清單中,選取先前建立的變數:
在 [結構描述] 方塊中,輸入描述待剖析 JSON 物件或承載的 JSON 結構描述。
在此範例中,請針對範例 JSON 物件使用下列結構描述:
{ "type": "object", "properties": { "Member": { "type": "object", "properties": { "Email": { "type": "string" }, "FirstName": { "type": "string" }, "LastName": { "type": "string" } } } } }
如果您沒有結構描述,可以從 JSON 物件產生結構描述:
在 [剖析 JSON] 動作的 [結構描述] 方塊底下,選取 [請使用範例承載產生結構描述]。
在 [輸入或貼上範例 JSON 承載] 方塊中提供 JSON 內容或物件,然後選取 [完成],例如:
{ "Member": { "Email": "Sophia.Owen@fabrikam.com", "FirstName": "Sophia", "LastName": "Owen" } }
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認剖析 JSON 動作建立的結果是否符合預期,請將包含剖析 JSON 動作輸出的通知傳送給自己。
在您的工作流程中,新增可將剖析 JSON 動作的結果傳送給您自己的動作。
此範例接下來會使用名為傳送電子郵件的 Office 365 Outlook 動作。
在此動作中,針對您想要顯示結果的每個編輯方塊,選取各個方塊內部,隨即會開啟動態內容清單。 在該清單的 [剖析 JSON] 動作下,您現在可以選取已剖析 JSON 物件內的屬性。
此範例會選取下列屬性:FirstName、LastName 和 Email
注意
如果動態內容清單顯示找不到任何的輸出符合此輸入格式的訊息,請選取清單中 [剖析 JSON] 標籤旁 的 [查看更多]。
完成時,您的傳送電子郵件動作會類似下列範例:
儲存您的工作流程,然後手動執行工作流程。 在設計工具的工具列上,選取 [執行觸發程序]>[執行]。
如果您使用 Office 365 Outlook 動作,則會產生類似下列螢幕擷取畫面的結果:
選取動作
根據預設,選取動作會建立一個陣列,其中包含根據現有陣列值建置的 JSON 物件。 例如,您可以為整數陣列中的每個值建立 JSON 物件,只要指定每個 JSON 物件所必須具有的屬性,並將來源陣列中的值對應至這些屬性即可。 雖然您可以變更元件 JSON 物件,但輸出陣列的項目數一律會與來源陣列相同。 若要使用選取動作的輸出陣列,後續動作必須接受陣列作為輸入,或者您可能必須將輸出陣列轉換為其他相容的格式。
若要嘗試選取動作,請使用工作流程設計工具進行下列步驟。 或者,如果您偏好在程式碼檢視編輯器中工作,您可以將本指南中的範例選取和將變數初始化動作定義複製到您自己的邏輯應用程式基礎工作流程定義中:資料作業程式碼範例 - 選取。 如需與基礎工作流程定義中的這個動作有關的詳細資訊,請參閱選取動作。
提示
若想了解如何建立陣列並包含從 JSON 物件陣列值所建置的字串或整數,請參閱資料作業程式碼範例 - 選取中的選取和將變數初始化動作定義。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,從設計工具開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站和範例工作流程搭配週期性觸發程序,後面接著將變數初始化動作。 此動作依設定會建立一個變數,且其初始值為包含一些範例整數的陣列。
在您要建立 JSON 物件陣列的工作流程中,依照下列其中一個步驟操作:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭頭上,如此就會出現加號 (+)。 選取加號標誌,然後選取新增動作。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中輸入選取。
從動作清單中,選取名為 [選取] 的動作。
在 [來源] 方塊中,輸入您要使用的來源陣列。
針對此範例,請選取 [來源] 方塊內部,藉此開啟動態內容清單。 從該清單中,選取先前建立的變數:
針對 [對應] 屬性,在左側資料行中輸入屬性名稱,以描述來源陣列中的所有值。
此範例會使用 Product_ID (產品識別碼) 做為來源陣列中整數值的屬性名稱。 因此,每個值 (例如 1、2、3 和 4) 都是產品識別碼。
在右側資料行中輸入運算式,指定左側資料行中屬性名稱的來源陣列值。
此範例會使用 item() 函式逐一查看和存取陣列中的每個項目。
選取右側資料行內部,藉此開啟動態內容清單。
從該清單中,選取 [運算式] 以改為開啟運算式編輯器。
在運算式編輯器中,輸入名為 item() 的函式,然後選取 [確定]。
選取動作現在看起來類似下列範例:
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認選取動作建立的結果是否符合預期,請將包含選取動作輸出的通知傳送給自己。
在您的工作流程中,新增可將選取動作的結果傳送給您自己的動作。
此範例接下來會使用名為傳送電子郵件的 Office 365 Outlook 動作。
在此動作中,完成下列步驟:
針對您想要顯示結果的每個方塊,選取各個方塊內部,隨即會開啟動態內容清單。
從該清單中,選取 [運算式] 以改為開啟運算式編輯器。
若要從選取動作取得陣列輸出,請輸入下列運算式,該運算式會根據選取動作名稱使用 actionBody() 函式,然後選取 [確定]:
actionBody('Select')
解析的運算式會指定在傳送時,在電子郵件本文中顯示選取的輸出:
完成時,您的傳送電子郵件動作會類似下列範例:
儲存您的工作流程,然後手動執行工作流程。 在設計工具的工具列上,選取 [執行觸發程序]>[執行]。
如果您使用 Office 365 Outlook 動作,則會產生類似下列螢幕擷取畫面的結果:
疑難排解
格式資料表資料
如果您的 CSV 資料表或 HTML 資料表以不正確的格式傳回,請確定您在資料列之間的輸入資料有分行符號。
不正確的格式設定:
Fruit,Number Apples,1 Oranges,2
正確的格式設定:
Fruit,Number
Apples,1
Oranges,2
若要在資料列之間新增分行符號,請將下列其中一個運算式新增至您的資料表:
replace(body('Create_CSV_table'),'','<br/>')
replace(body('Create_HTML_table'),'','<br/>')
例如:
{
"Send_an_email_": {
"inputs": {
"body": {
"Body": "<p>Results from Create CSV table action:<br/>\n<br/>\n<br/>\n@{replace(body('Create_CSV_table'),'\r\n','<br/>')}</p>",
"Subject": "Create CSV table results",
"To": "sophia.owen@fabrikam.com"
}
}
}
}
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應