Этот вопрос связан с:
- 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"}
})
Теперь в приложении B я использую такой код внутри Component.js в конце метода init.
var oRouter = that.getRouter().initialize();
var oComponentData = this.getComponentData();
if (oComponentData.startupParameters) {
oRouter.navTo("SomeView", {
someId : oComponentData.startupParameters.someID[0],
}, false);
}
Первый вопрос: это правильное место для обработки параметров запуска?
Второй вопрос: Если я использую навигацию, параметр запуска все равно будет в коде, я бы предпочел его убрать, но как?
Обновлять
В целевом приложении (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)/