如何在 SAP CRM 里通过 navigation framework 跳转到 ABAP Webdynpro 页面

简介: 如何在 SAP CRM 里通过 navigation framework 跳转到 ABAP Webdynpro 页面

对于国内不少 SAP CRM 客户来说,他们的 CRM 自开发项目里都存在不少基于 ABAP Webdynpro 技术开发的第三方页面,这是因为国内 ABAP Webdynpro 的开发顾问相对较多。


对于这些 CRM 客户来说,一个常规需求,就是在 CRM WebClient UI 里,通过点击事件,跳转到 ABAP Webdynpro 页面去。


本文介绍如何通过 SAP CRM WebClient UI 的 navigation framework 来实现这个需求。


CRM 导航框架使用所谓的导航对象,它可以告诉框架目标 UI 视图和相应的操作(显示、编辑、搜索等)。


导航对象严重依赖于 CRM ui 概念,例如 UI 对象类型、BOR 和 BOL 类型,这对于 ABAP Webdynpro 页面没有意义。


所以这个解决方案的主要思想是,使用一个包装 CRM ui 组件来封装 ABAP webdynpro页面并进行配置,以实现从源 UI 组件到包装组件的导航。 打开包装器组件后,它将打开 ABAP webdynpro 页面本身。

最终结果如下图所示:

这个解决方案不需要对 CRM 标准的 ui Component 进行任何增强,仅仅一些简单的配置即可搞定。

  1. 创建一个简单的 wrapper ui Component:

给 window MainWindow 创建一个 inbound plug,并编写下列的 ABAP 代码:

  method IP_FROM_WF.
    data(lo_entity) = iv_collection->get_first( ).
    CHECK lo_entity IS NOT INITIAL.
    data(lv_guid) = lo_entity->get_property_as_string( ‘DOCMNT’ ).
    cl_zmeta_mainwindow_impl=>gv_url = zcl_url_utility=>get_url( CONV #( lv_guid ) ).
  endmethod.

上面这段代码的大致思路是,从 iv_collection 获取由 CRM 导航框架传递的目标 ABAP webdynpro 页面 url,并将其设置为窗口控制器类的静态属性。 gv_url 只是在视图 windowOpen.htm 中使用。 所以这意味着当这个包装器 UI 组件视图即将被渲染时,它将通过 javascript window.open 打开目标 ABAP webdynpro 页面。

  1. 启动事务码 SM30, view name BSPDLCV_OBJ_TYPE,创建一个新的 UI Object type CRM_WF.

这里我创建了一个新的 UI 对象类型 CRM_WF。 可以在 BOL 对象名称中输入任何名称。这个字段没有验证检查,只需输入一个有意义的名称即可。


这里指定的 Genil 组件将在运行时由框架自动加载。 大多数时候,ABAP webdynpro 页面在 CRM 中没有相应的 Genil 组件,只需维护一个虚拟组件即可。


  1. 在配置表 CRMS_UI_OBJ_MAP 里创建一条新的记录。Object name 从前一步骤里获取。

映射类必须实现接口 IF_CRM_UI_OBJ_MAPPER.


如果场景只是从 CRM ui 导航到 ABAP webdynpro,只需要实现 GET_ENTITY_FROM_UI_OBJECT 即可。

在这里,我只是使用从框架传入的文档键( iv_entty_key_value )从数据库检索相应的文档数据:

  1. 通过下列路径进行配置:
    SPRO-Customer Relationship Management-UI Framework-Technical Role Definition-Define Work Area Component Repository:

给 wrapper Component 创建一条新的记录:

以上就是全部的步骤。

相关文章
|
23天前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
52 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
1月前
|
中间件
什么是 SAP CRM 系统里的 Initial Download
什么是 SAP CRM 系统里的 Initial Download
23 0
|
19天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
19 0
|
23天前
|
数据库
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
16 5
|
23天前
|
Web App开发 开发者 存储
介绍一个 webp 格式转 png 格式的软件:XNConvert
介绍一个 webp 格式转 png 格式的软件:XNConvert
25 6
介绍一个 webp 格式转 png 格式的软件:XNConvert
|
23天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
16 1
什么是 SAP ABAP 里的 Subscreen
|
1月前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符
19 0
|
6月前
|
存储 语音技术 UED
如何用 ABAP 代码进行文本转语音的输出工作
如何用 ABAP 代码进行文本转语音的输出工作
36 0
|
2月前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
25 0
|
1月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
15 0