本操作指南介绍如何通过以下方式处理逻辑应用工作流中的数据:

  • 从具有不同数据类型的多个输入创建字符串或 JavaScript 对象表示法 (JSON) 对象。 然后可以使用此字符串作为单个输入,而无需反复输入相同的输入。
  • 从 JavaScript 对象表示法 (JSON) 对象属性创建用户友好的标记,以便可以在工作流中轻松使用这些属性。
  • 从数组创建 HTML 或 CSV 表。
  • 基于指定的筛选器或条件从一个数组创建另一个数组。
  • 基于另一个数组中所有项的指定属性创建一个数组。
  • 基于数组中的所有项创建一个字符串,并使用指定的字符分隔这些项。
  • Azure 帐户和订阅。 如果没有订阅,可以 注册 Azure 帐户 。

  • 要在其中执行数据操作的逻辑应用工作流。 “消耗”和“标准”逻辑应用工作流都支持本指南中所述的数据操作。

    所有数据操作仅可用作操作。 因此,在使用这些操作之前,工作流必须以 触发 作为第一步,并包含所需的任何其他操作,以便能够创建你要在数据操作中使用的输出。

    数据操作的操作

    以下内容汇总了可以使用的数据操作。 操作根据其使用的源数据类型进行组织,但每个说明按字母顺序排列。

    JSON 操作

    以下操作帮助你处理采用 JavaScript 对象表示法 (JSON) 格式的数据。

    Compose 操作

    若要从多个输入构造单个输出(例如 JSON 对象),请使用名为“撰写”的操作。 输入可以采用不同的类型,例如整数、布尔值、数组、JSON 对象,以及 Azure 逻辑应用支持的其他任何本机类型(如二进制和 XML)。 然后,可以在“撰写”操作后面的操作中使用输出。 “撰写”操作还可帮助你避免在生成逻辑应用的工作流时反复输入相同的输入。

    举例而言,可以从多个变量(例如,存储名字和姓氏的字符串变量,以及存储年龄的整数变量)构造 JSON 消息。 在此示例中,“撰写”操作接受以下输入:

    { "age": <ageVar>, "fullName": "<lastNameVar>, <firstNameVar>" }

    然后创建以下输出:

    {"age":35,"fullName":"Owens,Sophia"}

    若要尝试“撰写”操作,请使用工作流设计器执行以下步骤。 或者,如果你偏好使用代码视图编辑器,可将本指南中的示例“撰写”和“初始化变量”操作复制到自己的逻辑应用基础工作流定义: 数据操作代码示例 - 撰写 。 有关基础 JSON 工作流定义中“撰写”操作的详细信息,请参阅 “撰写”操作 。

    “创建 CSV 表”操作

    若要创建包含来自数组中 JavaScript 对象表示法 (JSON) 对象的属性和值的逗号分隔值 (CSV) 表,请使用名为“创建 CSV 表”的操作。 然后,可以在“创建 CSV 表”操作后面的操作中使用生成的表。

    若要尝试“创建 CSV 表”操作,请使用工作流设计器执行以下步骤。 或者,如果你偏好使用代码视图编辑器,可将本指南中的示例“创建 CSV 表”和“初始化变量”操作复制到自己的逻辑应用基础工作流定义: 数据操作代码示例 - 创建 CSV 表 。 有关基础 JSON 工作流定义中“创建 CSV 表”操作的详细信息,请参阅 表操作 。

    若要从数组中返回值,可将 item() 函数与“创建 CSV 表”操作一起使用。 在 For_each 循环中,可以使用 items() 函数 。

    例如,假设你希望表列仅包含数组中的属性值,而不包含属性名称。 若只要返回这些值,请遵循在设计器视图或代码视图中操作的步骤。

    此示例返回以下结果:

    Apples,1
    Oranges,2
    

    在设计器视图中操作

    在“创建 CSV 表”操作中,将“标题”列留空。 在“值”列中的每个行上,取消引用所需的每个数组属性。 “值”下的每个行返回指定数组属性的所有值,并成为表中的列。

  • 对于所需的每个数组属性,请在“值”列中,在编辑框内部进行选择,然后选择函数图标,这将打开表达式编辑器。 确保“函数”列表显示为选中状态。

  • 在表达式编辑器中输入以下表达式,但需要将 <array-property-name> 替换为所需值的数组属性名称。 完成每个表达式后,请选择“添加”。

    语法: item()?['<array-property-name>']

  • item()?['Description']
  • item()?['Product_ID']
  • 在操作的 JSON 定义中的 columns 数组内,将 header 属性设置为空字符串。 对于每个 value 属性,请取消引用所需的每个数组属性。

  • 在设计器工具栏上,选择 “代码”视图。

  • 在代码编辑器中找到操作的 columns 数组。 对于所需的每一列数组值,为 header 属性添加一个空的 value 属性和以下表达式:

    "header": "", "value": "@item()?['<array-property-name>']"
    "Create_CSV_table": {
       "type": "Table",
       "inputs": {
          "columns": [
                "header": "",
                "value": "@item()?['Description']"
                "header": "",
                "value": "@item()?['Product_ID']"
          "format": "CSV",
          "from": "@variables('myJSONArray')"
    

    如果将示例复制到代码中,请确保在 runAfter 定义末尾包括 Create_CSV_table 操作。

  • 切换回到设计器视图以查看结果。

    测试工作流

    若要确认“创建 CSV 表”操作是否创建了预期的结果,请向自己发送一条通知,其中包含“创建 CSV 表”操作的输出。

  • 在工作流中,添加一个可以向你发送“创建 CSV 表”操作结果的操作。

    此示例继续使用 Office 365 Outlook 操作,名为 “发送电子邮件”(V2)。

  • 在此操作中,对于要显示结果的每个框,请在每个框内部进行选择,这将打开动态内容列表。 从该列表中,在“创建 CSV 表”操作下,选择“输出”。

    “创建 HTML 表”操作

    若要创建包含来自数组中 JavaScript 对象表示法 (JSON) 对象的属性和值的 HTML 表,请使用“创建 HTML 表”操作。 然后,可以在“创建 HTML 表”操作后面的操作中使用生成的表。

    若要尝试“创建 HTML 表”操作,请使用工作流设计器执行以下步骤。 或者,如果你偏好使用代码视图编辑器,可将本指南中的示例“创建 HTML 表”和“初始化变量”操作复制到自己的逻辑应用基础工作流定义:数据操作代码示例 - 创建 HTML 表。 有关基础 JSON 工作流定义中“创建 HTML 表”操作的详细信息,请参阅表操作。

    若要从数组中返回值,可将 item() 函数与“创建 HTML 表”操作一起使用。 在 For_each 循环中,可以使用 items() 函数。

    例如,假设你希望表列仅包含数组中的属性值,而不包含属性名称。 若只要返回这些值,请遵循在设计器视图或代码视图中操作的步骤。

    此示例返回以下结果:

    Apples,1
    Oranges,2
    

    在设计器视图中操作

    在“创建 HTML 表”操作中,将“标题”列留空。 在“值”列中的每个行上,取消引用所需的每个数组属性。 “值”下的每个行返回指定数组属性的所有值,并成为表中的列。

  • 对于所需的每个数组属性,请在“值”列中,在编辑框内部进行选择,然后选择函数图标,这将打开表达式编辑器。 确保“函数”列表显示为选中状态。

  • 在表达式编辑器中输入以下表达式,但需要将 <array-property-name> 替换为所需值的数组属性名称。 完成每个表达式后,请选择“添加”。

    语法: item()?['<array-property-name>']

  • item()?['Description']
  • item()?['Product_ID']
  • 在操作的 JSON 定义中的 columns 数组内,将 header 属性设置为空字符串。 对于每个 value 属性,请取消引用所需的每个数组属性。

  • 在设计器工具栏上,选择 “代码”视图。

  • 在代码编辑器中找到操作的 columns 数组。 对于所需的每一列数组值,为 header 属性添加一个空的 value 属性和以下表达式:

    "header": "", "value": "@item()?['<array-property-name>']"
    "Create_HTML_table": {
       "type": "Table",
       "inputs": {
          "columns": [
                "header": "",
                "value": "@item()?['Description']"
                "header": "",
                "value": "@item()?['Product_ID']"
          "format": "HTML",
          "from": "@variables('myJSONArray')"
    

    如果将示例复制到代码中,请确保在 runAfter 定义末尾包括 Create_HTML_table 操作。

  • 切换回到设计器视图以查看结果。

    测试工作流

    若要确认“创建 HTML 表”操作是否创建了预期的结果,请向自己发送一条通知,其中包含“创建 HTML 表”操作的输出。

  • 在工作流中,添加一个可以向你发送“创建 HTML 表”操作结果的操作。

    此示例继续使用 Office 365 Outlook 操作,名为 “发送电子邮件”(V2)。

  • 在此操作中,对于要显示结果的每个框,请在每个框内部进行选择,然后选择闪电图标,这将打开动态内容列表。 从该列表中,在“创建 HTML 表”操作下,选择“输出”。

    “筛选数组”操作

    若要从子集项符合特定条件的现有数组创建子集数组,请使用“筛选数组”操作。 然后,可以在“筛选数组”操作后面的操作中使用生成的筛选数组。

    若要尝试“筛选数组”操作,请使用工作流设计器执行以下步骤。 或者,如果你偏好使用代码视图编辑器,可将本指南中的示例“筛选数组”和“初始化变量”操作复制到自己的逻辑应用基础工作流定义:数据操作代码示例 - 筛选数组。 有关基础 JSON 工作流定义中“筛选数组”操作的详细信息,请参阅查询操作。

    在条件中使用的任何筛选器文本区分大小写。 此外,此操作无法更改数组中项的格式或组成部分。

    要使操作使用“筛选数组”操作的数组输出,这些操作必须接受数组作为输入,或者必须将输出数组转换为另一种兼容格式。

    如果调用 HTTP 终结点并接收 JSON 响应,请使用分析 JSON 操作处理 JSON 响应。 否则,筛选器数组操作只能读取响应正文,而不能读取 JSON 有效负载的结构。

  • 对于要显示结果的每个框,请在每个框内部进行选择,然后选择函数图标,这将打开表达式编辑器。 确保“函数”列表显示为选中状态。

  • 若要从“筛选数组”操作获取数组输出,请输入以下表达式(该表达式使用 body() 函数和“筛选数组”操作名称),然后选择“添加”。

    body('Filter_array')

    Parse JSON 操作

    若要引用或访问 JavaScript 对象表示法 (JSON) 内容中的属性,可以使用“分析 JSON”操作为这些属性创建用户友好的字段或令牌。 这样,在为工作流中的后续操作指定输入时,便可以从动态内容列表中选择这些属性。 对于此操作,可以提供 JSON 架构,或者从示例 JSON 内容或有效负载生成 JSON 架构。

    若要尝试“分析 JSON”操作,请使用工作流设计器执行以下步骤。 或者,如果你偏好使用代码视图编辑器,可将本指南中的示例“分析 JSON”和“初始化变量”操作复制到自己的逻辑应用基础工作流定义:数据操作代码示例 - 分析 JSON。 有关基础工作流定义中此操作的详细信息,请参阅“分析 JSON”操作。

  • 在 Azure 门户 或 Visual Studio Code 中,在设计器中打开你的逻辑应用工作流。

    此示例使用 Azure 门户和示例工作流,其中包含“重复”触发器,后接一个“初始化变量”操作。 此操作设置用于创建一个变量,其初始值是具有以下属性和值的 JSON 对象:

    "Member": { "Email": "Sophia.Owen@fabrikam.com", "FirstName": "Sophia", "LastName": "Owen"
  • 在 Azure 门户 或 Visual Studio Code 中,在设计器中打开你的逻辑应用工作流。

    此示例使用 Azure 门户和示例工作流,其中包含“重复”触发器,后接一个“初始化变量”操作。 此操作设置用于创建一个变量,其初始值是具有以下属性和值的 JSON 对象:

    "Member": { "Email": "Sophia.Owens@fabrikam.com", "FirstName": "Sophia", "LastName": "Owens"

    若要确认“分析 JSON”操作是否创建了预期的结果,请向自己发送一条通知,其中包含“分析 JSON”操作的输出。

  • 在工作流中,添加一个可以向你发送“分析 JSON”操作结果的操作。

    此示例继续使用 Office 365 Outlook 操作,名为 “发送电子邮件”(V2)。

  • 在此操作中,对于要显示结果的每个框,请在每个编辑框内部进行选择,然后选择闪电图标,这将打开动态内容列表。 从该列表中,在“分析 JSON”操作下,选择已分析的 JSON 对象中的属性。

    此示例选择了以下属性:Body FirstName、Body LastName 和 Body Email

    默认情况下,“选择”操作会创建一个数组,其中包含根据现有数组中的值生成的 JSON 对象。 例如,可以为整数数组中的每个值创建一个 JSON 对象。 指定每个 JSON 对象必须具有的属性,并将源数组中的值映射到属性。 尽管可以更改组件 JSON 对象,但输出数组的项数始终与源数组相同。 若要使用“选择”操作的输出数组,后续操作必须接受数组作为输入,或者必须将输出数组转换为另一种兼容格式。

    若要尝试“选择”操作,请使用工作流设计器执行以下步骤。 或者,如果你偏好使用代码视图编辑器,可将本指南中的示例“选择”和“初始化变量”操作复制到自己的逻辑应用基础工作流定义:数据操作代码示例 - 选择。 有关基础工作流定义中此操作的详细信息,请参阅“选择”操作。

    有关使用 JSON 对象数组中的值生成的字符串或整数创建数组的示例,请参阅 数据操作代码示例 - Select中的 Initialize 变量 和 Select操作定义。

  • 对于“Map”属性,请在左侧列中输入属性名称,以描述源数组中的所有值。

    此示例使用 Product_ID 作为源数组中整数值的属性名称。 因此,每个值(例如 1、2、3 和 4)都是一个产品 ID。

  • 在右侧列中输入一个表达式,用于为左侧列中的属性名称指定源数组中的值。

    此示例使用 item() 函数迭代并访问数组中的每个项。

  • 在右列内部进行选择,然后选择函数图标,这将打开表达式编辑器。 确保“函数”列表显示为选中状态。

  • 在表达式编辑器中输入名为 item() 的函数,然后选择“确定”。

  • 对于“Map”属性,请在左侧列中输入属性名称,以描述源数组中的所有值。

    此示例使用 Product_ID 作为源数组中整数值的属性名称。 因此,每个值(例如 1、2、3 和 4)都是一个产品 ID。

  • 在右侧列中输入一个表达式,用于为左侧列中的属性名称指定源数组中的值。

    此示例使用 item() 函数迭代并访问数组中的每个项。

  • 在右列内部进行选择,然后选择函数图标,这将打开表达式编辑器。 确保“函数”列表显示为选中状态。

  • 在表达式编辑器中输入名为 item() 的函数,然后选择“确定”。

  • 对于要显示结果的每个框,请在每个框内部进行选择,然后选择函数图标,这将打开表达式编辑器。 确保“函数”列表显示为选中状态。

  • 若要从“选择”操作获取数组输出,请输入以下表达式(该表达式使用 body() 函数和“选择”操作名称),然后选择“添加”:

    body('Select')

    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"
                  适用于 Azure 逻辑应用的托管连接器
  • 适用于 Azure 逻辑应用的内置连接器
  •