# 流程的明细表+主表字段值写入EB表单的主表数据

来源快照：`result_data_new_260518.json`

- 来源 ID：`1222905067756314706`
- 模块：低代码平台e-builder
- 目录：动作流 - 场景搭建
- space ID：`1157961794811633670`
- 原文链接：未提供
- 产品基线：未提供

## 正文

# 泛微e-cology10ESB中心应用场景专题介绍

根据流程的明细表+主表字段值写入EB表单的主表数据

 

一、

# 文档简述

 

**目标读者：** 首次接触泛微系统的业务/技术人员，无产品使用经验。

**学习目标：**

理解ESB动作流组件中【依据值】的基本概念。

掌握流程表单与EB表单数据传递的场景价值。

能够独立完成从流程到EB表单的数据写入配置。

 

**支持版本：**

本配置方案适用于ecology 10.0及以上版本

 

二、

# 场景简介

 

采购流程审批后需要自动生成采购订单（EB表单）。需要实现把流程的明细表+主表字段值写入EB表单的主表数据。流程采购明细物品已经插入EB表单后，后续采购流程有重复时需要更新已有EB表单数据。

 

场景示意图：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905179413823490&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

 

三、

# 动作流配置流程

**选择触发事件 →  数据操作（转换规则）→ 字段映射 → 测试验证**

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905170807111683&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

** **

四、

# 动作流配置前准备工作

1、

流程搭建

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905183519162371&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

2、

应用搭建

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905166322515981&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

3、

数据转换逻辑梳理

在ESB中心配置时，我们通常使用“更新表单数据”组件并设置匹配条件。

这里匹配条件就是EB表单的“采购物品”等于流程明细的“物品名称”。

同时，我们需要设置更新方式为“按字段匹配更新”，并设置匹配字段。

但是，这里有一个难点：ESB的更新表单组件，默认是对整个流程数据操作，而我们现在需要针对每个明细行分别进行更新或新增。也就是说，我们需要对明细表进行“循环”，对每个明细行执行一次更新/新增操作。此时，在ESB中，我们可以使用“依据值”来遍历明细表。

 

因此使用“更新表单数据”组件，整体配置步骤如下：

目标表单：采购订单EB表单。

更新方式：按字段匹配更新（当匹配到记录时，更新匹配到的记录；当没有匹配到记录时，新增记录）。

依据值：选择流程明细表，遍历明细数据。

匹配条件：EB表单的“采购物品”等于当前流程明细行（依据值下级）的“物品名称”。

字段映射：将流程主表字段和当前明细行字段映射到EB表单的对应字段。

这样，对于每个明细行，都会执行一次更新/新增操作。

 

五、

# 核心概念：理解“依据值”

 

1、依据值是什么？（清单循环模式）

比喻：就像是一份“采购清单”，上面列了3样东西：电脑、鼠标、键盘。需要拿着清单逐项去检查处理。

作用：ESB中的“依据值”就是这份清单。它告诉系统：请把明细表的每一行数据都当做一个独立任务，逐个处理。

在ESB中，当我们需要对一组数据（比如明细表）进行逐条处理时，就需要用到“依据值”。简单来说，“依据值”就是一个列表，ESB会遍历这个列表中的每一个元素，然后对每个元素执行一次动作。

 

3、依据值下级是什么？（当前处理项）

比喻：当我们开始处理“采购清单”时，当前正在处理的这个物品的信息就是“依据值下级”。比如，我们正在处理清单上的“电脑”，那么“电脑”的详细信息（数量、单价等）就是当前依据值下级。

作用：依据值下级代表了当前正在处理的那一行明细数据，所有字段映射都基于它。

在遍历依据值（采购明细表）时，每次循环中，我们可以通过依据值下级来获取当前这个物品的具体信息，并用这些信息去执行操作（比如更新或新增EB表单记录）。

 

六、

# 动作流详细配置步骤

### 第一步：创建动作流

进入后台管理中心→ 【平台引擎】→ 【ESB中心】→ 【动作流】，点击新建动作流。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905179403477000&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

### 第二步：设置触发源

本场景在流程结束时触发数据同步。

1、

在组件区内,选择【流程事件触发】

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905170805153795&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

2、

点击该组件进行配置：

操作：点击“选择工作流”，点击确定按钮后，选择【流程触发】组件。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905179403476994&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905179403476997&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905179413823495&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

3、

选择触发时机

