工艺路线导入程序(感谢依风提供)

**&---------------------------------------------------------*
**& Author            :                          *
**& Create date       : 2007/04/03                          *
**& Program type      : Report                              *
**& Report name       : ZPPPR_ROUTING_INPUT                 *
**& Description       : ROUTING_INPUT                       *
**& FINISH ON         :                                     *
**& TRANSPROT REQUEST :                                     *
**&---------------------------------------------------------*
REPORT  zpppr_routing_input MESSAGE-ID zmc95
       NO STANDARD PAGE HEADING  "输出的报表不使用标准的页标题
       LINE-SIZE 500.            "输出的报表每页的字符宽度.
*---->define table->bapi
DATA:   group               TYPE bapi1012_tsk_c-task_list_group,
        group_counter       TYPE bapi1012_tsk_c-group_counter,
        sequence_no         TYPE bapi1012_opr_c-sequence_no,
        task_list_usage     TYPE bapi1012_tsk_c-task_list_usage,
        task_list_status    TYPE bapi1012_tsk_c-task_list_status,
        lot_size_from       TYPE bapi1012_tsk_c-lot_size_from,
        lot_size_to         TYPE bapi1012_tsk_c-lot_size_to,
        task_measure_unit   TYPE bapi1012_tsk_c-task_measure_unit,
        application         TYPE bapi1012_control_data-application,
        testrun             TYPE bapiflag,
        profile             TYPE bapi1012_control_data-profile,
        bomusage            TYPE bapi1012_control_data-bom_usage,
        task                TYPE bapi1012_tsk_c OCCURS 0 WITH HEADER LINE,
        materialtaskallocation TYPE bapi1012_mtk_c OCCURS 0 WITH HEADER LINE,
        sequence            TYPE bapi1012_seq_c   OCCURS 0 WITH HEADER LINE,
        operation           TYPE bapi1012_opr_c   OCCURS 0 WITH HEADER LINE,
        suboperation        TYPE bapi1012_sub_opr_c OCCURS 0 WITH HEADER LINE,
        referenceoperation  TYPE bapi1012_ref_opr_c OCCURS 0 WITH HEADER LINE,
        workcenterreference TYPE bapi1012_wc_ref_opr_c OCCURS 0 WITH HEADER LINE,
        componentallocation TYPE bapi1012_com_c  OCCURS 0 WITH HEADER LINE,
        productionresource  TYPE bapi1012_prt_c  OCCURS 0 WITH HEADER LINE,
        inspcharacteristic  TYPE bapi1012_cha_c  OCCURS 0 WITH HEADER LINE,
        textallocation      TYPE bapi1012_txt_hdr_c OCCURS 0 WITH HEADER LINE,
        text                TYPE bapi1012_txt_c     OCCURS 0 WITH HEADER LINE,
        return              TYPE bapiret2   OCCURS 0 WITH HEADER LINE,
        bapi_retn_info      LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
*---->message table
DATA: BEGIN OF t_error OCCURS 0.
DATA  material LIKE bapi1012_mtk_c-material.
        INCLUDE STRUCTURE bapiret2.
DATA: END OF t_error.
*---->inner table
DATA: BEGIN OF itab1 OCCURS 0 ,
       material      LIKE bapi1012_mtk_c-material,
       plant         LIKE bapi1012_mtk_c-plant,
       description1  LIKE bapi1012_tsk_c-description,
       activity      LIKE bapi1012_opr_c-activity,
       work_cntr     LIKE bapi1012_opr_c-work_cntr,
       control_key   LIKE bapi1012_opr_c-control_key,
       description   LIKE bapi1012_opr_c-description,
       base_quantity LIKE bapi1012_opr_c-base_quantity,
       std_value_01  LIKE bapi1012_opr_c-std_value_01,
       std_value_02  LIKE bapi1012_opr_c-std_value_02,
*       max_no_of_splits     LIKE bapi1012_opr_c-max_no_of_splits,
       FJS(2) TYPE C,
       ind_splitting_reqrd  LIKE bapi1012_opr_c-ind_splitting_reqrd,
       required_overlapping LIKE bapi1012_opr_c-required_overlapping,
       min_send_ahead_qty   LIKE bapi1012_opr_c-min_send_ahead_qty,
       ext_proc_with_subcontract_ind LIKE bapi1012_opr_c-ext_proc_with_subcontract_ind,
       info_rec   LIKE bapi1012_opr_c-info_rec,
       purch_org  LIKE bapi1012_opr_c-purch_org,
       cost_elem  LIKE bapi1012_opr_c-cost_elem,
       COST_RELEVANT like bapi1012_opr_c-COST_RELEVANT,
      END OF itab1.

DATA: BEGIN OF itab OCCURS 0 ,
       material      LIKE bapi1012_mtk_c-material,
       plant         LIKE bapi1012_mtk_c-plant,
       description1  LIKE bapi1012_tsk_c-description,
       activity      LIKE bapi1012_opr_c-activity,
       work_cntr     LIKE bapi1012_opr_c-work_cntr,
       control_key   LIKE bapi1012_opr_c-control_key,
       description   LIKE bapi1012_opr_c-description,
       base_quantity LIKE bapi1012_opr_c-base_quantity,
       std_value_01  LIKE bapi1012_opr_c-std_value_01,
       std_value_02  LIKE bapi1012_opr_c-std_value_02,
       max_no_of_splits     LIKE bapi1012_opr_c-max_no_of_splits,
       ind_splitting_reqrd  LIKE bapi1012_opr_c-ind_splitting_reqrd,
       required_overlapping LIKE bapi1012_opr_c-required_overlapping,
       min_send_ahead_qty   LIKE bapi1012_opr_c-min_send_ahead_qty,
       ext_proc_with_subcontract_ind LIKE bapi1012_opr_c-ext_proc_with_subcontract_ind,
       info_rec   LIKE bapi1012_opr_c-info_rec,
       purch_org  LIKE bapi1012_opr_c-purch_org,
       cost_elem  LIKE bapi1012_opr_c-cost_elem,
      END OF itab.
