SAP CA01: BAPI Create Routing

SAP CA01: 使用BAPI创建工艺路线
该博客详细介绍了如何在SAP系统中通过BAPI Routing Create创建工艺路线。涉及了操作、子操作、任务和材料分配等关键步骤,并进行了错误处理。
部署运行你感兴趣的模型镜像
LOOP AT T_DATA.
    W_LOOP1 SY-TABIX.
    MOVE-CORRESPONDING T_DATA TO T_TMP.
    CLEAR GROUP.

    MOVE T_DATA TO GT_DATA.
    MOVE-CORRESPONDING T_DATA TO T_DATA_CHK.
    APPEND T_DATA_CHK.
    L_COUNT L_COUNT + 1.
    APPEND GT_DATA.
    SORT T_MAPL BY MATNR WERKS.
    SY-TABIX W_LOOP1.
    CLEAR: OPERATION.
    IF T_TMP-SUB_ACTIVITY  ''.
      OPERATION-ACTIVITY T_TMP-ACTIVITY.              "Operation
      OPERATION-CONTROL_KEY 'PP01' .                   "Control key
      OPERATION-WORK_CNTR T_TMP-WORK_CNTR.            "Work center
      OPERATION-DESCRIPTION T_TMP-DESCRIPTION.        "Description
      IF T_DATA-PRD_PLANT <> ''.
        OPERATION-PLANT T_TMP-PRD_PLANT.
      ELSE.
        OPERATION-PLANT T_TMP-PLANT.     "Plant
      ENDIF.
      OPERATION-DENOMINATOR 1.   "
      OPERATION-NOMINATOR 1.    "
      OPERATION-BASE_QUANTITY T_TMP-BASE_QUANTITY.   "Base Qty

      OPERATION-STD_VALUE_01 T_TMP-STD_VALUE_01.     "Setup Time
      OPERATION-STD_UNIT_01 'MIN'.
      OPERATION-STD_VALUE_02 T_TMP-STD_VALUE_02.     "Machine
      OPERATION-STD_UNIT_02 'MIN'.
      OPERATION-STD_VALUE_03 T_TMP-STD_VALUE_03.     "Labor
      OPERATION-STD_UNIT_03 'MIN'.
      OPERATION-NO_OF_EMPLOYEE GT_DATA-NO_OF_EMPLOYEE.    "Add by Lisa wong 12/04/2012
      IF T_DATA-MAX_NO_OF_SPLITS <> 0.
        OPERATION-IND_SPLITTING_REQRD 'X'.                             "No. of split
        OPERATION-MAX_NO_OF_SPLITS T_TMP-MAX_NO_OF_SPLITS.
      ENDIF.
      IF GT_DATA-REQUIRED_OVERLAPPING 'X'.
        OPERATION-REQUIRED_OVERLAPPING  GT_DATA-REQUIRED_OVERLAPPING.    "Overlap
*      OPERATION-MIN_OVERLAP_TIME      = GT_DATA-MIN_OVERLAP_TIME.
*      OPERATION-MIN_OVERLAP_TIME_UNIT = GT_DATA-MIN_OVERLAP_TIME_UNIT.
        OPERATION-MIN_SEND_AHEAD_QTY    GT_DATA-MIN_SEND_AHEAD_QTY.
      ENDIF.
      OPERATION-STANDARD_QUEUE_TIME GT_DATA-STANDARD_QUEUE_TIME.
      OPERATION-STANDARD_QUEUE_TIME_UNIT GT_DATA-STANDARD_QUEUE_TIME_UNIT.

      OPERATION-REQUIRED_WAIT_TIME =  GT_DATA-REQUIRED_WAIT_TIME.
      OPERATION-REQUIRED_WAIT_TIME_UNIT GT_DATA-REQUIRED_WAIT_TIME_UNIT.
      OPERATION-COST_RELEVANT 'X'.

      APPEND OPERATION.
    ELSE.
      CLEAR SUBOPERATION.
