ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Oracle EBS ASCP 高级计划排程:一份能直接照做的供应链计划配置路径

Oracle EBS ASCP 高级计划排程:一份能直接照做的供应链计划配置路径

简介:供应链计划是企业运营的中枢,决定物料需求能否转化为可执行的生产与采购指令。在 Oracle EBS 这类主流 ERP 中,高级计划排程(ASCP)负责跨组织供需平衡,但计划引擎要跑得准,物料、BOM、工艺路线、来源规则与分配清单等基础配置必须先行到位。需求重复计算、半成品无来源、产能与工时对不上,根因往往不是引擎,而是计划开跑前的参数联动。以翻盖手机产销为背景的 ASCP 配置路径,完整演示了从主组织物料定义、MDS 独立需求输入到供应链计划运行、采购与工单下达的闭环,并结合例外汇总、日产能对账与库存核对等方法验证计划结果,适合 EBS 实施顾问和测试人员快速搭建可复用的跨组织计划环境。

1. Oracle EBS ASCP 高级计划排程:一份能直接照做的供应链计划配置路径

Oracle EBS ASCP 高级计划排程这个模块,很多人不是被计划引擎吓退的,而是被一堆基础参数之间的连带关系绕晕的。需求重复计算、半成品没有来源、产能跟工时对不上,这类现象十有八九不是引擎的问题,而是计划开跑之前的数据没立住。这份 ASCP 测试文档以一个翻盖手机产销场景为主线,把物料、BOM、工艺路线、来源规则、分配清单、MDS、供应链计划定义与运行、再到采购和工单执行完整串了一遍,步骤之间环环相扣。它适合刚接手 EBS 供应链实施、需要一套能照着配置的流程样例的顾问,也适合要做 ASCP 环境验证的测试人员。照这份文档走一遍,基本能把 ASCP 跨组织计划的黑匣子打开看个明白。

2. 物料、BOM 与工艺路线:先把“造什么、怎么造”配齐

供应链计划跑得准不准,一半取决于计划引擎对物料、BOM、工艺路线这些基础数据的理解。这份文档的第一个主要步骤,就是先在主组织里定义物料,再分配给各个业务组织。整套流程里 YY-JG(机盖半成品)是最有代表性的一个,因为它同时涉及了半成品属性、组织级制造/采购属性、以及跨组织调拨三种情况。

2.1 物料定义 YY-JG:复制子装配件模板再改关键字段

文档里的操作顺序是这样的,我按实际执行习惯整理成了五步:

  1. 责任切换到“生产与分销经理”。
  2. 在主组织物料中新建物料 YY-JG。
  3. YY-JG 复制自“子装配件”模板。
  4. 在“MPS、MRP 计划”页中,将“计划方法”设置为“MRP/MPP 计划”,预测控制设置为“冲减衍生”,追溯设置为“总装、软发查”。
  5. 在“订单管理”页中启用“客户订购”。

这里每个字段都不是摆设。复制模板意味着成本、计划、订单管理这几组字段会按子装配件的默认规则自动带出,比手动一条条建物料省事,关键是能把字段漏配的概率压下去。计划方法必须选“MRP/MPP 计划”,物料才会同时进入需求计算和供应计算;如果误配成 MPS 计划,YY-JG 会被当成独立需求件对待,计划语义就完全变了。预测控制设成“冲减衍生”,是让实际销售订单优先消耗预测,剩下的预测量再生成需求,这一步直接决定后面会不会需求翻倍。

追溯按“总装、软发查”设置,在界面里是一组追溯选项的组合,生产环境里常见的诉求是能顺着供应追溯到需求来源,这里按文档原值勾选即可。不同 EBS 版本里这个页签的文字会有细微差异,但字段位置基本一致,照文档找不会偏。

2.2 组织分配与例外集:同一物料在不同组织里的不同身份

物料在主组织定义完成后,接下来是分配给组织。YY-JG 被分配给 M1 和 M2,但两个组织的属性完全不同:

组织总计划制造或采购例外集
M1计划员采购ASCP
M2计划员制造ASCP

