拓冰建站拓冰建站
首页 / 资讯中心 / 正文

用友U8 BOM录入与MRP运算:从基础档案到自检SQL全解析

简介用友U8软件的BOM培训课件面向企业生产管理、ERP实施顾问及U8系统操作人员系统讲解物料清单从基础概念到企业实际应用的完整链路。内容以BOM定义为切入点结合产品结构树的设计原则与维护要求帮助读者理解产品功能划分、生产和商务需求如何影响物料构成。课件详细梳理了标准物料清单、模型清单、可选类清单以及计划BOM、研发BOM、制造BOM等类型并用于用友U8系统说明BOM在编制计划、配套领料、加工跟踪、成本计算、采购外协等业务中的核心作用。同时针对研发、项目经理、BOM维护小组、ERP工作组等不同角色的职责范围与管理流程进行了归纳强调BOM数据审核、变更受控和人员培训的重要性可直接用于企业内部培训或作为实施参考。资源为单个PPTX文件大小约1.97MB内容精炼已有83人学习下载适合需要快速掌握U8 BOM管理与配置要点的读者。1. 用友U8的BOM一旦录错MRP和成本会一起错用友U8的BOM物料清单在制造企业里承担的职责远比“产品由哪些零件组成”这张表要重。MRP运算要把销售订单展开为采购计划和生产计划成本模块要计算定额材料成本委外加工要按BOM核对发出材料这些动作都直接引用BOM数据。实施项目里最常见的推进方式是用一份《用友U8软件BOM培训资料.pptx》来统一大家的录入口径但真正动手时才发现物料还没建全、版本没设默认值、低阶码忘记重算录进去的BOM在系统里看着是“对的”MRP一跑就乱。下面按“基础档案→BOM录入→数据导入→审核校验→自检工具”这条线把BOM设计和使用中的关键参数、边界和典型报错一次说清适合正在做U8实施或日常维护BOM的工程师往下翻。2. 用友U8里搭BOM的最小闭环物料、层级、版本先立住2.1 存货档案是U8 BOM能录入的前置条件一物一码与审核状态在U8里做BOM设计第一关不是物料清单模块而是存货档案。所有会进入BOM的物料不管是外购件、自制件还是虚拟件都要在“基础档案 → 存货 → 存货档案”里建卡并且存货要处于审核状态。现场经常出现的情况是设计图纸上的物料已经发给采购询价了但存货档案里还在“保存”状态录BOM时选不到物料或者是同一个电阻有0402、0603两种封装编码方案没拆干净BOM里一会儿挂旧码一会儿挂新码采购计划被拆成两行。第一步先把基础数据质量查清楚。用友U8的存货主表在多数版本里叫Inventory核心字段是cInvCode存货编码、cInvName存货名称、bAudit审核标志。用下面这条SQL能把未审核的存货捞出来SELECT cInvCode, cInvName, cInvStd, cComUnitCode, bAudit FROM Inventory WHERE bAudit 0 AND cInvCode IS NOT NULL;这段SQL查出所有未审核的存货档案bAudit为0表示未审核为1表示已审核。做BOM之前至少要保证主料和半成品的bAudit全部为1。如果结果集很大先按“是否计划物料”过滤因为MRP和生产订单只会取自制件和采购件服务件、费用件不要放进BOM主体。在U8的存货档案里还需要确认几个属性它们的值直接决定这个物料能不能被BOM和MRP正确识别属性字段建议值说明存货分类按成品/半成品/原材料分影响报表汇总口径计量单位主计量单位必须统一与BOM用量换算率联动存货属性自制/外购/虚拟件勾选正确决定MRP计划类型审核状态必须审核未审核不能参加正常业务如果历史数据里同一个物料存在多条不同编码不要在BOM录入时凭印象选应先在存货档案里做并码把旧编码停用再在BOM里引用新编码。2.2 用友U8物料清单维护界面母件、子件、用量与损耗率怎么填基础档案就绪后进入“生产制造 → 物料清单 → 物料清单维护”。新增一张BOM时要先选母件存货编码系统会带出母件默认单位、默认版本号。接下来逐行填子件资料这块是培训资料里最容易写漏的部分用户往往只填了子件编码和数量损耗率和生效日期全部按默认值带过结果成本计算时材料损耗没体现月末盘点差异才被发现。子件明细中我一般要求用户确认四个参数基本用量生产一个母件数量所需要的子件数量比如一块PCBA用2颗电容这里就填2。这个值的单位是母件基本单位下的子件消耗量不要和包装数量混在一起。换算率当子件是用友U8里的辅助计量单位时系统需要知道怎么把采购单位换算为库存单位。这个值如果默认是1一定要核对否则库存台账和BOM用量会差一个数量级。损耗率分固定损耗和变动损耗率两类。固定损耗只在一个生产批次里发生一次变动损耗率按子件用量百分比折算。电子行业贴片物料一般把变动损耗率设在0.3%到1%机械加工件固定损耗比较常见。生效/失效日期BOM版本切换靠这两个日期控制。没有维护失效日期的BOMMRP会一直用到停用改版后旧需求仍按老BOM展开采购计划里会混进旧料。这个界面在录入时还有个容易被忽略的地方同一母件下不同子件可以指定工序行号。如果企业做了工艺路线子件在哪道工序投入直接决定车间领料时能不能按时段发料。培训资料里应把“子件行号”和“工序行号”列出来避免用户把所有子件都挂到第一道工序。2.3 BOM版本、替代料和低阶码计算U8里三个最隐蔽的开关一个母件在U8里允许维护多个BOM版本典型场景是工程变更、试产、批量生产并行。系统中用“版本代号”区分每张BOM都有自己的生效日期和失效日期并且母件只能指定一个“默认版本”。MRP运算时系统默认按母件的默认版本展开子件需求如果要让某个历史版本在特定期间生效就改母件上的版本生效规则。很多企业把新版本设为默认版本后旧BOM数据一直不清造成MRP计划里同时出现新老版本的采购需求所以版本的有效期维护比录入新版本还重要。替代料在U8子件行里点“替代件”按钮维护。替代料并不会让MRP多算需求它只是在采购或生产领料时提供替代优先级。比如一颗IC库存不足系统会按BOM里的替代关系提示用另一颗IC替代。培训时应强调替代料也要是存货档案里已审核的物料替代料比例不需要填入子件用量用量沿用被替代子件行的基本用量。低阶码Low-Level Code是U8里最像“隐藏按钮”的功能。BOM有多层结构时同一个物料可能同时出现在不同层级例如一个外壳既是成品的直接子件又是半成品组件里的子件。MRP展开时必须先算出每个物料的最低层码才能把同一物料的需求归并到同一轮计算。路径是“生产制造 → 物料清单 → 低阶码计算”建议每次批量BOM变更后都运行一次。这个步骤在旧版本U8里不会自动触发新版本虽然后续版本加了自动重算选项但多数企业上线时仍保留手工重算习惯。提示低阶码算错时MRP不会直接报错而是表现为计划订单数量偏大或偏小排查优先级非常高应在BOM变更作业规范里写死。3. 让U8的BOM数据从设计工具批量落地AD、Cadence到Excel/OpenAPI3.1 AD、Cadence导出BOM与U8导入模板的字段差异设计端导出BOM常见做法在Altium Designer里是File - Export - BOM生成Excel或CSVCadence Capture里通常通过Tools - Bill of Materials输出配置好的模板会把位号和数量按封装汇总。两边的输出习惯差异很大AD导出BOM倾向把相同封装合并成一行Cadence导出BOM可能按元件实例逐行展开机械设计那边如果是Creo还可以用Creo二次开发读取BOM表把装配层级和用量直接写入中间表。但这些都是设计BOM不是生产BOM列名和数量口径与用友U8的导入模板往往并不一致。设计BOM和生产BOM之间差的是什么差的是“物料编码”的映射。设计端的位号Designator、器件型号Part Number、封装Footprint只描述元件属性U8的BOM需要的是存货编码、基本用量、损耗率、生效日期等业务属性。也就是说必须先有一张“设计编码 → U8存货编码”的对照表才能把设计BOM转换成U8可导入的格式。很多项目直接拿设计导出的Excel硬导U8报“编码不存在”就是这个原因。常见映射关系和差异见下表AD/Cadence导出字段含义U8导入模板字段转换逻辑Designator位号不需要用于合并重复物料Quantity个数基本用量按实际数量填Part Number厂牌型号存货编码通过对照表转换Footprint封装存货自定义字段只做校验Description描述子件名称可选如果公司已经在用ERP做物料全生命周期管理可以跟研发约定在设计工具里内置“U8存货编码”属性让导出BOM时直接带出编码这一步能省去大量手工VLOOKUP。3.2 用友U8 BOM导入的Excel模板字段映射才是重点常见做法是使用用友U8实施工具或“基础档案 → 导入导出工具”里的BOM模板。下载模板后模板里通常包含母件编码、版本代号、子件编码、基本用量、生效日期、失效日期、默认版本、替代标识等列。字段映射时我一般会重点检查下面几个必填项模板列是否必填填法母件编码是存货档案里的存货编码版本代号是通常为V1.0默认版本是新版本填Y子件编码是存货档案里的子件存货编码基本用量是数字不能为0损耗率否百分比小数如0.01生效日期是格式YYYY-MM-DD失效日期否为空表示默认按母件版本控制导入前一定要先做一次Excel“数据验证”子件编码是否全部存在于Inventory表母件编码是否重复同一母件下是否有重复子件。很多U8报错在导入工具里显示得很笼统逐条核对Excel比在系统里翻更省时间。3.3 用友U8 OpenAPI做BOM自动发布一个可改的Python请求示例多品种、小批量或研发频繁改版的企业靠人工在U8界面上录BOM会漏一批。常见的做法是用U8 OpenAPI把上游PLM系统的BOM直接发布到U8。用友U8 OpenAPI的调用方式一般需要appKey、appSecret和签名签名的核心思路是把时间戳和应用密钥拼接后做MD5。下面是一个可改的请求骨架import hashlib import time import requests app_key 替换为你的appKey app_secret 替换为你的appSecret base_url http://您的U8服务器:端口/openapi timestamp str(int(time.time() * 1000)) raw_str app_key app_secret timestamp sign hashlib.md5(raw_str.encode(utf-8)).hexdigest() payload { bomHeader: { orgCode: 01, parentInventoryCode: FIN-001, versionCode: V2.0, defaultVersion: Y, effectiveDate: 2025-04-01 }, bomLines: [ { childInventoryCode: RES-0603-10K, baseQty: 2, lossRate: 0.01, opSeq: 10 }, { childInventoryCode: CAP-0805-100N, baseQty: 3, lossRate: 0.005, opSeq: 20 } ] } headers { appKey: app_key, sign: sign, timestamp: timestamp, Content-Type: application/json } resp requests.post(f{base_url}/bom/add, jsonpayload, headersheaders) result resp.json() print(resp.status_code, result)这里有几个参数要解释清楚timestamp是毫秒时间戳同一个请求里如果出现两次会导致校验失败所以要取一次值复用sign是把appKey、appSecret、timestamp三段字符串顺序拼接后做MD5这是比较多见的U8 OpenAPI签名方式如果你们采购的版本用的不是这个算法以开放平台文档为准payload里的bomHeader描述母件、版本和生效日期bomLines则是子件明细opSeq对应U8里的工序行号有工艺路线时用它控制发料点。如果不需要走OpenAPI也可以直接调用U8的COM接口或WebService导入BOM但OpenAPI的好处是绕过客户端环境服务器上只装一个Python脚本就能定时拉取PLM的数据。要注意接口通常只负责写入草稿写入后还需要在U8里审核。BOM没审核时MRP不会展开所以脚本跑完不代表BOM已经能用还要把审核状态回传给PLM或发给计划员确认。4. U8 BOM审核、权限和MRP运算报错的排查顺序4.1 用友U8 BOM的审批流和操作权限设置BOM录进去只是开始U8里的BOM要经过审核才能被MRP和订单使用。权限设置通常在“系统管理”或“基础设置”里维护包含功能权限和数据权限两层。功能权限控制谁能打开“物料清单维护”数据权限控制谁能修改某个存货分类下的BOM建议至少分成录入员和审核员两个角色录入员可以新增和维护草稿审核员只负责审核和弃审不参与录入。这样可以避免一个人既录又审改完直接生效连校验都没过。审核界面上的“审核/弃审”操作会改变BOM审核状态审核后如果要新增子件需要先弃审再修改或者通过工程变更单来做版本升版。工程变更单的好处是保留变更痕迹适合有ISO体系审核要求的企业。培训资料里应包含“审核后修改BOM的两种路径”这一段否则用户会直接在审核状态下乱改导致系统报权限错误。4.2 MRP运算前必查的三件事BOM审核、物料计划属性、低阶码MRP运算不出计划订单最常见原因不在MRP本身而在上游数据。排错顺序我一般是固定的第一查BOM审核状态。MRP展开母件时母件BOM未审核系统会直接跳过或用不了。第二查母件和子件的存货属性。母件如果要产生生产计划必须在存货档案里勾选“自制”属性子件如果要产生采购计划应勾选“外购”属性。如果母件属性是“外购”MRP会把成品当成采购件自然看不到生产计划。第三查低阶码计算。新增或调整BOM后没有重新计算低阶码MRP对跨层级共用料的汇总就会出错。下面这条SQL用于快速找出已审核BOM中母件在存货档案里计划属性异常的记录。U8的BOM主表和子件明细表在部署环境里常见命名为BOM_BomParent和BOM_BomChild实际表名以账套的数据字典为准。SELECT p.cInvCode AS parent_code, p.cVersion AS version_code, p.iAuditStatus AS audit_status, i.bSelfMade AS self_made_flag, i.bPurchase AS purchase_flag FROM BOM_BomParent p LEFT JOIN Inventory i ON p.cInvCode i.cInvCode WHERE p.iAuditStatus 1 AND (i.bSelfMade 0 AND i.bPurchase 0);这段SQL把已审核BOM的母件编码和存货档案中的自制、外购属性关联起来返回那些既不是自制也不是外购的异常母件。实际排错时先看返回集是空还是有记录有记录就把这些母件在存货档案里补上生产属性再重跑MRP。MRP计算执行路径是“生产制造 → 需求规划 → MRP运算”运算完成后到“计划工作台”查看。如果计划订单为空不要急着改MRP参数先按上面的顺序排查数据源大多数问题都出在BOM或档案上。4.3 用友U8 BOM常见报错对照表日常维护BOM时容易遇到下面几类信息整理成了一张对照表培训时可以直接当讲义用系统报错或现象根本原因处理办法BOM未审核母件BOM还在草稿状态审核BOM或检查默认版本子件编码不存在设计编码没有映射到存货档案在存货档案补物料或调整Excel映射子件用量为0导入时基本用量列没填按Excel模板重新填充基本用量同母件子件重复导入前未按位号合并按位号合并后重导版本重复同一母件存在两个默认版本在版本维护里去掉多余的默认版本标识替代料建议量为0替代料行没有关联母件用量检查替代料对应的被替代子件编码MRP计划订单偏大低阶码未重算或损耗率被错误累加重算低阶码核对损耗率字段这里再说一个和“追溯”有关的坑U8查看BOM时经常用到“BOM结构树”报表如果结构树展开的某层物料与预期不符大概率是母件版本选错了而不是报表坏了。遇到这种情况先回到“物料清单维护”界面确认母件当前默认版本再展开查询。5. 把培训PPT变成能用的U8 BOM自检工具5.1 按岗位拆分培训内容每页标注完整U8路径培训资料最容易出现的两个问题一是截图里看不到菜单路径二是把录入、审核、MRP展开混在一页讲。建议把PPT拆成三块录入员看“基础档案物料清单维护版本维护”审核员看“审核/弃审变更单”计划员看“低阶码计算MRP运算计划工作台”。每一页PPT至少标注一条完整路径比如“生产制造 → 物料清单 → 低阶码计算”比只写功能名有用得多。5.2 固化三条U8 BOM自检SQL让日常巡检可执行培训不能只停留在点鼠标最好把BOM规则固化成可执行的SQL脚本让计划员每周跑一次-- 检查1未审核BOM数量 SELECT p.cInvCode, p.cVersion, p.iAuditStatus FROM BOM_BomParent p WHERE p.iAuditStatus 0; -- 检查2同一母件下重复子件 SELECT p.cInvCode, c.cInvCode AS child_code, COUNT(*) AS dup_cnt FROM BOM_BomParent p JOIN BOM_BomChild c ON p.BomID c.BomID WHERE p.iAuditStatus 1 GROUP BY p.cInvCode, c.cInvCode HAVING COUNT(*) 1; -- 检查3母件编码在存货档案里不存在的孤儿BOM SELECT p.cInvCode, p.cVersion FROM BOM_BomParent p LEFT JOIN Inventory i ON p.cInvCode i.cInvCode WHERE i.cInvCode IS NULL;这三条SQL分别对应BOM未审核、子件重复、母件档案缺失三类高频问题。实际使用时不一定要查所有数据可以加日期条件缩小范围。BOM在月初录入最多每周一跑一次未审核清单能避免月底MRP批量报错时越积越多。5.3 BOM上线验收的闭合步骤最后给一个验收用的操作顺序先在存货档案中建立母件和子件并审核再到物料清单维护中新增BOM并录入子件行指定默认版本和生效日期然后运行低阶码计算最后审核BOM。审核后在MRP运算中跑一张测试销售订单检查计划工作台是否生成对应计划订单。一次通过的标志是计划订单数量等于销售订单数量×基本用量×(1变动损耗率)并且没有新增警告信息。拿这张订单当培训样例比讲十页概念都直观。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门