SAP ABAP编程 取得用户中文名称

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 16:12   36   0

有时候我们知道SAP当前用户登录的ID,也就是SY-UNAME,可以取得用户中文名称,如下:

***取得用户中文名称

DATA: g_sheet_jsr TYPE string. "用户中文名称
DATA: L_DEPARTMENT TYPE AD_DPRTMNT,
L_ADDRNUMBER TYPE AD_ADDRNUM,
L_PERSNUMBER TYPE AD_PERSNUM,
L_UNAME TYPE SY-UNAME,
L_NAME_FIRST TYPE AD_NAMEFIR,
L_NAME_LAST TYPE AD_NAMELAS.

***取得用户中文名称
SELECT SINGLE persnumber addrnumber INTO
(l_persnumber, l_addrnumber)
FROM usr21
WHERE bname = SY-UNAME.
IF sy-subrc = 0.
SELECT SINGLE name_first name_last INTO (l_name_first,l_name_last)
FROM adrp
WHERE persnumber = l_persnumber.
IF sy-subrc = 0.
CONCATENATE l_name_last l_name_first INTO g_sheet_jsr.
CONDENSE g_sheet_jsr NO-GAPS. "去掉空格字符
ENDIF.
ENDIF.

write: g_sheet_jsr.


还有一种更加简便的方法就是调用PABI

DATA: G_FULL_NAME TYPE AD_NAMTEXT, "用户中文名称
G_NAME_FIRST TYPE AD_NAMEFIR,
G_NAME_LAST TYPE AD_NAMELAS.

CALL FUNCTION 'FDM_CUST_USER_NAME_READ_SINGLE'
EXPORTING
I_USER_ID = SY-UNAME
IMPORTING
E_FIRSTNAME = G_NAME_FIRST
E_LASTNAME = G_NAME_LAST
* E_FULLNAME =
.

IF SY-SUBRC = 0.

CONCATENATE G_NAME_LAST G_NAME_FIRST INTO G_FULL_NAME .
CONDENSE G_FULL_NAME NO-GAPS. "去掉空格字符
ENDIF.

write: G_FULL_NAME .


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP