合并场景规则引擎设计器数据处理
简介¶
合并场景上的规则引擎设计器是一种数据处理,它从按比例、折算和可合并金额类型的金额和日记账上的输入数据出发,这些数据由一组维度(元组)标识,通过应用合并用户定义的规则和条件,允许生成金额和日记账。
数据处理要求¶
要执行此数据处理,必须满足以下条件:
-
在流程的数据处理部分,选择以下项
-
规则引擎设计器(Rules Engine Designer)> 在合并区域上(on Consolidation Area)
-
存在一个执行计划,其中至少包含一个纳入合并区域的实体,以及一个规则节点,该节点至少包含一个按以下内容参数化的规则:
-
至少一条输入维度记录
- 至少一条输入类别记录
-
仅在满足以下条件时才能运行规则:
-
输出科目属于该流程。
- 输出科目属于可能作为合并场景筛选器存在的科目节点。
- 在数据录入规则中启用了自定义维度。 对于金额规则,必须在总金额和 IC 金额的数据录入规则中启用自定义维度;对于合并日记账规则,必须在日记账数据录入规则中启用自定义维度。
- 要在其上生成输出行的自定义维度元素满足输出科目的限制。
- 如果规则上启用了 Ctp 自定义维度 2,则在流程中处理(关系类型(Relationship Type)不是实体)。
- 输入和输出类别设置为 运行(Run)。
- 输入和输出类别属于该流程。
- 输入和输出类别属于可能作为合并场景筛选器存在的类别节点。
- 如果流程类型为按科目/类别,则输出科目/类别对必须符合与要处理的实体关联的流程类型。
- 对于采用周期性计算模式的规则,运行时选择的期间必须连续。
执行计划要求¶
必须为每个合并场景期间指定以下内容:
- 要处理的实体或实体节点
- 作为实体的替代,可以指定合并方法。在这种情况下,会考虑在所选合并场景/期间具有所指示合并方法的实体。
- 要为每个实体/实体节点处理的规则节点
重要:如果相同的实体和原始场景/期间包含在执行计划定义的多个行中,则仅考虑最后一行。
合并场景上的数据处理¶
规则引擎设计器(Rules Engine Designer)在合并场景上的数据处理按以下金额类型运行:
- Consolidable(可合并):数据处理处理 Position 等于 Consolidable 的规则,并在净权益重分类之后、计算逻辑之前启动。金额和日记账的输入数据行从 Consolidatable 金额类型读取,数据处理生成的输出行写入 Consolidatable 金额类型上的金额或合并日记账。
- Converted(已折算):数据处理处理 Position 等于 Converted 的规则,并在折算之后、少数股东权益计算之前启动。金额和日记账的输入数据行从 Converted 金额类型读取,数据处理生成的输出行写入 Converted 金额类型上的合并日记账。
- Proportional(按比例):数据处理处理 Position 等于 Proportional 的规则,并在取消合并之后启动。金额和日记账的输入数据行从 Proportional 金额类型读取,数据处理生成的输出行写入 Proportional 金额类型上的合并日记账。
为使数据处理正确完成,待处理的元组必须已正确参数化。
例如,如果处理的是正常科目,则相关的明细/变动科目也必须生成,否则包含该正常科目的控制组将不平衡。
对于执行计划中定义的实体和合并场景,数据处理通过读取 Input 类别上的输入组合来运行节点中包含的规则,并在 Output 类别上生成新的合并日记账。
重要:规则不适用任何优先级顺序。所有规则并发处理,没有执行先后顺序。
对于每条规则,最终余额按以下元素计算:
- 实体
- 科目
- 受管自定义维度
- Ctp 实体
- 对方实体的自定义维度 2(适用于关系类型为 Entity/Custom Dimension 2 的流程)
- 分部的 Ctp 实体
- 分部对方实体的自定义维度 2(适用于关系类型为 Entity/Custom Dimension 2 的流程)
- 币种:
- 对于 Position 为 'Consolidable' 和 'Converted' 的规则,为合并币种
- 对于 Position 为 'Proportional' 且未启用 'Write in same journal header' 选项的规则,为实体币种
- 对于 Position 为 'Proportional' 且启用了 'Write in same journal header' 选项的规则,最终余额按日记账币种、实体币种和交易币种计算
- 类别
对所得金额应用加成百分比(Markup percentage,默认 100%)以及指定的动态加成(Dynamic Markup,如有)。所得金额按如下方式处理:
- 如果在规则上选择了 Write off input data 选项,则从相关输入元组中冲销该金额。
- 在其他情况下,该金额被分摊到输出维度中指定的元组。
对于启用了 Enable carry forward Writing off for normal and detail accounts 选项的规则,对于资产负债表、担保与承诺或其他存量及正常/明细类型科目,所考虑的输入数据金额包含结转值。因此,对于合并日记账规则,来源为 'Carry forward - Rules Engine Designer' 的行会被冲销。即使规则定义行具有变动类型的输入科目和正常/明细类型的输出科目,也会执行冲销。
相反,对于未启用 Enable carry forward Writing off for normal and detail accounts 选项的规则,来源为 'Carry forward - Rules Engine Designer' 的行不会被冲销。当在给定科目的规则定义中,仅将属于特定控制组的部分变动科目重分类到另一科目时,此选项很有用。
重要:为了充分利用停用冲销的可能性,即使使用了 'Write in same journal header' 功能,RED 生成行的备注字段也必须包含生成这些行的规则信息。为此,必须确保在结转规则中将 'Journals rows aggregation type' 字段设置为 'Don't aggregate' 或 'Aggregate according to dimensions and notes' 选项。
对于金额规则,生成行的 Notes 字段定义为生成规则的代码和描述。
重要:在金额规则中,Swap Entity with Ctp Entity 选项仅在 Entity 和 Ctp Entity 都属于所选 Entity 节点筛选器时生成行(输出维度行和输入数据冲销行均如此)。生成行的 Notes 包含前缀 '[ Swap ]'。
计算方法¶
对于每条规则,可以选择期间数据金额的计算方法,即损益及其他变动类型输入科目、变动类型科目以及集团和少数股东权益资产负债表净结果科目:
- Year-to-daye(年初至今):按期间应用任何动态加成,处理数据处理期间的年初至今金额
- Periodic - Start of period(期间 - 期初):处理期间金额。动态加成差异以及相对于上一期间的规则执行变化视为发生在期初。
- Periodic - End of Period(期间 - 期末):处理期间金额。动态加成差异以及相对于上一期间的规则执行变化视为发生在期末。
在存在动态加成的情况下,期间计算可获得更精确的金额。此外,它允许生成相对于上一期间的规则执行变化的变动流。
期间计算中生成以下行:
-
Period quota(期间份额):当前数据处理期间值与上一期间值之间的差额(即使数据处理期间没有数据也会执行计算)。应用任何动态加成:
-
期初:数据处理期间的动态加成
- 期末:上一期间的动态加成
- Copy from previous period(从上一期间复制):从场景的第二个期间起,复制上一期间生成的行。
-
Dynamic markup - variation compared to the previous period(动态加成 - 相对于上一期间的变化)(仅在已参数化时):
-
期初:上一期间的父科目金额 * 加成差异
- 期末:数据处理期间的父科目金额 * 加成差异
期间计算生成的行通过 Notes 字段的内容标识,其标记为 '[ Periodic ]'。
生成的日记账¶
对于启用了 Write on same journal 选项的合并日记账规则,数据处理在同一输入日记账中生成行。生成行的 Notes 字段中指明规则的代码和描述。
对于未启用 Write on same journal 选项的合并日记账规则,数据处理生成具有相同规则/输出类别和实体的日记账。
新表头通过分配规则 Journal attributes 选项卡上定义的默认属性来创建:
- Enable carry forward
- Minorities calculation method。适用于 Position 等于 'Converted' 和 'Proportional' 的规则。
由数据处理先前运行生成的既有表头,在每次运行时都会根据数据处理运行时规则上定义的默认属性进行更新。
启用 Many to many relationship 选项,因为可能存在以下行:
- 对方实体与输出实体不同的行
- 分部 Ctp 实体与 Output Entity 不同的行
- Entity/Custom Dimension 2 对与表头的 Entity/Custom dimension 2 对不同的行(适用于类型为 Entity/Custom Dimension 2 的流程)

