全部文档
文档中心单据引擎3.0类型:单据转换方案定义

方案定义

配置此映射方案,除字段取值规则外的其他定义,例如:来源的单据模型、目标的单据模型、目标模型的每一层对象和来源模型的每一层对象的映射关系。

选择需要被转换的来源单据(领域模型元素)。

选择具体的来源单据数据,在单据引擎调试时使用,不影响外部调用时的实际传参。

调试时,主要关注生成的数据是否正确,不建议选择太多调试单据,若不涉及聚合,选择1条即可,若涉及聚合,至多不超过10条。

选择需要生成的来源单据(领域模型元素),单据引擎会按照目标模型的结构来组装数据,但不会将数据落库!

定义目标模型的每一层对象和来源模型的每一层对象的映射关系。目标的主对象默认对应来源的主对象,目前不可自定义,即1张来源单据生成1张目标单据。

目标对象对应来源单据的哪个层级,该来源层级有多少条数据,则会生成多少条目标对象层级的数据。

因此,映射层级的配置会影响目标模型的明细对象层级的聚合逻辑,需要结合字段映射来理解。

例如【来源单据】和【目标单据】的模型结构如下图所示:



假设来源单据01,包含5行明细:

头.单据编号

行.行号

行.金额

01

1

10

2

20

3

30

4

40

5

50

我们来看看不同的映射配置,会对生成的目标单据有何影响。

场景一:目标行1和2都对应来源头

数据条数=来源层级数据条数

金额:取值路径

金额:计算逻辑

结果:行号

结果:金额

目标行表1

1

头(1)->行(5)->行.金额(5)->求和(1)

sum(10,20,30,40,50) = 150

1

150

目标行表2

同上

同上

同上

同上

同上

PS:如果取值规则中,计算类型不用【求和】,用【查询】,则会在每行中得到5条行金额数据,与目标行数不一致,会抛出异常。

场景二:目标行1和2都对应来源行

数据条数=来源层级数据条数

金额:取值路径

金额:计算逻辑

结果:行号

结果:金额

目标行表1

5

行(5)->行.金额(5)->查询(5)

10

1

10

20

2

20

30

3

30

40

4

40

50

5

50

目标行表2

5

行(5)->行.金额(5)->查询(5)

10

1

10

20

2

20

30

3

30

40

4

40

50

5

50

PS:如果取值规则中,计算类型不用【查询】,用【求和】,其实是在各自的5行里,对自身的1行求和,结果会与查询一样。

场景三:目标行1对应来源头,目标行2对应来源行,即前两种情况的结合。

数据条数=来源层级数据条数

金额:取值路径

金额:计算逻辑

结果:行号

结果:金额

目标行表1

1

头(1)->行(5)->行.金额(5)->求和(1)

sum(10,20,30,40,50) = 150

1

150

目标行表2

5

行(5)->行.金额(5)->查询(5)

10

1

10

20

2

20

30

3

30

40

4

40

50

5

50

回到顶部

咨询热线

400-821-9199

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

ctrl+Enter to send