[函数]routing展开-[CP_EX_PLAN_READ]

1, CP_EX_PLAN_READ

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

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

<img class="alignnone size-full wp-image-5592" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-21-36.png" alt="" width="741" height="529" srcset="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-21-36.png 741w, http://www.baidusap.com/wp-content/uploads/2017-11-10_15-21-36-740x528.png 740w" sizes="(max-width: 741px) 100vw, 741px" />

2, 前台操作

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

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

<img class="alignnone size-full wp-image-5593" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-14-29.png" alt="" width="556" height="355" />

<img class="alignnone size-full wp-image-5594" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-26-12.png" alt="" width="672" height="311" />

3, 例子代码

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

简单逻辑:

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

2,调用函数CP_EX_PLAN_READ展开

其中,

task list type:

<img class="alignnone size-full wp-image-5595" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-11-52.png" alt="" width="323" height="448" />

status:04是release

<img class="alignnone size-full wp-image-5596" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-08-21.png" alt="" width="400" height="273" />

Task list usage:

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测试,可以发现展开的结果保存在函数返回内表中。

&amp;lt;img class="alignnone size-full wp-image-5598" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-14-03.png" alt="" width="1110" height="488" srcset="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-14-03.png 1110w, http://www.baidusap.com/wp-content/uploads/2017-11-10_15-14-03-740x325.png 740w, http://www.baidusap.com/wp-content/uploads/2017-11-10_15-14-03-768x338.png 768w, http://www.baidusap.com/wp-content/uploads/2017-11-10_15-14-03-1024x450.png 1024w" sizes="(max-width: 1110px) 100vw, 1110px" /&amp;gt;

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

&amp;lt;img class="alignnone size-full wp-image-5599" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-15-23.png" alt="" width="724" height="424" /&amp;gt;

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

&amp;lt;img class="alignnone size-full wp-image-5600" src="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-15-44.png" alt="" width="751" height="390" srcset="http://www.baidusap.com/wp-content/uploads/2017-11-10_15-15-44.png 751w, http://www.baidusap.com/wp-content/uploads/2017-11-10_15-15-44-740x384.png 740w" sizes="(max-width: 751px) 100vw, 751px" /&amp;gt;

以上。

转载于:https://www.cnblogs.com/datie/p/11433560.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值