PPDS 启发式(排产规则)

PPDS 启发式(排产规则)PPDS ProductionPl 是 APO 中针对单个工厂下基于产能 工艺要求的详细排程和调度模块 包含 PP 生产计划排程 DS 详细调度 从

大家好,欢迎来到IT知识分享网。

  •  定义

  PPDS( Production Planning and Detailed Scheduling ) ,是APO中针对单个工厂下基于产能,工艺要求的详细排程和调度模块,包含PP生产计划排程,DS详细调度,从业务角度理解

  • PP输入:特定制造工厂上的需求元素(如销售订单,预测,调拨需求)
  • PP输出:考虑或不考虑约束条件的MRP计划结果(如计划订单)
  • DS输入:PP/ERP/SNP 中的PP所产生的计划结果(如计划订单,生产订单)
  • DS输出:考虑了调度约束条件的调过序的计划结果

PPDS 启发式(排产规则)

 备注:1.APO-DP需求预测,需求管理工具–》IBP-Demand

PPDS 启发式(排产规则)

            2.APO-SNP聚焦于供应网络的中长期做供应计划的技术模块,功能上它主要包括计划 Planning 及分配 Deployment 

PPDS 启发式(排产规则)

          3.APO-GATP 是 APO 中聚焦于可以产生需求的订单元素(例如成品层级的销售订单、交货单、调拨单,半成品或原材料层级的其上层计划订单、生产订单等)的物料可用量及可承诺量的检查并对相应的订单进行承诺的技术模块

PPDS 启发式(排产规则)

PPDS 启发式(排产规则)

  • 特点

      1.支持离散制造、重复制造、流程制造等各业务形态下的生产计划排产,提供到工厂级、车间级、线体级甚至工位级以及时间上分秒级的生产计划与排序;

       2.提供 Heuristics 启发式、 PPDS Optimizer 优先器遗传算法等多种优秀的算法及模型,支持订单排序、订单调度、有限无限产能、订单关系、工序关系、换模切换、线体布局网络等多种生产排产限制因素;

  • 应用场景 

PPDS 启发式(排产规则)

  • 自定义排序规则

在SAP的领域里,做生产计划可以由PP、PPDS都可以完成,但是做生产调度(更加细微的也更加精细的日常工作)、排序则传统的PP就无法很好地满足,此时PPDS中的Sequencing等Detailed Scheduling功能就显示出其强大的一面。 PPDS中有体统一些标准的Sequencing对排产后的结果进行调度进行排序,例如按交期优先、按产能有限能力、按Set matrix切换矩阵等等各Heuristics、Function、Optimizer ,PPDS也提供根据企业本身的业务需求来自定义的排序规则,对于自定义排序规则,用的最多的就是Heuristics,即在标准算法写增强或完全自写算法。

