如何获取/AIF/ERR事务变式的命名空间、接口等全部参数值
解决AIF错误监控变式参数获取问题的方案
问题根因说明
你尝试的通用变式读取方案仅支持ABAP程序静态定义的选择屏幕参数,/AIF/ERR为AIF错误监控事务码,其底层对应程序为/AIF/ERR_MONITOR,命名空间、接口、接口版本三个筛选字段为运行时动态渲染的自定义控件,参数值不会存储在VARI*、TVARC等通用变式存储表中,因此RS_VARIANT_CONTENTS、RS_VARIANT_VALUES_TECH_DATA等通用函数无法读取到对应值。
可用获取方案
方案1:调用AIF专属标准函数/类方法
- 高版本AIF组件(7.0及以上)可直接调用类方法
/AIF/CL_ERR_HANDLING_UTIL=>GET_VARIANT_DETAILS,输入参数传入变式名称、程序名(固定为/AIF/ERR_MONITOR),返回结构中会直接返回命名空间、接口名、接口版本三个维度的完整取值。 - 低版本AIF组件可调用函数模块
/AIF/VARIANT_GET_DETAILS,输入参数传入IV_VARIANT(目标变式名)、IV_REPORT(固定为/AIF/ERR_MONITOR),输出参数ET_SELECT_OPTIONS中可筛选到三个字段的取值,对应技术名分别为:- 命名空间:
S_NS - 接口名:
S_IFNAME - 接口版本:
S_IFVERSION
- 命名空间:
方案2:直接查询AIF专属存储表
- 直接读取表
/AIF/T_ERR_VAR,查询条件为REPORT = '/AIF/ERR_MONITOR'且VARIANT = '目标变式名称',表中对应字段NS存储命名空间、IFNAME存储接口名、IFVERSION存储接口版本。 - 若需读取该变式下其他动态筛选条件,可关联查询表
/AIF/T_ERR_VARSEL,关联条件为MANDT、REPORT、VARIANT,即可获取所有动态选择项的取值。
测试时注意校验变式的所属权限,部分私有变式需传入对应用户名参数才可正常读取。
内容的提问来源于stack exchange,提问作者Kjarlvi
相关产品推荐
相关产品推荐

