2

ランチパッドでアプリケーション間を移動したい。私は、ushell の CrossApplicationNavigation を介して、多くの検索を行っていることを発見しました。ドキュメントへのリンクは次のとおりです (SAPUI5 SDK - デモ キット)

ランチパッドの各アプリケーションには、さらにナビゲーションを行うための「セマンティック オブジェクト」と「アクション」があります。

ドキュメントに従い、次のコードを記述して CrossApplicaionNavigation サービスを作成しました。

var fgetService =sap.ushell && sap.ushell.Container && sap.ushell.Container.getService;
this.oCrossAppNavigator = fgetService && fgetService("CrossApplicationNavigation");

oCrossAppNavigator サービスが適切に開始されることを確認するために、次のコードを記述しました。

var hashForApp =  this.oCrossAppNavigator.hrefForExternal({
            rget : { semanticObject : "SalesOrder",action : "create" }
});
console.log("Hash for the application: " + hashForApp);

console Output: #SalesOrder-create

サービスが機能することを知ったので、「SalesOrder」アプリケーションと「create」アクションに移動する次のコードを書きました。

this.oCrossAppNavigator.toExternal({
    target : { semanticObject : "SalesOrder",action : "create" }
});

これが私の問題です。上記のステートメントは、SalesOrder アプリケーションに送られることも、コンソールにエラーを出力することもありません。上記のハッシュ コードで URL を更新し、そのアプリケーションに移動するはずでした。

注: 上記のハッシュ コードを使用して URL を手動で変更すると、SalesOrder アプリケーションに正しく送信されます。

前もって感謝します、

ヴァグリー

4

1 に答える 1

0

これをローカルで実行しようとしていますか?その場合、両方のアプリケーション (クロス アプリ コードを追加したアプリ「SalesOrder-create」アプリ) が「ローカル サンドボックス」で実行されていない限り、期待どおりに機能しないためです。

ただし、SAP 開発/テスト システムのFiori Launchpadにインストールされたアプリでこのコードを実行しようとした場合、同じ Launchpad に「SalesOrder-create」アプリもある場合、問題なく動作するはずです

また、次の方法を使用して、クロスアプリ サービスが機能しているかどうかを確認します。これは、コードが常に出力されるように見えるためです。#SalesOrder-create

if (sap.ushell && sap.ushell.Container && sap.ushell.Container.getService)
{
  var oCrossAppNavigator = sap.ushell.Container.getService("CrossApplicationNavigation");

   oCrossAppNavigator.toExternal({
                      target: { semanticObject : "SalesOrder", action: "create" },   //the app you're navigating to 
                        // params : { param1:data, param2:data}
                     }); 
  }
else
{
     jQuery.sap.log.info("Cannot Navigate - Application Running Standalone");
 }
}
于 2015-01-09T04:06:31.247 に答える