配置：选择流程结束节点前作为触发时机，确保审批已完结。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905166440955915&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

### 第三步：配置数据处理

这是最关键的一步，我们将使用【更新表单数据】组件。

1、

从动作流设计器布局中点击添加操作选择【更新表单数据】组件。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905175047667719&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

2、整体配置步骤如下：

目标表单：选择“采购订单”EB表单。

更新方式：选择【按字段匹配更新】。

条件不满足时按设置新增数据：开启（当匹配到记录时，更新匹配到的记录；当没有匹配到记录时，新增记录）。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905170805153800&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

依据值：选择上下文中流程触发表单数据的明细表，意味着遍历流程明细表的每一行。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905166562476037&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

匹配条件：点击【条件字段设置】。

左侧：选择EB表单的字段。如：“采购物品”。

条件：等于。

右侧：选择依据值下级下的对应字段。如“物品名称”。

此逻辑即：用当前处理的明细物品名称去EB表单里寻找是否有同名的记录。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905166322515971&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

### 第四步：字段映射

将流程中的数据，填充到EB表单的对应字段中。

数据目标表字段内容：进行字段映射，逐个添加字段映射关系。注意区分数据来源：

来源于流程主表：应选择 动态赋值 【流程触发上下文】表单数据 → 主表字段。

来源于当前明细行：必须选择【依据值下级】→ 明细表字段。

 

采购部门来源于流程主表字段：动态赋值选择流程触发上下文中的主表“申请部门”字段。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905175047667716&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

总金额：流程明细行中的数量乘以单价；

配置：点击动态赋值选择乘法函数，使用函数进行计算。参数同样来源于【依据值下级】。

乘数和被乘数依次选择更新表单数据上下文中依据值下的数量、单价字段。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905187873849344&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

当采购物品重复时，总金额需要累加更新，故需要修改关系为“=+”累加。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905183599738883&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

采购总数量、采购事由、采购单价来源于流程明细表字段：依据值下级映射流程明细字段。当采购物品重复时，采购总数量需要累加更新，故需要修改关系为“=+”累加。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905170860752900&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

更新EB数据时，若某个字段来源为空不需要更新，可开启【数据更新时忽略空值】。

如采购事由字段在流程中为空时，更新操作将保留EB表单中的原值，不会清空。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905175047667713&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

### 第五步：保存并测试验证

1、

点击【保存并启用】动作流配置，填写易于识别的名称，如“采购流程同步至订单”。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905187873849348&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

2、发起测试流程：

同步新增EB表单数据：发起一个采购全新物品的流程，审批后检查EB表单是否新增。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905166322515977&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905183587270659&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

同步更新EB表单数据：再次发起一个采购已有物品的流程，审批后检查EB表单原采购物品总金额、采购总数量是否累加更新、采购事由流程中为空，更新时是否保留原值。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905170811420676&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905175009804295&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

3、在ESB中心的动作流【实例】中，可以点击【查看报文】查看每次执行的详细日志，便于排查定位问题。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222905183599738881&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

七、

# 关键注意事项

**匹配字段要唯一：** 用于匹配的字段（如物品名称）必须是唯一标识一条记录，否则可能更新错误。

 

**明细字段必须用“依据值下级”：** 这是最常见的错误点。所有来自明细表的字段，映射时来源必须是 依据值下级 ，而不是普通的流程上下文。

 

**灵活运用赋值关系：** = 是覆盖，=+ 是累加，=- 是累减，≠null 是空值不更新。根据业务需求，为数字型字段（如数量、金额）选择合适的赋值方式。

 

八、

# 常见问题（FAQ）

**Q：动作流配置好了，但为什么不执行？**

 A：① 检查流程是否真正结束。

       ② 检查ESB中心动作流状态是否启用。

       ③ 在“动作流实例”中查看是否有报错日志。

 

**Q：数据同步后，为什么EB表单里只有一条记录（明细合并在了一起）？**

 A：这几乎可以确定是未正确设置“依据值”。请返回第三步，确认已选择明细表字段作为依据值。

**Q：动作流实例日志里已经显示成功了，但是EB数据里一条也没有生成？**

 A：在e-builder应用下 → EB表单 → 权限 → 共享权限，设置当前登录用户共享权限即可。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1222978850785452044&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

**Q：更新时，我想保留EB表单里的一些旧信息（如备注），不被流程中的空值覆盖，怎么办？**

 A：在第四步字段映射时，开启 【数据更新时忽略空值】 选项即可。
