本主题帮助您了解事务匹配引擎如何对事务进行评估。
本主题中的示例假定源系统数据源和子系统数据源中存在以下事务。
匹配规则
源系统“发票”(Invoice) 与子系统发票确切匹配
源系统在子系统日期 -1 到 +3 的容差范围内匹配
源系统“金额”(Amount) 与子系统金额确切匹配
源系统和子系统“金额”属性是平衡属性。
评估顺序/第一个匹配者胜出
将按照事务在数据库中的存在顺序对事务进行匹配评估,并且将从进行匹配评估的事务中选择满足条件的第一个事务作为匹配项。
评估顺序/首先匹配最小的事务 ID
加载事务时,会按顺序为其分配事务 ID。因此,具有最低事务 ID 的匹配事务意味着它首先被加载,并且将是第一个要匹配的事务。
在 1 对 1 匹配中,如果两个事务都有资格与第三个事务匹配,但是只能匹配一个事务,则将选择事务 ID 最小的事务作为匹配项。
对于子集规则,匹配功能将在创建匹配过程中根据金额和事务 ID 对事务进行排序。如果两个事务具有相同的金额,则匹配中将使用事务 ID 最低的事务。
请注意,如果在选择“无模糊项”的情况下运行同一个规则,则所有事务都将保持不匹配(预期工作方式)。
评估容差
可以采用三种方法设置容差级别,以允许匹配具有差异的事务。您可以设置:
注:
高/低容差的百分比值不能超过 100,该百分比值可用于数字或整数数据源属性。评估设置为值的容差
在评估一组容差值的容差时,计算受向事务应用高/低容差值的方式影响。例如,在日期值应用了容差的样本事务中,经授权的容差为 -1 到 +3。如果向源系统表中的第一个记录应用这些值,则子系统表中的第一个记录将满足匹配规则,因为 9 月 18 日距离 9 月 15 日小于或等于 +3 天。但是,如果我们向子系统事务(而非源系统)应用这些容差,则匹配将失败,因为 9 月 15 日距离 9 月 18 日不小于或等于 -1 天。
注:
虽然以上示例使用了日期容差,但是可以对日期、时间和整数数据类型的容差应用相同的逻辑。
为确保一致的结果,在评估容差时我们选择使用以下方法:
评估 1 对 1 规则类型
对于 1 对 1 规则类型,我们将源事务视为“基本或锚定事务”。以下示例显示了评估方式。在以下示例中,我们假设日期容差的开始设置为零 (0),结束设置为 +3。
将 0 到 +3 容差加到子系统事务后,会选择源系统中满足以下条件的第一个事务作为匹配项:日期值大于或等于 9 月 15 日且小于或等于 9 月 18 日。此匹配项在下面以绿色标出:
继续处理第二个源事务(日期值为 9 月 16 日),在子系统中查找日期值大于或等于 9 月 16 日且小于或等于 9 月 19 日的第一个事务。匹配项 9 月 17 在范围内,并在下面以红色标出:
注:
对于单源匹配流程,正事务与负事务匹配。评估 1 对多规则类型
对于 1 对多规则类型,源系统事务是基本事务。
注:
对于 1 对多规则类型,除了“平衡属性”条件外,还必须定义一个规则条件,该条件可以为“完全匹配”或“按容差匹配”。评估多对 1 规则类型
对于多对 1 规则类型,子系统事务是基本事务。
注:
对于多对 1 规则类型,除了“平衡属性”条件外,还必须定义一个规则条件,该条件可以为“完全匹配”或“按容差匹配”。评估多对多规则类型
对于多对多规则类型,没有基本事务。而是,将使用一组规则对条件进行评估。
以下过程用于评估已指定日期容差的多对多规则类型的匹配。
请注意,最小子系统日期必须等于或小于最大子系统日期。
示例:具有日期容差的多对多规则类型
在此示例中,匹配允许的日期容差为 -2 到 +3。
考虑以下门店 ID 为 3738 的源系统事务。
表 8-1 源系统事务
门店 ID | 金额 | 日期 |
---|---|---|
3738 | $715 | 2023 年 2 月 7 日 |
3738 | $595 | 2023 年 2 月 7 日 |
3738 | $960 | 2023 年 2 月 4 日 |
3738 | -$138 | 2023 年 2 月 4 日 |
在源系统事务中,最小日期值为 2023 年 2 月 4 日,最大日期值为 2023 年 2 月 7 日。
考虑以下门店 ID 为 3738 的子系统事务。
表 8-2 子系统事务
门店 ID | 金额 | 日期 |
---|---|---|
3738 | $387 | 2023 年 2 月 5 日 |
3738 | $211 | 2023 年 2 月 5 日 |
3738 | $378 | 2023 年 2 月 7 日 |
3738 | $342 | 2023 年 2 月 5 日 |
3738 | $714 | 2023 年 2 月 6 日 |
3738 | $100 | 2023 年 2 月 7 日 |
使用步骤 2 中的公式,确定必须考虑匹配的子系统事务的日期范围。
因此,在创建匹配时,会考虑 2023 年 2 月 5 日至 2023 年 2 月 7 日之间的所有子系统事务。在此示例中,所有子系统事务都在此范围内。
源系统中的金额合计为 2132。在子系统中,计算的日期范围内的事务的金额合计为 2132。因此,源系统和子系统事务被视为匹配。
要了解未创建匹配的示例,请考虑上面显示的相同源系统事务。在子系统事务中,唯一的变化是最后一个事务(金额 = 100)的日期为 2023 年 2 月 8 日。创建匹配时可以考虑的最大子系统日期是 2023 年 2 月 7 日,因此不会包括日期为 2023 年 2 月 8 日的事务。源系统中的金额合计为 2132,但是子系统中的金额合计为 2032。因此,这些源系统和子系统事务集是不匹配的。
注:
对于多对多规则,必须至少定义一个“完全匹配”条件。评估平衡属性的匹配规则条件
对平衡属性的匹配规则条件进行评估的方法与其他属性的方法稍有不同。请考虑使用样本数据的一个多对多规则类型。下面是系统对此进行评估的方式:因为这是一个在源系统和子系统中有多个事务的多对多匹配,因此将首先按数据源对金额值进行求和,然后对总和进行比较。
在我们的示例中,源系统金额的和是 $500,子系统金额的和也是 $500,因此满足匹配条件:
注:
同样的流程还适用于 1 对多匹配和多对 1 匹配。只要一个匹配在同一数据源中存在多个事务,就必须首先对平衡属性的值进行求和,然后再进行比较。评估设置为百分比的容差以及差异限制
百分比容差选项可用于数字和整数类型的数据源属性(包括平衡属性),可针对以下内容进行设置:
源系统金额 | 子系统金额 | 计算出的容差 | 差异(源系统金额 - 子系统金额) | 匹配计算 | 结果 |
---|---|---|---|---|---|
99.6 | 100 | 1% × 99.6 = .99 | 99.6 - 100 = .4 | .4 < .99 且 < .5 | 找到匹配项 |
99.1 | 100 | 1% × 99.1 = .99 | 99.1 - 100 = .9 | .9 < .99 但 > .5 | 未找到匹配项,因为超过了容差差异上限 |
100 | 99.6 | 1% × 100 = 1 | 100 - 99.6 = .4 | .4 < 1 且 < .5 | 找到匹配项 |
100 | 99.1 | 1% × 100 = 1 | 100 - 99.1 = .9 | .9 < 1 且 > .5 | 未找到匹配项,因为超过了容差差异上限 |
50, 49.6 | 50, 50 | 1% × 99.6 = .99 | 99.6 - 100 = .4 | .4 < .99 且 < .5 | 找到匹配项 |
评估 1 对 1 和 1 对多规则的日期容差
日期容差是在匹配两个数据源的事务时要考虑的天数。事务匹配以最常见的事务匹配方式考虑日期容差,将源(例如总帐)视为在银行存款或子系统事务“之前”可用。引擎锚定在“源”上,并根据在规则中输入的容差值,计算从“源”向前匹配时要考虑的日期值范围。
日期容差选项适用于日期类型的数据源属性,并可以设置用于:
日期容差非常灵活,您可以使用日期容差和以下项来指定匹配:
使用规则中的日期容差设置在匹配时要考虑的天数范围。在创建规则时,这些字段标记为开始和结束以指示范围。使用引擎可以非常灵活地处理日期容差范围。假设您要考虑匹配介于今天和明天之间的事务。开始日期将为 0,结束日期将为 1。另一个示例是开始匹配事务的时间早于源事务 2 天,结束匹配的时间晚于源事务 4 天。您还可以考虑 1 天之前(从 -1 开始)到 1 天之后的事务,即将“开始”值输入为 -1 并将“结束”值输入为 +1。
您还可以提高日期容差精度,即将一个源的事务与子系统中另一特定日期(而不是日期范围)的事务进行匹配。要实现此目的,可以对“开始”和“结束”字段使用相同的日期容差值。例如,假设您只希望将源事务与 2 天之后的银行事务匹配。您可以在“开始”字段和“结束”字段中都输入 2,以便在匹配时仅考虑这一天的事务。
默认情况下,Account Reconciliation 使用常规日历指定日期范围形式的日期。在计算日期范围时,您还可以选择使用业务日历,以便在计算范围时轻松地排除公司假日或周末。在创建带容差的“日期类型”属性规则条件时,会提供使用业务日历复选框选项。该选项还可用于匹配流程的默认属性映射。业务日历选项不适用于手动匹配。
注:
要使用业务日历,必须指定组织单位的工作日,以及包含假日列表的假日规则。将组织单位分配给配置文件,然后在创建调节期间使用关联的业务日历。请参阅《设置和配置 Account Reconciliation》指南中的“定义组织单位”。下面是一个指定了日期容差的规则示例,其中显示了业务日历复选框。
评估部分文本匹配的匹配规则
对于文本属性和列表属性,部分文本匹配功能允许用户将一个属性中的结构化文本与另一个属性中非结构化文本的一部分进行匹配。结构化文本可以出现在非结构化文本中的任何位置。您可以将源系统属性的一部分与子系统属性进行匹配,反之亦然。
在规则条件下,选择匹配容差下的使用包含运算符匹配,以匹配部分文本。
在匹配源系统和子系统中的属性时,您需要选择源系统属性和子系统属性,并指定源系统属性是否必须包含子系统属性,或者反之。
例如,GL 是源系统,POS 是子系统。POS 中的参考属性(结构化文本)必须与 GL 中的行说明属性(非结构化文本)的一部分相匹配。要设置此匹配:
请注意,此选项不适用于“多对多,有子集”规则。有关详细信息,请参阅在创建多对多规则的过程中使用子集。
当使用单个源时,您需要选择必须用于匹配的属性。例如,在 POS 源中,借项事务中的参考编号包含结构化文本(如 "76284"),贷项事务中的参考编号包含非结构化文本(如 "Rev 76284")。借项事务中的参考编号必须与贷项事务中参考编号的一部分进行匹配。您需要在属性中选择必须用于匹配的属性,然后在匹配容差中选择使用包含运算符匹配。
如果要匹配源系统内的两个不同属性,例如,将借项事务中的参考(结构化文本)与贷项事务中的描述(非结构化文本)进行匹配,您可以执行以下操作之一:
计算属性的值设置如下:如果金额 >= 0,则将计算属性设置为参考。如果金额 < 0,则将计算属性设置为描述。
匹配基于计算属性的值进行。
在这种情况下,不创建计算属性,而是创建不含计算的文本属性,然后使用 SQL 映射来获得上述结果。
这相当于两个独立的数据源,然后您可以匹配所需的源系统和子系统属性。