ABAP 获取用户参数

作者:ABAP三叔 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, SD, 开发, 数据工程, 销售分销
ABAP 获取用户参数 - 封面图
ABAP 获取用户参数 - 封面图

前言

在报表选择屏幕设置默认值,除了使用屏幕变式外,也可以使用

PARAMETER ID,根据用户的个人设置,将默认值填充到选择屏幕 。

基础

1\. P ARAMETER ID的创建:

SM30->TPARA->输入参数名称->保存

2\. 赋值和取值

DATA lv_werks type werks_d.SET PARAMETER ID 'WRK' FIELD '1000'.GET PARAMETER ID 'WRK' FIELD lv_werks.

3\. 使用SU01和SU3可以修改用户的 PARAMETER参数

ABAP 获取用户参数 - 封面图
ABAP 获取用户参数 - 封面图

4\. 建议:根据ABAP前辈建议,将需要用到的 PARAMETER定义到自定义的类静态属性中,在ABAP中使用zcl_memory_id=>wrk代替

'WRK',这样可以利用"使用位置列表"查找 PARAMETER 参数在哪些地方使用了。

*

GET PARAMETER ID zcl_memory_id=>wrk FIELD lv_werks.
ABAP 获取用户参数 - 封面图
ABAP 获取用户参数 - 封面图

ABAP获取用户参数

方法我封装在了zcl_common=> g et_user_param中,代码如下

class-methods GET_USER_PARAM importing !IV_PARID type USPARAM-PARID returning value(RV_PARVA) type USPARAM-PARVA . METHOD get_user_param. DATA: lt_params TYPE ustyp_t_parameters, ls_param TYPE ustyp_parameters.

CALL FUNCTION 'SUSR_USER_PARAMETERS_GET' EXPORTING user_name = sy-uname TABLES user_parameters = lt_params[] EXCEPTIONS user_name_not_exist = 1 OTHERS = 2. READ TABLE lt_params INTO ls_param WITH KEY parid = iv_parid. rv_parva = ls_param-parva. ENDMETHOD.

使用方法:

在 INITIALIZATION事件中,添加如下示例代码

*

p_werks = zcl_common=>get_user_param( zcl_memory_id=>wrk ).

总结

完整代码见Github

地址:https://github.com/a87b01c14/ZCL_COMMON.git

ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「ABAP获取用户参数.md」整理生成,仅用于内部技术分享与学习交流。