1.15 WDA PLG,Application跳转传参

本实例Outbound Plugs页面跳转传参,URL跳转Application传参。

1.创建Component:Z_TEST_WDA_L6;

2.创建Main View;

Context页签:

创建Context Node:NODE_PARAM;

创建Attribute:CARRID,类型spfli-carrid;

创建Attribute:CONNID,类型spfli-connid;

Layout页签:

创建Toolbar组件,创建Button组件,open new application window,绑定Action:OPEN_NEW;

创建两个INPUT组件,分别绑定NODE_PARAM.CARRID,NODE_PARAM.CONNID;

创建Button组件,search,绑定Action: SEARCH;

Outbound Plugs页签:

创建TO_DETAIL,设置传递参数CARRID,CONNID;

3.Methods页签,Action及Method代码实现;

代码实例:ONACTIONSEARCH,获取页面输入Carrid,Connid,跳转到Detail页面查询数据并显示;

  DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lt_node_param TYPE wd_this->elements_node_param.
DATA:ls_node_param TYPE wd_this->element_node_param.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_param ).
lo_element = lo_node->get_element( ).
lo_element->get_static_attributes(
IMPORTING
static_attributes = ls_node_param
).
wd_this->fire_to_detail_plg(
carrid = ls_node_param-carrid
connid = ls_node_param-connid
). 

代码实例:ONACTIONOPEN_NEW,通过URL打开新的Application,并传递参数Carrid,Connid;

  DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lt_node_param TYPE wd_this->elements_node_param.
DATA:ls_node_param TYPE wd_this->element_node_param.
DATA:lv_url TYPE string.
DATA:lv_parameter TYPE string.
DATA:lo_component TYPE REF TO if_wd_component.
DATA:lo_window_manager TYPE REF TO if_wd_window_manager.
DATA:lo_window TYPE REF TO if_wd_window.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_param ).
lo_element = lo_node->get_element( ).
lo_element->get_static_attributes( IMPORTING static_attributes = ls_node_param ).
"获取application url
cl_wd_utilities=>construct_wd_url(
EXPORTING
application_name = 'Z_TEST_WDA_L7'
IMPORTING
out_absolute_url = lv_url
).
"添加parameter
lv_parameter = ls_node_param-carrid.
cl_http_server=>if_http_server~append_field_url(
EXPORTING
name = 'CARRID'
value = lv_parameter
CHANGING
url = lv_url
).
"设置参数
CLEAR lv_parameter.
lv_parameter = ls_node_param-connid.
cl_http_server=>if_http_server~append_field_url(
EXPORTING
name = 'CONNID'
value = lv_parameter
CHANGING
url = lv_url
).
lo_component = wd_comp_controller->wd_get_api( ).
lo_window_manager = lo_component->get_window_manager( ).
lo_window = lo_window_manager->create_external_window( url = lv_url ).
lo_window->open( ). 

4.创建Detail View,显示查询到信息;

Context页签,创建节点NODE_SPFLI,结构和Spfli一致;

Layout页签,创建Table组件,绑定节点NODE_SPFLI;

Inbound Plugs页签:

代码实例:实现通过传入参数获取数据绑定NODE_SPFLI节点;

  DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lt_spfli TYPE wd_this->elements_node_spfli.
DATA:ls_spfli TYPE wd_this->element_node_spfli. SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_spfli
FROM spfli
WHERE carrid = carrid
AND connid = connid.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_spfli ).
lo_node->bind_table( new_items = lt_spfli set_initial_elements = abap_true ). 

5.创建Component: Z_TEST_WDA_L7;

创建Main View;

Context页签:创建NODE_SFLIGHT,结构和Sflight一致;

Layout页签:创建Table组件,绑定NODE_SFLIGHT,显示信息;

Methods页签:创建Method,INIT_SFLIGHT;

在View的WDDOINIT方法中调用INIT_SFLIGHT方法;

代码实例:INIT_SFLIGHT,通过Application URL传递参数获取对弈Sflight信息;

主要通过wdr_task=>client_window->

if_wdr_client_info_object~get_parameter方法获取URL中传递参数;

  DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lv_string TYPE string.
DATA:lv_carrid TYPE spfli-carrid.
DATA:lv_connid TYPE spfli-connid.
"获取数据
DATA:lt_sflight TYPE wd_this->elements_node_sflight.
DATA:ls_sflight TYPE wd_this->element_node_sflight.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_sflight ). "获取carrid
lv_string = wdr_task=>client_window->if_wdr_client_info_object~get_parameter( 'CARRID' ).
lv_carrid = lv_string.
"获取connid
CLEAR lv_string.
lv_string = wdr_task=>client_window->if_wdr_client_info_object~get_parameter( 'CONNID' ).
lv_connid = lv_string.
"查询数据
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_sflight
FROM sflight
WHERE carrid = lv_carrid
AND connid = lv_connid.
"获取节点
lo_node->bind_table( new_items = lt_sflight set_initial_elements = abap_true ).

WDA学习(22):WDA PLG,Application跳转传参的更多相关文章

  1. 小程序页面跳转传参-this和that的区别-登录流程-下拉菜单-实现画布自适应各种手机尺寸

    小程序页面跳转传参 根目录下的 app.json 文件 页面文件的路径.窗口表现.设置网络超时时间.设置多 tab { "pages": [ "pages/index/i ...

  2. vue路由(一个包含重定向、嵌套路由、懒加载的main.js如下)and 路由跳转传参的query和params的异同

    import Vue from 'vue'import VueRouter from 'vue-router'import App from './App'Vue.use(VueRouter)cons ...

  3. angular2 post以“application/x-www-form-urlencoded”形式传参的解决办法

    angular2 post以“application/x-www-form-urlencoded”形式传参的解决办法 http://blog.csdn.net/tianjun2012/article/ ...

  4. vue 页面跳转传参

    页面之间的跳转传参,正常前端js里写 window.location.href="xxxxx?id=1" 就可以了: 但是vue不一样 需要操作的是路由history,需要用到 V ...

  5. 微信小程序~跳页传参

    [1]需求: 点击商品,跳到相应商品详情页面 [2]代码: (1)商品列表页 <view class="goodsList"> <view wx:for=&quo ...

  6. js实现静态页面跳转传参

    最近有个项目: 存静态web服务,一个新闻页面列表出所有新闻摘要信息,然后通过点击新闻详情访问到该新闻的详情页面: 新闻展示的页面通过ajax请求接口获取到新闻的摘要信息,预计想通过id的方式访问到新 ...

  7. Vue ---- 组件文件分析 组件生命周期钩子 路由 跳转 传参

    目录 Vue组件文件微微细剖 Vue组件生命周期钩子 Vue路由 1.touter下的index.js 2.路由重定向 3.路由传参数 补充:全局样式导入 路由跳转 1. router-view标签 ...

  8. Vue之路由跳转 传参 aixos 和cookie

    一.路由跳转 1.1 项目的初始化 vue create m-proj   >>>创建vue项目 精简vue项目的 views 视图   About(基本是删除的) Home.(可以 ...

  9. 【Java EE 学习 22 上】【文件上传】【目录打散】【文件重命名】

    1.文件上传概述 (1)使用<input type="file">的方式来声明一个文件域. (2)表单提交方式一定要是post方式才行 (3)表单属性enctype 默 ...

  10. iOS 程序间跳转传参(支付和地图)

    两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的. 1.首先设置第一个APP的url地址 2.接着设置第二个AP ...

随机推荐

  1. 以MPU6050为例的硬件IIC的使用

    目录 参考调试MPU6050与EEPROM的经验,整合了目标内存/寄存器地址是否为16位的情况,合并了单字节与多字节间的操作,添加了返回值与读写超时功能:硬件IIC的7位从机地址查询方式读写参考代码 ...

  2. Selinux讲解

    手动开启/关闭/查询 SELINUX状态的方法在Limx操作系统运行过程中无法使用命令停用 SELINUX,可以在内核启动参数或使用修改配置文件的方式去关闭 SELINUX安全机制.若只是要将 SEL ...

  3. RBAC(DAC)模型

    基于角色的访问控制模型 ⟨ , ,,, , , ,, ,⟩ U:用户集 S:会话集 O:资源集 Op:操作集 R:角色集 PERMS:OxOp:权限集 RH:RXR(是 的偏序,表示角色的层次结构,其 ...

  4. 原生js创建节点,添加节点,删除节点

    1.操作 var tab=document.querySelector('#app .bpm-container'); var abcbox=document.querySelector('.abcb ...

  5. Java语言打印空心菱形

    打印空心菱形如果一开始觉得比较困难的话,那么不妨分成几个步骤走完成菱形的打印. 1.先打印一个直角三角形(都是由星星组成的) 代码如下: import java.util.Scanner;//导入Sc ...

  6. Python安装及配置教程

    安装教程 一.python3.6安装步骤 1.首先我们移步官网,下载最新版本的python-3.6.0.点我,我把你传送到python官网 在DownLoad下拉框中点击Windows,选择要下载的文 ...

  7. Generamba构建模板,让开发变得更高效

    Generamba Generamba:是为使用 Xcode 而设计的代码生成器.它主要设计用于生成 VIPER 模块,但很容易自定义模板以生成任何其他模板(在 Objective-C 和 Swift ...

  8. 哲讯科技携手江苏大摩半导体借助SAP ERP打造数字化转型升级

    项目启动会2022年10月28日,无锡哲讯科技携手江苏大摩半导体科技有限公司SAP ERP系统实施项目启动大会于江苏大摩的上海总部会议室胜利召开.双方项目组核心成员,共同见证了本次SAP ERP实施项 ...

  9. Nuget管理器下载插件出现依赖性相关无法正确下载

    话不多说,直接上图: 上面我采用的是PM控制台下载EntityFrameWork最新版本,之所以要这样做,是因为利用Nuget管理器好像不咋管用呀,一直说这个依赖那个依赖啥的,还不如最底层 用命令控制 ...

  10. vscode远程连接服务器出现Bad owner or permissions on .ssh/config

    vscode远程连接服务器出现Bad owner or permissions on C:\\Users\USER\.ssh/config 过程试图写入的管道不存在, 原因是vscode的remoto ...