[Function] routing unfold - [CP_EX_PLAN_READ]

1, CP_EX_PLAN_READ

Function can be expanded to PP module routing CP_EX_PLAN_READ.

SE37, expand on the results of the various parameters in Table.

2, the front desk operation

Reception can tcode: CA03 to view the routing of expansion

Input materials, the factory, the sales order line item and enter,

3, example code

The following example will be the second plant 8800, material SMA50620100, sales order line item 690 000 090 corresponding routing 100 deployment.

Simple logic:

1, to obtain the corresponding routing group and the group counter from the MAPL

2, call the function expansion CP_EX_PLAN_READ

among them,

task list type:

status: 04 is the release

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

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

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

以上。

Guess you like

Origin www.cnblogs.com/datie/p/11433560.html