华为MetaERP OE_ORDER_LINES_ALL.LINE_TYPE_ID 在哪些业务流程发生更新先建立一条核心结论(非常关键)标准 EBS OM 原生逻辑:已经保存的订单行,不允许直接 📅 2026/8/21 21:23:15 OE_ORDER_LINES_ALL.LINE_TYPE_ID 在哪些业务流程发生更新先建立一条核心结论非常关键标准 EBS OM 原生逻辑已经保存的订单行不允许直接 UPDATE 修改已有记录的 LINE_TYPE_ID。系统处理原则订单行创建阶段赋值 LINE_TYPE_ID标准界面 / 标准 API 不支持对现存 LINE_ID 变更 LINE_TYPE_ID所有看上去 “行类型发生变化” 的场景几乎都是系统新增一条新行、旧行保留 / 取消而不是更新原有行的 LINE_TYPE_ID只有客户化 PL/SQL 绕过约束才会强行 UPDATE属于高危不推荐操作。区分两个概念 ✅新建行赋值 LINE_TYPE_IDINSERT⚠️已有行更新 LINE_TYPE_IDUPDATE—— 标准流程极少发生下面分场景完整拆解。一、【INSERT 赋值场景最普遍常被误认为 “更新”】这些流程是新增订单行写入 LINE_TYPE_ID不是修改已有行。1. 手工录入销售订单Form销售订单用户选择行类型保存时 INSERT OE_ORDER_LINES_ALL写入 LINE_TYPE_ID。保存后这一行不能直接修改行类型如需变更只能删除重录。2. OE_ORDER_PUB.Process_Order API 创建新行外部系统、客户化程序调用 API 新增行传入 LINE_TYPE_ID API 内部 INSERT 写入表。3. Order Import 订单导入并发请求外部数据写入OE_LINES_IFACE_ALL填充 LINE_TYPE_ID Import 运行成功 → 转正 INSERT OE_ORDER_LINES_ALL。4. PTO/ATO 配置器生成选配组件行录入 Model 模型行打开配置器选择子物料 系统自动批量 INSERT Option 组件行自动分配对应 LINE_TYPE_ID。Model 行MODEL_FLAGY 行类型组件行OPTION_FLAGY 行类型5. 订单自动拆行部分发货底层机制原始订单行数量 100只发 30原行数量更新为 70LINE_TYPE_ID 不变系统 INSERT 一条新行数量 30继承原行 LINE_TYPE_ID 原有记录不会 UPDATE LINE_TYPE_ID新增行赋值6. 参照销售订单生成 RMA 退货行复制原始销售订单行信息新建 RMA 行 系统 INSERT 退货行分配 RETURN_FLAGY 的 LINE_TYPE_ID。7. 自动生成运费 / 费用附加行QP 定价或者运费计算自动新增 Freight 行 INSERT 新行赋值运费对应的 LINE_TYPE_ID。二、【标准流程中真正触发 UPDATE LINE_TYPE_ID 的原生场景极少】EBS 标准流程里原生允许 UPDATE 已有行 LINE_TYPE_ID 的场景非常有限并且受【处理约束 Processing Constraints】严格管控前置规则OM 标准处理约束默认订单行保存后禁止 UPDATE LINE_TYPE_ID即使未 Booked界面上行类型 LOV 灰掉不可修改。 只有两种例外订单状态 ENTERED未 Book并且人为放开处理约束路径OM 设置 → 处理约束 实体Order Line 操作Update 属性Line Type 取消约束后在订单 Form 可以修改行类型底层触发 API 更新 LINE_TYPE_ID。Booked 之后无论如何标准流程都不允许修改。报价单转销售订单Quotation → Sales Order报价单行类型类别 Category ORDER直接复制LINE_TYPE_ID 不变若配置转换规则切换行类型在转换过程中API 更新 LINE_TYPE_ID很多实施案例报价与销售共用一套行类型此场景不触发更新。三、【永远不会自动更新 LINE_TYPE_ID 的主流业务流程】下面这些 O2C 核心流程只会修改 FLOW_STATUS_CODE、数量字段不会触碰 LINE_TYPE_IDBook Order 订单登记调度 Schedule / 取消调度 UnschedulePick Release 挑库发放Pick Confirm 挑库确认Ship Confirm 发运确认Workflow 后台进程推进履约、推送 AR 接口订单行取消 Cancel Line仅更新 CANCELLED_QUANTITY、状态Hold 冻结 / 释放冻结重新定价 Re-price只写 OE_PRICE_ADJUSTMENTS信贷检查重点发运、开票、库存相关流程完全不修改 LINE_TYPE_ID四、CTO 特殊场景澄清极易踩坑ATO 模型产生配置物料后 模型行、组件行 LINE_TYPE_ID 保持不变系统只维护 ATO_LINE_ID 关联不会自动变更行类型PTO 部分发货产生 Remnant 残余行 残余行是原行修改数量LINE_TYPE_ID 维持原样不会更新。五、【高危场景客户化强行 UPDATE】很多二次开发直接执行sqlUPDATE OE_ORDER_LINES_ALL SET LINE_TYPE_ID xxx WHERE LINE_ID xxx;⚠️严重风险不会同步更新 OE_LINE_TYPES_B 对应的业务属性缓存Workflow Line Flow 绑定的行类型校验逻辑断裂ATP、挑库、开票规则错乱OE_ORDER_CHANGE_HISTORY 无法捕获变更 ✅ 规范做法调用 OE_ORDER_PUB 传入更新参数不允许直 DML。六、最简总结清单1INSERT 赋值普遍手工新建订单行、API 新建、Order Import、配置器生成组件行、拆行新增行、自动生成运费行、参照生成 RMA 行。2标准原生 UPDATE极罕见需要放开处理约束未 BookedENTERED订单行放开处理约束后手工修改行类型报价转销售订单且配置行类型转换规则。3标准 O2C 履约流程Book / 调度 / 挑库 / 发运 / 开票 / 取消完全不更新 LINE_TYPE_ID七、实施 / 开发排查建议 SQL查看当前环境【处理约束是否允许更新行类型】sqlSELECT constraint_id, entity_name, operation, attribute_name, enabled_flag FROM OE_PROCESS_CONSTRAINTS WHERE entity_name ORDER LINE AND operation UPDATE AND attribute_name LINE_TYPE_ID;