接以前做的例子,用组件做了个搜索界面,明细里添加了object_id的链接:

  method GET_P_OBJECT_ID.
"#EC NEEDED
** generated by search page wizard if me->running_in_f4_popup( ) = abap_false.
case iv_property.
when if_bsp_wd_model_setter_getter=>fp_fieldtype.
rv_value = cl_bsp_dlc_view_descriptor=>field_type_event_link.
when if_bsp_wd_model_setter_getter=>fp_onclick.
rv_value = 'CLICKONLINK'.
endcase.
endif.
endmethod.
DATA lv_index       TYPE i.
DATA: lv_action TYPE c.
cl_thtmlb_util=>get_event_info(
EXPORTING
iv_event = htmlb_event_ex
IMPORTING
ev_index = lv_index ).
DATA lr_node TYPE REF TO if_bol_bo_property_access.
lr_node ?= me->typed_context->searchresultnode->collection_wrapper->find( iv_index = lv_index ).
DATA lv_guid TYPE CRMT_OBJECT_GUID." REF TO data.
DATA lv_obj TYPE crmt_object_id. lr_node->get_property_as_value(
EXPORTING
iv_attr_name = 'OBJECT_ID'
IMPORTING
ev_result = lv_obj ).
SELECT SINGLE GUID INTO LV_GUID FROM CRMD_ORDERADM_H WHERE OBJECT_ID = LV_OBJ.
DATA: lv_bol_core TYPE REF TO cl_crm_bol_core.
lv_bol_core = cl_crm_bol_core=>get_instance( ).
lv_bol_core->start_up( 'BT' ).
DATA lr_entity TYPE REF TO cl_crm_bol_entity.
lr_entity = lv_bol_core->get_root_entity( iv_object_name = 'BTOrder' iv_object_guid = LV_GUID ). * 将跟对象传递到window_controller
DATA lr_col TYPE REF TO cl_crm_bol_entity_col.
CREATE OBJECT lr_col.
lr_col->if_bol_bo_col~add( lr_entity ).
DATA: lr_window TYPE REF TO cl_bsp_wd_window.
lr_window = me->view_manager->get_window_controller( ).
lr_window->call_outbound_plug( iv_outbound_plug = 'DEFAULT'
iv_data_collection = lr_col ).
  method OP_DEFAULT.
CONSTANTS lv_ui_action TYPE crmt_ui_actions VALUE 'B'. "display
DATA lr_ent TYPE REF TO if_bol_bo_property_access.
DATA lr_descriptor_object TYPE REF TO cl_crm_ui_descriptor_object. lr_ent ?= iv_data_collection->get_first( ).
CATCH SYSTEM-EXCEPTIONS move_cast_error = .
lr_descriptor_object ?= lr_ent.
ENDCATCH.
IF sy-subrc NE .
CALL METHOD cl_crm_uiu_bt_navigate=>prepare_col_for_navigate
EXPORTING
ir_collection = iv_data_collection
iv_ui_action = lv_ui_action
EXCEPTIONS
no_nav_descriptor_inserted =
OTHERS = .
ENDIF.
IF sy-subrc EQ .
DATA lr_nav TYPE REF TO if_crm_ui_navigation_service.
lr_nav = cl_crm_ui_navigation_service=>get_instance( me ).
* Navigate to Target Component
lr_nav->navigate_dynamically( iv_data_collection ).
ENDIF.
endmethod.

上面是做成通用的,下面是给单独事件的:

  METHOD eh_onclickno.

    DATA: lv_index        TYPE int4,
* lr_comp_controller TYPE REF TO cl_bt111s_o_bspwdcomponen_impl,
* lr_cuco TYPE REF TO cl_bt111s_o_cucosearch_impl,
lr_entity TYPE REF TO if_bol_bo_property_access,
lv_event TYPE REF TO cl_htmlb_event_tableview,
lr_msg_srv TYPE REF TO cl_bsp_wd_message_service,
lv_subrc TYPE sy-subrc,
lv_tableview_ex TYPE REF TO cl_thtmlb_table_view. CALL METHOD cl_thtmlb_util=>get_event_info
EXPORTING
iv_event = htmlb_event_ex
IMPORTING
ev_index = lv_index. * set entity as current one
lr_entity ?= me->typed_context->result->collection_wrapper->find( iv_index = lv_index ). CHECK lr_entity IS BOUND. DATA l_guid TYPE crmd_orderadm_h-guid.
CALL METHOD lr_entity->get_property_as_string
EXPORTING
iv_attr_name = 'GUID'
* iv_use_iso_format = ABAP_FALSE
RECEIVING
rv_result = l_guid. DATA lr_core TYPE REF TO cl_crm_bol_core.
DATA lr_bt TYPE REF TO cl_crm_bol_entity.
lr_core = cl_crm_bol_core=>get_instance( ).
*初始化 BT为组件集名称
lr_core->start_up( 'BT' ). TRY.
CALL METHOD lr_core->get_root_entity
EXPORTING
iv_object_name = 'BTOrder'
iv_object_guid = l_guid " 单句对应的GUID
RECEIVING
rv_result = lr_bt.
CATCH cx_crm_genil_model_error .
ENDTRY. CHECK lr_bt IS BOUND. RAISE EVENT history_trigger. DATA: lr_nav_descr TYPE REF TO if_bol_bo_property_access.
DATA: lr_navigation TYPE REF TO if_crm_ui_navigation_service.
DATA: lr_col TYPE REF TO cl_crm_bol_bo_col.
DATA: rv_value_node TYPE REF TO cl_bsp_wd_value_node. cl_crm_ui_descriptor_obj_srv=>create_ui_object_based(
EXPORTING iv_ui_object_type = 'BT116_SRVO'
iv_ui_object_action = 'B'
RECEIVING rr_result = lr_nav_descr ). CHECK lr_nav_descr IS BOUND.
lr_navigation = cl_crm_ui_navigation_service=>get_instance( me ).
CHECK lr_navigation IS BOUND. * Check whether navigation is supported
IF lr_navigation->is_dynamic_nav_supported( lr_nav_descr ) NE abap_true.
RETURN.
ELSE.
CREATE OBJECT lr_col.
lr_col->if_bol_bo_col~add( iv_entity = lr_nav_descr ).
lr_col->if_bol_bo_col~add( iv_entity = lr_bt iv_set_focus = abap_true ).
lr_navigation->navigate_dynamically( lr_col ).
ENDIF. ENDMETHOD.

