检验计划的创建 QP01

BAPI_INSPECTIONPLAN_CREATE

该函数主要用于检验的创建,对应于事物代码为QP01。

 

 

使用背景:在项目中是根据用户需求在导入物料主数据时判断需要导入质量视图且检验类型为‘01‘并且物料合并已激活为‘X‘,MAPL中该物料对于工厂下不含有Q任务类型数据时同时导入检验计划。

使用说明:的L_FLAG时判断检验计划是否导入成功然后为前台传输消息。

      SELECT SINGLE
        MATNR
        WERKS
        PLNTY
        
FROM MAPL
        
INTO LS_MAPL
        
WHERE MATNR GS_ZMATERIELI-MATNR
         
AND WERKS GS_ZMATERIELI-WERKS
         
AND PLNTY 'Q'
         AND LOEKZ SPACE.

IF GS_ZMATERIELH-QUALITY_VIEW 'X' AND GS_ZMATERIELI-ART '01' AND GS_ZMATERIELI-AKTIV 'X' AND LS_MAPL IS INITIAL.

        CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'"单位转换
          EXPORTING
            INPUT                GS_ZMATERIELI-MEINS
*          LANGUAGE             = SY-LANGU
         IMPORTING
           OUTPUT               GS_ZMATERIELI-MEINS
         
EXCEPTIONS
           UNIT_NOT_FOUND       1
           OTHERS               2
                  .
        IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.

        " CREATE_BAPI 中的物料任务清单用于检验计划
*        CLEAR IT_MATERIALTASKALLOCATION[].
        IT_MATERIALTASKALLOCATION-MATERIAL GS_ZMATERIELI-MATNR.  物料编码
        IT_MATERIALTASKALLOCATION-PLANT GS_ZMATERIELI-WERKS.     工厂
        IT_MATERIALTASKALLOCATION-VALID_FROM SY-DATUM.    有效起始日期
        APPEND IT_MATERIALTASKALLOCATION.

        " CREATE-BAPI 中的任务清单抬头数据用于检验计划
*        CLEAR IT_TASK[].
        IT_TASK-VALID_FROM '20180101'.              有效起始日期
*      IT_TASK-DESCRIPTION = F_MAKTG.              " 物料描述
        IT_TASK-TASK_LIST_USAGE '5'.              用途
        IT_TASK-TASK_LIST_STATUS '4'.             状态
        IT_TASK-LOT_SIZE_FROM '0'.                从批量
        IT_TASK-LOT_SIZE_TO '9999999999'.         到批量
        IT_TASK-PLANNING_WORK_CENTER ''.          计划员组
        IT_TASK-PLANT GS_ZMATERIELI-WERKS.               工厂
        IT_TASK-TASK_MEASURE_UNIT GS_ZMATERIELI-MEINS.        单位
        IT_TASK-DYN_MODIF_LEVEL '0'.
        APPEND IT_TASK.

        " CREATE-BAPI 中的工序用于检验批
*        CLEAR IT_OPERATION[].
        IT_OPERATION-VALID_FROM '20180101'.                    有效起始日期
        IT_OPERATION-ACTIVITY '1'.                           操作/活动编号
        IT_OPERATION-PLANT GS_ZMATERIELI-WERKS.                     工厂
        IT_OPERATION-CONTROL_KEY 'QM01'.                     控制码
        IT_OPERATION-WORK_CNTR =  ''.                          工作中心
        IT_OPERATION-STANDARD_TEXT_KEY ''.                   标准文本码
        IT_OPERATION-DESCRIPTION '质量检验'.                   工序短文本
        IT_OPERATION-OPERATION_MEASURE_UNIT GS_ZMATERIELI-MEINS .        作业/工序的计量单位
        IT_OPERATION-DENOMINATOR  '1'.                       用于转换工艺路线和工序单位的分母
        IT_OPERATION-NOMINATOR    '1'.                       用于转换任务清单和工序计量单位的计数器
        IT_OPERATION-BASE_QUANTITY '1.000'.                  基本数量
        APPEND IT_OPERATION.

        检验计划 CREATE-BAPI 中的检验特性
