修改用户锁定状态并初始化用户密码


REPORT ZTEST.

TYPES:
  BEGIN OF TYP_USR02,
    BNAME TYPE USR02-BNAME,
  END OF TYP_USR02.

DATA:
  TD_RETURN TYPE STANDARD TABLE OF BAPIRET2,
  TH_RETURN TYPE BAPIRET2.

DATA:
  TD_USR02 TYPE STANDARD TABLE OF TYP_USR02,
  TH_USR02 TYPE TYP_USR02.

DATA:
  CNS_PASS TYPE BAPIPWD VALUE '123456'.

*PARAMETERS L_NAME TYPE BAPIBNAME.
*PARAMETERS L_PASS TYPE BAPIPWD.

*改变此状态,写程序时候注意应用以下权限检查,除了自己,
*其他有锁定用户权限的才可以运行这个程序:-)
*AUTHORITY-CHECK OBJECT 'S_USER_GRP'
*    ID 'CLASS' FIELD USR02-CLASS
*    ID 'ACTVT' FIELD '05'.

SELECT BNAME
  FROM USR02
  INTO TABLE TD_USR02
 WHERE UFLAG = 128
   AND BNAME LIKE 'xxx%'.

CHECK TD_USR02 IS NOT INITIAL.

* 直接更新数据库表里锁的用户状态字段
UPDATE USR02
   SET UFLAG = 0   "正常状态
 WHERE UFLAG = 128."密码输入多次失败

* 或者调用BAPI解锁
   CALL FUNCTION 'BAPI_USER_UNLOCK'
     EXPORTING
       username = th_usr02-bname
     TABLES
       return   = td_return.

* 修改用户密码
LOOP AT TD_USR02 INTO TH_USR02.

  CALL FUNCTION 'BAPI_USER_CHANGE'
    EXPORTING
      USERNAME  = TH_USR02-BNAME  "用户名
      PASSWORD  = CNS_PASS        "密码
      PASSWORDX = 'X'             "只修改密码标记
    TABLES
      RETURN    = TD_RETURN.

ENDLOOP.

 

LOOP AT td_return INTO th_return WHERE type = 'E' OR type = 'A'.
   ENDLOOP.

   IF sy-subrc = 0.
endif.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值