# 勋章数兑换，历年的勋章数相应从历年进行扣减（也可以理解为是年假申请，申请后历年的年假要减少的场景）

来源快照：`result_data_new_260518.json`

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

## 正文

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

勋章数兑换，历年的勋章数相应从历年进行扣减（也可以理解为是年假申请，申请后历年的年假要减少的场景）

# 一、编写目的

客户需实现用户提交流程申请勋章兑换，兑换后该用户历年获得的勋章数据需要进行扣减，从历年开始扣减，第一年的扣减完不够的话需要从第二年的勋章数进行扣减的场景（相当于是年假申请，申请后历年的年假要减少的场景）。

# 二、支持版本

ecology 10.0版本

# 三、前置数据准备（每年获得勋章数汇总）：

在低代码平台e-builder中已存在各个用户每年获得的勋章数的汇总表单

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248175478508363786&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=1248176053966872578&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=1248176131343392772&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)

# 五、ESB中心相关配置

1、在ESB中心的动作流菜单中，新建动作流，整个动作流的配置需要用到 流程触发组件+数据源查询+条件+终止+变量赋值+循环+分支+更新表单数据组件+跳出循环组件，终止组件是嵌套在条件内部的，更新表单数据组件和跳出循环组件嵌套在循环组件内部

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248177694677409796&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=1248177754794065924&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=1248177853586702344&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=1248178729785196552&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，每页条数配置100

4、

条件：判断下用户申请的兑换数是否可兑换他历年获取到的勋章数量，若兑换数量大于历年获取的总数，则不允许兑换；历年获取到的勋章数用SUM函数进行求和

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248180361827926027&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=1248180563774283788&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)

5、终止组件：在条件内部添加，给出相应提示；拦截需要开启阻止触发模块后续操作的开关

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248180984542363650&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)

6、接下来要进行的就是当该人员的历年获取的勋章数满足兑换时，需要进行数量扣减的配置：

6.1、变量赋值：添加变量赋值，命名为剩余勋章数，变量类型为整数

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248182440508211205&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)

6.2、变量赋值映射值来源：将流程中兑换数量作为剩余数量的初始值：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248182801335795714&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)

6.2、循环组件：循环方式选择按表单明细表、多选浏览框、动态赋值数据循环遍历，数据来源于数据源查询组件，具体配置如图：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248183273759932430&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)

6.2、循环内部的分支组件：选择排他分支，条件设置为当剩余勋章数小于等于当前循环分年的勋章数时，则说明当前循环年份的勋章数足以扣减兑换数；则进入到更新表单数据组件去扣减该年份的勋章数，扣减完则跳出该循环即可

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248184845831512067&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=1248184987465293832&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)

6.2、循环内部分支组件下的条件1中的更新表单数据组件：当满足分支条件1的条件，则说明当前循环年份的勋章数足以扣减兑换数；则进入到更新表单数据组件，通过=-的配置去扣减该年份的勋章数

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248185794928001031&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=1248185945276030983&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)

6.3、循环内部分支组件下的条件1中的更新表单数据组件下的跳出循环组件：当满足分支条件1的条件，则说明当前循环年份的勋章数足以扣减兑换数；所以更新表单数据组件扣减后就可以跳出循环，无需再进行循环。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248186550853533700&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)

6.4、循环内部分支组件下的其他条件的变量赋值以及更新表单数据组件：若进入其他条件，则说明当前循环年份的勋章数不足以扣减兑换数，所以变量赋值（剩余勋章数）为当前剩余勋章数减去当前循环年份的勋章数，即当前年份扣减完后还需要继续进入下一次循环，扣减另外年份的勋章数，直到扣减完成为止

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248187701960122374&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=1248187487253176324&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=1248187598729912323&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=1248187886538031120&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=1248188135567736834&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)

# 六、展示效果：

前提：徐扬斌该人员历年总共获得勋章数为10个。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1248191111988461580&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=1248191911002382343&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=1248192276058349576&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)

# 七、导入包
