如何创建传输请求释放时运行的自定义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测试
- 打开事务码
SCI(ABAP检查工作台)。 - 切换到检查管理标签页,点击创建按钮。
- 在弹出对话框中选择用户自定义检查,输入检查名称(如
Z_ATC_CHECK_TABLE_XY)和描述,关联刚才创建的测试类ZCL_ATC_CHECK_TABLE_XY。 - 将该检查添加到一个检查目录(可新建或使用现有目录)。
三、配置传输触发时机
要让检查在传输请求时自动执行,需完成以下配置:
- 在事务码
SE09/SE10中,进入传输请求的属性设置,启用ATC检查。 - 在ATC检查配置中,将包含自定义检查的目录添加到检查配置文件,确保传输前检查会调用该规则。
四、运行与验证
- 手动测试:在事务码
SCI中选择你的检查目录,执行检查,若表XY条目数超过1000,会显示对应的错误消息。 - 传输时触发:创建包含表XY相关修改的传输请求,释放前会自动执行该检查,若不符合条件则阻止传输。
内容的提问来源于stack exchange,提问作者stackover_quest
相关产品推荐
相关产品推荐

