2017-02-06 8 views
2

1つのSAPサーバーにいくつかのSAPUI5アプリケーションがあります。すべてのアプリケーションは、ERP Serverバージョン6.0に導入されます。SAPUI5の別のアプリケーションのコントローラにアクセス

すべてのアプリケーションには、SAP NetWeaver経由で取得できるERPサーバーのアクセスURLがあります。すべてのURLの形式はcommonPart/applicationName/index.htmlです。これらのアプリケーションはすべて、Fioriランチパッドアプリケーションからアクセスできます。

今、すべてのアプリケーション間で共有する必要があるコントローラがあります。このコントローラーをコピーして過去と共有することはできますか?事前

答えて

0

SAP Fioriアプリケーション用の再利用可能なライブラリプロジェクトを作成することができます。あなたのBaseControllerをそのライブラリに入れてください。次に、アプリケーションプロジェクトでライブラリをインポートし、BaseControllerからアプリケーションコントローラを拡張します。

それはJSファイル

jQuery.sap.declare("mylibrary.reuse.BaseController"); 
/** Controller Definition **/ 

はネオapp.jsonでライブラリにエントリポイントを定義し、公開するのです内BaseControllerを宣言し、あなたのベースプロジェクト

sap.ui.define(["jquery.sap.global", 
      "sap/ui/core/library"], // library dependency 
function(jQuery) { 

    "use strict"; 
    // delegate further initialization of this library to the Core 
    sap.ui.getCore().initLibrary({ 
     name: "mylibrary.reuse", 
     version: "1.0", 
     dependencies: ["sap.ui.core"], 
     types: [], 
     interfaces: [], 
     controls: [], 
     elements: [], 
     noLibraryCSS: true 
    }); 

    return mylibrary.reuse; 

}, /* bExport= */ true); 

のルートフォルダにlibrary.jsを定義します

{ 
    "routes": [{ 
    "path": "/resources/mylibrary/reuse", 
    "target": { 
     "type": "application", 
     "name": "myreuselibrary", 
     "entryPath": "/mylibrary/reuse" 
    }, 
    "description": "SAPUI5 Resources" 
}, 

}

その後、アプリケーションプロジェクトで上記のライブラリをインポートし、JQuery.require()にBaseControllerを取得してから、それを拡張します。

こちらがお役に立てば幸いです。

+1

あなたは 'それがJSファイル内のBaseControllerを宣言しました'それは何を指していますか? BaseControllerを何の中に定義する必要がありますか? –

+1

また、BaseControllerとライブラリの関係が何であるかは不明です。同じプロジェクト内で定義されている場合は? –

0

あなたは両方のコントローラがしたいすべての機能を持っているBaseControllerを作り、これが公開/共有フォルダ内のファイルをJS置くことで

感謝。次に、このコントローラーを両方のアプリケーションから拡張することができます。

+0

例えば、以下の

sap.ui.controller([your namespace].[controller folder name].[controller name]).[your method name]([parameters you want to pass])

に入力することができます。 –

+0

動作する可能性のあるアプローチは1つしかありませんが、それを知らなければテーマを展開してブートストラップにアクセスすることは可能です。それはここで説明されているhttps://help.hana.ondemand.com/theme_designer/frameset.htm?706af4ea51ed4c07b5b9159bf7df6471.html 私たちはjsファイルのために同じことをすることができれば世界は非常にいいです。 –

+0

同じサーバー上で共有ファイルをホストする場合、XSSエラーなどを実行する必要はありません。一致するドメイン/起点を作成するには、ドメインのリラクゼーションが必要な場合があります。正確なエラーは何ですか? –

0

あなたは単に私がそれをしたが、その後、私はので、ブラウザでのクロスリファレンスエラーのファイルにアクセスすることはできません

sap.ui.controller(CafApp.controller.create).onCreate(url);

関連する問題