Skip to content

单据引用设置

文档基础信息

  • 功能路径:

image.png

  • 功能定位:统一配置单据之间上下游引用关联规则,管控下游单据可关联哪些上游来源单据,同时配置数量超额校验、引用有效性、启用开关,控制采购、入库、付款、退货等单据间引用联动、数量扣减、单据自动关闭逻辑。

一、功能概述

1.1 设计核心目的

ERP业务单据存在强上下游关联(采购订单→进货单→进货冲红单→付款单),系统需要一套统一规则管控单据引用行为,解决4大业务痛点:

  1. 限定可引用上游单据范围
    控制目标单据(下游)只能选择指定来源单据(上游),屏蔽无关单据,防止操作员选错上游源头,保证业务链路规范。例如:进货单仅允许引用采购订单,不能直接引用销售单、调拨单。
  2. 控制引用数量,杜绝超额冲抵
    支持两层超额校验开关,防止下游单据引用数量超过上游单据剩余未完成数量:
  • 普通不超额:单据保存时校验,超额直接报错;
  • 强制不超额:全局强制拦截,无法超额录入。
  1. 区分有效/无效引用链路
    无效引用链路不参与上游完成数量扣减、单据自动关闭逻辑;适用于临时调账、不计入履约进度的关联场景。
  2. 自动履约扣减与单据闭环
    下游单据引用上游明细后,系统自动累加上游单据「已完成数量」;当上游单据全部明细引用完毕,自动将上游单据置为已关闭状态,无需人工手动关闭。

1.2 核心业务场景举例

  1. 采购订单(上游来源)→ 进货单(下游目标)
    配置启用引用、强制不超额,进货引用数量不能超过采购订单未进货数量,进货后自动扣减采购未完成量,全部进货完毕采购单自动关闭。
  2. 进货单 → 采购退货单
    配置普通不超额,退货数量不能大于已进货数量。
  3. 采购订单 → 临时调账单(无效引用)
    标记为无效引用,调账引用不扣减采购单完成数量,采购单不会因调账自动关闭。

1.3 适用人员

总部系统管理员、财务主管(需分配单据引用设置专属权限)

二、界面整体布局说明

image.png

界面分为三大区域:

  1. 左侧单据树形导航区
    展示系统所有业务单据大类,点击单据节点,右侧表格自动筛选以该单据为【目标下游单据】 的全部引用规则。
  2. 右侧主表格区
    展示当前选中目标单据的所有引用配置条目,每条代表一组「上游来源单据→下游目标单据」引用关系,字段包含:
表格字段业务含义
来源单据名称上游可被引用的单据类型(fsTypeName)
目标单据名称当前选中的下游单据类型(fdTypeName)
是否启用(fIsUses)勾选则下游单据允许选择该上游来源;取消勾选直接屏蔽该来源单据
不超额提取(fNoExcess)普通超额校验:保存单据时校验,引用量不可超上游剩余量
强制不超额提取(fForceNoExcess)全局强制拦截,无视其他配置,绝对禁止超额引用
无效引用(fInvalidateRef)勾选后,该引用不扣减上游完成数量、不参与单据自动关闭
  1. 底部提示面板
    当选中单据无任何引用规则时自动显示提示文字,告知管理员需要新增引用关系。
  2. 顶部功能按钮
    【确定】:保存所有修改的引用配置到数据库;【退出】:放弃修改关闭窗口。

三、基础操作流程

3.1 查看指定单据的引用规则

  1. 打开「单据引用设置」功能窗口;
  2. 在左侧树形列表点击需要配置的下游目标单据(如进货单);
  3. 右侧表格自动过滤,只展示所有以该单据为目标的引用配置;
  4. 若无数据,底部提示面板显示空白提示,代表该单据暂无可引用上游来源。

3.2 修改引用规则配置

  1. 选中左侧目标单据,在右侧表格找到需要调整的引用条目;
  2. 直接勾选/取消对应复选框,支持同时修改多条规则;
  • 是否启用:控制下游单据能否调取该上游单据;
  • 不超额提取:常规数量管控;
  • 强制不超额提取:最高优先级数量拦截;
  • 无效引用:控制是否参与履约数量扣减;
  1. 全部修改完成后,点击【确定】按钮;
  2. 系统自动同步配置至数据库,所有新制单据立即生效;历史已保存单据不受配置变更影响。

