User client windows logon basic data

在新增/刪除/修改資料時,常需要log使用者的基本資料,但使用者的IP Address、Windows帳號及電腦名稱在syst中又找不到。

FUNCTION zbc_get_user_info.
*"----------------------------------------------------------------------
*"*"區域介面:
*"  EXPORTING
*"     REFERENCE(R_IPADD) TYPE EWAWA_IPADDRESS               User IP Address
*"     REFERENCE(R_STAMP) TYPE ZTIMESTAMP Time Stamp         Time Stamp
*"     REFERENCE(R_OSUSER) TYPE /BEV2/ED_GEN_TABLEDATA       OS User Name
*"     REFERENCE(R_DOMAIN) TYPE /BEV2/ED_GEN_TABLEDATA       Domain
*"     REFERENCE(R_DNSDOMAIN) TYPE /BEV2/ED_GEN_TABLEDATA    DNS Domain
*"     REFERENCE(R_COMPUTERNAME) TYPE /BEV2/ED_GEN_TABLEDATA Computer Name
*"----------------------------------------------------------------------
  DATA: l_hostaddr1    TYPE  msxxlist-hostadr,
        l_hostaddr2(8) TYPE c,
        itimes         TYPE i,
        itimes1        TYPE i,
        hx(2),
        result         TYPE i,
        resulttxt(3),
        iptxt(15),
        l_time         TYPE timestampl,
        l_timestamp(9) TYPE c.

  GET TIME STAMP FIELD l_time.
  l_timestamp = FRAC( l_time )."l_time.
  l_timestamp = l_timestamp+2(7).
  REPLACE ALL OCCURRENCES OF '.' IN l_timestamp WITH ''.
  r_stamp = l_timestamp.    "時間戳記

*Get Computer name
  CALL METHOD cl_gui_frontend_services=>get_computer_name
    CHANGING
      computer_name        = r_computername
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

* Get IP Address
  CALL METHOD cl_gui_frontend_services=>get_ip_address
    RECEIVING
      ip_address           = r_ipadd
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 99.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*Get OS User name
  CALL METHOD cl_gui_frontend_services=>get_user_name
    CHANGING
      user_name            = r_osuser
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*因為Get Domain及Get DNS Domain需要SAP GUI端另放行權限,

*若沒有需求,可以將該兩段Mark.

**Get Domain
*  CALL METHOD cl_gui_frontend_services=>environment_get_variable
*    EXPORTING
*      variable             = 'USERDOMAIN'
*    CHANGING
*      value                = r_domain
*    EXCEPTIONS
*      cntl_error           = 1
*      error_no_gui         = 2
*      not_supported_by_gui = 3
*      OTHERS               = 4.
*
*  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  ENDIF.
*
**Get DNS Domain
*  CALL METHOD cl_gui_frontend_services=>environment_get_variable
*    EXPORTING
*      variable             = 'USERDNSDOMAIN'
*    CHANGING
*      value                = r_dnsdomain
*    EXCEPTIONS
*      cntl_error           = 1
*      error_no_gui         = 2
*      not_supported_by_gui = 3
*      OTHERS               = 4.
*
*  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  ENDIF.


*Flush
  CALL METHOD cl_gui_cfw=>flush
    EXCEPTIONS
      cntl_system_error = 1
      cntl_error        = 2
      OTHERS            = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFUNCTION.


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值