zoukankan      html  css  js  c++  java
  • ABAP-System Function Call

    函数组:THFB

    1.函数TH_WPINFO:当前进程处理清单,可用于判断当前程序或是函数是否重复执行。

     

     直接调用 'ThWpInfo' 与上面TH_WPINFO有些差异,可用下面代码进行测试。

      "是否作业正在执行
      data: lv_line type i,
            lv_name type uname.
      data: lv_opcode(1) type x,
            lv_with_cpu type x value 0.
      constants:
            lc_opcode_wp_list like lv_opcode value 1.
    
      call 'ThWpInfo' id 'OPCODE' field lc_opcode_wp_list
                      id 'TAB'    field lt_wpinfo-*sys*
                      id 'CPU'    field lv_with_cpu.
      loop at lt_wpinfo assigning field-symbol(<fs_wpinfo>)
      where wp_mandt  = sy-mandt
        and wp_report = sy-repid.
        lv_line = lv_line + 1.
        if lv_line = 1.
          lv_name = <fs_wpinfo>-wp_bname.
        endif.
      endloop.
      if lv_line >= 2.
        message e001(00) with text-113 lv_name.
      endif.
    View Code

     2.函数TH_LONG_USR_INFO:用户信息

     

     3.函数TH_PLUGINS_ACTIVE

     4.函数TH_POPUP:弹出框

     5.函数TH_QRFC_REQUESTS:QRFC队列

     6.函数TH_REQUEST_QUEUE

     

     7.函数TH_USER_INFO

    8.获取当前运行的函数名

    form frm_private_get_funcname using fv_funam.
      data:
        lt_callstack   type abap_callstack,
        lt_e_callstack type sys_callst.
      field-symbols:
        <fs_stack>     type sys_calls.
    
      call function 'SYSTEM_CALLSTACK'
        exporting
          max_level          = 30
        importing
          callstack          = lt_callstack
          et_callstack       = lt_e_callstack .
    
      loop at lt_e_callstack assigning <fs_stack>
      where eventtype = 'FUNC'.
        fv_funam = <fs_stack>-eventname.
        exit.
      endloop.
    endform.
    form frm_public_program_name using fv_tcode type sy-tcode
                                       fv_repid type sy-repid.
      data:
        lv_fchar       type c,
        lv_pchar       type c.
      data:
        lt_callstack   type abap_callstack,
        lt_e_callstack type sys_callst.
      field-symbols:
        <fs_stack>     type sys_calls.
    
      call function 'SYSTEM_CALLSTACK'
        exporting
          max_level          = 30
        importing
          callstack          = lt_callstack
          et_callstack       = lt_e_callstack .
    
      "事务代码首字符
      lv_fchar = sy-tcode+0(1).
      lv_pchar = sy-repid+0(1).
    
      if lv_fchar = 'Z' or lv_pchar = 'Z'.
        fv_tcode = sy-tcode.
    
        loop at lt_e_callstack assigning <fs_stack>.
          clear:lv_fchar.
          lv_fchar = <fs_stack>-progname+0(1).
          if lv_fchar = 'Z'.
            fv_repid = <fs_stack>-progname.
          endif.
        endloop.
      else.
        loop at lt_e_callstack assigning <fs_stack>
        where eventtype = 'FUNC'.
          fv_tcode = sy-tcode.
          fv_repid = <fs_stack>-eventname.
          exit.
        endloop.
      endif.
    endform.
    View Code
  • 相关阅读:
    “老人之心”
    封装,策略模式,Asp换脸
    简单随机
    “辜新星”
    储存出题改进
    git
    读“徐宥”
    太白非技术类随笔(猛击这里!!!)
    python_模块
    python_day7学习笔记
  • 原文地址:https://www.cnblogs.com/ricoo/p/13846072.html
Copyright © 2011-2022 走看看