WDA学习(2):BAPI Usage

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。

 

 

原文地址:https://www.cnblogs.com/tangToms/p/12796474.html