#经典案例分享#特殊编码场景

分享  收藏
4 / 763

场景:即每个申请单的样品都是从 01 开始编码
示例:
申请单单号 A 有 8 个样品,依次编码 A01,A02,,,,,A08
申请单单号 B 有 12 个样品,依次编码 B01,B02,,,,,B09,B10,B11,B12
image.png

思路如下:此时不能用自动编码,即每个申请单的样品都是从 01 开始编码,注意,01 为文本,需要从数字序号 1 转化成 01,即将数字转成 2 位数文本,不够前置补零

样品支持复制,导入等场景,变化较大,所以不能通过样品表信息更新来触发最终权衡下,用自定义动作,把所有样品新建完毕后在生成样品编号,就避免了断号的场景,实现也相对容易。

推荐用第二种

实现方式一:
自定义动作 + 代码块 + 子流程串行 + 记录 id
样品表 关键字段 流水号默认为空 样品编码为文本组合=单号 + 流水号,现在的思路就是输出流水号即可。

1.获取申请单样品,计算样品总数,将样品总数拆分成数组(用代码快将数字 N 拆分成 N 个数字,注意,要从 1 开始),传给子流程 1-9 逐条执行 注意:从 1 开始,一般数组是从 0 开始,输出时 +1,
2.获取单据所有样品传给子流程,逐条执行,筛选条件:按创建时间排序,最旧的在前,流水号为空
3.用代码块将数组里的数字解析成 2 位数的文本,不够补零,赋值给流水号
image.png

image.png

image.png

**实现方式二:
自定义动作 + 子流程串行
样品表 关键字段 流水号默认为空 样品编码为文本组合=单号 + 流水号,现在的思路就是输出流水号即可。
新建一个工作表存储序号,并记录其占用情况
image.png

image.png