针对源数据的数据结构为分录的(层级调整、合并、拆分)之集成解决方案
分录层级调整、分录行合并、分录行拆分应用DEMO文档
作者:邵松华
1. 概述
源数据和目标数据的数据结构层级存在不一致时,使用聚合运算对源数据的数据结构进行分录分级调整、分录行合并或者分录行拆分后与目标数据的数据结构层级一致。举例说明具体应用。
2. 分录分级调整
场景1:
源对象:表单A—一级分录—二级分录
目标对象:表单B—分录(一级)
用法:
level(-)减少分录数据层级。
示例:level(-)减少分录数据层级
如:level(+)将一级分录
"entryentity":[ {"ke2":"S001","e1":"I001"},{"ke2":"S002", "e1":"I002"} ]
转换为二级分录entryentity .subentryentity数据结构:
"entryentity":[
{"subentryentity":[{"sub_e2":"I001","sub_e1":"S001"}]},
{"subentryentity":[{"sub_e2":"I002","sub_e1":"S002"}]}
]
3. 分录行合并
场景3:
源单的分录字段(字段类型为字符串)对应目标单表头(字段类型为字符串)的一个字段。
用法:
join(s) 字符串合并,用指定的分隔字符串(s)对源(分录)字段值进行连接;实现N行合并为1行的效果。
组合运用:
level(-)::join(s)
将一级分录的字段值串联起来赋值给目标单表头,其中level(-)将二维数组合并为一维数组;join(s)将一维数组中的成员串联起来。
示例:
如:level(-)::join(;)将分录entryentity的字段e1
"entryentity":[
{"e1":"value1"},
{"e1":"value2"},
{"e1":"value3"}
]
转换为:"k2":"value1;value2;value3"
4. 分录行拆分
场景4:
源单的一个字段(字段类型为字符串)部分内容对应目标单(字段类型为字符串)的一个字段。
用法:
split(s) 字符串拆分,按指定的分隔字符串(s)对源字段值进行拆分;实现1行转N行的效果。
组合运用:
split(s)::[n]
将目标字符串以s拆分,成为一个一维数组,再选择第n个字符串。
示例:
如:split(;)::[1] 将"t2":"V1;V2;V3;V4"转换成 "k2":"V1"。
场景5:
表头一个字段值分割为多个片段,分别对应目标单的一行分录。
用法:
split(s) 字符串拆分,按指定的分隔字符串(s)对源字段值进行拆分;实现1行转N行的效果。
示例:
如:split(;) 将"t2"::"S1;S2;S3"转换为"entryentity"."e1"的字段值
转换后entryentity数据结构为:
"entryentity":[
{"ke3":"20210225003","ke2":"AB","e1":"S1","seq":1},
{"ke3":"20210225003","ke2":"AB","e1":"S2","seq":2},
{"ke3":"20210225003","ke2":"AB","e1":"S3","seq":3}
]
场景6:
源单分录的每一行数据,生成目标分录两行数据。
用法:
目标对象分录字段添加两个相同的字段。
示例:
源分录数据结构为:
"entryentity":[ {"e1":"V1","e2":"K1"},{"e1":"V2","e2":"K2"}]
生成目标分录数据结构为:
"entryentity":[
{"ke2":"K1","ke4":"A","e1":"V1", "seq":1},
{"ke2":"K2","ke4":"A","e1":"V2", "seq":2},
{"ke2":"K1","ke4":"B","e1":"V1","seq":3},
{"ke2":"K2","ke4":"B","e1":"V2","seq":4}
]
集成服务云使用指南:https://club.kdcloud.com/article/45312
集成服务云新特性发布汇总:https://club.kdcloud.com/article/146134
集成云常见问题处理合集: https://vip.kingdee.com/article/45556
针对源数据的数据结构为分录的(层级调整、合并、拆分)之集成解决方案
本文2024-09-23 00:51:24发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142178.html