
OE_ORDER_LINES_ALL.LINE_TYPE_ID 在 OM 标准 API 中的使用全景核心前提LINE_TYPE_ID用来读取OE_LINE_TYPES_B中的配置开关INVENTORY_ITEM_FLAG、MODEL_FLAG、OPTION_FLAG、RETURN_FLAG、DEFAULT_LINE_FLOW_ID所有履约、定价、库存、工作流分支判断都依赖它。 区分两种场景 1入参传入 LINE_TYPE_ID创建 / 更新订单行 2内部读取 LINE_TYPE_ID业务逻辑路由、校验、分支判断绝大多数 API。一、核心公共 API开发最常用1. OE_ORDER_PUBOM 入口核心包PROCESS_ORDER最关键 APILINE_TYPE_ID 双重用途创建 / 更新订单行入参l_line_tbl().LINE_TYPE_ID新建行必须传入不传则通过默认规则自动推导更新行时如果放开处理约束可以修改 LINE_TYPE_ID内部校验逻辑根据 LINE_TYPE_ID 读取行类型属性是否实物物料、是否模型行、是否退货行校验数量正负销售行正数、RMA 退货行负数加载默认 Line Flow 工作流控制是否允许 ATP、是否允许库存预留、是否允许发运控制处理约束Processing Constraints校验能否修改字段、能否取消、能否调度。GET_ORDER根据 LINE_ID 读取订单完整行记录返回结构中携带 LINE_TYPE_ID 外部程序拿到行数据后依靠 LINE_TYPE_ID 区分商品行 / 运费 / 模型行用于报表、二次逻辑。LOCK_ORDER锁定订单头行加载行记录内部缓存 LINE_TYPE_ID 用于后续业务校验。2. OE_SCHEDULE_PUB调度 / ATP / 库存预留SCHEDULE_LINE / UNSCHEDULE_LINE内部逻辑sql根据LINE_TYPE_ID关联OE_LINE_TYPES_B.INVENTORY_ITEM_FLAG IF INVENTORY_ITEM_FLAG Y THEN 执行ATP检查、创建/删除MTL_RESERVATIONS库存预留 ELSE 跳过ATP、跳过库存预留运费、服务费行不调度 END IF运费行、费用行调用调度 API 会直接返回警告不生成调度行MODEL 模型父行禁止创建预留仅 Option 组件行参与调度。3. OE_CANCEL_PUB订单行取消CANCEL_LINE读取 LINE_TYPE_ID 做分支判断RMA 退货行取消逻辑与销售行不一样实物行取消 → 自动释放库存预留非库存行运费取消不触碰 INV判断是否为 Model 行禁止直接取消顶层模型行必须先取消子 Option 行。4. OE_HOLD_PUB冻结 / 释放冻结APPLY_HOLD / RELEASE_HOLD支持头级、行级冻结API 内部读取 LINE_TYPE_ID 部分冻结来源信贷冻结可配置只对实物销售行生效忽略运费 / 费用行。5. OE_PRICE_PUB重新定价PRICE_LINE / REPRICE_ORDERLINE_TYPE_ID 作为定价上下文传入 QP 定价引擎 价目表、修改器可以设置行类型过滤条件不同行类型适用不同折扣规则 运费行使用单独的定价逻辑。6. OE_WF_API工作流控制START_LINE_FLOW根据 LINE_TYPE_ID 读取OE_LINE_TYPES_B.DEFAULT_LINE_FLOW_ID启动对应行工作流CONTINUE_FLOW履约节点发运、开票校验行类型RMA 行走退货工作流销售行走标准履约流程经典故障LINE_TYPE_ID 配置错误 → 绑定错误 Line Flow导致发运后无法自动推送 AR 接口。二、集成与底层私有 PVT API系统后台并发、模块集成调用7. OE_SHIPPING_INTEGRATION_PVTOM ↔ WSH 发运集成挑库发放、Ship Confirm 核心内部包读取 LINE_TYPE_ID非 INVENTORY_ITEM_FLAG 行不生成 WSH_DELIVERY_DETAILS 发运行运费行不会下发到仓库执行拣货区分销售出库行 vs RMA 退货接收行传递不同方向给 WSH。8. OE_BULK_PROCESS_LINEOrder Import 批量导入底层OE_HEADERS_IFACE_ALL / OE_LINES_IFACE_ALL转正逻辑校验传入 LINE_TYPE_ID 是否有效、是否启用根据行类型校验数量符号、物料是否必填自动填充默认属性MODEL_FLAG、OPTION_FLAG。9. OE_SCHEDULE_UTIL调度底层工具包ATP 可用性计算、预留创建 / 释放 依靠 LINE_TYPE_ID 过滤不需要参与供需规划的费用行。10. OE_LINE_UTIL订单行通用工具Query_Row、Validate_Line_Type 几乎所有 OM API 都会调用此工具加载行类型缓存。三、QP 定价模块联动 APIQP_PUB_PRICING.PRICE_REQUESTOM 调用 QP 时会把 LINE_TYPE_ID 作为定价上下文传入 高级定价修改器Modifier可以设置条件仅对指定行类型生效。四、RMA 退货相关 APIOE_RMA_PUB 创建退货行时自动分配 RETURN_FLAGY 的 LINE_TYPE_ID 后续收货、贷项通知单接口流程全部依靠 LINE_TYPE_ID 区分退货业务。五、API 层面 LINE_TYPE_ID 两大典型使用模式模式 A【入参输入】创建 / 更新订单plsqll_line_tbl(i).LINE_TYPE_ID : xxx; OE_ORDER_PUB.PROCESS_ORDER(..., p_line_tbl l_line_tbl);适用新建 SO、新建 RMA、接口导入变更订单。模式 B【内部读取路由判断】绝大多数业务 APIplsql--伪代码所有调度/取消/发运/工作流通用逻辑 SELECT INVENTORY_ITEM_FLAG,MODEL_FLAG,RETURN_FLAG INTO l_inv_flag,l_model_flag,l_return_flag FROM OE_LINE_TYPES_B WHERE LINE_TYPE_ID l_line_rec.line_type_id; IF l_inv_flag Y THEN 执行库存、ATP、挑库相关逻辑; ELSE 跳过库存履约; END IF;六、开发高频踩坑点调用 PROCESS_ORDER 更新订单时不要随意修改 LINE_TYPE_ID标准处理约束默认禁止强行传值会报错放开约束后修改会重新加载一套全新 Line Flow极易造成 Workflow 卡死。不要硬编码 LINE_TYPE_ID 数字开发报表 / 客户化 API必须关联OE_LINE_TYPES_B用标志INVENTORY_ITEM_FLAG判断不能直接写LINE_TYPE_ID1001。外部接口导入Order ImportLINE_TYPE_ID 错误后果运费行配成实物行尝试 ATP、创建预留、挑库报错实物行配成费用行无法生成发运行不能发货。CTO PTO/ATO 场景Model 父行与 Option 子行 LINE_TYPE_ID 不同API 内部依靠该标识区分是否需要展开选配结构。七、API 清单精简汇总速查公共 API对外推荐调用OE_ORDER_PUB.PROCESS_ORDER 【读写传入 内部校验】OE_ORDER_PUB.GET_ORDEROE_SCHEDULE_PUB.SCHEDULE_LINE / UNSCHEDULE_LINEOE_CANCEL_PUB.CANCEL_LINEOE_HOLD_PUB.APPLY_HOLD / RELEASE_HOLDOE_PRICE_PUB.REPRICE_ORDEROE_WF_API.START_LINE_FLOW私有 PVT / 底层工具一般不直接客户化调用OE_SHIPPING_INTEGRATION_PVTOE_BULK_PROCESS_LINEOE_LINE_UTILOE_SCHEDULE_UTIL