这一步是 ASCP 跨组织计划最容易搞混的地方。主组织里的物料是全局模板,组织级属性才决定这个物料在当前组织的补货身份。M2 是机盖制造车间,YY-JG 在这里是自制件;M1 是总装厂,YY-JG 对它来说要靠 M2 供应,所以标识为采购。同一个物料,在两个组织里一个是制造、一个是采购,计划引擎才能正确生成“M2 生产”加“M1 调拨”的组合单据,而不是全给算成采购需求。

例外集 ASCP 在这里也需要解释清楚。例外集本质是一组例外规则的集合,计划运行后会产生大量例外消息,组织挂了例外集,这些消息才能按该组织的口径被过滤和汇总。常见做法是每个参与 ASCP 计划的组织都挂同一个例外集,这样在计划员工作台里能按组织查看例外,而不是被全企业的消息淹掉。

2.3 BOM 与工艺路线:资源、班次与单位使用量决定产能

物料定义完成后,要告诉系统“这个东西是怎么装出来的”。文档给出的 BOM 结构是:成品 YY-SJ 的下一层包含 YY-JG、YY-JS、YY-BA;YY-JG 的下一层是 YY-SC 和 YY-CB;YY-JS 的下一层是 YY-KB 和 YY-CB。也就是说,屏幕和电路板在 M2 做机盖,键盘和电路板在 M3 做机身,最终 M1 总装时再挂上外购电池 YY-BA。

以 YY-JG 的工艺路线为例,组织是 M2,按下面顺序配置:

  1. 定义资源 YY-M2-R1,去掉“24 小时可用”勾选,资源数量 1,班次选择白班,数量 1。
  2. 定义部门 YY-M2-1,地点输入 M2,在资源页签里关联 YY-M2-R1。
  3. 定义工艺路线,物料为 YY-JG,部门 YY-M2-1,工序资源选 YY-M2-R1,单位使用量输入 10,“计划”勾选“是”。

第 3 步里单位使用量 10 是文档里最容易抄错的一行。它的含义是当前资源下,1 小时生产 0.1 千件机盖。资源数量 1、白班 1 班、每日 8 小时,就能折算出一个关键的日产能基准:0.1 千件/小时 × 8 小时 = 0.8 千件/天。我一般会在配置完工艺路线后,随手用这个口径推一遍日产能,再跟计划排产结果对照。如果后续某天工单排出了远超 0.8 千件的产量,第一反应就应该是资源或单位使用量填错了,而不是计划引擎的问题。

提示:工序资源里的“单位使用量”不是产量,是时间口径。配置前先把班次小时数乘一遍,算清理论日产能再保存。

“计划”字段勾选“是”的意思是这条工序资源参与计划计算,如果漏选,计划引擎会无视该资源约束,产能相关的结果必然失真。工艺路线配置完以后,ASCP 才有了“这个物料能不能造、要多少时间造”的基础判断。

3. 来源规则、分配清单与 MDS:让计划知道“从哪来、要多少”

基础数据和工艺路线配完,第二步是告诉计划引擎:每个组织缺料时从哪里补。这一步由来源规则、分配清单和分配集共同完成。很多 ASCP 计划跑出来之后出现“该调拨的没调拨、该采购的没采购”,问题都出在这一章。

3.1 来源规则:采购、传送自、制造地点三种补货语义

以组织 M1 为例,文档里为三类物料分别定义了来源规则:

  • YY-BA(电池)的来源规则类型为“采购来源”。
  • YY-JG、YY-JS(机盖、机身)的来源规则类型为“传送自”。
  • YY-SJ(手机成品)的来源规则类型为“制造地点”。
来源规则类型适用场景计划引擎的处理逻辑
采购来源外购件生成采购申请
传送自其他组织生产的半成品或成品生成组织间补货需求
制造地点本组织生产生成制造工单

来源规则是分组织定义的。同一个 YY-JG,在 M2 里是制造地点加工艺路线,在 M1 里则必须定义为“传送自”。如果不定义这一条,计划引擎面对 M1 对 YY-JG 的需求时,只会按默认的采购或制造逻辑处理,很可能出现“M2 明明能生产,计划却给 M1 开了采购申请”的乌龙。常见做法是每个组织各维护一套来源规则,来源和去向一目了然,追溯时少绕弯路。

3.2 分配清单:接收组织、分配百分比与级别