重要:如果在待处理场景与上一场景之间更改了待处理的输入/输出维度,则必须手动冲销,即覆盖上一参数化中录入的维度条目。
日记账表头¶
数据处理生成的日记账表头由日记账编号标识,该编号由前缀 RED_ 后跟规则代码、输出类别和 Entity 组成。规则的描述在生成表头的 Notes 字段中指明。
如果为流程定义了 Entity/Custom dimension 2 关系类型,则表头显示 Destination 2 字段,其中包含 Entity 的默认自定义维度 2。
因此,即使移动了多个自定义维度 2 元素,数据处理也只生成一个具有相同输出规则/类别和 Entity 的表头。单一表头便于日记账分析,且不会降低分部报表的质量。事实上,这些报表不读取表头,而只考虑日记账行中包含的信息。
来源¶
规则引擎设计器数据处理生成的来源为:
- CONS_RED,适用于 Position 为 'Consolidable' 的规则
- CONS_RED_2_CONV,适用于 Position 为 'Converted' 的规则
- CONS_RED_1_DECO,适用于 Position 为 'Proportional' 的规则
对于上一年生成并在下一年结转的行,结转数据处理生成的来源为:
- PRCO_RESTORE_RED,适用于 Position 为 'Consolidable' 的规则
- PRCO_RESTORE_RED_2_CONV,适用于 Position 为 'Converted' 的规则
- PRCO_RESTORE_RED_1_DECO,适用于 Position 为 'Proportional' 的规则
对于 Position 为 'Converted' 的规则在已折算金额类型上生成的行的取消合并,取消合并数据处理生成的来源为:
- CONS_DECONSOLIDATION_RED_2_CONV
- CONS_COPY_PREVIOUS_RED_2_CONV
"Read input data from entities node" 选项¶
此选项适用于 Position 等于 'Consolidable' 的规则,在需要从多个 Entity 读取输入数据时很有用。
将 Entity 节点层次与输出 Entity 相匹配的参数化,允许系统从多个 Entity 读取输入数据,并在输出 Entity 上生成日记账或金额。
对于金额规则,生成行的备注包含 Entity 节点。
对于合并日记账,生成的日记账编号包含输出 Entity 和节点。
Read input data from Entities node 选项与 Map dimensions based on sign 选项结合使用,可用于根据某个 Entity 节点的贷方与借方之和的符号,将预付税款贷方/递延税款借方重分类为全部计入贷方或全部计入应付账款,并在参考 Entity 上获得输出日记账。
参数化:
-
必须在规则的 Advanced 选项卡中启用 Read input data from Entities node。此选项不能与 Write in the same journal header 选项同时启用。
-
在 Entity Definition 窗口中,必须录入要从中读取输入数据的 Entity 节点,并为每个节点录入要生成日记账的输出 Entity。
- 在执行计划中,必须将规则节点与 Entity 定义中指定的 Output Entity 相关联。
数据处理计算属于该节点的 Entity 的输入数据之和。规则应用于按实体节点聚合的输入数据。

