接以前做的例子,用组件做了个搜索界面,明细里添加了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. selenium span[contains]中使用变量

    province = '湖南' driver.find_element_by_xpath('//span[contains(text(),"'+province+'").click ...

  2. 迭代(遍历)时候不可以使用集合的remove和add方法,但可使用Java迭代器的remove和add方法

    不要在 foreach 循环里进行元素的 remove/add 操作.remove 元素请使用 Iterator 方式. 反例: public class ForeachTest { private ...

  3. JDBC——Java语言连接数据库的标准

    JDBC概述 API JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  4. kubernets kubevirt 分析

    目前kubevirt提供虚机管理的功能. kill, delete, shutdown, migration 等. VMI是virtual machine interface的缩写. SyncVMI, ...

  5. dict字典的一些优势和劣势

    01. 键必须是可散列的一个可散列的对象必须满足以下要求. (1) 支持 hash() 函数,并且通过 __hash__() 方法所得到的散列值是不变的. (2) 支持通过 __eq__() 方法来检 ...

  6. ojdbc包加入本地仓库

    mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar - ...

  7. restorecon【转】

    本文转载自:https://blog.csdn.net/sinat_36888624/article/details/6076650 estorecon命令用来恢复SELinux文件属性即恢复文件的安 ...

  8. <工厂方法>比<简单工厂>多了啥

    前言:多注重设计.仅当复习讨论! 简单工厂模式 UML图   假如有一位爱心人士,想给饥饿的流浪动物喂食.此时爱心人士身带了狗粮,但是他到处找啊找,最终只找到了猫大人,是不是有点惨兮兮.但是如果有简单 ...

  9. Python中的反转字符串问题

    按单词反转字符串是一道很常见的面试题.在Python中实现起来非常简单. def reverse_string_by_word(s): lst = s.split() # split by blank ...

  10. python on sql

    USE [DemoDb]GOexecute sp_execute_external_script @language = N'Python', @script = N'a = 1b = 2c = a/ ...