SAP ABAP 用户状态锁定案例

这篇具有很好参考价值的文章主要介绍了SAP ABAP 用户状态锁定案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

项目需求是根据当天及前两天的离职员工信息(假设这是一个定时器任务每天下午5点执行程序,计算前两天的员工工号是为了将5点之后办理离职的员工工号找出来),将这些员工在用户表 USR02 中的锁定状态设置为 “64”,以保证离职员工无法继续使用系统账号。

二、编码

ZHRE008

*&---------------------------------------------------------------------*
*& Report ZHRE008
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zhre008.

INCLUDE zhre008_top. " 数据定义

INCLUDE zhre008_frm." 功能定义

START-OF-SELECTION.

*** 取数方式
  PERFORM frm_get_data.  " 表连接取数
END-OF-SELECTION.

zhre008_top

*&---------------------------------------------------------------------*
*& 包含               ZHRE008_TOP
*&---------------------------------------------------------------------*
TABLES:
  pa0000,usr02.

*** 定义内表 ***
  DATA:
    BEGIN OF gs_item,
      pernr     TYPE pa0000-pernr,     "员工工号
      bname     TYPE usr02-bname,      "用户名
    END OF gs_item.

  DATA:
    gt_item LIKE TABLE OF gs_item.

zhre008_frm

*&---------------------------------------------------------------------*
*& 包含               ZHRE008_FRM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data .
  DATA: lv_count TYPE i. "计数

**** 获取当前日期 ****
  DATA: lv_current_date  TYPE sy-datum, "当前日期变量
        lv_previous_date TYPE sy-datum. "前两天日期变量

**** 计算前两天的时间 ****
  lv_current_date = sy-datum.
  lv_previous_date = lv_current_date - 2.

***PA0000表中获取员工工号(pernr)***
  SELECT
      pernr"员工号
  INTO CORRESPONDING FIELDS OF TABLE gt_item
  FROM pa0000
  WHERE massn = '04'
  AND ( endda = '99991231' OR begda >= lv_previous_date ).

  SORT gt_item BY pernr.

*** 根据获取的员工工号,修改USR02表中的用户锁定状态 ***
  IF gt_item[] IS NOT INITIAL."用于检查变量是否为空或未初始化

    "获取用户名并排除已锁定用户
    SELECT bname INTO TABLE @DATA(lt_bname)
    FROM usr02
    WHERE uflag NOT IN (32,64,128).

    SORT lt_bname BY bname.

  ELSE.
    WRITE: '在PA0000表中找不到离职的员工。'.
  ENDIF.


  LOOP AT gt_item ASSIGNING FIELD-SYMBOL(<gs_item>).
    "类型转换,先将pernr去除20   <gs_item>-bname = <gs_item>-pernr.
    <gs_item>-bname = COND #( WHEN <gs_item>-pernr IS NOT INITIAL THEN <gs_item>-pernr+2(6) ELSE '' ).


    READ TABLE lt_bname INTO DATA(ls_bname) WITH KEY bname = <gs_item>-bname BINARY SEARCH.
    IF sy-subrc = 0.
      "修改锁定状态逻辑
      UPDATE usr02 SET uflag = 64 WHERE bname = ls_bname-bname.
      IF sy-subrc = 0.
        ADD 1 TO lv_count."将变量lv_count的值加1,用于统计更新的记录数
        WRITE: / '员工工号', ls_bname-bname, '已被锁定。'.
        COMMIT WORK."提交之前的事务处理,将进行的数据库操作永久保存
      ENDIF.
    ENDIF.

  ENDLOOP.

  WRITE: / '成功锁定', lv_count, '个离职员工。'.

ENDFORM.

三、效果展示

SAP ABAP 用户状态锁定案例,SAP ABAP,SAP,ABAP文章来源地址https://www.toymoban.com/news/detail-607952.html

