如何使用 ABAP 代码自动 unlock 一个 user

简介: 如何使用 ABAP 代码自动 unlock 一个 user
*&---------------------------------------------------------------------*
*& Report  ZJERRY_SET_PRODUCTIVE_PW
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ZAPRMDA_SET_PRODUCTIVE_PW.
DATA: BNAME LIKE USR02-BNAME.
SELECT-OPTIONS: S_USER FOR BNAME.
PARAMETERS: passwd LIKE xu400-newcode.
AUTHORITY-CHECK OBJECT 'S_USER_GRP'
         ID 'CLASS' FIELD '*'
         ID 'ACTVT' FIELD '02'.
IF SY-SUBRC <> 0.
  MESSAGE E150(00) WITH ''.
*   Sie haben keine Berechtigung f��r die Funktion &
  RETURN.
ENDIF.
DATA: L_USR LIKE USR02-BNAME OCCURS 0,
      WA_USR LIKE LINE OF L_USR,
      return LIKE bapiret2 OCCURS 0,
      l_return LIKE LINE OF RETURN,
      L TYPE I.
IF S_USER IS INITIAL.
  LEAVE PROGRAM.
ENDIF.
SELECT BNAME FROM USR02 INTO TABLE L_USR
  WHERE BNAME IN S_USER.
LOOP AT L_USR INTO WA_USR.
  REFRESH RETURN.
*   User entsperren (durch Falschanmeldungen wahrscheinlich gesperrt)
  CALL FUNCTION 'BAPI_USER_UNLOCK'
    EXPORTING
      username = WA_USR
    TABLES
      return   = return.
  DESCRIBE TABLE RETURN LINES L.
  IF L > 0.
    READ TABLE RETURN INTO L_RETURN INDEX 1.
    IF L_RETURN-TYPE <> 'S'.
      FORMAT COLOR COL_NEGATIVE.
      WRITE: / WA_USR , L_RETURN-TYPE, L_RETURN-MESSAGE.
      FORMAT COLOR COL_NORMAL.
      CONTINUE.
    ELSE.
      WRITE: / WA_USR,'unlocked.'.
    ENDIF.
  ENDIF.
*   Password ?ndern
  REFRESH RETURN.
  CALL FUNCTION 'BAPI_USER_CHANGE'
    EXPORTING
      username  = WA_USR
      password  = passwd
      passwordx = 'X'
    TABLES
      return    = return.
  DESCRIBE TABLE RETURN LINES L.
  IF L > 0.
    READ TABLE RETURN INTO L_RETURN INDEX 1.
    IF L_RETURN-TYPE <> 'S'.
      FORMAT COLOR COL_NEGATIVE.
      WRITE: / WA_USR , L_RETURN-TYPE, L_RETURN-MESSAGE.
      FORMAT COLOR COL_NORMAL.
      CONTINUE.
    ELSE.
      WRITE: / WA_USR,'PW set.'.
    ENDIF.
  ENDIF.
UPDATE USR02 SET LTIME = '010000' PWDINITIAL = '2' WHERE BNAME = WA_USR.
  COMMIT WORK.
ENDLOOP.
WRITE: / 'Program terminated succesfully.'.
相关文章
|
6月前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
6月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
|
6月前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
|
6月前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
|
6月前
|
JSON 应用服务中间件 API
使用 ABAP 代码消费 SAP 系统的 OData 服务
使用 ABAP 代码消费 SAP 系统的 OData 服务
|
6月前
|
开发工具 Web App开发 IDE
如何对 SAPGUI 里的 ABAP 代码语法检查功能进行自定义增强配套代码
如何对 SAPGUI 里的 ABAP 代码语法检查功能进行自定义增强配套代码
如何对 SAPGUI 里的 ABAP 代码语法检查功能进行自定义增强配套代码
|
6月前
|
开发者 数据库
使用 SAP ABAP 代码下载一个 note 到本地 ABAP 系统
使用 SAP ABAP 代码下载一个 note 到本地 ABAP 系统
|
6月前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符
|
6月前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
|
6月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版

热门文章

最新文章