前言
FPM应用中由于业务场景需要对页面进行重新初始化时使用,常用于动态页面(比如列信息由其他页面的数据控制,其他页面数据变化了-增加或减少,此页面对应的列数量也要发送变化,由于再切换回当前页面已经被初始化过了,所以当其他页面数据变化后,当前页面并不会再次刷新列信息,有可能这一列已经在其他页面删掉了,所以要重新获取列信息,一般这个方法都是用在动态的页面中)
调用完下面这个方法后会重新进入FPM的 INITIALIZE 和 GET_DEFINITION 而不需管页面是否被初始化过了
一、实现
代码:
method INITIAL_UIBB.
DATA:lo_event TYPE REF TO cl_fpm_event,
lt_invalid_uibb TYPE fpm_t_component_instance_key,
ls_invalid_uibb LIKE LINE OF lt_invalid_uibb.
ls_invalid_uibb-component = 'FPM_LIST_UIBB_ATS'. "当前组件的类型
ls_invalid_uibb-config_key-config_id = 'ZWDCC_DEMO_TEST'. "对应工作台的CONFIG_ID
ls_invalid_uibb-config_key-config_type = 00.
APPEND ls_invalid_uibb TO lt_invalid_uibb.
lo_event = cl_fpm_event=>create_by_id( if_fpm_constants=>gc_event-invalidate_uibb ).
lo_event->mo_event_data->set_value( iv_key = if_fpm_constants=>gc_event_param-list_of_instances
iv_value = lt_invalid_uibb ).
cl_fpm_factory=>get_instance( )->raise_event( io_event = lo_event ).
endmethod.
调用这个方法即可对页面重新初始化
总结
需要结合动态页面才有意义