点击【退出】按钮,窗口直接关闭,本次所有勾选修改全部丢弃,数据库配置保持不变。

四、配置项详细说明

4.1 是否启用(fIsUses)

  1. 勾选:下游制单界面,「选择来源单据」弹窗会加载该上游单据,操作员可正常引用;
  2. 取消勾选:直接屏蔽该上游单据,制单时无法搜索、选择该类型上游单据;
  3. 业务用途:隔离无关单据,简化操作员选择列表,规范业务流程。

4.2 不超额提取(fNoExcess)

  1. 勾选:启用基础数量校验;
  2. 规则:下游单据明细引用数量 不能 > 上游单据对应明细的「未完成数量」;
  3. 触发时机:单据保存校验,超额弹出报错,禁止保存单据。

4.3 强制不超额提取(fForceNoExcess)

  1. 优先级高于「不超额提取」,只要勾选,无论普通不超额是否勾选都生效;
  2. 适用于大额原料、合同类采购等严格管控场景,完全杜绝超额冲抵、超量入库;
  3. 超额时直接阻断单据保存,无法绕过校验。

五、底层单据引用审计机制(配套业务逻辑)

配置保存后,制单保存时系统自动执行引用审计ReferenceAudit,完整校验流程:

  1. 重复引用校验
    检测同一上游明细行是否被多次引用,重复引用直接抛出错误,禁止保存。
  2. 超额数量校验
    根据「强制不超额/不超额提取」配置,计算上游剩余可引用数量,超额拦截单据。
  3. 履约数量自动更新
    有效引用自动生成SQL指令,累加上游单据明细已完成数量fFinishQty
  4. 上游单据自动关闭
    校验上游单据所有明细全部完成引用后,自动更新上游单据状态为已关闭,锁定单据不再允许新增下游引用。
  5. 反审单逆向回滚
    下游单据反审核删除时,自动反向扣减上游完成数量,恢复上游可引用额度。

五、典型配置示例

示例1:标准采购履约链路(采购订单→进货单)

配置项勾选状态说明
是否启用进货单允许引用采购订单
不超额提取基础数量校验
强制不超额提取严格禁止超采购量入库
无效引用有效引用,进货后扣减采购单完成量,全部进货自动关闭采购订单

示例2:调账单据(采购订单→成本调整单)

配置项勾选状态说明
是否启用成本调整单可关联采购订单做备注
不超额提取调账无数量管控需求
强制不超额提取不强制拦截数量
无效引用仅关联记录,不影响采购订单履约进度、关闭状态

示例3:屏蔽无关单据(进货单→销售单)

配置项勾选状态说明
是否启用进货单不允许被销售单引用,业务逻辑隔离

六、常见问题FAQ

Q1:修改引用配置后,已有的旧单据会生效吗?

不会。配置仅对修改后新创建、新保存的单据生效;历史已保存单据的引用关系、数量扣减逻辑保持不变。

Q2:制单时找不到需要引用的上游单据?

  1. 进入单据引用设置,选中当前下游单据,检查对应上游单据的「是否启用」是否勾选;
  2. 若未新增该引用关系,联系开发后台注册对应上下游单据引用链路。

Q3:保存单据提示「行记录超额引用」无法保存?

  1. 检查该引用规则是否勾选「强制不超额提取/不超额提取」;
  2. 核对上游单据该明细剩余未完成数量,减少下游单据引用数量后重新保存。

Q4:引用了单据,但上游采购单没有自动关闭?

  1. 检查引用规则「无效引用」是否勾选,勾选则不参与履约扣减;
  2. 核对上游单据所有明细的已完成数量是否等于原始订货总数量;
  3. 确认下游单据已正常审核生效,草稿单据不会触发履约扣减。

Q5:删除下游进货单后,采购订单可引用数量没有恢复?

仅反审核生效单据会自动逆向回滚完成数量;直接删除草稿单据不影响上游统计。