ABAPBSP调用Webdynpro页面.docx
- 文档编号:7179493
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:10
- 大小:440.45KB
ABAPBSP调用Webdynpro页面.docx
《ABAPBSP调用Webdynpro页面.docx》由会员分享,可在线阅读,更多相关《ABAPBSP调用Webdynpro页面.docx(10页珍藏版)》请在冰豆网上搜索。
ABAPBSP调用Webdynpro页面
1、BSP调用WebDynpro页面实例
目的:
在BSP(BUSINESSSERVERPAGES)程序中调用WebDynpro页面。
说明:
在实现该实例前,需先熟悉WebDynpro程序的开发。
涉及内容:
1.1SE80BSP程序调用WebDynpro页面
1.1.1BSP页面添加按钮元素
1、T-CODE:
SE80进入“对象导航“界面,程序类型选择“业务服务器页面应用程序”(英文:
BusinessServerPagesApplication),然后在程序名处输入程序名,找到业务功能对应的视图,如图1.1.1-1:
图1.1.1-1
说明:
a、本练习对采购订单进行更改。
2、找到要添加WebDynpro页面的BSP视图页面,然后双击进入页面代码中,并将代码更改为可编辑状态,如图1.1.1-2:
图1.1.1-2
3、在BSP页面需要添加按钮的位置处添加按钮代码,如图1.1.1-3:
图1.1.1-3
说明:
a、代码如下:
left">
inline" onClick ="window.open('<%= lv_url %>','送货标签和货物标签打印' ,'width=800,height= 400,resizable=yes,scrollbars=yes')">
b、代码说明:
其中,变量lv_url是新页面的URL(下一节将讲URL如何获取值);为了让新按钮与自带按钮显示在同一行,在标准按钮控件前要加html
left">
1.1.2BSP页面生成按钮元素URL
1、在BSP页面中添加生成URL代码,添加位置如图1.1.2-1:
图1.1.2-1
2、添加代码如下:
DATA:
lv_url TYPE string,
d_url(255) TYPE c,
lv_app_name TYPE string,
host TYPE string,
port TYPE string,
out_protocol TYPE string,
in_parameters TYPE tihttpnvp,
wa_params LIKE LINE OF in_parameters,
lv_iview TYPE string,
gf_value_old TYPE /sapsrm/char512,
gf_clength TYPE int2.
DATA:
lo_window_manager TYPE REF TO if_wd_window_manager,
lo_api_component TYPE REF TO if_wd_component,
lo_window TYPE REF TO if_wd_window.
* Use the WD application created and pass a value to the parameter SC_GUID:
wa_params-name = 'Z_ORDER_GUID'."Z_ORDER_GUID是URL参数名
wa_params-value = ls_header_po-GUID.
APPEND wa_params TO in_parameters.
lv_app_name = 'Z_ORDER_BC_PRINT'."Z_ORDER_BC_PRINT是WebDynpro程序名称
CALL METHOD cl_http_server=>if_http_server~get_location
IMPORTING
host = host
port = port
out_protocol = out_protocol.
CALL METHOD cl_wd_utilities=>construct_wd_url
EXPORTING
application_name = lv_app_name
in_host = host
in_port = port
in_protocol = out_protocol
in_parameters = in_parameters
namespace = 'sap'
IMPORTING
out_absolute_url = lv_url."lv_url为URL值存放的位置,在上一届添加按钮元素中调用
说明:
a、URL参数名Z_ORDER_GUID:
新页面的数据关联是根据该参数(ORDER的GUID全球唯一标识)关联的;
b、WebDynpro程序名Z_ORDER_BC_PRINT:
WebDynpro中进行开发;
c、如上代码直接嵌入BSP页面的抬头部分的<%...%>中。
到这里BSP程序调用WebDynpro页面就完成了。
1.2SE80WebDynpro页面初始化数据
这一节简要介绍BSP调用的WebDynpro程序"Z_ORDER_BC_PRINT"中数据的处理。
如需了解WebDynpro的开发,请参考“ABAP-WebDynpro实例.docx”文件。
1.2.1组件COMPONENTCONTROLLER配置
1、Context-Node创建,如图1.2.1-1:
图1.2.1-1
2、Context-Attribute创建,如图1.2.1-2:
图1.2.1-2
3、Methods-WDDOINIT控制器初始化数据,如图1.2.1-3:
图1.2.1-3
说明:
a、代码如下:
method WDDOINIT .
DATA lo_nd_z_order_guid TYPE REF TO if_wd_context_node.
DATA lo_el_z_order_guid TYPE REF TO if_wd_context_element.
"Element_z_order_guid由Element_和Context的名称组成
DATA ls_z_order_guid TYPE wd_this->Element_z_order_guid.
DATA lv_order_guid TYPE wd_this->Element_z_order_guid-order_guid.
* navigate from
"wdctx_z_order_guid由wdctx_和Context的名称组成
lo_nd_z_order_guid = wd_context->get_child_node( name = wd_this->wdctx_z_order_guid ).
* @TODO handle non existant child
* IF lo_nd_z_asn_guid IS INITIAL.
* ENDIF.
* get element via lead selection
lo_el_z_order_guid = lo_nd_z_order_guid->get_element( ).
* @TODO handle not set lead selection
IF lo_el_z_order_guid IS INITIAL.
ENDIF.
* @TODO fill attribute
* lv_asn_guid = 1.
lv_order_guid = cl_wd_runtime_services=>get_url_parameter( name = 'Z_ORDER_GUID' ).
* set single attribute
lo_el_z_order_guid->set_attribute(
name = `ORDER_GUID` "Context的Attribute名
value = lv_order_guid ).
endmethod.
b、a中的代码就是获取WebDynpro程序的URL,并将URL的值赋给Context的Attribute。
1.2.2视图初始化数据处理
这里只介绍视图中初始化数据的处理,对于其他业务操作不做介绍。
1、视图初始化数据,如图1.2.2-1:
图1.2.2-1
说明:
a、代码如下:
method WDDOINIT .
DATA:
lo_component TYPE REF TO if_wd_component,
lo_context TYPE REF TO if_wd_context,
lo_controller type REF TO if_wd_controller,
lo_node type REF TO if_wd_context_node,
lo_child TYPE REF TO if_wd_context_node,
lo_cmp_usage TYPE REF TO if_wd_component_usage,
lv_guid TYPE bbp_guid,
lr_header_order TYPE BBP_PDS_SUSPO_HEADER_D,
lr_items_order TYPE STANDARD TABLE OF BBP_PDS_SUSPO_ITEM_D,
ls_items_order TYPE BBP_PDS_SUSPO_ITEM_D,
lr_partern TYPE TABLE OF BBP_PDS_PARTNER,
node_order_h TYPE REF TO if_wd_context_node,
node_order_i TYPE REF TO if_wd_context_node,
node_order_p TYPE REF TO if_wd_context_node.
lo_component = wd_comp_controller->wd_get_api( ).
lo_controller ?
= lo_component.
CALL METHOD lo_controller->get_context
RECEIVING
context = lo_context.
lo_node = lo_context->root_node.
lo_child = lo_node->get_child_node( 'Z_ORDER_GUID' ).
CALL METHOD lo_child->GET_ATTRIBUTE
EXPORTING
NAME = 'ORDER_GUID'
IMPORTING
VALUE = lv_guid."获取全局Attribute'ORDER_GUID'赋给lv_guid
CALL FUNCTION 'BBP_PD_SUSPO_GETDETAIL'
EXPORTING
I_GUID = lv_guid
IMPORTING
E_HEADER = lr_header_order
* ET_ATTACH =
TABLES
E_ITEM = lr_items_order
E_PARTNER = lr_partern."根据URL值lv_guid查询采购订单抬头、行项目、合作伙伴的信息,供后续使用
loop at lr_items_order INTO ls_items_order.
SHIFT ls_items_order-ordered_prod LEFT DELETING LEADING '0'.
SHIFT ls_items_order-SRC_ITM_ID LEFT DELETING LEADING '0'.
SHIFT ls_items_order-NUMBER_INT LEFT DELETING LEADING '0'.
modify lr_items_order FROM ls_items_order.
ENDLOOP.
DELETE lr_partern WHERE PARTNER_FCT <> '00000019'.
node_order_h = WD_CONTEXT->get_Child_Node( name = 'Z_ORDER_PRINT_H' ).
node_order_i = WD_CONTEXT->get_Child_Node( name = 'Z_ORDER_PRINT_I' ).
node_order_p = WD_CONTEXT->get_Child_Node( name = 'Z_ORDER_PARTNER' ).
node_order_h->BIND_STRUCTURE( lr_header_order ).
node_order_i->bind_table( lr_items_order ).
node_order_p->bind_table( lr_partern ).
endmethod.
到这里BSP调用WebDynpro程序就完成了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ABAPBSP 调用 Webdynpro 页面