Copy Rounting (BAPI:BAPI_ROUTING_CREATE)

Copy Rounting (BAPI:BAPI_ROUTING_CREATE)FORMfrm_uploadUSINGvalue(ps_i_tabindex)LIKEsy-tabixvalue(pc_i_fieldname)TYPEslis_fieldnameCHANGING

大家好,又见面了,我是你们的朋友全栈君。

FORM frm_upload USING value(ps_i_tabindex) LIKE sy-tabix
                                value(pc_i_fieldname) TYPE slis_fieldname
                            CHANGING
                                 value(l_subrc) LIKE sy-subrc
                                 value(l_msgtx) TYPE msgtx.
  CLEAR:l_subrc,l_msgtx,g_lines.

  DATA:
        l_lines         LIKE sy-tabix,
        l_testrun       TYPE bapiflag VALUE space,
        l_group         TYPE  bapi1012_tsk_c-task_list_group,
        l_groupcounter  TYPE  bapi1012_tsk_c-group_counter.

  TYPES:BEGIN OF ty_routing_tbl,
    plnty LIKE ckmlmv001-plnty_nd,
    plnnr LIKE ckmlmv001-plnnr_nd,
    plnal LIKE ckmlmv001-plnal_nd,
  END OF ty_routing_tbl.
  DATA:
        ls_routing_tbl TYPE ty_routing_tbl,
        le_routing_tbl TYPE STANDARD TABLE OF ty_routing_tbl.
  DATA:
        lt_tsk_tab    LIKE STANDARD TABLE OF capp_tsk WITH HEADER LINE,
        lt_seq_tab    LIKE STANDARD TABLE OF capp_seq WITH HEADER LINE,
        lt_opr_tab    LIKE STANDARD TABLE OF capp_opr WITH HEADER LINE,
        lt_phase_tab  LIKE STANDARD TABLE OF capp_opr WITH HEADER LINE,
        lt_subopr_tab	LIKE STANDARD TABLE OF capp_opr WITH HEADER LINE,
        lt_rel_tab    LIKE STANDARD TABLE OF capp_rel WITH HEADER LINE,
        lt_com_tab    LIKE STANDARD TABLE OF capp_com WITH HEADER LINE,
        lt_referr_tab	LIKE STANDARD TABLE OF capp_opr WITH HEADER LINE,
        lt_refmis_tab	LIKE STANDARD TABLE OF capp_opr WITH HEADER LINE,
        lt_it_aenr    LIKE STANDARD TABLE OF aenr WITH HEADER LINE.
  DATA:
        lt_task	                  LIKE STANDARD TABLE OF bapi1012_tsk_c WITH HEADER LINE,
        lt_materialtaskallocation	LIKE STANDARD TABLE OF bapi1012_mtk_c WITH HEADER LINE,
        lt_sequence	              LIKE STANDARD TABLE OF bapi1012_seq_c WITH HEADER LINE,
        lt_operation              LIKE STANDARD TABLE OF bapi1012_opr_c WITH HEADER LINE,
        lt_suboperation	          LIKE STANDARD TABLE OF bapi1012_sub_opr_c WITH HEADER LINE,
        lt_referenceoperation	    LIKE STANDARD TABLE OF bapi1012_ref_opr_c WITH HEADER LINE,
        lt_workcenterreference    LIKE STANDARD TABLE OF bapi1012_wc_ref_opr_c WITH HEADER LINE,
        lt_componentallocation    LIKE STANDARD TABLE OF bapi1012_com_c WITH HEADER LINE,
        lt_productionresource	    LIKE STANDARD TABLE OF bapi1012_prt_c WITH HEADER LINE,
        lt_inspcharacteristic	    LIKE STANDARD TABLE OF bapi1012_cha_c WITH HEADER LINE,
        lt_textallocation	        LIKE STANDARD TABLE OF bapi1012_txt_hdr_c WITH HEADER LINE,
        lt_text	                  LIKE STANDARD TABLE OF bapi1012_txt_c WITH HEADER LINE,
        lt_return	                LIKE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
  DATA:
        ls_return LIKE bapiret2,
        ls_crhd  LIKE crhd.
  FIELD-SYMBOLS:<f_list> LIKE LINE OF gt_list.

  l_lines = lines( gt_list ).

  LOOP AT gt_list ASSIGNING <f_list> WHERE sel = 'X'.
    g_tabix = sy-tabix.

    CALL FUNCTION 'ZFM_SHOW_PROGRESSBAR'
      EXPORTING
        text      = 'Creating Routing...'
        curr_num  = g_tabix
        total_num = l_lines.

    CALL FUNCTION 'CKBA_ROUTING_GET_LIST'
      EXPORTING
        i_matnr       = <f_list>-matnr
        i_werks       = <f_list>-werks
      IMPORTING
        e_routing_tbl = le_routing_tbl
      EXCEPTIONS
        no_values     = 1
        OTHERS        = 2.
    IF sy-subrc <> 0.
      CONTINUE.
    ENDIF.

    LOOP AT le_routing_tbl INTO ls_routing_tbl.
      REFRESH:
      lt_tsk_tab,
      lt_seq_tab,
      lt_opr_tab,
      lt_phase_tab,
      lt_subopr_tab,
      lt_rel_tab,
      lt_com_tab,
      lt_referr_tab,
      lt_refmis_tab,
      lt_it_aenr.

      REFRESH:
      lt_task,
      lt_materialtaskallocation,
      lt_sequence,
      lt_operation,
      lt_suboperation,
      lt_referenceoperation,
      lt_workcenterreference,
      lt_componentallocation,
      lt_productionresource,
      lt_inspcharacteristic,
      lt_textallocation,
      lt_text,
      lt_return.

      CALL FUNCTION 'CARO_ROUTING_READ'
        EXPORTING
          plnty       = ls_routing_tbl-plnty
          plnnr       = ls_routing_tbl-plnnr
          plnal       = ls_routing_tbl-plnal
        TABLES
          tsk_tab     = lt_tsk_tab
          seq_tab     = lt_seq_tab
          opr_tab     = lt_opr_tab
          phase_tab   = lt_phase_tab
          subopr_tab  = lt_subopr_tab
          rel_tab     = lt_rel_tab
          com_tab     = lt_com_tab
          referr_tab  = lt_referr_tab
          refmis_tab  = lt_refmis_tab
          it_aenr     = lt_it_aenr
        EXCEPTIONS
          not_found   = 1
          ref_not_exp = 2
          not_valid   = 3
          OTHERS      = 4.
      IF sy-subrc <> 0.
        CONTINUE.
      ENDIF.

      "Fill Header -  lt_task
      LOOP AT lt_tsk_tab.
        CLEAR lt_task.
        "lt_task-task_list_group   = ''.                 "Key for Task List Group
        lt_task-task_list_usage   = lt_tsk_tab-verwe.   "Task list usage
        lt_task-task_list_status  = lt_tsk_tab-statu.   "Status
        lt_task-task_measure_unit = lt_tsk_tab-plnme.
        lt_task-description       = lt_tsk_tab-ktext.
        lt_task-plant             = lt_tsk_tab-werks.
        lt_task-valid_from        = lt_tsk_tab-datuv.
        lt_task-valid_to_date     = lt_tsk_tab-datub.
        APPEND lt_task.
      ENDLOOP.

      "Fill lt_materialtaskallocation
      CLEAR lt_materialtaskallocation.
      lt_materialtaskallocation-material      = <f_list>-matnr_n.
      lt_materialtaskallocation-plant         = <f_list>-werks.
      lt_materialtaskallocation-valid_from    = lt_tsk_tab-datuv.
      lt_materialtaskallocation-valid_to_date = lt_tsk_tab-datub.
      APPEND lt_materialtaskallocation.

      "Fill lt_operation
      LOOP AT lt_opr_tab.
        CLEAR lt_operation.
        lt_operation-activity       = lt_opr_tab-vornr.   "操作/活动编号/Operation/Activity Number
        lt_operation-control_key    = lt_opr_tab-steus.   "控制码/Control key
        lt_operation-description    = lt_opr_tab-ltxa1.   "工序短文本
        lt_operation-plant          = lt_opr_tab-werks.   "工厂
        lt_operation-denominator    = lt_opr_tab-umren.   "用于转换工艺路线和工序单位的分母
        lt_operation-nominator      = lt_opr_tab-umrez.   "用于转换任务清单和工序计量单位的计数器
        lt_operation-base_quantity  = lt_opr_tab-bmsch.   "基本数量
        lt_operation-acttype_01     = lt_opr_tab-lar01.
        lt_operation-std_unit_01    = lt_opr_tab-vge01.
        lt_operation-std_value_01   = lt_opr_tab-vgw01.
        lt_operation-acttype_02     = lt_opr_tab-lar02.
        lt_operation-std_unit_02    = lt_opr_tab-vge02.
        lt_operation-std_value_02   = lt_opr_tab-vgw02.
        lt_operation-acttype_03     = lt_opr_tab-lar03.
        lt_operation-std_unit_03    = lt_opr_tab-vge03.
        lt_operation-std_value_03   = lt_opr_tab-vgw03.
        lt_operation-valid_from     = lt_opr_tab-datuv.
        lt_operation-valid_to_date  = lt_opr_tab-datub.
        lt_operation-cost_relevant  = lt_opr_tab-ckselkz.

        "Work center
        CLEAR ls_crhd.
        CALL FUNCTION 'CR_WORKSTATION_READ'
          EXPORTING
            id        = lt_opr_tab-arbid
          IMPORTING
            ecrhd     = ls_crhd
          EXCEPTIONS
            not_found = 1
            OTHERS    = 2.
        IF sy-subrc = 0.
          lt_operation-work_cntr = ls_crhd-arbpl. "工作中心
        ENDIF.
        APPEND lt_operation.
      ENDLOOP.

      CALL FUNCTION 'BAPI_ROUTING_CREATE'
        EXPORTING
          testrun                = l_testrun
        IMPORTING
          group                  = l_group
          groupcounter           = l_groupcounter
        TABLES
          task                   = lt_task
          materialtaskallocation = lt_materialtaskallocation
          sequence               = lt_sequence
          operation              = lt_operation
          return                 = lt_return.

      READ TABLE lt_return WITH KEY type = 'E'.
      IF sy-subrc <> 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait   = 'X'
          IMPORTING
            return = ls_return.
        IF ls_return-type = 'E'.

        ENDIF.
        CONCATENATE <f_list>-msgtx l_group '/' l_groupcounter ';' INTO <f_list>-msgtx.
        CONDENSE <f_list>-msgtx NO-GAPS.
        IF <f_list>-icon <> icon_led_red.
          <f_list>-werks_n = <f_list>-werks.
          <f_list>-icon = icon_led_green.
        ENDIF.
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
          IMPORTING
            return = ls_return.
        CONCATENATE <f_list>-msgtx l_group 'Error;' INTO <f_list>-msgtx.
        CONDENSE <f_list>-msgtx NO-GAPS.
        <f_list>-icon = icon_led_red.
      ENDIF.
    ENDLOOP.
  ENDLOOP.

  l_msgtx = 'Conversion is complete'.
