在 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 物件,請使用名為 Compose 的動作。 您的輸入可以有各種類型,例如整數、布爾值、陣列、JSON 物件,以及 Azure Logic Apps 支援的任何其他原生類型,例如二進位和 XML。 接著,您可以在撰寫動作之後的動作中使用輸出。 撰寫動作也可協助您避免在建置邏輯應用程式的工作流程時重複輸入相同的輸入。
例如,您可以從多個變數建構 JSON 訊息,例如儲存人員名字和姓氏的字串變數,以及儲存人員年齡的整數變數。 在此範例中 ,Compose 宏指令會接受下列輸入:
{ "age": <ageVar>, "fullName": "<lastNameVar>, <firstNameVar>" }
與會建立下列輸出:
{"age":35,"fullName":"Owens,Sophia"}
若要嘗試 撰寫 動作,請使用工作流程設計工具遵循這些步驟。 或者,如果您想要在程式代碼檢視編輯器中工作,您可以將本指南中的範例 Compose 和 Initialize 變數動作定義複製到您自己的邏輯應用程式基礎工作流程定義:數據作業程式代碼範例 - Compose。 如需基礎 JSON 工作流程定義中 Compose 動作的詳細資訊,請參閱 Compose 動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,於設計工具中開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站 和範例工作流程搭配 Recurrence 觸發程式,後面接著數個 Initialize 變數動作。 這些動作會設定為建立兩個字串變數和一個整數變數。
在您想要建立輸出的工作流程中,遵循下列步驟之一:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭號上方,讓加號 (+) 出現。 選取加號標誌,然後選取新增動作。
在 [ 選擇作業 搜尋] 方塊底下,選取 [ 內建]。 在搜尋方塊中,輸入 compose。
從動作清單中,選取名為 Compose 的動作。
在 [ 輸入] 方塊中,輸入要用來建立輸出的輸入。
在此範例中,選取 [輸入] 方塊內部,這會開啟動態內容清單。 從該清單中,選取先前建立的變數:
下列螢幕快照顯示已完成的 範例 Compose 動作:
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認 Compose 動作是否建立預期的結果,請自行傳送包含 Compose 動作輸出的通知。
在您的工作流程中,新增動作,以從 Compose 動作傳送結果。
此範例會繼續使用名為 傳送電子郵件的 Office 365 Outlook 宏指令。
在此動作中,針對您想要顯示結果的每個方塊,選取每個方塊內部,這會開啟動態內容清單。 從該清單中,選取 [撰寫] 動作底下的 [輸出]。
在此範例中,結果會出現在電子郵件的本文中,因此請將 [輸出] 字段新增至 [本文] 方塊。
儲存您的工作流程,然後手動執行您的工作流程。 在設計工具工具列上,選取 [執行觸發程序>執行]。
如果您使用 Office 365 Outlook 宏指令,則會產生類似下列螢幕快照的結果:
建立 CSV 數據表動作
若要建立逗號分隔值 (CSV) 數據表,其具有數位中 JavaScript 物件表示法 (JSON) 對象的屬性和值,請使用名為 Create CSV 數據表的動作。 接著,您可以在遵循 建立 CSV 數據表動作的動作中使用產生的數據表 。
若要嘗試建立 CSV 數據表 動作,請使用工作流程設計工具遵循下列步驟。 或者,如果您想要在程式碼檢視編輯器中工作,您可以將範例建立 CSV 數據表和初始化變數動作定義從本指南複製到您自己的邏輯應用程式基礎工作流程定義:數據作業程式代碼範例 - 建立 CSV 數據表。 如需基礎 JSON 工作流程定義中建立 CSV 數據表動作的詳細資訊,請參閱數據表動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,於設計工具中開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站 和範例工作流程搭配迴圈觸發程式,後面接著初始化變數動作。 動作會設定為建立變數,其中初始值是一個陣列,其具有 JSON 格式的一些屬性和值。
在您想要建立 CSV 資料表的工作流程中,遵循下列步驟之一:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭號上方,讓加號 ( + ) 出現。 選取加號標誌,然後選取新增動作。
在 [ 選擇作業 搜尋] 方塊底下,選取 [ 內 建]。 在搜尋方塊中,輸入 create csv 資料表 。
從動作清單中,選取名為 [建立 CSV] 資料表 的動作。
在 [ From ] 方塊中,輸入要用來建立資料表的陣列或運算式。
在此範例中,選取 [ 從] 方塊內部,這會開啟動態內容清單。 從該清單中,選取先前建立的變數:
注意
若要為 JSON 物件中的屬性建立方便使用的權杖,以便選取這些屬性做為輸入,請使用名為 Parse JSON 的動作,再使用 建立 CSV 資料表 動作。
下列螢幕擷取畫面顯示完成的建立 CSV 資料表 動作範例 :
儲存您的工作流程您 在設計師工具列上選取儲存。
自訂資料表格式
根據預設, Columns 屬性會設定為根據陣列專案自動建立資料表資料行。 若要指定自訂標頭和值,請遵循下列步驟:
如果 Columns 屬性未出現在動作資訊方塊中,請從 [ 新增參數 ] 清單中選取 [ 資料行 ]。
開啟 [資料行 ] 清單,然後選取 [ 自訂 ]。
在 Header 屬性中 ,指定要改用的自訂標頭文字。
在 Value 屬性中 ,指定要改用的自訂值。
若要從陣列傳回值,您可以使用 函 item()
式 搭配 建立 CSV 資料表 動作。 在 迴圈中 For_each
,您可以使用 函 items()
式 。
例如,假設您想要只有屬性值的資料表資料行,而不是陣列中的屬性名稱。 若要只傳回這些值,請依照下列步驟在設計工具檢視或程式碼檢視中工作。
此範例會傳回下列結果:
Apples,1
Oranges,2
在設計工具檢視中工作
在 [ 建立 CSV 資料表 ] 動作中,將 [標頭 ] 資料 行保留空白。 在 [值] 資料行的每個資料列上 ,取值您想要的每個陣列屬性。 Value 下 的每個資料列都會傳回指定之陣列屬性的所有值,並成為資料表中的資料行。
針對您想要的每個陣列屬性,在 [ 值 ] 資料行中,選取編輯方塊內部,這會開啟動態內容清單。
從該清單中,選取 [ 運算式 ] 以改為開啟運算式編輯器。
在運算式編輯器中,輸入下列運算式,但將 取代
<array-property-name>
為所要值的陣列屬性名稱。語法:
item()?['<array-property-name>']
範例:
item()?['Description']
item()?['Product_ID']
針對每個陣列屬性重複上述步驟。 當您完成時,您的動作看起來會類似下列範例:
若要將運算式解析為更具描述性的版本,請切換至程式碼檢視,然後切換回設計工具檢視,然後重新開啟折迭的動作:
[ 建立 CSV 資料表 ] 動作現在會顯示如下範例:
在程式碼檢視中工作
在動作的 JSON 定義中,在陣列中 columns
,將 header
屬性設定為空字串。 針對每個 value
屬性,取值您想要的每個陣列屬性。
從設計工具切換至程式碼檢視。
- 取 用:在設計工具工具列上,選取 [ 程式碼檢視 ]。
- 標準 :在工作流程導覽功能表上,于 [開發人員 ] 底下 ,選取 [ 程式碼 ]。
在程式碼編輯器中,尋找動作的
columns
陣列。 針對您想要的每個陣列值資料行,請為value
屬性新增空白header
屬性和下列運算式:語法:
{ "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 資料表動作
若要建立 HTML 資料表,其具有陣列中 JavaScript 物件標記法 (JSON) 物件的屬性和值,請使用建立 HTML 資料表 動作。 接著,您可以在建立 HTML 資料表動作之後 的動作中使用產生的資料表 。
若要嘗試建立 HTML 資料表 動作,請使用工作流程設計工具遵循這些步驟。 或者,如果您想要在程式碼檢視編輯器中工作,您可以將範例建立 HTML 資料表 和從本指南初始化變數 動作定義複製到 您自己的邏輯應用程式基礎工作流程定義: 資料作業程式碼範例 - 建立 HTML 資料表 。 如需在基礎 JSON 工作流程定義中建立 HTML 資料表動作的詳細資訊 ,請參閱 資料表動作 。
在 Azure 入口網站 、Visual Studio 或 Visual Studio Code 中,于設計工具中開啟邏輯應用程式工作流程。
此範例會使用Azure 入口網站和範例工作流程搭配 迴圈 觸發程式, 後面接著初始化變數 動作。 動作會設定為建立變數,其中初始值是一個陣列,其具有 JSON 格式的一些屬性和值。
在您想要建立 HTML 資料表的工作流程中,遵循下列步驟之一:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭號上方,讓加號 ( + ) 出現。 選取加號標誌,然後選取新增動作。
在 [ 選擇作業 搜尋] 方塊底下,選取 [ 內 建]。 在搜尋方塊中,輸入 create html table 。
從動作清單中,選取名為 [建立 HTML 資料表 ] 的動作。
在 [ From ] 方塊中,輸入要用來建立資料表的陣列或運算式。
在此範例中,選取 [ 從] 方塊內部,這會開啟動態內容清單。 從該清單中,選取先前建立的變數:
注意
若要為 JSON 物件中的屬性建立使用者易記權杖,以便選取這些屬性做為輸入,請使用名為 Parse JSON 的動作,再使用 建立 HTML 資料表 動作。
下列螢幕擷取畫面顯示完成的建立 HTML 資料表 動作範例 :
儲存您的工作流程您 在設計師工具列上選取儲存。
自訂數據表格式
根據預設, Columns 屬性會設定為根據數位專案自動建立數據表數據行。 若要指定自定義標頭和值,請遵循下列步驟:
開啟 [數據行 ] 列表,然後選取 [ 自定義]。
在 Header 屬性中,指定要改用的自訂標頭文字。
在 Value 屬性中,指定要改用的自定義值。
若要從數位傳回值,您可以使用 函 item()
式 搭配 建立 HTML 資料表 動作。 在迴圈中 For_each
,您可以使用 函 items()
式。
例如,假設您想要只有屬性值的數據表數據行,而不是陣列中的屬性名稱。 若要只傳回這些值,請依照下列步驟在設計工具檢視或程式代碼檢視中工作。
此範例會傳回下列結果:
Apples,1
Oranges,2
在設計工具檢視中工作
在 [建立 HTML 數據表] 動作中,讓 [標頭] 數據行保持空白。 在 [值] 資料行的每個數據列上,取值您想要的每個數位屬性。 Value 下的每個數據列都會傳回指定之陣列屬性的所有值,並成為資料表中的數據行。
針對您想要的每個數位屬性,在 [ 值 ] 資料行中,選取編輯方塊內部,這會開啟動態內容清單。
從該清單中,選取 [ 表達式 ] 以改為開啟表達式編輯器。
在表達式編輯器中,輸入下列表達式,但以您想要值的陣列屬性名稱取代
<array-property-name>
,然後選取 [ 確定]。 如需詳細資訊,請參閱 item() 函式。語法:
item()?['<array-property-name>']
範例:
item()?['Description']
item()?['Product_ID']
針對每個數位屬性重複上述步驟。 當您完成時,您的動作看起來會類似下列範例:
若要將表達式解析為更具描述性的版本,請切換至程式代碼檢視,然後切換回設計工具檢視,然後重新開啟折疊的動作:
[ 建立 HTML 數據表 ] 動作現在看起來類似下列範例:
在程式代碼檢視中工作
在動作的 JSON 定義中,在數位中 columns
,將 header
屬性設定為空字串。 針對每個 value
屬性,取值您想要的每個數位屬性。
從設計工具切換至程式代碼檢視。
- 取用:在設計工具工具列上,選取 [ 程序代碼檢視]。
- 標準:在工作流程導覽功能表上,於 [開發人員] 底下,選取 [程序代碼]。
在程式代碼編輯器中,尋找動作的
columns
陣列。 針對您想要的每個數位數組值資料列,請為value
屬性新增空白header
屬性和下列運算式:語法:
{ "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 資料表輸出時,請確定您在電子郵件動作的進階選項中將 Is HTML 屬性設定為 [是]。 如此一來,電子郵件動作就會正確格式化 HTML 資料表。 不過,如果您的數據表傳回格式不正確,請參閱 如何檢查數據表數據格式。
儲存您的工作流程,然後手動執行您的工作流程。 在設計工具工具列上,選取 [執行觸發程序>執行]。
如果您使用 Office 365 Outlook 宏指令,則會產生類似下列螢幕快照的結果:
篩選陣列動作
若要從子集專案符合特定準則的現有陣列建立子集陣列,請使用 篩選數位動作 。 接著,您可以在遵循篩選陣列動作的 動作中使用產生的篩選陣列 。
若要嘗試 篩選陣列 動作,請使用工作流程設計工具遵循這些步驟。 或者,如果您想要在程式代碼檢視編輯器中工作,您可以從本指南將範例 Filter 陣列 和 初始化變數 動作定義複製到您自己的邏輯應用程式基礎工作流程定義: 數據作業程式代碼範例 - 篩選陣列。 如需基礎 JSON 工作流程定義中篩選數位動作的詳細資訊,請參閱查詢動作。
注意
您在條件中使用的任何篩選文字都區分大小寫。 此外,此動作無法變更數位中專案的格式或元件。
若要讓動作使用篩選陣列動作的 數位 輸出,這些動作必須接受陣列做為輸入,或者您可能必須將輸出數位轉換成另一個相容的格式。
如果您呼叫 HTTP 端點並接收 JSON 回應,請使用 剖析 JSON 動作 來處理 JSON 回應。 否則, 篩選陣列 動作只能讀取回應本文,而不是 JSON 承載的結構。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,於設計工具中開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站 和範例工作流程搭配迴圈觸發程式,後面接著初始化變數動作。 動作會設定為建立初始值是具有一些範例整數值的陣列。
注意
雖然此範例使用簡單的整數數位列,但此動作特別適用於 JSON 物件陣列,您可以在其中根據物件的屬性和值進行篩選。
在您想要建立篩選陣列的工作流程中,遵循下列步驟之一:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭號上方,讓加號 (+) 出現。 選取加號標誌,然後選取新增動作。
在 [ 選擇作業 搜尋] 方塊底下,選取 [ 內建]。 在搜尋方塊中,輸入 篩選陣列。
從動作清單中,選取名為 Filter 陣列的動作。
在 [ From] 方塊中,輸入要當做篩選使用的陣列或表示式。
在此範例中,選取 [ 從] 方塊,這會開啟動態內容清單。 從該清單中,選取先前建立的變數:
針對條件,指定要比較的陣列專案、選取比較運算符,並指定比較值。
這個範例會使用 item() 函式 來存取數位中的每個專案,而 Filter 陣列動作會搜尋值大於一的數位 專案。 下列螢幕快照顯示已完成的篩選陣列動作範例:
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認篩選陣列動作是否建立預期的結果,請自行傳送包含篩選陣列動作輸出的通知。
在您的工作流程中,新增動作,以從 篩選數位動作 傳送結果。
此範例會繼續使用名為 傳送電子郵件的 Office 365 Outlook 宏指令。
在此動作中,完成下列步驟:
針對您想要顯示結果的每個方塊,選取每個方塊內部,這會開啟動態內容清單。
從該清單中,選取 [ 表達式 ] 以改為開啟表達式編輯器。
若要從 Filter 陣列動作取得數位輸出,請輸入下列運算式,它會使用 actionBody() 函式搭配 Filter 陣列動作名稱,然後選取 [確定]。
actionBody('Filter_array')
解析的運算式會指定在傳送時,在電子郵件本文中顯示Filter_array動作的輸出:
儲存您的工作流程,然後手動執行您的工作流程。 在設計工具工具列上,選取 [執行觸發程序>執行]。
如果您使用 Office 365 Outlook 宏指令,則會產生類似下列螢幕快照的結果:
[聯結] 動作
若要建立字串,其中包含數位中的所有專案,並使用特定分隔符分隔這些專案,請使用 Join 宏指令。 接著,您可以在 [ 聯 結] 動作之後的動作中使用字串。
若要嘗試 [ 聯結 ] 動作,請使用工作流程設計工具遵循這些步驟。 或者,如果您想要在程式代碼檢視編輯器中工作,您可以將範例 Join 和 Initialize 變數動作定義從本指南複製到您自己的邏輯應用程式基礎工作流程定義:數據作業程式代碼範例 - 聯結。 如需基礎工作流程定義中聯結動作的詳細資訊,請參閱聯結動作。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,於設計工具中開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站 和範例工作流程搭配迴圈觸發程式,後面接著初始化變數動作。 此動作會設定為建立變數,其中初始值是具有一些範例整數值的陣列。
在您想要從陣列建立字串的工作流程中,遵循下列步驟之一:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭號上方,讓加號 (+) 出現。 選取加號標誌,然後選取新增動作。
在 [ 選擇作業 搜尋] 方塊底下,選取 [ 內建]。 在搜尋方塊中,輸入 聯結。
從動作清單中,選取名為 Join 的動作。
在 [ From ] 方塊中,輸入包含您要聯結為字串之項目的陣列。
在此範例中,選取 [ 從] 方塊內部,這會開啟動態內容清單。 從該清單中,選取先前建立的變數:
在 [ 聯結與] 方塊中,輸入用來分隔每個陣列專案的字元。
此範例使用冒號 (:) 作為分隔符。
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認 [聯結] 動作是否建立預期的結果,請自行傳送包含Join動作輸出的通知。
在您的工作流程中,新增動作,以從 [聯 結] 動作傳送結果。
此範例會繼續使用名為 傳送電子郵件的 Office 365 Outlook 宏指令。
在此動作中,針對您想要顯示結果的每個方塊,選取每個方塊內部,這會開啟動態內容清單。 從該清單中,選取 [ 聯結 ] 動作底下的 [ 輸出]。
注意
如果動態內容清單顯示無法找到任何輸出以符合此輸入格式的訊息,請選取清單中 [加入卷標] 旁的 [查看更多]。
儲存您的工作流程,然後手動執行您的工作流程。 在設計工具工具列上,選取 [執行觸發程序>執行]。
如果您使用 Office 365 Outlook 宏指令,則會產生類似下列螢幕快照的結果:
剖析 JSON 動作
若要參考或存取 JavaScript 物件表示法 (JSON) 內容中的屬性,您可以使用 Parse 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。
從動作清單中,選取名為 Parse 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 宏指令,則會產生類似下列螢幕快照的結果:
選取動作
根據預設,Select 動作會建立一個陣列,其中包含從現有數位中的值建置的 JSON 物件。 例如,您可以指定每個 JSON 物件必須擁有的屬性,並將來源數位中的值對應至這些屬性,來建立整數陣列中每個值的 JSON 物件。 雖然您可以變更元件 JSON 物件,但輸出數位一律有與來源數位相同的項目數目。 若要使用 Select 宏指令中的輸出數位,後續動作必須接受數位做為輸入,或者您可能必須將輸出數位轉換成另一個相容的格式。
若要嘗試選取動作,請使用工作流程設計工具遵循下列步驟。 或者,如果您想要在程式代碼檢視編輯器中工作,您可以將本指南中的 Select 和 Initialize 變數動作定義範例複製到您自己的邏輯應用程式基礎工作流程定義:數據作業程式代碼範例 - 選取。 如需基礎工作流程定義中此動作的詳細資訊,請參閱 選取動作。
提示
如需建立數位列的範例,其中包含從 JSON 物件陣列中的值建置的字串或整數,請參閱資料作業程式代碼範例中的 Select 和 Initliaze 變數動作定義 - Select。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,於設計工具中開啟邏輯應用程式工作流程。
此範例會使用 Azure 入口網站 和範例工作流程搭配迴圈觸發程式,後面接著初始化變數動作。 此動作會設定為建立變數,其中初始值是具有一些範例整數的陣列。
在您想要建立 JSON 物件陣列的工作流程中,遵循下列步驟之一:
如果要在最後一步下新增動作,請選擇新增步驟。
若要在步驟之間新增動作,請將滑鼠移至連接箭號上方,讓加號 (+) 出現。 選取加號標誌,然後選取新增動作。
在 [ 選擇作業 搜尋] 方塊底下,選取 [ 內建]。 在搜尋方塊中,輸入 select。
從動作清單中,選取名為 Select 的動作。
在 [ 來源 ] 方塊中,輸入您想要使用的來源陣列。
在此範例中,選取 [ 從] 方塊內部,這會開啟動態內容清單。 從該清單中,選取先前建立的變數:
針對 Map 屬性,在左側數據行中輸入屬性名稱,以描述來源陣列中的所有值。
此範例會使用 Product_ID 做為來源陣列中整數值的屬性名稱。 因此,每個值,例如 1、 2、 3 和 4,都是產品識別碼。
在右數據行中,輸入表示式,指定左欄中屬性名稱的來源陣列值。
此範例會使用 item() 函式 逐一查看並存取陣列中的每個專案。
選取右欄內,這會開啟動態內容清單。
從該清單中,選取 [ 表達式 ] 以改為開啟表達式編輯器。
在表達式編輯器中,輸入名為 item()的函式,然後選取 [ 確定]。
[ 選取] 動作現在看起來類似下列範例:
儲存您的工作流程您 在設計師工具列上選取儲存。
測試工作流程
若要確認 Select 動作是否建立預期的結果,請自行傳送包含 Select 動作輸出的通知。
在您的工作流程中,新增可從 [選取] 動作傳送結果的動作。
此範例會繼續使用名為 傳送電子郵件的 Office 365 Outlook 宏指令。
在此動作中,完成下列步驟:
針對您想要顯示結果的每個方塊,選取每個方塊內部,這會開啟動態內容清單。
從該清單中,選取 [ 表達式 ] 以改為開啟表達式編輯器。
若要從 Select 宏指令取得數位輸出,請輸入下列運算式,它會使用 actionBody() 函式搭配 Select 動作名稱,然後選取 [確定]:
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"
}
}
}
}