全部文档
文档中心数据流3.0案例库0301

0301

某公司的数据处理流程与规则.xlsx

介绍业务背景、数据流核心配置、实现效果。

模拟销售和费用数据:

使用连接器,连接旧系统数据库。连接信息参考配置准备



在本系统中,创建相关数据表元素,用于提供规则和承接输出数据,以 MySQL 数据表为例。



为方便编辑数据,可以用电子表格组件统一管理相关规则表:







注意:由于数据原因,此处的配置说明与 DEMO 中实际配置可能略有差异,最终以 DEMO 环境中实际配置为准!


  1. 在开始节点配置启动参数{"YearMonth":"202301"},需要传入【年月】

  2. 无需定时触发,只要手动触发即可



  • 连接器查询节点用于获取 SAP 系统中指定年月的发票明细

  • 数据表查询节点用户获取本系统中的相关业务规则

两个查询节点都提供了 UI 模式和 SQL 模式用于查询,以 UI 模式为例:



数据表查询节点直接全表查询即可:



进阶:使用参数和变量

如果节点之间有执行的前后顺序,那么后续节点可以引用前序节点的运行结果,引用方式用Operator.nodeX.data,还支持更多变量的引用,详见DPL_变量体系整理

举个例子,本场景中,连接器查询节点仅需查询指定年月的数据,指定年月为启动参数,也是开始节点的输出结果,因此在过滤条件中可以需要引用Pipeline.params.YearMonth



用于处理数据集,也就是按业务规则处理数据,这里可以与业务要求的步骤一一对应。



  • 数据源选择连接器查询节点得到的 SAP 发票明细

  • 使用连接(join)步骤,连接数据表查询节点得到的各种业务规则,举例



  • 使用列选择步骤,只保留需要的列



  • 使用列计算步骤,进行列间计算,得到新列,计算需要使用 SQL 表达式(DuckDB 语法)



此步骤完成后,就能得到需要的结果了,接下来只需要映射到目标表即可。

带前序节点一同调试,检查数据:

202301期间有3100条数据


使用数据表操作节点提交数据库。

DEMO 中为先删后插,实际根据业务需求决定是否需要先删除。

  • 数据源选择内置业务数据源



  • 先用删除步骤,删除本年月的数据



  • 再用数据集-新增步骤,将UI 转换节点输出的结果,映射到目标数据表



注意:由于数据原因,此处的配置说明与 DEMO 中实际配置可能略有差异,最终以 DEMO 环境中实际配置为准!


同销售流程,不赘述。

  • 连接器查询节点用于获取 SAP 系统中指定年月的发票明细

  • 数据表查询节点用户获取本系统中的相关业务规则

同销售流程,不赘述。

区别于销售流程,费用流程这里按业务规则,拆分成 5 个独立的 UI 转换节点了,每个 UI 节点的数据源是上一个节点的输出结果。

当然,也可以和销售费用一样,编排在一个节点中,使用多个步骤区分,按需选择即可。



费用流程的UI 转换节点,主要有按条件更新字段的需求,例如【更新物流费】,需要只更新【二级科目=物流费】的数据,其他数据不受影响



那么就需要用到列计算步骤,在 SQL 表达式中用CASE WHEN语法处理,这里支持 DuckDB 的 SQL语法。



列计算步骤定义的字段名,如果和已有字段名重复,则为更新该字段。

按规则配置完成后,就能得到需要的结果了,接下来只需要映射到目标表即可。

带前序节点一同调试,检查数据:

202301期间有100条数据


使用数据表操作节点提交数据库。

DEMO 中为先删后插,实际根据业务需求决定是否需要先删除。

同销售流程,不赘述。

注意:由于数据原因,此处的配置说明与 DEMO 中实际配置可能略有差异,最终以 DEMO 环境中实际配置为准!


同销售流程,不赘述。

区别于其他流程,分摊流程需要将 1 条费用明细,按分摊比例计算到多个事业部中,有 N 个事业部就需要多 N 列展示对应的分摊金额。

这里可以使用到透视节点来完成:



效果:



区别于其他流程:

  1. 为了计算分摊比例的分母,也就是总销量或总人数,用到了【列计算-窗口聚合】步骤:



  2. 为了将 N 条费用明细连接 M 个事业部对应的分摊比例,在【连接】步骤中,用到了【交叉】的连接方式,得到 N*M 条数据;



  3. 费用明细数据中规定了不同的分摊规则,各数据按照不同规则计算完成后需要将结果取并集,因此使用了【集合(union)】步骤;



回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send