跳至内容

3. 订单筛选#

在工作流程的这一步中,您将学习如何使用条件逻辑过滤数据,以及如何在节点中使用表达式,通过If节点实现。

完成此步骤后,您的工作流应如下所示:

为了仅将处理中的订单插入Airtable,我们需要按orderStatus筛选数据。本质上,我们希望告诉程序如果orderStatus是processing,那么将所有具有此状态的记录插入Airtable;否则,例如如果orderStatus不是processing,则计算所有其他orderStatusbooked)订单的总和。

这个if-then-else命令是条件逻辑。在n8n工作流中,您可以使用If节点添加条件逻辑,该节点基于比较操作有条件地拆分工作流。

If 语句 vs. Switch 语句

如果需要基于布尔值(真与假)以外的条件筛选数据,请使用Switch节点。Switch节点与If节点类似,但支持多个输出连接器。

在Airtable节点前添加If节点#

首先,在HTTP Request节点到Airtable节点的连接之间添加一个If节点:

  1. 将鼠标悬停在连接HTTP Request节点和Airtable节点的箭头上。
  2. 在HTTP Request节点和Airtable节点之间选择+号。

配置If节点#

点击加号将移除与Airtable节点的HTTP请求连接。现在,让我们添加一个连接到HTTP请求节点的If节点:

  1. 搜索If节点。
  2. 当它在搜索结果中出现时,请选择它。

对于If节点,我们将使用一个表达式。

表达式

一个表达式是编程语言中的一串字符和符号,可以根据其输入进行计算以获取值。在n8n工作流中,您可以在节点中使用表达式来引用另一个节点以获取输入数据。在我们的示例中,If节点引用了HTTP Request节点输出的数据。

在If节点窗口中,配置以下参数:

  • 按照以下步骤将占位符value1设置为{{ $json.orderStatus }}

    1. 将鼠标悬停在value1字段上。
    2. value1字段右侧选择表达式标签。
    3. 接下来,通过点击链接图标打开表达式编辑器:
      Opening the Expression Editor
      打开表达式编辑器
    4. 使用左侧面板选择HTTP请求 > orderStatus并将其拖拽到窗口中央的表达式字段中。
      Expression Editor in the IF node
      If节点中的表达式编辑器
    5. 添加表达式后,关闭编辑表达式对话框。
  • 操作: 选择 字符串 > 等于

  • value2 占位符设置为 processing

数据类型

在选择操作时,请确保选择正确的数据类型(布尔值、日期和时间、数字或字符串)。

选择测试步骤来测试If节点。

您的结果应如下所示:

If node output
If node output

请注意,订单状态为processing的订单应显示在True Branch输出中,而订单状态为booked的订单应显示在False Branch输出中。

完成后关闭If节点详情视图。

将数据插入Airtable#

接下来,我们想将这些数据插入到Airtable中。还记得Nathan在将数据插入Airtable课程结束时说的话吗?

实际上我只需要在表中插入处理中的订单...

由于Nathan只需要表格中的processing订单,我们将把Airtable节点连接到If节点的true连接器。

在这种情况下,由于Airtable节点已经在画布上,选择If节点true连接器并将其拖动到Airtable节点。

此时最好重新测试Airtable节点。操作前,请先在Airtable中打开您的表格并删除所有现有行。然后在n8n中打开Airtable节点窗口并选择测试步骤

检查Airtable中的数据,确保您的工作流仅添加了正确的订单(那些orderStatusprocessing的订单)。现在应该有14条记录而不是30条。

在这个阶段,您的工作流应该看起来像这样:

接下来是什么?#

Nathan 🙋: 这个If节点对过滤数据太有用了!现在我掌握了所有处理订单的信息。实际上我只需要employeeNameorderID,但我想可以保留其他字段以防万一。

你 👩‍🔧: 实际上,我不建议这样做。插入更多数据需要更强的计算能力,数据传输会更慢耗时更长,并且会占用表中更多存储资源。在这个特定案例中,14条记录5个字段看似影响不大,但如果业务增长到数千条记录和数十个字段时,这些都会累积起来,哪怕只多一列都可能影响性能。

Nathan 🙋: 哦,这很有帮助。你能从处理中的订单里只选择两个字段吗?

你 👩‍🔧: 好的,我将在下一步完成这个操作。

优云智算