在DS的Heuristics(启发式)中,应用最多的排序功能依然是SAP提供的标准Re-scheduling功能,其背后最终使用的是RRP层的FM(/SAPAPO/EFPL_ONLINE_SCHEDULER)及OM层的FM(/SAPAPO/OM_ACT_SCHEDULE),所以,只需要这之前通过Enhancement等对传入OM的排序用的数据(E_CAPREQ_TAB)再行再排序再处理,例如最常用的便是在SORT中进行( /SAPAPO/SORT_SORT_FOR_DISPATCH )考虑自定义的规则。

  • 启发式开发步骤(Heuristics
  1.       可以参考标准模版/SAPAPO/RRP_HEUR_TEMPLATE函数模版复制函数,我这里是找的是标准计划排序启发式的函数 /SAPAPO/HEUR_PLAN_SEQUENCE 复制的

PPDS 启发式(排产规则) 更新函数组内的代码,主要包括:运算法则;GET方法,SET方法

PPDS 启发式(排产规则)

代码我是复制标准启发式里的:可以/SAPAPO/CDPS_HEURISTICS这个函数组下找到自己需要获取的对应方法参考,以下是我参考的部分

PPDS 启发式(排产规则)

 运算法则可以参考标准的计划排序启发式的运算法则

PPDS 启发式(排产规则)

 APO模块的LiveCache数据,都是通过存储过程到ABAP层的函数来实现访问,可以看下/SAPAPO/OM_PLANNING  &&  /SAPAPO/OM_PLANNINGTABLE 函数组

PPDS 启发式(排产规则)

2.配置启发式

 2.1、SM30,在/SAPAPO/VHEURFNC 中维护新增的运算法则名称

PPDS 启发式(排产规则)PPDS 启发式(排产规则)

 2.2. /SAPAPO/CDPSC11新增启发式配置

PPDS 启发式(排产规则)

相关数据获取函数:

  • 根据资源id获取计划需求信息:/SAPAPO/OM_ACT_GET_BY_RES
 CALL FUNCTION '/SAPAPO/OM_ACT_GET_BY_RES' EXPORTING is_gen_params = l_gen_params_str iv_simsession = i_simsessid it_res = l_lcresid_tab[] iv_start_time = l_plan_start iv_end_time = l_plan_end iv_constr_selection = gc_no_constr iv_peg_selection = ' ' IMPORTING et_cap_reqs = l_capreq_tab[].
  • 获取容量需求数据/SAPAPO/EFPL_CAPREQ_DATA_GET
 CALL FUNCTION '/SAPAPO/EFPL_CAPREQ_DATA_GET' EXPORTING i_simsessid = i_simsessid i_simverid = i_simverid i_capreq_tab = i_object_keys-capreq_key_tab TABLES e_capreq_data_tab = l_capreq_tab EXCEPTIONS not_qualified = 1 no_capreq_data_found = 2.
  • 过滤固定需求信息/SAPAPO/EFPL_CAPREQ_FILTER
CALL FUNCTION '/SAPAPO/EFPL_CAPREQ_FILTER' EXPORTING iv_simsessid = i_simsessid iv_simverid = i_simverid iv_filter_fixintervalls = gc_true iv_filter_fixed_act = gc_true CHANGING c_capreq_tab = l_capreq_tab[].
  • 重排需求订单Scheduling and Rescheduling of Multiple Activities
CALL FUNCTION '/SAPAPO/EFPL_ONLINE_SCHEDULER' EXPORTING i_simsessid = i_simsessid i_simverid = i_simverid i_propagation_area = i_object_keys-propagation_area i_start_planhorizon = i_object_keys-start_planhorizon i_end_planhorizon = i_object_keys-end_planhorizon i_capreq_tab = l_capreq_tab[] IMPORTING e_capreq_tab = e_changed_objects-cap_req_pt_tab[] e_pegid_tab = e_changed_objects-pegid_tab[] TABLES i_strat_sets_tab = l_strategy_parameters_tab EXCEPTIONS scheduling_error = 1 not_qualified = 2.
  • 获取APO中订单信息/SAPAPO/OM_ORDER_GET_DATA
CALL FUNCTION '/SAPAPO/OM_ORDER_GET_DATA' EXPORTING is_gen_params = ls_gen_params iv_simsession = lv_simsession it_order = lt_order is_exclude_exports = ls_exclude_exports IMPORTING et_ordkeys = lt_ordkeys et_outputs = lt_outputs et_ext_outputs = lt_ext_outputs EXCEPTIONS lc_connect_failed = 1 lc_com_error = 2 lc_appl_error = 3 OTHERS = 4. 
  • 根据订单id获取订单工序/SAPAPO/OM_ACT_GET_BY_ORDER
  • 根据追溯id获取订单物料信息/SAPAPO/DM_PEGID_GET_MATERIAL
  • 根据物料id&位置id获取追溯id/SAPAPO/DM_MATERIAL_GET_PEGID
  • 根据特定条件获取收货信息/SAPAPO/DM_OUTPUTNODE_SELECT(可利用此函数差固定日期的订单date_fixed = ‘X’
  • 获取生产订单列表/ SAPAPO/RRP_PT_PRODUCTION_LIST(事务码/SAPAPO/PPL1运行结果)
  • 根据资源id获取班次信息ZPP_APO_CONV_ASTAS_TO_SHIFT(非标准函数仅记录)
  • 资源名称拆分成工厂和工作中心ZPP_APO_RES_NAME_SPLIT(非标准函数仅记录)
  • 火气APO工厂id /SAPAPO/DM_LOCID_GET
表名 描述
SAPAPO/RES_HEAD 资源抬头信息
/SAPAPO/RES_TXT 资源描述信息
/SAPAPO/SET_MAT 矩阵信息表(根据资源抬头表中距阵标识可以找到对于资源的矩阵配置信息)
/SAPAPO/SET_ID 设置矩阵中组id与组码的信息
/SAPAPO/RESKEY APO中计划订单表
/SAPAPO/LOC APO中位置表
/SAPAPO/MATKEY APO中物料表
/SAPAPO/MATLOC   物料位置    (物料ID、位置ID、生产计划员、采购组)
/SAPAPO/MATTXT  物料描述    (物料ID、物料文本)
/SAPAPO/ORDKEY 计划订单
/SAPAPO/ORDMAP ORDID mapping ORDNO
KAKO 能力表头段(班次定义和班次顺序的分组)
KAZY 可用能力间隔
TC38A 班次顺序
TC37A 班次定义
TC37P 中断计划
TC39A 把替换定义和替换序列分组
TC39T 分组班次定义和班次序列的文本
TC37S 中断计划的文本

获取配置的班次信息 

SELECT DISTINCT kako~kapid,kako~mosid,kazy~datub,kazy~sprog INTO TABLE @DATA(lt_kako) FROM kazy AS kazy INNER JOIN kako AS kako ON kazy~kapid = kako~kapid WHERE kako~werks = @ps_planorder-locno AND kako~name = @lv_arbpl AND kako~kapar = @lv_kapart AND kazy~versn = '01' AND kazy~datub = ''. SELECT DISTINCT a~schgrup,a~sprog,a~schnr,b~begda,b~endda,b~begzt,b~einzt,b~paplan FROM tc38a AS a INNER JOIN tc37a AS b ON a~schgrup = b~schgrup AND ( b~kaptprog = a~tprog1 OR b~kaptprog = a~tprog2 OR b~kaptprog = a~tprog3 OR b~kaptprog = a~tprog4 OR b~kaptprog = a~tprog5 OR b~kaptprog = a~tprog6 OR b~kaptprog = a~tprog7 ) INTO TABLE @DATA(lt_tc38a) WHERE a~sprog = @ls_kako-sprog AND a~schgrup = @ls_kako-mosid. SELECT tc37p~schgrup,tc37p~paplan,tc37p~paunr,tc39t~ktext AS schgrktext, tc39t~ktext AS paplktext,tc37p~paubeg,tc37p~pauend,tc37p~stdaz,tc37p~padauer FROM tc37p AS tc37p INNER JOIN tc39a AS tc39a ON tc39a~schgrup = tc37p~schgrup INNER JOIN tc39t AS tc39t ON tc39t~schgrup = tc37p~schgrup AND tc39t~spras = @sy-langu INNER JOIN tc37s AS tc37s ON tc37s~schgrup = tc37p~schgrup AND tc37s~paplan = tc37p~paplan AND tc37s~spras = @sy-langu INNER JOIN @lt_kako AS kako ON kako~mosid = tc37p~schgrup INTO TABLE @DATA(lt_resttime). DATA(lt_resttime_final) = lt_resttime.

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121930.html

(0)
上一篇 2025-10-20 16:26
下一篇 2025-10-20 16:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信