Table Update 步骤
更新与筛选器匹配的行,并将结果写入目标表。每个源行都会到达目标表:匹配筛选器的行带有新值,其他行则保持原样。目标表的行数始终等于源表的行数。
筛选器选择的是哪些行被 更改,而不是哪些行会返回。这正是此步骤与 Table Extract 的区别:后者的筛选器会移除不匹配的行。
源和目标

要确定源表和目标表,请先使用 源表 下拉菜单选择要提取数据的数据表。然后使用 目标表 下拉菜单选择一个现有表作为目标表,或单击绿色的 + 号创建新表作为目标。
创建表
创建新表时,可以选择将其创建为 视图 或 表。
视图:
视图的优点是步骤的执行时间明显少于使用表的情况。缺点是视图在表的“详细信息”模式下不便于数据探索。
表:
使用表作为目标时,步骤的执行时间会更长,但在“详细信息”模式下进行数据探索比使用视图快得多。
目标必须是与源不同的表。此步骤会读取每个源行并将其写出,因此如果指回其自身的源,就会把结果追加到它刚读取的数据中。
目标的列始终与源的列保持一致,因此无需选择。未更新的列会原样保留,包括在此步骤上次打开之后添加到源中的任何列。
在 表数据选择 选项卡上,为要更改的每一列添加一行,并且恰好设置以下其中一项:
- 常量 — 固定值。
- 表达式 — 计算,可以引用同一行的其他列。
- 设为 Null — 清空该列。
未列出的列保持不变。
如果左侧的源列没有列出某个 更新列,则该列会显示为红色并带有 ⚠ 警告标志,即使该行设置了 常量、表达式 或 设为 Null 也是如此,因为步骤是按确切名称更新该列的。保存带有此类行的步骤时,会打开 发现过时列 对话框,提供 全部移除并保存、仍然保存 或 取消。
保存时还会按确切名称,针对源表的当前状态检查每个 更新列,无论源列列出了什么。表中没有的更新列会在 缺少源列 对话框中列出,因为步骤运行时会在该列上失败。源列列表本身不会与表进行核对:此步骤读取的是表的当前状态,而不是该列表。
更新的数据筛选器
Section titled “更新的数据筛选器”在 更新的数据筛选器 选项卡上,输入用于标识要更改的行的条件。留空则更新每一行。
如果某一行的条件无法求值(最常见的原因是它所测试的列为 null),则该行被视为不匹配,并原样通过。这与数据库对同一条件的求值方式一致。
在此示例中,在“Ledger Value to be allocated”中,当 Version 等于“Actual”时,将 Account 设置为 41000。具有任何其他 Version 的行会以其原始 Account 到达目标表。
表数据选择 选项卡,将 Account 设置为常量:

更新的数据筛选器 选项卡,其中包含用于选出要更改的行的条件:
