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

  • 相关阅读:
    codeforces 872 D. Something with XOR Queries(思维)
    hihocoder #1609 : 数组分拆II(思维)
    hihocoder #1608 : Jerry的奶酪(状压dp)
    lightoj 1126
    SpringBoot Controller接收参数的几种常用方式
    mysql恢复备份数据时,部分表数据丢失的问题
    Tomcat证书安装(pfx和jks)
    Java 数据返回接口封装
    Java RSA 公钥加密私钥解密
    Redis连接池
  • 原文地址:https://www.cnblogs.com/byfhd/p/1082661.html
Copyright © 2011-2022 走看看