WEB UI基础八:链接跳转到标准的工单界面的更多相关文章

  1. 阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页

    问题:ios封装完之后,点击里边的按钮会跳转到网页上 ——小卡遇到这个问题就是这样解决的↓↓↓ 解决方法:建议将代码放到</head>标签前,当然,另外存为一个js 文件引用也是可以的呦~ ...

  2. MVC 【Razor 视图引擎】基础操作 --页面跳转,传值,表单提交

    ASPX  与  Razor  仅仅是视图不一样. 新建项目----ASP.NET MVC 4 Web 应用程序------选择模板(空).视图引擎(Razor ) 1.视图中 c# 代码  与 HT ...

  3. [置顶] 提高生产力:Web开发基础平台WebCommon的设计和实现

    Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...

  4. 提高生产力:Web开发基础平台WebCommon的设计和实现

    Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...

  5. 20165207 Exp9 Web安全基础

    目录 20165207 Exp9 Web安全基础 一.实验过程 1.环境配置 2.代理工具burpsuite 2.1 Http proxies -> Use the intercept 3.sq ...

  6. 【转】谈谈Google Polymer以及Web UI框架的未来

    原文转自:http://www.csdn.net/article/2013-05-27/2815450-google-polymer 摘要:开发者Axel Rauschmayer在自己的博客上详解了G ...

  7. web前端基础知识及快速入门指南

    web前端基础知识及快速入门指南 做前端开发有几个月了,虽然说是几个月,但是中间断断续续的上课.考试以及其它杂七杂八的事情,到现在居然一直感觉自己虽然很多前端的知识很眼熟,却也感觉自己貌似也知识在门口 ...

  8. 【JavaScript】谈谈Google Polymer以及Web UI框架的未来

    摘要:开发者Axel Rauschmayer在自己的博客上详解了Google Polymer的设计理念与组成架构,深得Polymer开发者的认同.他认为Polymer这样高互操作性的设计才应该是Web ...

  9. 20155208徐子涵《网络对抗》Exp9 Web安全基础

    20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...

随机推荐

  1. html5 css折叠导航栏

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. Oracle 体系结构chapter2

    前言:Oracle 体系结构其实就是指oracle 服务器的体系结构,数据库服务器主要由三个部分组成 管理数据库的各种软件工具(sqlplus,OEM等),实例(一组oracle 后台进程以及服务器中 ...

  3. tomcat+nginx实现

    这里采用tomcat安装包 tomcat 版本说明:  9.0.17 nginx   版本说明: 1.14.2 jdk      版本说明:  1.8.0 创建目录 [root@web02 /]# m ...

  4. TeamViewer连CentOS

    用过TeamViewer的人都会感叹其远程连接的强大,昨天有将Windows和CentOS在同一网段内互相连接打通了,今天在外网环境下突然想到是否可以用TeamViewer在外网环境下连到CentOS ...

  5. react初始

    一.一些基础概念 1.框架:基于整个项目的 2.库:在某个模块中单独使用,轻量级的 在vue中,DOM的操作时DOM指令调用js 在react中,所有的DOM 渲染都是由JS完成的 组件基于视图 模块 ...

  6. appium1.4版本,每次运行appium时需要安装unlock,setting文件的解决方法

    在使用appium执行自动化脚本时,首次运行脚本时会在手机中安装unlock,setting,inputmanager三个apk,以达到让appium控制app的目的,但是运行完一次之后,在OPPO, ...

  7. iOS进阶之如何进行 HTTP Mock(转载)

    这篇文章会对 OHHTTPStubs 源代码的分析,其实现原理是建立在 NSURLProtocol 的基础上的,对这部分内容不了解的读者,可以阅读这篇文章 iOS 开发中使用 NSURLProtoco ...

  8. ntfs读写工具Paragon NTFS 15无限使用教程

    Paragon NTFS mac版是Mac OS平台上最受欢迎的ntfs读写工具,专门开发用来弥补Windows和Mac OS X之间的不兼容性,通过在Mac OS X系统下提供对任何版本的NTFS文 ...

  9. [十二省联考2019]异或粽子 01trie

    [十二省联考2019]异或粽子 01trie 链接 luogu 思路 首先求前k大的(xo[i]^xo[j])(i<j). 考场上只想到01trie,不怎么会写可持久,就写了n个01trie,和 ...

  10. SAP ERP SD模块中维护销售人员

    SAP ERP SD模块中维护销售人员信息并分配销售组织   分类: SAPHCM用户指南   在SAP ERP系统,销售和分销(SD)模块中需要创建销售人员(Sales Personnels)消息, ...