来源规则说明“怎么补”,分配清单说明“补给谁”。文档里以 YY-SJ 为例定义了名为 YY-M1 的分配清单,操作上分四步:

  1. 切换责任为“供应链计划员”。
  2. 为 YY-SJ 定义分配清单,名称输入 YY-M1。
  3. 接收组织分别输入 M1、D1、D2。
  4. 分别点击各接收组织,选择类型:M1 为“制造地点”,D1、D2 为“传送自”,分配输入 100%,级别 1。

分配清单必须把 M1、D1、D2 全部加进去,遗漏任何一个,对应的组织就拿不到任何供应。分配 100% 表示该物料在目标组织的所有需求全部经由这条路径满足,级别 1 是优先级标识。实际项目中如果同一种物料存在多个供应来源,分配比例会按百分比拆分,级别用于区分主来源和备来源。但在这份测试案例里,一条路径百分百供应就够了,越简单越不容易出错。

3.3 分配集与 MDS:把规则打包,把独立需求说清

分组织定义完来源规则和分配清单后,要把它们打包成一个分配集,名称 YYAPS-1。分配集里放入 YY-SJ 的分配清单,以及所有物料的来源补充规则,范围包括 YY-SJ、YY-JG、YY-JS、YY-BA、YY-SC、YY-CB。定义完成后查看多级供应链清单,这一步能直观看到每个物料的供应路径是否已完整串联。

独立需求的部分则用 MDS 输入。以 D1 为例:

  1. 责任为“制造和分销经理”,更改组织为 D1。
  2. 输入名称 YY-D1-MDS1 和说明,选择“冲减”。
  3. 点击物料,输入 YY-SJ,在详细资料里输入需求时间和数量。

5 月的预测数据是 5.21 需求 10 千件、5.25 需求 20 千件,D1 和 D2 各维护一份。MDS 承担的是独立需求输入,分销中心对成品 YY-SJ 的预测就是从这里进入计划的。“冲减”的含义是当实际销售订单出现时,先用订单数量冲掉预测,剩余预测量才参与需求计算。这一步漏选,后面计划里需求重复计算几乎是必然的。

4. 供应链计划定义、运行与执行下达:把计划从数据变成工单

前面配置的物料、工艺、来源、需求,最终要汇入一份供应链计划里统一运算。到了这一章,才真正碰触计划引擎本身。文档在这里给出了完整的定义、运行和下达路径。

4.1 供应链计划选项:计划物料、分配集、追溯与约束模式

定义供应链计划的起点是责任“高级供应链计划员”,组织选择 TST:M1,名称输入 YYAPS-1。“计划选项”里有几项值得逐行确认:

计划选项文档设置实际作用
计划物料需求和供应计划物料让成品和半成品同时参与需求和供应计算
分配集TST:YYAPS-1挂接来源规则和分配清单
启用追溯按需求优先级追溯供应供应/需求查询时可定位到需求来源
组织D1、D2、M1、M2、M3全部纳入计划范围
需求计划D1/D2 分别绑定对应 MDS为分销中心提供独立需求
约束模式先运行非能力约束计划暂不考虑资源能力限制,先算供需平衡

“需求和供应计划物料”这个选项决定了物料在计划里的角色。只选需求计划物料,半成品 YY-JG、YY-JS 可能只产生需求而不生成制造工单;选成需求和供应计划物料,系统才会同时考虑“需要它”和“怎么造出它”。绑定 MDS 时,D1、D2 要分别选择各自定义的 MDS 名称,选反了会造成分销中心的预测需求错位。组织列表里如果漏掉 M3,机身 YY-JS 的产能就完全不会进入计算,整个计划的数值立刻失真。

约束模式特意先选“非能力约束”是刻意的。非能力约束计划只做供需平衡,先看缺料和多余库存,资源产能被暂时放在一边。这样第一版计划跑完,如果需求数量对不上,可以确定不是产能问题,排查范围小很多。我一般会把这一版保存为基准计划,后续复制一份开启能力约束再跑,两份对比着看,资源瓶颈在哪一层一目了然。

提示:不要一上来就开能力约束计划。先把非能力约束结果跑稳,再叠加资源限制,否则需求和产能叠加出错时,很难判断根因到底在哪一端。

4.2 运行计划与结果查看:从多级清单到计划员工作台

