使用CPCC_S_TASK_LIST_MAINTAINS对工艺路线组件进行批量分配

最近有个需求需要使用这个BAPI写个批导程序,但是网上对这方面的内容少之又少,鼓捣了很久走了很多弯路才搞好,现分享给大家。

DATA: lt_return TYPE TABLE OF bapiret2,
      lt_comp   TYPE TABLE OF cps_task_list_maint_com,
      ls_comp   TYPE cps_task_list_maint_com,
      lt_compx  TYPE TABLE OF cps_task_list_maint_com_x,
      ls_compx  TYPE cps_task_list_maint_com_x.

CONSTANTS:gc_con TYPE c VALUE 'X'.

ls_comp-maintain_mode = 'C'.                "操作模式:C:创建,M:修改,D:删除   PS:如未分配(PLMZ表没数据)则选择C模式
ls_comp-flag_bar_pointer = '0000000001'.    "操作模式序号,如不分配则报错
ls_comp-activity = '0010'.                  "操作/活动编号
ls_comp-activity_old = '0010'.              "旧操作/活动编号  PS:如果是M模式则需要获取原编号,否则报错
ls_comp-sequence_no = '000000'.             "排序号
ls_comp-sequence_no_old = '000000'.         "旧排序号
ls_comp-item_id = '00000003'.               "项目ID
ls_comp-bom_type = 'M'.                     "BOM类型
ls_comp-bom_no = '00000359'.                "物料清单
ls_comp-alternative_bom = '01'.             "备选物料清单
ls_comp-bom_type_root = 'M'.                "父件BOM类型
ls_comp-bom_no_root = '00000359'.           "父件物料清单
ls_comp-alternative_bom_root = '01'.        "父件备选物料清单
ls_comp-item_no = '0030'.                   "BOM项目号
ls_comp-material = 'M0305020478'.           "父件BOM的物料号
ls_comp-plant = '2000'.                     "工厂
ls_comp-order_lvl = '01'.                   "层次,仅虚拟件使用;如果有多层,建议通过BAPI:CS_BOM_EXPL_MAT_V2获取
ls_comp-order_path = '01'.                  "路径,仅虚拟件使用;如果有多层,建议通过BAPI:CS_BOM_EXPL_MAT_V2获取
APPEND ls_comp TO lt_comp.
CLEAR ls_comp.

ls_comp-maintain_mode = 'C'.                "操作模式:C:创建,M:修改,D:删除   PS:如未分配(PLMZ表没数据)则选择C模式
ls_comp-flag_bar_pointer = '0000000002'.    "操作模式序号,如不分配则报错
ls_comp-activity = '0010'.                  "操作/活动编号
ls_comp-activity_old = '0010'.              "旧操作/活动编号  PS:如果是M模式则需要获取原编号,否则报错
ls_comp-sequence_no = '000000'.             "排序号
ls_comp-sequence_no_old = '000000'.         "旧排序号
ls_comp-item_id = '00000001'.               "项目ID
ls_comp-bom_type = 'M'.                     "BOM类型
ls_comp-bom_no = '00000357'.                "物料清单
ls_comp-alternative_bom = '01'.             "备选物料清单
ls_comp-bom_type_root = 'M'.                "父件BOM类型
ls_comp-bom_no_root = '00000359'.           "父件物料清单
ls_comp-alternative_bom_root = '01'.        "父件备选物料清单
ls_comp-item_no = '0010'.                   "BOM项目号
ls_comp-material = 'M0299010001'.           "父件BOM的物料号
ls_comp-plant = '2000'.                     "工厂
ls_comp-order_lvl = '01'.                   "层次,仅虚拟件使用;如果有多层,建议通过BAPI:CS_BOM_EXPL_MAT_V2获取
ls_comp-order_path = '01'.                  "路径,仅虚拟件使用;如果有多层,建议通过BAPI:CS_BOM_EXPL_MAT_V2获取
APPEND ls_comp TO lt_comp.
CLEAR ls_comp.

ls_compx-activity = gc_con.
ls_compx-plant = gc_con.
ls_compx-sequence_no = gc_con.
ls_compx-bom_type_root = gc_con.
ls_compx-bom_no_root = gc_con.
ls_compx-alternative_bom_root = gc_con.
ls_compx-order_lvl = gc_con.
ls_compx-order_path = gc_con.
ls_compx-plant = gc_con.
ls_comp-material = gc_con.
APPEND ls_compx TO lt_compx.
CLEAR ls_compx.

ls_compx-activity = gc_con.
ls_compx-plant = gc_con.
ls_compx-sequence_no = gc_con.
ls_compx-bom_type_root = gc_con.
ls_compx-bom_no_root = gc_con.
ls_compx-alternative_bom_root = gc_con.
ls_compx-order_lvl = gc_con.
ls_compx-order_path = gc_con.
ls_compx-plant = gc_con.
ls_comp-material = gc_con.
APPEND ls_compx TO lt_compx.
CLEAR ls_compx.

CALL FUNCTION 'CPCC_S_TASK_LIST_MAINTAIN'
  EXPORTING
    key_date                = sy-datum
    task_list_type          = 'N'  "任务清单类型 PLMZ-PLNTY
    task_list_group         = '50000290'  "组 PLMZ-PLNNR
    group_counter           = '02'  "组计数器 PLMZ-PLNAL
   "task_maintain_mode      = 'M'   "表头task结构操作模式
    application             = 'PP01'
    bom_usage               = '1'
    material                = 'M0305020478'  "工艺路线父项物料号
    plant                   = '2000'  "工厂
  TABLES
    component_allocations   = lt_comp
    component_allocations_x = lt_compx
    return                  = lt_return.

PS:通过BAPI:CS_BOM_EXPL_MAT_V2获取层次及路径字段时,需要给传入参数AUFSW = ‘X’ 才会有值

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值