You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建传输请求释放时运行的自定义ABAP ATC功能检查?

功能型ABAP ATC检查实现示例(Hello World级)

一、创建自定义ATC测试类

功能型ATC检查的核心是继承CL_CI_TEST_ROOT并实现RUN_TEST方法,以下是检查表XY条目数的完整示例:

CLASS zcl_atc_check_table_xy DEFINITION PUBLIC FINAL CREATE PUBLIC
  INHERITING FROM cl_ci_test_root
  PUBLIC SECTION.
    METHODS run_test REDEFINITION.
ENDCLASS.

CLASS zcl_atc_check_table_xy IMPLEMENTATION.
  METHOD run_test.
    DATA(lv_count) = 0.
    " 查询表XY的条目数
    SELECT COUNT( * ) INTO lv_count FROM xy.

    " 判断是否超过阈值
    IF lv_count > 1000.
      " 向ATC结果中添加错误消息
      cl_ci_message=>add_message(
        EXPORTING
          iv_severity = cl_ci_message=>sev_error  " 错误级别
          iv_msgid    = 'ZATC'                    " 自定义消息类(需预先创建)
          iv_msgno    = '001'                    " 消息编号,文本示例:"表XY条目数超过1000条,当前为&1"
          iv_msgv1    = lv_count                 " 消息变量
          iv_progname = sy-repid
          iv_lineno   = sy-linno
      ).
    ENDIF.
  ENDMETHOD.
ENDCLASS.

二、注册ATC测试

  1. 打开事务码SCI(ABAP检查工作台)。
  2. 切换到检查管理标签页,点击创建按钮。
  3. 在弹出对话框中选择用户自定义检查,输入检查名称(如Z_ATC_CHECK_TABLE_XY)和描述,关联刚才创建的测试类ZCL_ATC_CHECK_TABLE_XY。
  4. 将该检查添加到一个检查目录(可新建或使用现有目录)。

三、配置传输触发时机

要让检查在传输请求时自动执行,需完成以下配置:

  1. 在事务码SE09/SE10中,进入传输请求的属性设置,启用ATC检查。
  2. 在ATC检查配置中,将包含自定义检查的目录添加到检查配置文件,确保传输前检查会调用该规则。

四、运行与验证

  • 手动测试:在事务码SCI中选择你的检查目录,执行检查,若表XY条目数超过1000,会显示对应的错误消息。
  • 传输时触发:创建包含表XY相关修改的传输请求,释放前会自动执行该检查,若不符合条件则阻止传输。

内容的提问来源于stack exchange,提问作者stackover_quest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:32:35