*        CLEAR IT_INSPCHARACTERISTIC[].
        IT_INSPCHARACTERISTIC-ACTIVITY '1'.                       操作/活动编号
        IT_INSPCHARACTERISTIC-INSPCHAR '0010'.                    检验特性编号
        IT_INSPCHARACTERISTIC-VALID_FROM  '20180101'.               有效起始日期
        IT_INSPCHARACTERISTIC-MSTR_CHAR =  'M0000001'.               主文件检验特性
        IT_INSPCHARACTERISTIC-PMSTR_CHAR GS_ZMATERIELI-WERKS.            工厂

        IT_INSPCHARACTERISTIC-SMPL_PROCEDURE 'G01'.   检验特性中的采样程序

        IT_INSPCHARACTERISTIC-SMPL_UNIT GS_ZMATERIELI-MEINS.                  采样计量单位
        IT_INSPCHARACTERISTIC-SMPL_QUANT '1.00'.                  采样的采样数量因子(多重采样计量单位)
        IT_INSPCHARACTERISTIC-CHA_MASTER_IMPORT_MODUS 'C'.        参考主文件检验特性的方式
        APPEND IT_INSPCHARACTERISTIC.

        DATAL_FLAG TYPE CHAR1 .
        CLEAR L_FLAG .

        IF IT_MATERIALTASKALLOCATION IS NOT INITIAL.
          CALL FUNCTION 'BAPI_INSPECTIONPLAN_CREATE' "创建检验计划
*     EXPORTING
*       TESTRUN                      = ' '
*       PROFILE                      =
           IMPORTING
             GROUP                        =  G_GROUP
             GROUPCOUNTER                 
=  G_GROUPCOUNTER
            
TABLES
             TASK                         IT_TASK
             MATERIALTASKALLOCATION       
IT_MATERIALTASKALLOCATION
             OPERATION                    
IT_OPERATION
*       REFERENCEOPERATION           =
*       PRODUCTIONRESOURCE           =
             INSPCHARACTERISTIC           IT_INSPCHARACTERISTIC
*       TEXTALLOCATION               =
*       TEXT                         =
             RETURN                       IT_RETURN
*       INSP_CHAR_VALUES             =
                    .

          判断程序是否成功
          READ TABLE IT_RETURN INDEX 1.
          DESCRIBE TABLE IT_RETURN.
          IF IT_RETURN-TYPE EQ 'S' AND SY-TFILL EQ 1.

            LS_RESULT-ZLOGTYPE '02'.
            LS_RESULT-TYPE 'S'.
            LS_RESULT-MESSAGE '02:检验计划创建成功'.
            APPEND LS_RESULT TO OT_RESULT.
            CLEAR LS_RESULT.

            如果程序没有发生错误则进行提交
            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
              EXPORTING
                WAIT 'X'."
            创建成功后更新输出内表的值


            L_FLAG 'S'." ADD BY HANDLXY 20180507

          ELSE.

            L_FLAG 'E'" ADD BY HANDLXY 20180507

            DATATEXT TYPE STRING.
            LOOP AT IT_RETURN WHERE TYPE 'E'.
              CONCATENATE TEXT IT_RETURN-MESSAGE INTO TEXT.
            ENDLOOP.
*        WA_LOG-ZTEXT = '创建失败!' + TEXT.
*        APPEND WA_LOG TO IT_LOG.
            LS_RESULT-ZLOGTYPE '03'.
            LS_RESULT-TYPE 'E'.
            CONCATENATE '03:' TEXT INTO LS_RESULT-MESSAGE.
            APPEND LS_RESULT TO OT_RESULT.
            CLEAR LS_RESULT.
            ROLLBACK WORK.
          ENDIF.
          CLEARIT_TASKIT_MATERIALTASKALLOCATIONIT_OPERATIONIT_INSPCHARACTERISTICIT_RETURN.
          CLEARIT_TASK[]IT_MATERIALTASKALLOCATION[]IT_OPERATION[]IT_INSPCHARACTERISTIC[]IT_RETURN[].
          CLEARG_GROUP,G_GROUPCOUNTER.
        ENDIF.
      ENDIF.

猜你喜欢

转载自blog.csdn.net/z_x_xing_/article/details/90172812
今日推荐