1.2 BAPI Usage
本示例展示如果使用BAPIs,实现根据输入条件,调用已经存在function,獲取航班信息,返回table结果显示。
创建FLIGHTLISTVIEW,视图组件,视图组件中CONTEXT上下文和COMPONENTCONTROLLER的CONTEXT进行映射。
1.创建Web Dynpro Component,默认创建视图组件FLIGHTLISTVIEW
2.创建Service Call调用已经提供的Function module。
选择Web Dynpro Comp.下Z_TEST_WDA2->右键->Create->Service Call
按照步骤创建Service Call
在创建向导Select Controller,可以选择是将Service Call嵌入现有控制器,还是创建新控制器。
选择Use Existent Controller;
注意:Service Call只能嵌入到全局控制器COMPONENTCONTROLLER,或者其他自定义的控制器中,不能够在视图组件的控制器中使用。
选择Service Call调用的类型,这里我们调用的‘BAPI_FLIGHT_GETLIST’是一个Function Module。
选择调用的Function Module,如果不设定Destination,就是调用本地的Function Module,这个Function必须存在。
可以修改Function Module的输入输出参数在Web Dynpro对应的名字和对应类型。
Context Node:将该参数创建到控制器的Context上下文;
Controller Attribute:将该参数创建到控制器的Attributes;
Parameters of Method:将该参数作为Method的输入参数;
设置在CONPONENTCONTROLLER中方法名:’EXECUTE_BAPI_FLIGHT_GETLIST’
创建完成Service Call
Context上下文,映射视图组件上的Context,绑定视图组件FLIGHTLISTVIEW上用户输入参数。
生成的EXCUTE_BAPI_FLIGHT_GETLIST方法:
3.设置FLIGHTLISTVIEW的Context和COMPONENTCONTROLLER的Context进行映射。
将Context COMPONENTCONTROLLER下context拖动到左边FLIGHTLISTVIEW的CONTEXT下。
4.设置FLIGHTLISTVIEW视图组件的Layout
创建Group1视图控件,Group是标准的容器控件。
设置Group1的Properties,width为100%;
设置CAPTION的属性text为’from destination’
选择GROUP1->右键->Create Container Form
同理创建Group2,设置to destination输入条件。
在GROUP2中创建搜索按钮,
方式1:右键->Insert Element,创建按钮控件;
方式2:拖动左边视图控件,放入指定位置;
创建按钮Action,点击按钮执行的动作,点击创建。
在Actions页签可以看到我们创建的Action。
在Methods页签可以看到自动生成的ONACTIONGET_FLIGHTS方法。
设置BUTTON1其他属性,text,icon等。
重写ONACTIONGET_FLIGHTS方法,调用COMPONENTCONTROLLER提供的EXECUTE_BAPI_FLIGHT_GETLIST方法。
可以点击魔术棒,选择General->Method Call in Used Controller,输入Method Name和Controller Name。
实例代码:
method ONACTIONGET_FLIGHTS . "變量保持COMPONENTCONTROLLER類對象 DATA lo_COMPONENTCONTROLLER TYPE REF TO IG_COMPONENTCONTROLLER . "wd_this參數代表當前視圖組件控制器 lo_COMPONENTCONTROLLER = wd_this->get_componentcontroller_ctr( ). "調用對象方法 lo_componentcontroller->execute_bapi_flight_getlist( ). "方式2:直接使用attributes中WD_COMP_CONTROLLER參數,執行方法 "wd_comp_controller->execute_bapi_flight_getlist( ). endmethod.
创建TABLE类型控件,显示查询到的Flight信息。
设置CAPTION_2的text为flight info;
设置TAB_FLIGHTS的width为100%;
设置dataSource;
创建TABLE控件和Context上下文绑定,右键->Create Binding;
5.设置Windows和View绑定。
因为创建时,FLIGHTLISTVIEW已经放入Window
6.创建Web Dynpro Application,在浏览器上执行。
选择Web Dynpro Comp. Z_TEST_WDA2->右键->Create->Web Dynpro Application。