重要:在按节点聚合的输入数据之和中,Entity 和分部的 Ctp Entity 被替换为 Output Entity,而 Ctp Entity 仍为输入数据的 Ctp Entity。
因此,会产生以下效果:
- 条件:Entity 和分部 Ctp Entity 上的条件属性引用 Output Entity。Ctp Entity 上的条件属性照常引用输入 Ctp Entity。
- 冲销日记账的生成:Entity 和分部的 Ctp Entity 等于 Output Entity。Ctp Entity 为输入实体。
- 日记账重分类行的生成:Entity 等于 Output Entity,Ctp Entity 可通过排除 Swap Entity with Ctp Entity 选项的规则处理,分部的 Ctp Entity 可通过排除 'Equal to Input' 选项的规则处理。
对净结果有影响的日记账¶
在规则中可以指定,将资产负债表性质的正常科目处理到损益性质的正常科目上,反之亦然。
在此类情况下,很可能对净结果科目产生影响。为识别该影响,必须启用科目计算规则,使其也应用于合并场景。
即使处理的是自定义维度的一个元素,也可能对按自定义维度"拆分"考虑的利润产生影响。
不生成输出行的情况¶
在这些情况下,即使存在输入元组,数据处理也不生成冲销行或输出行:
- 输出科目不存在于 Entity Process Type 或合并场景的筛选器中。
- 输出类别未在流程或合并场景的筛选器中启用。
- 科目/类别对未在 Entity 的 Process type 中启用。
- 规则是为某个自定义维度定义的,而该维度未在流程的金额(对于金额规则)或日记账(对于合并日记账规则)上受管。
- 为规则启用了 Ctp 自定义维度 2 的管理,而流程关系类型为按 Entity。
- 规则包含不构成维度定义的行,或包含输入维度未定义(在表头中处于活动状态)的定义行。
- 规则中的条件未满足。
- 维度定义行的动态加成等于零或无法计算。
- 启用了 Write in the same journal header 选项的规则 - 即无法将 Entity 与 Ctp Entity 交换的情况。 在合并日记账中,如果在表头规则中启用了 Manage Counterpart regardless of header relationship 选项,则 Ctp Entity 可能不同于两个表头 Entity(即使 Many-to-many Relationship 选项已禁用)。在此情况下,Ctp Entity 不同于两个表头 Entity 的输入数据行,不会在 Ctp Entity 维度处于活动状态且 Selection = Swap Entity with Ctp Entity 的规则定义行中处理。无法进行交换,因为实体不能定义为两个表头实体以外的任何值。如果关系类型为 entity/custom dimension 2,系统会排除其对方实体/对方自定义维度 2 不同于表头中两个 Entity/Custom Dimension 2 对的输入行。
关于应用规则的进一步条件¶
以下为输入数据为应用规则而必须满足的每个条件的可用选项。
| 条件 | 选项 |
|---|---|
| Entity - Consolidation Method | - Line-by-line - Proportional - Equity - Cost - Not present。该 Entity 未包含在合并范围内。 |
| Entity - Deconsolidation Method | - Not to deconsolidate - Initial balances - From previous period - From current period |
| Entity - Equity Type | - None - Associate - Joint Ventures - Non-consolidated controlled entity |
| Entity - Holding Consolidation Area | - Only applies to the holding company - Applies to all entities excluding the holding company |
| Entity - Merger event | - Incorporating - Incorporated - Not present as Incorporating Entity - Not present as Incorporated Entity |
| CTP Entity - Consolidation Method | - Line-by-line - Proportional - Equity - Cost - Not present。该 CTP Entity 未包含在合并范围内。 |
| CTP Entity - Deconsolidation Method | - Not to deconsolidate - Initial balances - From previous period - From current period |
| CTP Entity - Equity Type | - None - Associate - Joint Ventures - Non-consolidated controlled entity |
| CTP Entity - Merger event | - Incorporating - Incorporated - Not present as Incorporating Entity - Not present as Incorporated Entity |
| CTP Entity for Segment - Consolidation Method | 此条件仅对合并日记账类别上的输入数据予以考虑。 - Line-by-line - Proportional - Equity - Cost - Not present(分部 CTP 实体不存在于合并范围内) |
| CTP Entity for Segment - Deconsolidation Method | 此条件仅对合并日记账类别上的输入数据予以考虑。 - Not to deconsolidate - Initial balances - From previous period - From current period |
| CTP Entity for Segment - Merger event | 此条件仅对合并日记账类别上的输入数据予以考虑。 - Incorporating - Incorporated - Not present as Incorporating Entity - Not present as Incorporated Entity |
条件的应用期间¶
对于所有条件(Entity - Holding Consolidation Area 除外),都可以定义应用期间。为此,可使用以下选项:
- Current Period:条件在数据处理场景/期间的合并范围上验证,但 Merger Event 条件除外,这些条件在与数据处理合并场景相关联的原始场景的合并事件上验证,且合并期间等于或早于处理期间
- Opening Period:条件在结转场景/期间的合并范围上验证,但 Merger Event 条件除外,这些条件在与上一合并场景相关联的原始场景的任何合并事件上验证。
条件应用的特殊性¶
对于 Ctp entity 未赋值的输入数据行,以下关于 CTP Entity 的条件无法满足,因为它们基于 Ctp Entity:
- CTP Entity - Consolidation Method
- CTP Entity - Deconsolidation Method
- CTP Entity - Equity method type
- CTP Entity - Merger event
此外,具有 CTP Entity for Segment 字段条件和金额及实体日记账输入类别的规则,也应用于金额和实体日记账的输入数据行,且该条件始终视为已满足。如果分部对方实体合并方法上的条件与 OR 运算符或其他条件组合,则对于金额和实体日记账输入数据,该条件集始终满足。