zoukankan      html  css  js  c++  java
  • Fiori跨应用跳转

    最近开发SAPUI5 App,客户需求是从一个App跳转到另外一个App的特定页面,并动态绑定指定数据。具体来说,如下图,在第一个App选中一个Internal Order然后点击Edit 或者 Create,页面跳转到第二个App的特定页面来编辑来自第一个App的internal order。

     

    如下是跳转的URL。

    #InternalOrder-manageInternalOrder?ControllingArea=00AU&IV_EDIT_MODE=EDIT&InternalOrder=300000&OrderType=Y090&TARGET_CONTENT_AREA=INTERNALORDER_PAGE_INITIAL

    #InternalOrder-manageInternalOrder?ControllingArea=00AU&IV_EDIT_MODE=NEW&InternalOrder=&OrderType=&TARGET_CONTENT_AREA=INTERNALORDER_PAGE_INITIAL

    我们知道在一个App中跳转需要使用路由和导航功能(Routing & Navigation),多个App之间跳转我们是否也可以使用这个功能呢?

    解决方案一:路由和导航功能(Routing & Navigation)

    如果对于SAP UI5 Routing & Navigation不熟悉的同学可以访问:https://sapui5.hana.ondemand.com/#/topic/3d18f20bd2294228acb6910d8e8a5fb5

     

    如上图,SAPUI5使用Router来解析URL中的Hash部分,#/之后的部分是Hash,我在SCP上部署App,Hash部分在&/之后。

    SAPUI5通过路由模式(Routing Patterns)来解析和导航网络地址,大概意思是一个网址符合一个模式(pattern),路由会通过这个模式Pattern设置的目标targets跳转到指定的页面(或者模块)。

    模式(Pattern)可以有各种形式,根据我们这次的需求,我们需要从URL中读出特定的参数parameters,比如:

    ControllingArea=00AU

    IV_EDIT_MODE=NEW

    这里推荐一个验证路由模式的小工具

    https://sapui5.hana.ondemand.com/#/entity/sap.ui.core.routing.Route/sample/sap.ui.core.sample.PatternMatching

     

    此解决方案一共分为两步:

    第一步:设置manifest.json的routting部分

     

    :?query:

    可以匹配我们URL里面的parameters,比如:InternalOrder-manageInternalOrder&/?ControllingArea=00AU&IV_EDIT_MODE=NEW

    第二步:

    在目标controller里面实现读取parameter的代码,然后根据parameter的值,来判断跳转到哪个页面。

     

     

    解决方案二:

    在controller代码里面直接读取URL中的Hash部分,代码如下:

    var sHash = window.location.hash;

    然后解析里面的参数,代码如下:

    var pieces = sHash.split("?");

    if (pieces.length > 1) {

    var params = pieces[1].split("&");

                   for (var i = 0; i < params.length; i++ ) {

                                  var pair = params[i].split("=");

                                  var key = pair[0];

                                  var valueofparam = pair[1];}

    两种解决方案虽然差别不大,但是需要对SAPUI5的routing&Navigation有比较深入的理解,所以深入开发SAPUI5应用不仅仅会使用模板创建App,也需要对框架有进一步的理解。

  • 相关阅读:
    sklearn学习笔记
    概率生成模型GAN
    机器学习的种类
    如何为React提交pull request
    webpack define Plugin
    Saas应用方法论12条
    React Ref 和 React forwardRef
    几个数组去重的方法
    级数笔记
    信号量及P/V操作
  • 原文地址:https://www.cnblogs.com/alexsap/p/10737006.html
Copyright © 2011-2022 走看看