运行计划的入口是启动计划,组织选择 TST:M1,计划名称选择 YYAPS-1,提交流程后查看请求是否成功。这里有一处很容易被坑的细节:计划名称在定义时是 YYAPS-1,如果手输成 YYASP-1,并发请求会直接报“找不到计划”,因为 ASCP 对计划名称是精确匹配的。所以启动前最好从查询界面复制名称,而不是凭记忆敲。

计划运行成功后,按下面顺序查看结果:

  1. 查看供应链清单:分配集选择 TST:YYAPS-1,组织选择 TST:D1,物料选择 YY-SJ,查看多级清单。
  2. 在计划员工作台中查看主要指标。
  3. 右键点击“供应/需求”查看供需明细。
  4. 右键点击物料,查看目标、来源、使用处、替代、工艺路线、供应链等。
  5. 右键点击例外,查看例外汇总。
  6. 通过“文件”里的“导出”功能,将供需结果导出为 Excel。

供应链清单里的“多级清单”是排查跨组织短缺根因最有力的工具。例如 D1 显示 YY-SJ 短缺 20 千件,不要只看成品层,展开到下一层,看 YY-JG 在 M2 的供应是否足够;再展开一层,看 YY-SC 的采购是否按时到货。短缺往往不是最顶层问题,而是某一层半成品或原材料的计划没有闭环。计划员工作台里的供应/需求视图则是按天看量和来源,可以精确到某一天缺多少、由哪张单供应。例外汇总里最常见的消息是物料短缺、需求无法满足、资源超载,这些消息要逐条看内容,而不是只看数量。

4.3 执行下达:一次性发放、自动创建采购订单与释放工单

计划确认无误后,进入执行阶段。文档把执行拆成了计划下达、采购、生产三段。

计划下达用“一次性发放”,这一步会把组织间补货、制造任务、采购申请一次性全部放出去,避免逐张单据手动处理。

采购部分以 YY-BA 为例,组织 M1,关键路径如下:

  1. 切换责任为“生产与分销经理”。
  2. 进入“采购管理—自动创建”。
  3. 删除采购员条件,查找自动创建的采购申请,选择 YY-BA,点击自动。
  4. 选择供应商,点击创建。
  5. 点击“发运”,进行分配,输入子库存 RIP。
  6. 点击审批,状态变为“批准”。

ASCP 释放出来的采购申请默认没有订单编号,直接在采购模块里按订单号查是查不到的,必须通过“自动创建”把它转成正式采购订单。发运页签里输入的子库存 RIP 是接收子库存,选错会导致后续入库时找不到库位。审批动作完成后,单据状态变成“批准”,才算真正生效。

生产部分以 YY-JG 为例,路径是“在制品管理—离散—离散任务”,按装配件查找到半成品 YY-JG,然后在工具菜单中选择“更改状态”,把工单状态改为“释放”。工单释放后,WIP 里才能执行领料和完工入库。到这一步,从计划、采购到生产入库的闭环才算完整走通。

5. ASCP 配置与执行避坑:五条实测翻车记录

这套配置流程我完整跑过不止一遍,越照文档操作,越容易在几个细节上翻车。下面按“现象—原因—解决”的方式,把最典型的五条记录下来。

5.1 计划定义与运行期的坑

坑 1:计划名称保存后找不到

现象:定义供应链计划时名称填的是 YYAPS-1,启动计划时输入 YYASP-1,并发请求直接提示找不到计划。

原因:文档正文里两处名称写法不一致,一处是 YYAPS-1,另一处是 YYASP-1,照着手敲很容易把 P 和 S 的顺序搞反。ASCP 的计划名称是精确匹配,大小写和空格都会影响查找结果。

解决:定义和启动都从查询界面复制计划名称,不手输;项目内部把计划名称写进配置清单,所有环境和文档统一同一个代号。从那以后我每定义一个计划,都会顺手把完整名称记录在案,启动时直接粘贴。

坑 2:工序资源单位使用量填错导致产能差十倍

现象:计划跑完后,M2 的机盖每日可产出量远低于预期,工单排产时间明显偏长,甚至出现不必要的短缺。

原因:把“单位使用量 10”理解成了产量,而没有按照文档口径换算“1 小时生产 0.1 千件”。单位使用量是时间相关的资源消耗值,不是产出量。

