资讯动态

Epicor交易业务类型:ERP库存与成本流转的语义协议层

发布时间:2026/10/15 15:16:01 来源:尧图企业网站定制
简介本资源是一份面向Epicor ERP系统实施顾问、财务与供应链模块运维人员及二次开发工程师的实务参考文档聚焦交易业务类型Transaction Business Types的完整定义与账务逻辑说明。文档系统梳理了Epicor中近30类核心交易类型涵盖物料成本调整ADJ-CST、采购收货差异ADJ-DRP、库存现存量变更CHG-STK、DMR处理DMR-STK/DMR-REJ、工单成本流转MFG-STK/MFG-WIP、服务工单外包与杂项费用SER-SUB/SER-MISC等关键场景并逐条解释其触发条件、会计分录影响及关联业务对象如生产工单、服务呼叫、服务合同等。资源为单文件PDF格式体积精简仅68KB内容高度结构化便于快速查阅与现场排错。目前已有215人学习下载适合作为Epicor项目实施中的配置依据、账务对账手册或新员工速查指南助力用户精准理解交易背后的财务语义与系统行为。1. Epicor 交易业务类型不是“功能列表”而是财务与库存联动的神经中枢你有没有遇到过采购收货时系统自动多记了一笔应付差异但总账存货余额却没同步更新或者服务工单关闭后WIP成本卡在半路COS迟迟不结转月底对账差出几万块翻遍单据找不到源头这不是配置漏了也不是权限问题——这是 Epicor 交易业务类型Transaction Business Types没被真正“激活”。这份《Epicor 交易业务类型.pdf》不是操作手册的附录它是整套 ERP 库存流、成本流、应付流交汇处的语义协议层每一条如ADJ-CST1、PUR-DRP、STK-PLT的代码都对应一个明确的业务动因、一个强制的会计分录方向、一个不可绕过的库存状态跃迁。它解决的不是“怎么点按钮”而是“为什么必须用这个类型而不是那个类型”——比如ADJ-MTL下的23种细分场景本质是回答“物料数量变化发生在哪个责任主体、哪个成本归属阶段、是否触发标准成本重估”。适合正在做 Epicor 10 或 Kinetic 系统上线、主数据治理、月结流程优化的实施顾问、财务关键用户和仓库系统管理员。如果你还在靠截图问同事“这个单据该选哪个类型”说明你还没拿到打开 Epicor 成本闭环的那把物理钥匙。2. 交易类型结构解析从5大类到87个原子动作的映射逻辑Epicor 的交易业务类型不是扁平罗列而是一个三层嵌套结构业务域 → 主类型 → 场景变体。理解这个结构才能避免“看到 PUR 就选 PUR-STK”的机械式误配。下面以最常被混淆的采购类和工单类为例拆解其设计意图与参数边界。2.1 采购收货的三重身份PUR-STK、PUR-MTL、PUR-SUB 不是并列选项而是责任归属判定器在 Epicor 中“采购收货”这个动作会根据收货目标位置和成本承担方分裂成三个主类型PUR-STK收货目标为库存Stock即物料进入通用仓。此时成本直接计入存货科目后续由库存移动触发成本流转。PUR-MTL收货目标为生产工单或服务工单的物料需求行Material Requirement Line即“直送工单”。成本不进存货而是挂起在 WIP 下待工单完工时结转。PUR-SUB收货目标为外包工序Subcontract Operation即供应商代工件回厂。成本挂起在 WIP 的外包子账户需与外包发票匹配后结算。提示PUR-DRP自动收货是PUR-STK的自动化变体仅用于 DRP 计划生成的采购单其会计处理与PUR-STK完全一致但触发逻辑受 DRP 引擎控制不能手动选用。这三者的关键区别不在界面按钮上而在主数据配置工单物料行的“收货类型Receipt Type”字段必须设为MMaterial才能启用PUR-MTL外包工序行的“收货类型”必须设为SSubcontract才能启用PUR-SUB若工单行收货类型设为S却执行了PUR-MTL系统将报错“Receipt type mismatch for subcontract operation”。2.2 成本调整的两种哲学ADJ-CST1 与 ADJ-MTL 的分水岭成本调整类交易常被混用但ADJ-CST1和ADJ-MTL的设计哲学截然不同特征ADJ-CST15种ADJ-MTL23种触发前提标准成本变更后对已存在库存进行历史成本重估物料数量未变但成本依据变更如发票价≠PO价影响范围全量重算当前库存余额的成本值影响所有未结转的 WIP/COS仅调整本次收货/发运批次的成本不影响历史库存余额典型场景年度标准成本刷新后对仓库中所有 A 型号物料统一调价采购收货时发票单价 105 元PO 单价 100 元差额 5 元需计入应付差异实操中ADJ-CST1必须配合“成本重估向导Cost Revaluation Wizard”使用且需先冻结相关物料的库存移动而ADJ-MTL可在单据保存时实时触发但必须确保“采购收货单”已过账Posted否则系统拒绝生成差异分录。2.3 服务工单的四维坐标系如何精准定位STK-INS与INS-STK的切换点服务工单Service Call涉及的交易类型最容易出错根源在于其业务流天然具有双向性物料从库存发出 → 服务现场消耗 → 可能退回库存。Epicor 用四个维度锚定类型选择发起方是仓库Stock还是服务工单Service Call流向是出库Outbound还是入库Inbound责任主体成本由谁承担客户合同担保自费状态节点是检验前Inspection Pending、检验后Accepted/Rejected还是直接消耗例如STK-SVR仓库主动发放物料至服务工单出库责任主体服务工单INS-STK服务工单退回物料至仓库且已通过质检入库责任主体仓库STK-DMR服务工单退回物料至仓库但质检拒收入库责任主体DMR 账户非库存RMA-INS客户寄回故障件仓库收货入 RMA 库入库责任主体RMA非库存。注意STK-SVR与STK-INS看似互逆但STK-INS仅用于“仓库发料后服务工单未消耗完原路退回”的场景若服务工单已消耗部分物料剩余退回则必须走INS-STK因责任已转移至服务工单。3. 避坑87个类型里最常踩的5个血泪现场与根因修复Epicor 交易类型配置错误不会立刻报错而是像慢性病一样在月结时集中爆发存货账与总账差异、WIP 结转失败、应付暂估不准。以下是我在多个模拟项目X 实施中反复验证的5个高频坑点每个都附带可复现的现象、底层原因和落地修复步骤。3.1 现象采购收货后应付暂估金额正确但存货账面成本偏低 5%原因误用PUR-STK代替PUR-DRP处理 DRP 计划采购单。PUR-STK按 PO 行单价记账而PUR-DRP会读取 DRP 引擎计算的“计划采购价”后者可能包含批量折扣或运费分摊。修复进入【采购管理】→【采购订单】筛选状态为 “Open” 且来源为 “DRP” 的单据对其执行【收货】操作时强制勾选 “Use DRP Receipt Type”该选项仅在 DRP 单据上可见若已错误过账需用ADJ-CST1对当期库存做成本重估并在总账中手工冲销原PUR-STK生成的应付分录。3.2 现象服务工单关闭后WIP 成本未转入 COS总账显示 WIP 余额异常高原因服务工单的“开票类型Billing Type”设为Non-Billable导致系统认为无需结转成本跳过MFG-CUS类型的 WIP→COS 分录。修复进入【服务管理】→【服务工单】打开问题工单在【财务】页签中将 “Billing Type” 改为Billable或Contract执行【开票】操作即使不实际开票仅触发结转系统将自动生成MFG-CUS交易完成 WIP→COS 转移。3.3 现象工厂间调拨STK-PLT后A 工厂库存减少B 工厂库存未增加且无任何报错原因STK-PLT仅为“第一步”交易表示物料已从 A 仓发出但 B 工厂尚未执行“第二步”接收PLT-STK / PLT-MTL。系统默认此状态为“在途In Transit”库存仍挂在 A 工厂的“在途资产”科目下。修复在 B 工厂登录进入【库存管理】→【在途收货】查询来源为 A 工厂的STK-PLT记录执行【接收】系统将自动生成PLT-STK若目标为库存或PLT-MTL若目标为工单完成库存归属转移。3.4 现象RMA 收货后物料进入 RMA 库但无法发起返修工单提示 “No available quantity”原因RMA 收货使用了RMA-INS但该类型默认将物料状态设为 “Inspection Pending”而返修工单要求物料状态为 “Accepted”。修复进入【品质管理】→【检验任务】找到对应 RMA 的检验单将检验结果设为 “Accept”系统自动将物料状态从 “Inspection Pending” 切换为 “Accepted”此时即可在【生产管理】→【返修工单】中引用该物料。3.5 现象同一物料在不同工厂的库存成本不一致且无法通过ADJ-CST1统一原因ADJ-CST1仅作用于当前工厂的库存跨工厂成本重估需逐个工厂执行。若误以为一次操作可全局生效会导致部分工厂成本未更新。修复导出所有工厂的该物料库存快照SQL 查询SELECT Plant, PartNum, QtyOnHand, AvgCost FROM PartWhse WHERE PartNum XXX对每个Plant值单独运行一次ADJ-CST1向导重估完成后再次查询确认各工厂AvgCost一致。4. 主类型与子类型对照表87个原子动作的完整索引与业务动因标注面对 PDF 中密密麻麻的 87 条记录新手极易迷失。我将其按主类型聚类提炼出每条的核心动因Why和不可替代性Why Not Others形成一张可直接打印贴在工位上的速查表。表格按主类型字母序排列子类型编号沿用原文档序号便于交叉核对。主类型子类型编号业务动因Why不可替代性Why Not Others典型单据触发点ADJ-CST1(1)-(5)标准成本变更后对现有库存余额进行全量重估ADJ-MTL只调当次收货成本不改历史余额成本重估向导ADJ-MTL(1)-(23)采购/收货时发票价≠PO价需记录应付差异PUR-DRP自动处理价差但仅限 DRP 单ADJ-CST1不适用单次价差采购收货单过账后ADJ-PUR(34)存货数量变化如盘盈盘亏但成本不变ADJ-QTY5专用于工单外包装配变化ADJ-MTL会动成本库存盘点单ADJ-QTY5(5)工单外包装配数量变化如外包商多送/少送ADJ-MTL用于物料成本不适用于装配层级数量调整外包收货单ADJ-SUB(6)外包工序成本调整如外包报价变更ADJ-CST1重估物料成本不涉及外包服务费外包结算单ASM-INS(3)装配件检验通过数量含自产装配与外购装配INS-STK仅用于散件入库ASM-INS专指装配成品装配检验单DMR-ASM(9)装配件 DMR 处理拒收/返工影响装配层级DMR-MTL仅用于散件DMR-ASM触发装配 BOM 层级追溯DMR 处理单装配DMR-MTL(10)散件物料 DMR 处理拒收/返工影响单个物料DMR-ASM会穿透 BOMDMR-MTL仅锁定该物料DMR 处理单散件DRP-CUS(14)DRP 计划驱动的客户发运非销售订单STK-CUS用于销售订单发运DRP-CUS由 DRP 引擎自动创建DRP 发运计划INS-ASM(15)装配件检验失败数量不合格品INS-MTL仅用于散件INS-ASM需关联装配 BOM装配检验单拒收INS-DMR(16)DMR 物料检验通过返工后合格INS-STK是首次入库INS-DMR是 DMR 流程闭环DMR 检验单接受INS-MTL(17)散件物料检验通过首次入库合格INS-ASM用于装配INS-MTL仅限散件物料检验单INS-STK(19)物料检验后入库从质检区转入良品仓RMA-INS专用于客户退货INS-STK是常规收货终点收货检验单接受INS-SUB(20)外包工序检验通过外包件合格入库INS-MTL用于自购件INS-SUB专指外包服务交付物外包检验单KIT-CUS(21)套件销售发运按套件 BOM 整体发货STK-CUS按单个物料发货KIT-CUS自动扣减套件内所有子件套件销售订单发运MFG-CUS(22)服务工单关闭/开票时WIP→COS 结转MFG-VAR用于生产差异MFG-CUS是服务成本出口服务工单开票MFG-DMR(23)工单物料转入 DMR 处理生产过程中的不合格DMR-MTL用于来料MFG-DMR是制程中产生的不合格工单报告不合格MFG-PLT(24)工厂间工单转移A 工厂工单移交 B 工厂STK-PLT是仓库间转移MFG-PLT是工单责任主体变更工单转移单MFG-STK(25)工单完工后物料转入库存产成品入库SVG-STK是工单收货半成品MFG-STK是最终成品工单完工单MFG-VAR(26)生产工单成本差异WIP 实际 vs 标准ADJ-CST1是标准成本变更MFG-VAR是执行偏差工单完工结账MFG-VEN(27)外包出货将工单物料发给外包商STK-SUB是外包收货MFG-VEN是外包发货外包发料单MFG-WIP(28)工单间生产委托A 工单委托 B 工单加工MFG-PLT是工厂间转移MFG-WIP是同厂内工单协作工单委外单MTL-DMR(29)工单报告的不合格品散件级制程不合格MFG-DMR是工单级 DMRMTL-DMR是具体物料行级工单报告不合格物料MTL-INS(30)仓库间物料转移数量A 仓→B 仓STK-PLT是工厂间MTL-INS是同一工厂内仓库间仓库调拨单PLT-ASM(31)工厂间装配转移A 工厂装配件发往 B 工厂PLT-MTL是散件PLT-ASM是装配成品装配调拨单PLT-MTL(32)工厂间散件物料转移A 工厂仓→B 工厂工单STK-PLT是仓→仓PLT-MTL是仓→工单物料调拨单目标工单PLT-STK(33)工厂间仓库转移第二步B 工厂接收 A 工厂发出的物料STK-PLT是第一步A 发出PLT-STK是第二步B 接收在途收货单B 工厂PUR-DRP(34)DRP 自动收货DRP 计划生成的采购单收货PUR-STK是手动收货PUR-DRP强制启用 DRP 价格逻辑DRP 收货单PUR-INS(35)采购收货送检收货后进入质检流程PUR-STK直接入库PUR-INS强制挂起至质检区采购收货单勾选质检PUR-MTL(36)采购收货至工单物料直送工单PUR-STK入库存PUR-MTL入 WIP采购收货单目标为工单PUR-STK(37)采购收货至库存标准收货路径PUR-DRP仅限 DRP 单PUR-STK是通用路径采购收货单目标为库存PUR-SUB(38)采购收货至外包工序外包件回厂PUR-MTL是自产工单PUR-SUB是外包服务采购收货单目标为外包PUR-UKN(39)采购收货至其他非标目标需自定义逻辑PUR-STK/Mtl/Sub已覆盖主流场景PUR-UKN是兜底采购收货单自定义目标RMA-INS(40)RMA 收货至库存客户退货质检后入良品仓INS-STK是供应商来货RMA-INS是客户退货RMA 收货单接受STK-AST(42)延伸成本入账将装配延伸成本计入存货或资产清算STK-STK是普通调拨STK-AST专用于成本归集延伸成本分配单STK-CUS(43)库存发运至客户销售订单发货DRP-CUS是 DRP 发运STK-CUS是销售驱动销售订单发运单STK-DMR(44)库存拒收仓库收货时直接拒收INS-DMR是检验后拒收STK-DMR是收货即拒收货单拒收STK-INS(45)库存不合格品收货后质检拒收入 DMR 库STK-DMR是收货拒收STK-INS是质检拒收检验单拒收STK-KIT(46)套件销售零部件发运按套件 BOM 拆分发货KIT-CUS是整体发货STK-KIT是拆分发货套件销售发运单STK-MTL(47)库存发料至工单标准发料路径STK-SVR是发至服务工单STK-MTL是发至生产工单工单发料单STK-PLT(48)工厂间仓库转移第一步A 工厂仓发出PLT-STK是 B 工厂接收STK-PLT是 A 工厂发出仓库调拨单A 工厂STK-STK(49)仓库间物料转移同一工厂或跨工厂STK-PLT是跨工厂第一步STK-STK是同厂或一步到位仓库调拨单STK-SVR(50)库存发料至服务工单服务现场领料STK-MTL是发至生产工单STK-SVR是发至服务工单服务工单发料单STK-UKN(51)库存杂项发料非工单、非服务的临时发料STK-MTL/SVR有明确目标STK-UKN是无目标发料杂项发料单SUB-DMR(52)外包工序不合格品外包件质检拒收DMR-SUB是 DMR 处理SUB-DMR是不合格记录外包检验单拒收SUB-INS(53)外包工序检验通过外包件合格可转移成本INS-SUB是入库SUB-INS是检验通过允许成本转移外包检验单接受SVG-STK(54)工单收货至库存半成品/在制品入库MFG-STK是产成品SVG-STK是中间态入库工单收货单目标库存UKN-CUS(55)客户直接出货无销售订单的紧急发货STK-CUS需关联订单UKN-CUS是无单发货无单发运单提示此表中所有“典型单据触发点”均指向 Epicor 标准单据界面无需二次开发。若某类型在单据中不可见请检查该单据的“业务类型控制Business Type Control”配置是否启用。5. 验证交易类型生效的四种硬核方法从日志追踪到分录反查配置完交易类型绝不能只看单据“保存成功”就认为万事大吉。必须用四种相互印证的方法确认它真实驱动了库存移动、成本计算和总账分录。以下是我在线上环境验证PUR-MTL是否正确触发 WIP 结转的完整链路。5.1 方法一库存移动日志反向追踪最直观Epicor 的库存移动记录PartTran 表是真相之源。每条记录的TranType字段即为交易类型代码。验证步骤-- 查询最近1小时所有 PUR-MTL 交易 SELECT TranNum, PartNum, FromPlant, ToPlant, FromWarehouse, ToWarehouse, Qty, Cost, TranDate, CreatedBy FROM PartTran WHERE TranType PUR-MTL AND TranDate DATEADD(HOUR, -1, GETDATE()) ORDER BY TranDate DESC;关键验证点FromWarehouse应为空因是采购收货无来源仓ToWarehouse应为工单所在仓库如WH-PRODQty应与采购收货单数量一致Cost应等于发票单价 × 数量而非 PO 单价。若FromWarehouse非空说明误用了STK-MTL仓库发料若Cost为 PO 单价则PUR-MTL未读取发票价需检查采购收货单是否已过账Posted。5.2 方法二WIP 账户余额动态监控防“静默失效”PUR-MTL的核心价值是将成本挂起在 WIP。验证其是否生效不能只看单笔而要看 WIP 账户的增量变化-- 获取某工单的 WIP 期初与期末余额需在 GL Journal 表中过滤 SELECT JournalCode, GLAccount, SUM(CreditAmt) AS TotalCredit, SUM(DebitAmt) AS TotalDebit, SUM(DebitAmt) - SUM(CreditAmt) AS NetChange FROM GLJrnDtl WHERE GLAccount LIKE 1201% -- 假设 WIP 账户以 1201 开头 AND JournalCode IN (MFG, PUR) -- 限定生产与采购类分录 AND JournalDate BETWEEN 2024-06-01 AND 2024-06-30 GROUP BY JournalCode, GLAccount;预期结果JournalCode PUR的记录中WIP 账户应有DebitAmt增加成本挂起且金额 PUR-MTL交易的Cost总和。若NetChange为 0说明PUR-MTL未生成分录大概率是工单物料行的“收货类型”未设为M。5.3 方法三总账分录与库存移动双向锚定终极验证最可靠的验证是找到一笔PUR-MTL移动在总账中找到其对应的分录并确认借贷方向与科目正确从PartTran表获取一笔TranNum 123456的PUR-MTL记录查询GLJrnDtl表筛选SourceModule INV库存模块且SourceKey1 123456检查分录借方WIP 账户如1201-001金额 PartTran.Cost贷方应付暂估账户如2101-001金额 PartTran.Cost。若GLJrnDtl.SourceKey1为空说明库存移动未触发总账若贷方科目为2101-002其他应付则PUR-MTL的应付科目映射配置错误。5.4 方法四成本结转路径图谱可视化验证对复杂场景如服务工单的MFG-CUS建议绘制成本结转路径图谱。以某服务工单SC-2024-001为例[采购收货] PUR-MTL → WIP-Service (借方) ↓ [服务消耗] STK-SVR → WIP-Service (贷方) COS-Service (借方) ↓ [服务开票] MFG-CUS → WIP-Service (贷方) COS-Service (借方补足差额)用 SQL 抽取该工单所有相关PartTran和GLJrnDtl记录按时间排序人工比对是否形成闭环。若MFG-CUS后 WIP-Service 余额不为 0说明开票类型配置错误或工单状态未达“可开票”。从那以后我每次上线新工厂都会用这四步法对前10个高频交易类型做全链路验证哪怕多花两小时也比月结时通宵找差异强。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