IF_FPM_TOKEN_PROVIDER FPM:相对日期的令牌提供
IF_FPM_TOKEN_PROVIDER FPM: Token Provider for relative dates
当我们需要自定义一个日期描述,方便用户选择或过滤时,可以使用接口IF_FPM_TOKEN_PROVIDER
显示效果如下

不使用该接口时显示效果

实现步骤
1. 创建一个类 ycl_token_provider , 增加接口IF_FPM_TOKEN_PROVIDER的使用,并实施方法
代码如下
METHOD if_fpm_token_provider~get_tokens. "定义令牌:光棍节、程序员节 CASE iv_name. WHEN 'FLDATE'. et_token = VALUE #( ( token = 'TOKEN_1111' text = '光棍节' ) ( token = 'TOKEN_1024' text = '程序员节' ) ( token = 'TOKEN_MONTH' text = '当前月' ) ). ENDCASE. ENDMETHOD.
METHOD if_fpm_token_provider~resolve_token. "令牌解析:光棍节-11月11日、程序员节-10月24日 DATA: lv_datum TYPE sy-datum. CASE iv_name. WHEN 'FLDATE'. CASE iv_token. WHEN 'TOKEN_1111'. ev_low = sy-datum+0(4) && '1111'. WHEN 'TOKEN_1024'. ev_low = sy-datum+0(4) && '1024'. WHEN 'TOKEN_MONTH'. ev_low = sy-datum+0(6) && '01'. CALL FUNCTION 'SN_LAST_DAY_OF_MONTH' EXPORTING day_in = sy-datum IMPORTING end_of_month = lv_datum. ev_high = lv_datum. ENDCASE. ENDCASE. ENDMETHOD.
2. 在我们需要使用的日期字段上, 增加属性TOKEN的赋值

DATA: lo_rel_date TYPE REF TO ycl_token_provider. ls_field_descr-name = 'FLDATE'. ls_field_descr-text = 'Flight Date'. " relative dates CREATE OBJECT lo_rel_date TYPE ycl_token_provider. ls_field_descr-token = lo_rel_date. APPEND ls_field_descr TO et_field_description_attr. CLEAR ls_field_descr.
参考资料:
https://blogs.sap.com/2021/09/20/fpm-team-relative-dates-in-search-list-ats-and-tree-uibbs/

浙公网安备 33010602011771号