商业版功能—— 本实例的 Business 方案已包含。如需自托管此功能,需要商业许可。 许可说明 →

存放规则

Paid

校验库存交易的谓词守卫:报错阻止,或警告并允许用户继续。

存放规则在过账时校验库存交易。如果条件不满足,规则要么阻止交易,要么警告并允许用户确认后继续。规则作用于物料或****。

例如,为防止批次化学品进入常温库位,可以针对化学品物料组中的物料,启用 收货 和 上架 操作,并要求 storageUnit.storageTypeId eq 冷藏类型。把严重程度设为 error,消息设为 {item.id} must be stored in cold storage。收货到其他任何存储类型都会被该消息拒绝。

NOTE

存放规则只校验数据,不会转换值、设置默认值或计算价格。规则只返回消息和严重程度。

规则检查什么

每条规则包含一棵小型条件树,以及对一行或多行「字段/运算符/值」的匹配方式:

  • 匹配方式:all(所有条件都成立)、any(至少一个成立)或 none(都不能成立)。
  • 字段:从固定注册表中选择:物料事实(item.type、item.replenishmentSystem、item.itemTrackingType、自定义字段)、存储位置(storageUnit.storageTypeId、storageUnit.locationId)、工作中心事实,以及行的 transaction.quantity。
  • 运算符:eq、neq、in、notIn、isSet、isNotSet、gt、lt。

违规时显示的消息支持 {item.id} 和 {transaction.quantity} 等标记,因此文本可以指明出问题的行。条件成立时规则「通过」;不成立时触发违规。

NOTE

除 isSet / isNotSet 外,条件指向没有值的字段会被视为 "…is required" 违规。因此同一套规则也可用作必填检查(例如要求发货单过账前必须有批号)。

运算符

运算符含义
eq · neq等于 · 不等于
in · notIn值在列表中 · 不在列表中
gt · lt大于 · 小于
isSet · isNotSet字段有值 · 没有值

规则在哪里触发

规则列出其适用的场景(交易类型)。可用场景取决于目标:

目标场景
物料receipt、shipment、stockTransfer、warehouseTransfer、inventoryAdjustment、place、pick
工作中心operationStart、operationFinish、materialIssue、materialReceive

规则在交易过账时于服务端求值,先于任何会计或库存移动写入。被阻止的交易不会写入任何内容。

阻止还是警告

严重程度行为
error阻止交易,直到条件满足。
warn显示消息,但允许用户确认并继续。
NOTE

error 始终阻止。warn 只在用户确认前阻止,确认后同一次提交即可通过——适合「你确定吗?」这类不应硬性中断车间的护栏。

例如,在库存调整上设置 warn 规则,条件为 transaction.quantity gt 1000,消息为 Large adjustment — confirm the count,用户确认后过账即可完成,同时仍标记出异常值。

作用域与分配

规则通过两种方式作用于目标行:

  • 按筛选:物料目标规则可以按物料类型和/或物料组限定,以 OR 或 AND 组合。空筛选匹配所有物料。
  • 按分配:从物料的 Rules 标签页把规则固定到具体物料,或固定到具体工作中心。工作中心规则也可以设为应用于所有工作中心。

规则字段

字段类型
规则的唯一名称。
error(阻止)或 warn(确认后继续)。
匹配方式以及字段/运算符/值行。
违规时显示;支持 {token} 插值。
规则触发的交易类型。
item 或 workCenter。
用于限定规则的物料类型和/或物料组(空 = 所有物料)。
规则当前是否参与求值。

在哪里管理

存放规则位于库存区域的 Storage Rules(存放规则) 下。可以在那里创建、编辑和启停规则。要把已有规则挂接到单个物料,请使用该物料的 Rules 标签页。

HEADS UP

存放规则是企业版能力,受 Business 套餐门控。其他套餐下界面会显示升级提示,且不会求值任何规则。

相关内容