EWB delete routing
作者:互联网
FORM delete_routing_ewb USING f_plnty TYPE plko-plnty
f_plnnr TYPE plko-plnnr
f_plnal TYPE plko-plnal
f_matnr TYPE mapl-matnr
f_werks TYPE mapl-werks.
TYPE-POOLS: cpsc, czcl.
DATA: f_classes_in_workarea LIKE classes_in_workarea.
DATA: f_tsk_plnty_selection TYPE cpsc_plnty_type.
DATA: f_tsk_plnnr_selection TYPE cpsc_plnnr_type.
DATA: f_tsk_plnal_selection TYPE cpsc_plnal_type.
DATA: f_tsk_selection TYPE cpsc_tsk_sel_type.
DATA: f_tsk_ident TYPE cpcl_tsk_ident_type.
DATA: f_mtk_ident TYPE czcl_mtk_type.
* objects for loading
f_classes_in_workarea-mtk_inarea = 'X'.
f_classes_in_workarea-tsk_inarea = 'X'.
f_classes_in_workarea-seq_inarea = 'X'.
f_classes_in_workarea-opr_inarea = 'X'.
f_classes_in_workarea-suo_inarea = 'X'.
f_classes_in_workarea-prt_inarea = 'X'.
f_classes_in_workarea-com_inarea = 'X'.
f_classes_in_workarea-itm_inarea = 'X'.
f_classes_in_workarea-bom_inarea = 'X'.
* fill selection conditions
CONCATENATE 'I' 'EQ' f_plnty INTO f_tsk_plnty_selection.
APPEND f_tsk_plnty_selection TO f_tsk_selection-plnty.
CONCATENATE 'I' 'EQ' f_plnnr INTO f_tsk_plnnr_selection.
APPEND f_tsk_plnnr_selection TO f_tsk_selection-plnnr.
CONCATENATE 'I' 'EQ' f_plnal INTO f_tsk_plnal_selection.
APPEND f_tsk_plnal_selection TO f_tsk_selection-plnal.
* load objects into EWB
CALL FUNCTION 'CP_CC_S_LOAD_COMPLEX_BY_TSK'
EXPORTING
i_class = 'P'
i_classes_in_workarea = f_classes_in_workarea
i_cpsc_tsk_sel = f_tsk_selection
i_date_from = sy-datum
i_date_to = sy-datum
EXCEPTIONS
workarea_not_found = 1
workarea_wrong_type = 2
class_in_workarea_inconsistent = 3
workarea_not_specified = 4
opr_not_found = 5
no_selection_criteria = 6
invalid_selection_period = 7
key_date_required_for_ecm = 8
OTHERS = 9.
IF sy-subrc EQ 0.
"prepare ident for material task allocation
f_mtk_ident-mandt = sy-mandt.
f_mtk_ident-plnty = f_plnty.
f_mtk_ident-plnnr = f_plnnr.
f_mtk_ident-plnal = f_plnal.
f_mtk_ident-zkriz = f_plnal.
f_mtk_ident-matnr = f_matnr.
f_mtk_ident-werks = f_werks.
* f_mtk_ident-vbeln = f_vbeln.
* f_mtk_ident-posnr = f_posnr.
* f_mtk_ident-matnr_ext = .
"delete material-task allocation MAPL-LOEKZ
CALL FUNCTION 'CP_CC_S_DELETE_BY_MTK'
EXPORTING
* I_ECN_S = I_ECN_S
i_key_date_s = sy-datum
i_mtk_ident = f_mtk_ident
* IMPORTING
* E_TSK_LOCK = E_TSK_LOCK
* E_ECM_DATA_ERROR_TYPE = E_ECM_DATA_ERROR_TYPE
* E_OPR_LOCK = E_OPR_LOCK
EXCEPTIONS
no_authority = 1
no_authority_for_material = 2
no_valid_allocation = 3
no_key_date = 4
task_not_locked = 5
path_incomplete = 6
ecm_data_not_suitable = 7
no_authority_for_qm = 8
opr_not_locked = 9
OTHERS = 10.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
"prepare Task ident for deletion
f_tsk_ident-mandt = sy-mandt.
f_tsk_ident-plnty = f_plnty.
f_tsk_ident-plnnr = f_plnnr.
f_tsk_ident-plnal = f_plnal.
"delete routing (PLKO-LOEKZ)
CALL FUNCTION 'CP_CC_S_DELETE_BY_TSK'
EXPORTING
* I_ECN_S = I_ECN_S
i_key_date_s = sy-datum
i_tsk_ident = f_tsk_ident
* I_FLG_ECM_FILTER = ' '
* IMPORTING
* E_TSK_LOCK = E_TSK_LOCK
* E_ECM_DATA_ERROR_TYPE = E_ECM_DATA_ERROR_TYPE
EXCEPTIONS
no_authority = 1
no_valid_task = 2
no_key_date = 3
task_not_locked = 4
path_incomplete = 5
ecm_data_not_suitable = 6
reference_set_is_in_use = 7
OTHERS = 8.
IF sy-subrc EQ 0.
"save changes
CALL FUNCTION 'CP_CC_S_SAVE'
EXCEPTIONS
error_at_save = 1
OTHERS = 2.
IF sy-subrc EQ 0.
COMMIT WORK AND WAIT.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDIF.
ENDIF.
"dequeue Task
CALL FUNCTION 'CP_CL_TSK_UNLOCK'
EXPORTING
* MODE_TSK_CLASS_LOCK = 'E'
* MANDT = SY-MANDT
plnty = 'N'
plnnr = f_plnnr
plnal = f_plnal
* X_PLNTY = ' '
* X_PLNNR = ' '
* X_PLNAL = ' '
_synchron = 'X'
* _COLLECT = ' '
* IMPORTING
* E_NAME = E_NAME
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc EQ 0.
ENDIF.
ENDFORM. "delete_routing_ewb
标签:ident,plnal,tsk,EWB,selection,routing,TYPE,workarea,delete 来源: https://blog.csdn.net/champaignwolf/article/details/98845163