通过循环容器进行MRP运算

1. 简介

1.1 案例简介

本文将以 MRP(物料需求计划)计算为例,介绍 循环容器遍历执行能力:即针对一批查询到的数据,逐条执行相同的一套操作(包括计算、写入等),从而实现物料的自动化拆解。

1.1 MRP介绍

MRP 运算即根据产品的 BOM(物料清单)结构,从顶层逐级向下拆解,从而精准计算各级物料的需求数量。

以生产 10 台电脑为例,拆解过程如下:

运算步骤

拆解过程

1.确定生产计划

10 台电脑

2.向下拆解一级物料需求

根据电脑的 BOM 找到其下级物料:键盘、主机,并计算数量

3.向下拆解二级物料需求

根据键盘和主机的 BOM,分别找到其下级物料:主板、显卡、存储单元,并计算数量

4.……

以此类推,直至最后一层物料被算尽

1.3 预期效果

变更生产计划的状态为 “物料分析” 时,便可触发智能助手进行 MRP 运算,将各级结果写入「物料需求清单」。

2. 实现思路

此类数据遍历场景均可通过循环容器实现:

注:循环容器的遍历上限为 200 条数据,超出时不建议使用循环容器解决。

2.1 场景分析

在 MRP 运算中,每级物料中的数据处理是完全一致的:

  1. 查询: 查找当前层级物料的下级物料。
  2. 计算与写入: 对每条下级物料,计算需求数量并同步至物料清单及辅助表。
  3. 递归: 对新生成的下级物料再次执行上述逻辑。

其中,对每一级物料中查找出的数据都需执行「计算—新增到物料清单—新增到辅助表」这一套操作,本质上属于遍历场景,可以直接使用循环容器来解决。

2.2 解决方案

借助循环容器,可以将上述的成套操作封装在一个循环体中,只需配置一套操作,系统会对每条数据都执行相同的这套操作,当所有数据执行完毕后,将自动跳出循环,进入后续节点。

相应的循环容器设置如下所示:

  • 选择节点:选择查询节点查找出的物料数据作为遍历对象。
  • 配置循环体:即需要对数据执行的操作,即「计算—新增到物料清单—新增到辅助表」。

注:为何需要辅助表,以及需将物料新增写入到辅助表的原因可查看本文 3.2 节。

3. 表单搭建

点击安装 示例应用模板,本文将按照模板中的示例数据进行讲解。

3.1 表单搭建

本文案例主要用到如下 7 张表单:

1)BOM维护相关表单

  • 产品信息表:存储产品相关的基本信息,如产品名称、型号等,是 BOM 的基础数据来源。
  • BOM基础表:用于记录产品与其组成部件之间的关系,以及所需的每个组件的数量。

注:建议参考 多级BOM搭建方案【第 2 节】了解 BOM 相关表的搭建思路,并完成 BOM 数据的录入

2)MRP运算相关表单

  • 生产计划:记录产品的生产计划,包括计划生产的产品和需求数量。
  • 物料需求清单:存储 MRP 运算的最终结果,包括所需的各级物料名称和数量,可用于指导采购和生产活动。
  • 运算辅助表:用于辅助触发下级物料的计算。

3.2 表单&智能助手设计思路

本节以三级 BOM 为例,介绍所需智能助手和辅助表的数量。

1)智能助手数量 = BOM层级数

由于 1 个循环容器能够遍历计算一级物料需求,且 1 个智能助手仅能添加 1 个循环容器,因此三级 BOM 相应需要 3 个智能助手。

2)辅助表数量 = BOM层级数-1

首先来看,为什么需要辅助表?智能助手的原始设计思路为:

  • Pro1 计算一级物料&写入物料清单
  • 随后触发 Pro2 计算二级物料&写入物料清单
  • 随后触发 Pro3 计算三级物料&写入物料清单

由于智能助手为了防止死循环,存在 循环触发限制,因此 Pro1 写入物料清单时,无法继续触发剩余 Pro,因此需要借助辅助表来触发下一级物料的计算。例如:

  • Pro1 计算一级物料&写入物料清单&辅助表
  • 触发 Pro2 计算二级物料&写入物料清单&辅助表
  • 触发 Pro3 计算三级物料&写入物料清单

因此三级 BOM 的计算需要 2 张辅助表。用户可根据实际物料层级,按需调整智能助手和辅助表数量即可。

4. 计算一级物料

注:智能助手的具体设置可在安装 示例应用模板 后了解。

新建智能助手,在生产计划状态为「物料分析」后触发,首先查找计算一级物料数量,并同步至物料需求清单和辅助表。具体如下:

1)新建智能助手后,选择触发表单为「生产计划」,并对触发节点进行如下设置:

  • 添加触发动作:仅在任意指定字段「状态触发器」修改时;
  • 添加触发条件:「状态触发器」等于「物料分析」。

2)添加 查询多条数据节点,设置查询条件为选择上级产品「等于」触发数据—BOM,查询出一级物料。

3)添加循环容器,并进行如下设置,计算一级物料数量,并同步至物料需求清单和辅助表。

  • 循环方式:指定节点「查询多条数据」,对节点内数据逐条执行循环。
  • 循环体配置:使用计算节点计算需求数量,以及新增数据节点将结果写入物料需求清单和辅助表。

4. 计算二级物料

注:智能助手的具体设置可在安装 示例应用模板 后了解。

新建智能助手,在一级物料被写入「一级BOM运算」表后触发,根据一级物料查找计算出二级物料,并同步至物料需求清单和辅助表。具体如下:

1)新建智能助手并设置触发表单为「一级BOM运算」。随后,设置触发动作为「新增数据时」:

2)添加 查询多条数据节点,设置查询条件为选择上级产品「等于」触发数据—BOM,查询出二级物料。

3)添加循环容器,并进行如下设置,计算二级物料数量,并同步至物料需求清单和辅助表。

  • 循环方式:指定节点「查询多条数据」,对节点内数据逐条执行循环。
  • 循环体配置:使用计算节点计算需求数量,以及新增数据节点将结果写入物料需求清单和辅助表。

4. 计算三级物料

注:智能助手的具体设置可在安装 示例应用模板 后了解。

新建智能助手,在二级物料被写入「二级BOM运算」表后触发,根据二级物料查找计算出三级物料,并同步至物料需求清单。具体如下:

1)新建智能助手并设置触发表单为「二级BOM运算」。随后,设置触发动作为「新增数据时」:

2)添加 查询多条数据节点,设置查询条件为选择上级产品「等于」触发数据—BOM,查询出三级物料。

3)添加循环容器,并进行如下设置,计算三级物料数量,并同步至物料需求清单。

  • 循环方式:指定节点「查询多条数据」,对节点内数据逐条执行循环。
  • 循环体配置:使用计算节点计算需求数量,以及新增数据节点将结果写入物料需求清单。

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验