User client windows logon basic data

来源:互联网 发布:access 导入excel sql 编辑:程序博客网 时间:2024/05/16 23:43

在新增/刪除/修改資料時,常需要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
原创粉丝点击