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都有返回值,返回错误,警告等信息。

  • 相关阅读:
    我的数学之美(一)——RANSAC算法详解
    机器学习经典算法之-----最小二乘法(zz)
    基于大数据的餐饮推荐系统总结
    Hive 数据错位修复方案
    Python 2.x 判断 Excel 是否包含指定的 sheet
    Shell脚本判断目录是否为空
    MySQL启动报错 The server quit without updating PID file 解决方案
    DolphinScheduler 1.3.2集群版(基于CDH5.13.1)安装手册
    添加 Shell 脚本的启动用户限制
    CentOS 7 离线安装 MySQL 5.7
  • 原文地址:https://www.cnblogs.com/byfhd/p/1082661.html
Copyright © 2011-2022 走看看