ENDFORM.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163909.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • KeyValuePair和Dictionary详解:「建议收藏」

    KeyValuePair和Dictionary详解:「建议收藏」1、KeyValuePaira、KeyValuePair是一个结构体(struct);b、KeyValuePair只包含一个Key、Value的键值对。2、Dictionarya、Dictionary可以简单的看作是KeyValuePair的集合;b、Dictionary可以包含多个Key、Value的键值对。usingSystem;usingSystem.Collections.Generic;namespaceConsoleTest

    2022年7月15日
    17
  • matlab激光雷达三角测距,三角测距激光雷达原理[通俗易懂]

    matlab激光雷达三角测距,三角测距激光雷达原理[通俗易懂]激光雷达近几年越来越普及了,复杂的比如应用在无人驾驶汽车上,简单的比如用在扫地机上去。随着无人驾驶和服务机器人行业的发展,后续激光雷达的应用会更广泛。激光雷达之所以流行,主要是因为它能够精准的测距,那么它是如何实现这样的测距功能的呢?主流的激光雷达主要是基于两种原理的,一种是三角测距法,一种是飞行时间(TOF)法。听名字可不要觉得很复杂,其实只需要高中知识,任何人都能看懂它的测距原理!今天咱们就先…

    2022年6月2日
    42
  • eureka底层原理「建议收藏」

    eureka底层原理「建议收藏」什么是注册中心全称为:服务注册与发现,rpc远程调用框架核心思想,在于注册中心,使用注册中心管理每个服务与服务之间的依赖关系,这种关系被称为服务治理概念;任何rpc远程调用框架都至少有一个注册中心;服务注册将服务信息注册到注册中心,相当于告诉公司的人,我已经打卡上班了,可以分配工作任务给我了,比如现在我们有一个服务消费者服务A,和两个节点的服务提供者,服务B。服务A和服务B在启动的时候都会向注册中心进行服务注册。服务发现从注册中心获取已注册的服务信息,发现有哪些可以调用的服务可供我使用;相

    2022年10月7日
    3
  • istio解决了什么问题(istio k8s)

    问题简述通过istio实现灰度发布,浏览器访问报404错误,但是通过curl传递一个Host请求头就能访问成功。问题复现RancherUI界面启动Istio,并开启ingress网关命名空间启动Istio自动注入部署nginx应用###deploy-nginx-v1.yamlapiVersion:apps/v1kind:Deploymentmetadata:labels:app:nginxversion:v1name:nginx-v1n

    2022年4月16日
    112
  • 关于净推荐值(NPS)的理解

    关于净推荐值(NPS)的理解NPS在产品领域用来衡量用户对产品体验的评价情况,同时也可以用在某个员工在公司受到大家的评价情况,类似等等。本文将主要关注在产品领域。如何衡量你的用户对产品的使用满意度呢?NPS就是一个非常重要的标准。那么,如何搭建NPS模型,利用NPS指标更加直观、具体地完成用户调研呢?以下,笔者将详细为大家讲述。现在几乎所有的互联网公司,都会说:“以用户为中心”,那到底是什么以用户为中心?…

    2022年4月28日
    73
  • 无线信道特征_无线信道模型有哪几种

    无线信道特征_无线信道模型有哪几种目录1统计性模型(经验模型)1.1模型分类(1)按衰落分类(2)按路径损耗和延迟拓展分类1.2建模方法(1)方法一分类(2)方法二分类2确定模型2.1建模方法3半确定模型3.1建模方法4思维导图PDF、xmind格式下载5参考文献1统计性模型(经验模型)1.1模型分类(1)按衰落分类小尺度传播衰落模型描述小范围内信号的幅度和相位的快速衰落,在电波传播过程中,信号场强在短短(几个信号波长)或短时(秒级)上呈现出快速波动的状况,包括由移动台和基站相对运动造成多普勒频移引起的时间

    2022年9月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号