*      MOVE-CORRESPONDING T_TMP TO SUBOPERATION.
*      SUBOPERATION-SUB_operation_id = T_TMP-SUB_OPERATION_ID.

      SUBOPERATION-DESCRIPTION T_TMP-DESCRIPTION.        "Description
      IF T_DATA-PRD_PLANT <> ''.
        SUBOPERATION-PLANT T_TMP-PRD_PLANT.
      ELSE.
        SUBOPERATION-PLANT T_TMP-PLANT.     "Plant
      ENDIF.
      SUBOPERATION-ACTIVITY T_TMP-ACTIVITY.
      SUBOPERATION-SUB_ACTIVITY T_TMP-SUB_ACTIVITY.
      SUBOPERATION-WORK_CNTR T_TMP-WORK_CNTR.
      SUBOPERATION-CONTROL_KEY 'PP01' .
      SUBOPERATION-DENOMINATOR 1.   "
      SUBOPERATION-NOMINATOR 1.    "
      SUBOPERATION-BASE_QUANTITY T_TMP-BASE_QUANTITY.   "Base Qty
      SUBOPERATION-STD_VALUE_01 T_TMP-STD_VALUE_01.     "Setup Time
      SUBOPERATION-STD_UNIT_01 'MIN'.
      SUBOPERATION-STD_VALUE_02 T_TMP-STD_VALUE_02.     "Machine
      SUBOPERATION-STD_UNIT_02 'MIN'.
      SUBOPERATION-STD_VALUE_03 T_TMP-STD_VALUE_03.     "Labor
      SUBOPERATION-STD_UNIT_03 'MIN'.
      SUBOPERATION-NO_OF_EMPLOYEE T_TMP-NO_OF_EMPLOYEE.       "Add by Lisa wong 12/04/2012
      APPEND SUBOPERATION.
    ENDIF.
    AT END OF GROUP_COUNTER. " GROUP_COUNTER.
      CLEAR TASK.
      PERFORM  CHECK_PLNNR.
      READ TABLE T_MAPL WITH KEY MATNR =  T_TMP-MATERIAL WERKS T_TMP-PLANT.
      IF  SY-SUBRC 0.
        TASK-TASK_LIST_GROUP T_MAPL-PLNNR.
      ENDIF.
      SELECT SINGLE MEINS INTO TASK-TASK_MEASURE_UNIT
      FROM MARA
      WHERE MATNR GT_DATA-MATERIAL.
      TASK-TASK_LIST_USAGE '1'.  "Usage
      TASK-PLANT GT_DATA-PLANT.
      TASK-TASK_LIST_STATUS '4'.  "Status
      TASK-LOT_SIZE_TO 99999999.
      TASK-DESCRIPTION GT_DATA-DESCRIPTION1.
      TASK-VALID_FROM P_DATE.       "Valid from date
      APPEND TASK.
      MATERIAL-MATERIAL GT_DATA-MATERIAL.
      MATERIAL-PLANT GT_DATA-PLANT.
      APPEND MATERIAL.
      GROUP_COUNTER T_DATA-GROUP_COUNTER.
*      LOOP AT OPERATION.
*        L_LOOP = SY-TABIX.
*        READ TABLE SUBOPERATION WITH KEY ACTIVITY = OPERATION-ACTIVITY BINARY SEARCH.
*        IF SY-SUBRC = 0.
*          CLEAR: OPERATION-STD_VALUE_01,OPERATION-STD_VALUE_02,OPERATION-STD_VALUE_03,
*          OPERATION-STD_UNIT_01,OPERATION-STD_UNIT_02,OPERATION-STD_UNIT_03.
*          MODIFY OPERATION INDEX L_LOOP.
*        ENDIF.
*        SY-TABIX = L_LOOP.
*      ENDLOOP.

      CALL FUNCTION 'BAPI_ROUTING_CREATE'
        IMPORTING
          GROUP                  GROUP
          GROUPCOUNTER           T_DATA-GROUP_COUNTER
        TABLES
          TASK                   TASK
          MATERIALTASKALLOCATION MATERIAL
*         SEQUENCE               = SEQUENCE
          OPERATION              OPERATION
          SUBOPERATION           SUBOPERATION
          RETURN                 RETURN.
      READ TABLE RETURN WITH KEY TYPE 'E'.
      IF SY-SUBRC 0.
        W_FAIL W_FAIL + L_COUNT.
        LOOP AT RETURN.
          IF RETURN-TYPE 'E' OR RETURN-TYPE 'A'.
            CONCATENATE RETURN-FIELD RETURN-MESSAGE INTO L_MESSAGE.
          ENDIF.
        ENDLOOP.
        LOOP AT T_DATA_CHK.
          MOVE-CORRESPONDING T_DATA_CHK TO T_DATA_ERR.
          CLEAR T_DATA_ERR-UNITKEY.
          T_DATA_ERR-ERR_MSG L_MESSAGE..
          APPEND T_DATA_ERR.
        ENDLOOP.
      ELSE.
        W_OK W_OK + L_COUNT.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
      ENDIF.
      CLEAR L_COUNT.
      REFRESH TASK.
      REFRESH GT_DATA.
      REFRESH MATERIAL.
      REFRESH OPERATION.
      REFRESH SUBOPERATION.
      REFRESH SEQUENCE.
      REFRESH: T_MAPL,T_DATA_CHK.

    ENDAT.
    SY-TABIX W_LOOP1.
  ENDLOOP.

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值