解决:配完工艺路线先用班次小时数折算一遍理论日产能:0.1 千件/小时 × 8 小时 = 0.8 千件/天。保存前把资源数量、班次数量、单位使用量三者放在一起复核,任何一项改动后重新折算。这个习惯能直接在配置阶段拦住八成产能类异常。

坑 3:MDS 冲减漏选导致需求翻倍

现象:5.21 和 5.25 的需求在计划里被重复计算,D1、D2 的短缺数量变成预测的两倍。

原因:物料主数据里预测控制没有设为“冲减衍生”,或者 MDS 明细行没有选择“冲减”。预测与实际订单同时参与需求运算,同一份需求算了两次。

解决:在主组织物料的计划方法页里确认预测控制为“冲减衍生”,在 MDS 录入时确认每行都选中冲减选项。计划运行前用供应/需求视图抽查一个日期,核对当天总需求与 MDS 数量是否一致,数字对得上再往下走。

5.2 执行期的坑

坑 4:D1/D2 始终没有调拨供应

现象:计划结果里分销中心 D1、D2 的供应为空,组织间补货需求或调拨单一张都没有。

原因:分配清单 YY-M1 的接收组织漏掉了 D1 或 D2,或者接收组织虽然加了,但分配百分比和级别没有按文档设置为 100% 和 1。计划引擎不会替用户猜测接收组织,漏一个就少一路供应。

解决:回到分配清单,逐组织核对接收组织、来源类型和分配比例;改完记录后重新运行供应链计划。常见做法是每定义完一个分配清单就查看一次多级供应链清单,确认所有目标组织都在清单里出现。

坑 5:自动创建采购订单失败

现象:ASCP 释放的采购申请在采购模块查不到,或者自动创建时报错,无法生成正式采购订单。

原因:ASCP 释放的采购申请默认没有订单编号,也没有带出采购员。直接按订单号查自然查不到;自动创建界面如果不先把采购员字段清空,系统会按空的采购员条件去匹配,结果就是找不出申请。

解决:进“采购管理—自动创建”,先删除或清空采购员字段,再查找自动创建的采购申请;选中 YY-BA 后点击自动创建,选择供应商,完成发运分配和审批。审批后状态变为“批准”,接收入库后还要顺手查看现有量,确认数量真正进了库存。

6. 验证一套计划结果是否可信:例外汇总与日产能对账

拿到 ASCP 计划结果后,我会做三件事,缺一不可。第一件是看例外汇总。计划员工作台里右键例外—例外汇总,按例外类型分组,优先处理“物料短缺”和“需求无法满足”这两类。例外汇总里的条目数量不是关键,关键是每一条要能追到具体组织和物料,否则说明计划的基础数据里仍有断点。

第二件是导出 Excel 做日产能对账。把 YY-JG 每天的计划产出量列出来,加起来跟理论日产能 0.8 千件对比。某天排产超过这个数,等于在透支资源,需要回到资源或工艺路线重新查;某天远远低于这个数,则要确认是不是需求输入偏少。这种对账,用文档自带的导出功能就能完成。

第三件是用 SQL 核对实物库存。采购入库或生产完工后,按组织、物料查现有量,确认系统库存与计划假设一致:

-- 按组织、物料核对现有量:采购/生产入库后应与计划结果一致 SELECT inventory_item_id, subinventory_code, primary_uom_code, SUM(on_hand_qty) AS on_hand_qty FROM mtl_onhand_quantities WHERE organization_id = :org_id AND inventory_item_id = :item_id GROUP BY inventory_item_id, subinventory_code, primary_uom_code;

其中 :org_id 和 :item_id 是查询工具里的绑定变量,organization_id 对应业务组织,inventory_item_id 是物料内部 ID,查询出来的现有量要与供应链清单里的库存数据对得上。入库后如果现有量与计划不符,优先检查接收子库存和发运分配是否选对,而不是急着调计划。三关都过,我才会把计划正式下发给采购和生产。这份测试文档值得直接下载一份留在手边,后续做 ASCP 环境验证时,按章节顺序对照执行,比临时翻界面快得多。从那以后,我每次验证 ASCP 计划都强制走一遍“先看例外、再对产能、最后查库存”的三步,这套方法用在哪一版 EBS 上都成立。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进