zoukankan      html  css  js  c++  java
  • SAP CRM WebClient UI和ABAP Webdynpro页面的互相跳转

    Now I have another solution to navigate to ABAP webdynpro page via CRM navigation framework.
    The CRM navigation framework is using a so-called navigation object which can tell framwork what the target UI view and the respective operation ( Display, Edit, Search etc ). The navigation object relies heavily on CRM ui concept like UI object type, BOR and BOL type which do not make sense for a ABAP Webdynpro page.
    So the main idea of this solution is, to use a wrapper CRM ui component which encapsulate ABAP webdynpro page and make configurations to achieve the navigation from source UI component to the wrapper component. After the wrapper component is opened, it will then open ABAP webdynpro page itself.

    The finaly result would look like below:

    compared with the solution in my previous blog, this solution does not need any enhancement on standard UI component, instead only several customizing work
    ( with corresponding mapper class development )and the development of a new wrapper UI component with tiny effort. The main steps are below:

    step1

    create a simple wrapper UI component. ( Please ignore view main, which is for another blog )

    create an inbound plug for window MainWindow and implement as below.

      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.
    

    The idea is to get the target ABAP webdynpro page url from iv_collection which is passed by CRM navigation framwork and set it to a static attribute of window controller class. That gv_url is just used in view windowOpen.htm. So it means when this wrapper UI component view is about to be rendered, it will open the target ABAP webdynpro page via javascript window.open.

    step2

    SM30, view name BSPDLCV_OBJ_TYPE create a new UI object type. please AlWAYS double check in the system whether there are already existing UI object type in the system!
    Here I create a new UI object type CRM_WF. You can input any name in BOL Object name. There is no validation check, just input a meaningful name.
    The Genil component specified here will be loaded automatically by framework in the runtime. In most time your ABAP webdynpro page does not have respective Genil component in CRM, you just can maintain a dummy one.

    step3

    create a new entry in table CRMS_UI_OBJ_MAP. The object name comes from step2.

    the mapping class must implement interface IF_CRM_UI_OBJ_MAPPER. If your scenario is just navigation from CRM ui to ABAP webdynpro,
    you only need to implement GET_ENTITY_FROM_UI_OBJECT.
    Here I just retrieve respective document data from database with document key passed in from framework ( iv_entty_key_value )

    step4

    in SPRO-Customer Relationship Management-UI Framework-Technical Role Definition-Define Work Area Component Repository:
    create a new entry for your wrapper UI component:

    in inbound Plug Definition, create one entry:

    in SPRO-Customer Relationship Management-UI Framework-Technical Role Definition-Define Navigation Bar Profile:
    create an entry in “Define Generic Outbound Plug mapping” for your profile.

    And that’s all.

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    在【Xamarin+Prism开发详解三:Visual studio 2017 RC初体验】中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很是感兴趣。于是发时间深入研究了一下Visual Studio 2017RC 是不是和微软Connect()://2016上说得一样神。
    .NET(C#):await返回Task的async方法
    【笔记】关于汉字注音 汉字转拼音,首拼
    MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)
    在Asp.net MVC使用jqGrid--代码少点再少点
    jQuery Grid With ASP.Net MVC
    MVC权限控制
    MVC数据库数据分页显示
    NPOI对Excel的操作(Sheet转DataTable、List<T>)
    基于FormsAuthentication的用户、角色身份认证
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13419913.html
Copyright © 2011-2022 走看看