DATA : gt_itab LIKE itab OCCURS 0 WITH HEADER LINE.
DATA : lv_cancel(1) TYPE c. 
*---->upload
CALL FUNCTION 'UPLOAD'
  EXPORTING
    filename                = 'C:/Documents and Settings/Administrator/Desktop/工艺路线.txt'
    filetype                = 'DAT'
  IMPORTING
    cancel                  = lv_cancel
  TABLES
    data_tab                = itab1
  EXCEPTIONS
    conversion_error        = 1
    invalid_table_width     = 2
    invalid_type            = 3
    no_batch                = 4
    unknown_error           = 5
    gui_refuse_filetransfer = 6
    OTHERS                  = 7.
IF lv_cancel EQ 'X'.
  LEAVE PROGRAM.
ENDIF.

IF sy-subrc <> 0 .
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSEIF sy-subrc = 0.
  SORT itab1 BY  material plant activity.
  LOOP AT ITAB1.
   MOVE-CORRESPONDING ITAB1 TO ITAB.
   CONDENSE ITAB1-FJS NO-GAPS.
   ITAB-max_no_of_splits = ITAB1-FJS.
   APPEND ITAB.
   ENDLOOP.
   SORT ITAB BY MATERIAL PLANT.
  LOOP AT itab.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = itab-material
      IMPORTING
        output = itab-material.
    MOVE itab TO gt_itab.
    APPEND gt_itab.
*-----〉item-sequence
*operation-group_counter = '1'.
    operation-activity = itab-activity.
    operation-control_key = itab-control_key.
    operation-work_cntr = itab-work_cntr.
    operation-description = itab-description.

    operation-plant = itab-plant.
*  operation-operation_measure_unit = 'EA'.
    operation-denominator = 1.
    operation-nominator = 1.
    operation-base_quantity = itab-base_quantity.
    operation-std_value_01 = itab-std_value_01.
    operation-std_value_02 = itab-std_value_02.
    operation-ind_splitting_reqrd = itab-ind_splitting_reqrd." 'X'."分解
    operation-max_no_of_splits = itab-max_no_of_splits."'1'."分解数
    operation-required_overlapping  = itab-required_overlapping."'X'."要求重叠
    operation-min_send_ahead_qty = itab-min_send_ahead_qty."'10'."最小发送数量
    operation-ext_proc_with_subcontract_ind = itab-ext_proc_with_subcontract_ind."'X'.
    operation-info_rec = itab-info_rec.
    operation-purch_org = itab-purch_org.
    operation-cost_elem = itab-cost_elem.
    operation-COST_RELEVANT = 'X'."成本核算标示
    APPEND operation.

    AT END OF material.
*-----〉header
      task-task_list_usage = '1'.
      task-task_list_status = '4'.
**---->unit
      select single MEINS into task-task_measure_unit
             from mara
             where matnr = gt_itab-material.
*      task-task_measure_unit = 'EA'.
      task-description = gt_itab-description1."'TEST ROUTING'.
      task-plant = gt_itab-plant.
      task-valid_from = sy-datum.
      task-valid_to_date = '99991231'.
      APPEND task.

      materialtaskallocation-material = gt_itab-material.
      materialtaskallocation-plant = gt_itab-plant.
      task-valid_from = sy-datum.
      task-valid_to_date = '99991231'.
      APPEND materialtaskallocation.

      CALL FUNCTION 'BAPI_ROUTING_CREATE'
        EXPORTING
          testrun                = testrun
          profile                = profile
          bomusage               = bomusage
          application            = application
        IMPORTING
          group                  = group
          groupcounter           = group_counter
        TABLES
          task                   = task
          materialtaskallocation = materialtaskallocation
          sequence               = sequence
          operation              = operation
          suboperation           = suboperation
          referenceoperation     = referenceoperation
          workcenterreference    = workcenterreference
          componentallocation    = componentallocation
          productionresource     = productionresource
          inspcharacteristic     = inspcharacteristic
          textallocation         = textallocation
          text                   = text
          return                 = return.

      REFRESH task.
      REFRESH GT_ITAB.
      REFRESH materialtaskallocation.
      REFRESH operation.
      LOOP AT return.
        IF return-type EQ 'E' OR return-type EQ 'A'.
          t_error-material = materialtaskallocation-material.
          t_error-message = return-message.
          APPEND t_error.
        ELSE.
          COMMIT WORK.
        ENDIF.
      ENDLOOP.
      LOOP AT t_error.
        WRITE:/ t_error-material,t_error-message.
      ENDLOOP.
    ENDAT.
  ENDLOOP.

ENDIF.

模板

物料 工厂 工艺路线描述 工序号 工作中心 控制码 工序描述 基本数量 标准值 标准值 分解数 所需分解 要求重叠 最小发送数量 外协 信息记录 采购组织 成本要素
3010000001 1200 对些工艺路线的描述 0010 300000 PP01 本工艺的描述1 10 200 200 1 X X 50        
3010000001 1200 对些工艺路线的描述 0020 300001 PP03 本工艺的描述2 20 200 200 1 X X 50        
3010000001 1200 对些工艺路线的描述 0030   PP02 本工艺的描述3 1 200 200 1 X X 50 X 5500000021 1000 5001004000
2010000010 1200 对些工艺路线的描述 0020 300001 PP03 本工艺的描述22 100 130 130 1 X X 50        

原文地址:https://www.cnblogs.com/xiaomaohai/p/6157364.html