到了这里,关于SAP ABAP 用户状态锁定案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SAP ABAP】SAP Webservice & RESTful 接口服务发布教程

    关于 WebService 概念,这篇文章讲解的非常全面,可以移步阅读《SAP Web service》。 本想通过 RFC 来发布 ODATA 服务,奈何当前 SAP ECC 版本过低不支持,只好采用其他方式来发布服务,于是就尝试了下面这两种方法。 SE37,创建以下测试用 RFC 测试执行 RFC,得到的数据结果如下图:

    2024年02月02日
    浏览(42)
  • SAP ABAP技术文章合集_微信公众号:ABAP猿

    序号 文章标题 01 ABAP OOALV-基本显示 02 ABAP OOALV-排序、过滤 03 ABAP OOALV-合计、小计 04 ABAP OOALV-选择模式、触发事件 05 ABAP OOALV-隐藏列、修改列标题、添加图标列、调整列位置 06 ABAP OOALV-固定列、鼠标悬停文本 07 ABAP OOALV-颜色(列、行、单元格) 08 ABAP OOALV-样式(列、行、单元格

    2024年02月03日
    浏览(48)
  • SAP ABAP 基础语法超详细

    1.表声明 当你声明了一个数据表的同时,系统也同时自动生成了一个和数据表同名的结构,结构的变量集等于数据表里面的字段。 2.定义变量 v1 是变量名。 (l) 是变量的长度。 t 是数据类型。 d 是小数位。 ‘xxx’ 是缺省值。 如:data num(10) type p decimals 3 value ‘1.12’. 数据

    2024年02月15日
    浏览(59)
  • SAP,ABAP:ALV变式复制

    应用场景:程序优化,需要新开一个程序优化,优化完成后原程序ALV变式无法带到新的程序, ALV变式是很好用的功能 REPORT zbsc. 事务代码:ZBSC-ALV变式复制 程序名称:ZBSC-ALV变式复制 程序目的: ZBSC-ALV变式复制 开发人员: *(修改日志)----------------------------------------------------

    2024年02月09日
    浏览(43)
  • SAP ABAP增强 BADI的增强全解析

            BADI的全称是Business Add-in,它的主要技术是基于ABAP的对象来实现增强。SAP中BADI的维护事务代码是SE18和SE19,SE18主要是创建及维护BADI对象,而SE19用于维护BADI的实例,即如何来实现BADI对象的功能。         SAP的BADI因系统版本的差别可能会有不同,R/3中的BADI被称为Cl

    2023年04月23日
    浏览(38)
  • SAP ABAP ChatGPT 初体验 我会失业吗?

    简介: ChatGPT 最近很火,听说我可能要失业!就在今天我历经千辛万苦,终于把 ChatGPT 注册好了。话不多说,我先问两个 ABAP 开发问题压压惊。 : SAP ABAP ChatGPT OpenAI 失业 下面是我在 ChatGPT 的聊天截图, 我对这个回答满意度 90% ,此时我内心还不慌,虽然内容很完整逻

    2023年04月15日
    浏览(41)
  • SAP ABAP调用Http/Https方式实例

    注意: 1.url必须带\\\"http://\\\"或者“https://”。 2. http_client-propertytype_redirect = http_client-co_disabled .这一行是设置是否允许重定向,是为“co_enabled”,否为“co_disabled”。 3. 可能出现的错误 404 Hostname Unknow,是因为服务器未配置该url的dns 4. 可能出现的错误 401 refused,可能是被防火墙

    2024年02月07日
    浏览(55)
  • sap abap,forms,smartforms 导出pdf

    4种方法: 1.安装pdf程序,Foxit Reader,先敲回车 自动带出,如下图: 直接打印就会弹出保存pdf文档路径,点保存。这种方式是最简单的,可 forms 和 smartforms 。 2. forms 和 smartforms 打印到spool 中,首先要设置个人参数文件  输出设备 ,默认输出设备LP01    。 T-CODE: SP02 或如下图

    2024年02月12日
    浏览(84)
  • 【SAP Abap】记录一次SAP长文本内容通过Web页面完整显示的应用

    业务在销售订单中,通过长文本描述,记录了一些生产备注信息,如生产标准、客户要求等等。要求开发一个报表,能够方便查看和导出长文本信息。 由于ALV列表长文本显示不友好,且长度有限制,仅能显示128位,故考虑双击展示长文本详细内容,最终实现效果如下: ALV列

    2024年02月15日
    浏览(51)
  • SAP ABAP中的数据类型 Data Types

    简单来说分两种: 数据字典里定义的 在ABAP程序里定义的 1.1 数字型的 用在数学计算里的,表达式里的,表序号里的。 Interger整数型 : INT1 : 1字节整数,0-255 (2的8次方-1) INT2 : 2字节整数,-32768-32767(2的15次方-1,有一位是符号位) INT4 : 4字节整数,-2147483648-2147483647(

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包