[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

1, CP_EX_PLAN_READ

可以通过函数 CP_EX_PLAN_READ对PP模块中的routing进行展开。

SE37,展开的结果放在各个Table参数中。

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

2, 前台操作

前台可以通过tcode:CA03来查看routing的展开

输入物料,工厂,销售订单和行项目后回车,

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

3, 例子代码

下面这个例子将2中的工厂 8800,物料SMA50620100,销售订单690000090行项目100的对应的routing展开。

简单逻辑:

1,从MAPL中取得routing对应的group和group counter

2,调用函数CP_EX_PLAN_READ展开

其中,

task list type:

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

status:04是release

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

Task list usage:

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

REPORT ztest_explode_routing. 
DATA:git_plpo_exp LIKE STANDARD TABLE OF coplpo, 
gwa_plpo_exp LIKE LINE OF git_plpo_exp, 
git_plko_exp LIKE STANDARD TABLE OF plko, 
gwa_plko_exp LIKE LINE OF git_plko_exp, 
git_plmk_exp LIKE STANDARD TABLE OF plmkb, 
gwa_plmk_exp LIKE LINE OF git_plmk_exp, 
git_plmz_exp LIKE STANDARD TABLE OF plmz, 
gwa_plmz_exp LIKE LINE OF git_plmz_exp, 
git_plfh_exp TYPE STANDARD TABLE OF plfh, 
gwa_plfh_exp TYPE plfh, 
git_plas_exp TYPE STANDARD TABLE OF plas, 
gwa_plas_exp TYPE plas. 
DATA:g_plnnr TYPE mapl-plnnr, "Group 
g_plnal TYPE mapl-plnal, "Group Counter 
g_vbeln TYPE vbap-vbeln, "Sales Order 
g_posnr TYPE vbap-posnr, "Item 
g_werks TYPE vbap-werks. 
* explode material routing 
g_vbeln = '0690000090'. 
g_posnr = '000100'. 
g_werks = '8800'. 
SELECT SINGLE mapl~plnnr  "Group 
mapl~plnal  "Group Counter 
FROM mapl 
INNER JOIN plko ON mapl~plnty = plko~plnty 
AND mapl~plnnr = plko~plnnr 
AND mapl~plnal = plko~plnal 
AND mapl~zaehl = plko~zaehl 
AND mapl~werks = plko~werks 
INTO ( g_plnnr, g_plnal ) 
WHERE mapl~plnty = 'N'  "Task List Type 
AND mapl~werks = g_werks 
AND mapl~matnr = 'SMA50620100' 
AND mapl~datuv <=  sy-datum 
AND mapl~loekz = '' 
AND mapl~vbeln = g_vbeln "SO copy from 
AND mapl~posnr = g_posnr "Item copy from 
AND plko~loekz = '' 
AND plko~verwe = '1'  "Task list usage 
AND plko~statu = '4'  "release routing 
  . 
CALL FUNCTION 'CP_EX_PLAN_READ' 
EXPORTING 
*   CMODE_IMP     = 'R' 
plnty_imp     = 'N'      "N:routing 
plnnr_imp     = g_plnnr  "Group 
plnal_imp     = g_plnal  "Group Counter 
sttag_imp     = sy-datum 
*   CHECK_IMP     = abap_true 
*   cuobj_imp     = i_cuobj  "Configuration 
*   PARNT_IMP     = ' ' 
*   FCAPO_IMP     = ' ' 
*   TCA11_IMP     = ' ' 
*   FLG_VAL_REC_IMP                      = ' ' 
*   STLNR_IMP     = 
*   I_PLAS_KEY_TAB                       = 
*   PRODCOST      = ' ' 
*   I_BUSINESS_OBJECT                    = 
*   I_FLG_CHARACTERISTICS_PLANNING       = ' ' 
*   I_EDGNO       = 
vbeln_imp     = g_vbeln  "Sales Order 
posnr_imp     = g_posnr  "Item 
*   LOSGR_IMP     = 1 
i_plant       = g_werks 
*   I_FLG_CALLED_F_MRP                   = ' ' 
*   IMPORTING 
*   RES_APPR_CHK_EXP                     = 
*   ERROR_EXP     = 
*   E_MAPL        = 
*   PI_SET_USED   = 
TABLES 
*   MLST_EXP      = 
*   PLAB_EXP      = 
plas_exp      = git_plas_exp 
plfh_exp      = git_plfh_exp 
*   PLFL_EXP      = 
*   PLFT_EXP      = 
*   PLFV_EXP      = 
plko_exp      = git_plko_exp 
plmz_exp      = git_plmz_exp 
plpo_exp      = git_plpo_exp 
*   PLTX_EXP      = 
*   AENNR_EXP     = 
plmk_exp      = git_plmk_exp 
*   PLMW_EXP      = 
EXCEPTIONS 
not_found     = 1 
plnal_initial = 2 
OTHERS        = 3. 
IF sy-subrc = 0. 
WRITE: 'Routing exploded successfully'. 
ENDIF.

4, 测试

运行代码,加断点debug测试,可以发现展开的结果保存在函数返回内表中。

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

以组件分配(Allocation)为例,组件分配保存在内表git_plmz_exp中,

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

在CA03中也可以看到组件分配情况,与内表中内容一致。

[函数]routing展开-[CP_EX_PLAN_READ]详解编程语言

以上。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19277.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论