この質問は次のものに関連しています。
- Fiori - クロス アプリケーション ナビゲーション
- http://help.sap.com/saphelp_uiaddon10/helpdata/en/07/9561b716bb4f2f8ae4e47bacbdb86d/content.htm
- ルーティングで URL パラメータを削除する
私のユースケースは次のようなものです:
他のアプリケーション (深い) にリンクする必要がある複数のアプリケーションがあります。クロス ナビゲーションのドキュメントで深いリンクを避けるように言及されているので、スタートアップ パラメーターを使用することにしました。
例えば:
アプリケーション A には、あるアイテムの詳細ビューにいくつかのアイテムのリストがあり、他の詳細を含む別のアプリケーション B への参照があります。A が記事の詳細を示し、B が記事のプロデューサーの詳細を示しているとします。
アプリケーション A は、次のようなナビゲーションを使用します。
sap.ushell.Container.getService("CrossApplicationNavigation").hrefForExternal({
target : { semanticObject : "ApplicationB", action : "display" },
params : { "someID" : "102343333"}
})
アプリケーション BI では、init メソッドの最後にある Component.js 内で次のようなコードを使用します。
var oRouter = that.getRouter().initialize();
var oComponentData = this.getComponentData();
if (oComponentData.startupParameters) {
oRouter.navTo("SomeView", {
someId : oComponentData.startupParameters.someID[0],
}, false);
}
最初の質問: これは起動パラメーターを処理する適切な場所ですか?
2 番目の質問: ナビゲーションを使用する場合、スタートアップ パラメーターはコード内に残ります。削除したいのですが、どうすればよいですか?
アップデート
ターゲット アプリケーション (B) では、次の URL につながります。
https://server/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=100&sap-language=EN#SemObject-display?someID=102343333&/SomeView(102343333)/
とにかく、私はこのようなものを好むだろう:
https://server/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=100&sap-language=EN#SemObject-display?/SomeView(102343333)/