zoukankan      html  css  js  c++  java
  • SAP ABAP 实现多线程


    第一步:初始化server group ,server group 可以用RZ12进行维护,参数支直复制即可,不要修改。
        CONSTANTS: serv_group LIKE rzllitab-classname VALUE 'JOBRUN'. 
          
      CALL FUNCTION 'SPBT_INITIALIZE'
         EXPORTING
           group_name                           = serv_group
    *     IMPORTING
    *       MAX_PBT_WPS                          =
    *       FREE_PBT_WPS                         =
         EXCEPTIONS
           invalid_group_name                   = 1
           internal_error                       = 2
           pbt_env_already_initialized          = 3
           currently_no_resources_avail         = 4
           no_pbt_resources_found               = 5
           cant_init_different_pbt_groups       = 6
           OTHERS                               = 7
                .

    第二步:分别写多个FM的调用,注意:如果多个FM都共用的参数,数据写在主程序中,然后用参数传到FM里。
        CALL FUNCTION 'Z_BAPI_FM1'
        STARTING NEW TASK 'FM1TASK' DESTINATION IN GROUP serv_group
        PERFORMING sub_fm1_back ON END OF TASK
        TABLES
          date_ra = date_ra.
     
        CALL FUNCTION 'Z_BAPI_FM2' 
        STARTING NEW TASK 'FM2TASK' DESTINATION IN GROUP serv_group
        PERFORMING sub_FM2_back ON END OF TASK
        TABLES
          date_ra = date_ra.
    第三步.FM执行完之后数据反回,数据返回的参数是全局的,在Z_BAPI_FM*中对全局参数进行赋值。
      FORM sub_fm1_back USING  name.
      RECEIVE RESULTS FROM FUNCTION 'Z_BAPI_FM1'
          TABLES
            ret_par  = gdt_ret_pars "返回的参数
            return    = gdt_gr_return.
      APPEND LINES OF gdt_gr_return TO gdt_return.
      gr_flag = 'X'. "这个很重要,根据这个参数判断FM是否执行完毕
      ENDFORM.                    "sub_fm1_back
     


       FORM sub_fm2_back USING  name.
      RECEIVE RESULTS FROM FUNCTION 'Z_BAPI_FM2'
          TABLES
            returnpo  = gdt_ret_pos
            return          = gdt_returnpo_return.
      APPEND LINES OF gdt_returnpo_return TO gdt_return.
      returnpo_flag = 'X'.
    ENDFORM.                    "sub_fm2_back


    第四步:收尾工作,判断各个FM是否执行完毕
      WAIT UNTIL gr_flag = 'X' AND returnpo_flag = 'X' .
      ret_pars[]       = gdt_ret_pars. “返回的结果
      returnpo[] = gdt_ret_pos.        “返回的结果
      APPEND LINES OF gdt_return TO return.
    “最终返回的return ,一般FM都有返回值,返回错误,警告等信息。

  • 相关阅读:
    Facebook主页照片和封面照片的尺寸要求
    NopCommerce源码架构详解
    Razor语法大全
    IIS 8 上传图片 上传文件报413错误及仅Https下报413问题,IIS高版本的配置方案及Web.config配置全解
    (一) MongoDB安装与配置
    Net Core 导出PDF
    ASP.NET Core AutoWrapper 自定义响应输出
    浅谈Docker之Docker数据持久化Bind Mount和Volume(转)
    搭建mysql集群
    MySQL错误:Can't connect to MySQL server (10060) 解决方案
  • 原文地址:https://www.cnblogs.com/byfhd/p/1082661.html
Copyright © 2011-2022 走看看