1.5 Component and Application Configuration
本实例如何使用显式组件配置(explicit component configuration)和应用程序配置(application configuration),可以直接在实例1.4Display Bookings of Selected Flight或1.3Navigation上修改。
需求说明:在1.3Navigation实例中,当FLIGHTLISTVIEW视图获取不到FLIGHT信息时,直接跳转到NOFLIGHTVIEW视图。部分用户或许不想如此,依然显示空的FLIGHT信息表。使用配置方法,满足不同用户显示需求。
组件配置分为两种显式配置和隐式配置。
隐式配置:主要就是通过开发者配置修改UI控件一些特定属性的值,例如UI控件的Visibility等,来控制UI控件显示。
显式配置:可能影响Web Dynpro组件的外观和行为模式。开发者通过应用程序配置器(Application Configurator)配置。
组件的配置主要在设计开发阶段实现。
个性化和定制:个性化和定制是在程序运行时执行,通过提供用户自定义界面调整适应不同用户需求。
1.创建Configuration Controller
选择Web Dynpro Comp.:Z_TEST_WDA2->右键->Create->Custom Controller
刷新一下,可以看到Custom Controller下的NAVIGATION_CONFIG,右键->(Re Set as Config. Controller)
修改Context,创建NAV_PARAMS节点,创建Attribute,NAV_FLAG,数据类型:WDY_BOOLEAN,就是布尔类型。
2.映射NAVIGATION_CONFIG的上下文Context到FLIGHTLISTVIEW的上下文Context
FLIGHTLISTVIEW视图组件,Context页签,点击Controller Usage
拖动右边NAV_PARAMS到CONTEXT下
Methods页签,修改方法“ONACTIONGET_FLIGHTS”
修改代码:
"Nav_params节点 DATA:node_nav_params TYPE REF TO if_wd_context_node. DATA:lv_nav_flag TYPE wdy_boolean. node_nav_params = wd_context->get_child_node( 'NAV_PARAMS' ). "获取nav_flag值 node_nav_params->get_attribute( EXPORTING name = 'NAV_FLAG' IMPORTING value = lv_nav_flag ). "如果Element不存在,能够判断flight_list没有记录 "根据是否查询到记录,并且配置NAV_FLAG等于true,决定是否跳转 IF lo_el_flight_list IS INITIAL AND lv_nav_flag = abap_true. "如果没有记录,跳转到noflightview wd_this->fire_no_flights_found_plg( ). ENDIF.
3.运行Web Dynpro Application,可以发现当输入查询条件查询不到Flight信息时,并不会跳转到NOFLIGHTVIEW视图。因为NAV_FLAG默认为false。程序中其他视图也可以通过修改NAV_FLAG的值,实现不同显示控制。
4.创建Application Configuration
选择Web Dynpro Application:Z_TEST_WDA2->Create/Change Configuration,
浏览器会单独弹出配置的窗口。
注意:首次启动应用程序配置程序和组件配置程序时,浏览器窗口可能会超时。这是由于NSP系统中的后台编译。重新启动配置程序或者将http超时参数(最大处理时间)重置为更高的值。