zoukankan      html  css  js  c++  java
  • 在SAP CRM WebClient UI里打开ABAP Webdynpro页面

    Hi Friends,

    in my recent customer project customer complains to me that they can not navigate from the workflow search result to the target UI.

    The workflow work item is a document generated via SAP document builder. They would like to navigate to the document detail page and then decide whether to approve the document or not. With SAP standard solution so far in CRM7.0 EHP3, this is not possible since this work item does not have any BOR type but instead modeled via ABAP class /IPRO/CL_WFL_DOCUMNT. What’s more, the target document page is built via ABAP webdynpro which has not respective concept like UI object type, Genil component or BOL object name.

    So in order to enable customer to see the document page, I just enhance the standard table to add a new column named “Document URL“. By clicking the hyperlink of that column, it will create a new popup window to display the document page.

    The solution could be concluded as below steps:

    Step1

    enhance a new attribute DOC_URL in standard context node SEARCHRESULTNODE, implement Getter and P Getter.

    in Getter, just get the target document page url via utility class:

    method GET_DOC_URL.
        value = zcl_document_utility=>get_display_value( iterator ).
    endmethod.
    

    in p getter, set the event handler for hyperlink click event:

    METHOD GET_P_DOC_URL.
    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 = 'DISPLAY_DOC'.
      ENDCASE.
    ENDMETHOD.
    

    Step2

    define component usage GS_CMSRCH:

    and in event handler for DISPLAY_DOC:

    method OPEN_URL_INTERNAL.
        DATA(lv_title) = cl_wd_utilities=>get_otr_text_by_alias( 'Document(to be approved) Preview' ). "#EC NOTEXT
        DATA(lr_popup) = io_wd_manager->create_popup(  iv_interface_view_name = 'GS_CMSRCH/CMDisplayContentWindow'
                                                       iv_usage_name          = 'GS_CMSRCH'
                                                       iv_title               = lv_title ).
        DATA(lr_cn)  = lr_popup->get_context_node( 'PARAMS' ).
        DATA(lr_obj) = lr_cn->collection_wrapper->get_current( ).
        READ TABLE st_url_buffer ASSIGNING FIELD-SYMBOL(<buffer>) WITH KEY uuid = iv_guid.
        CHECK sy-subrc = 0.
        DATA(ls_params) = VALUE crmt_gsurlpopup_params( url = <buffer>-url height = '1000' ).
        lr_obj->set_properties( ls_params ).
        lr_popup->set_display_mode( if_bsp_wd_popup=>C_DISPLAY_MODE_PLAIN ).
        lr_popup->set_window_width( 1000 ).
        lr_popup->set_window_height( 10000 ).
        lr_popup->open( ).
      endmethod.
    

    And that’s all.
    Interface window CMDisplayContentWindow is a new window created by SAP in EHP3 SP3. There is no magic inside it: just open the target window via JavaScript window.open.

    you can also use the reuse component GSURLPOPUP, which can achieve the same result but with different html markup.

    After I finish it, I soon realized that in this dedicated case, it is possible to “navigate” to the target ABAP webdynpro page via CRM navigation framework itself.

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

  • 相关阅读:
    安装.NET FRAMEWORK 4.5安装进度条回滚之后发生严重错误 代码0x80070643
    C#远程时间同步助手软件设计
    Win7+Ubuntu双系统安装完成后时间不一致相差大概8小时
    php中类的不定参数使用示例
    php读写xml基于DOMDocument方法
    php写的非常简单的文件浏览器
    php封装的sqlite操作类
    phpstudy中apache的默认根目录的配置
    实现基于最近邻内插和双线性内插的图像缩放C++实现
    【STL深入理解】vector
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13420073.html
Copyright © 2011-2022 走看看