1. はじめに
Fioriアプリの利用にあたり、業務の現場では、特定の日付範囲や会社コード等を検索条件として入力し、一覧の並び順も調整したうえで、“Share”ボタン経由でのメール送信やチャットでのアプリURLの送信等により、ほかのユーザに共有するケースがあります。しかし、URLを受け取ったユーザがそのURLを開くと、フィルタが初期化されていたり、並び順が元に戻っていたりするため、送信者の画面が再現できない場合があります。
この挙動は、異なるブラウザ(例:ChromeからEdge)、異なるデバイス(PCからスマートフォン)、あるいは別セッションからアクセスした場合に発生します。結果として、受け手は再度フィルタ条件を聞き直したり、スクリーンショットと突き合わせたりしながら手作業で条件を復元することになり、レビューや承認、トラブルシュートのスピードが落ちることが考えられます。
この事象の原因は、Fiori Launchpadのデフォルト設定にあります。標準設定では、アプリの状態(フィルタ、ソート、ページネーションなど)はブラウザ側の一時領域に保持されており、URLのみの共有では、フィルタ条件等は反映されません。そのため、URLを別の環境で開いても、送信者のブラウザに保存された情報は参照されず、URLに“sap-iapp-state”のパラメータが付与されていても画面の再現ができません。
こちらのブログでは、異なるブラウザやデバイス間でフィルタ条件やテーブルカラムの並び順等の情報を含めてアプリを共有するための設定についてご紹介します。
2. アプリの状態を共有するための仕組み
アプリの状態は、Application Stateデータにより管理されます。Application Stateデータは、Fiori Launchpadでの“アプリの見た目やフィルタリングの状態“を扱うデータです。ユーザがフィルタ条件を設定したり、テーブルの並び順・表示列を調整したりしたとき、その状態をひとまとめの「スナップショット」として記録し、後から復元する仕組みとなっています。Fiori elementsやSmartFilterBarを使うアプリでは、このApplication Stateデータを通じてアプリの状態が保存・読み込みされています。Fiori アプリでは、URLに付与された参照キー(”sap-iapp-state“パラメータ)を使用してアプリの状態を再現します。
Fiori LaunchpadにおけるApplication Stateデータの取り扱い方法は、Launchpad設定パラメータ:APPSTATE_TRANSIENTで定義され、以下の2種類のパラメータが提供されています。
true (デフォルト)
ブラウザ内の一時領域に状態を保持する方式(transient)です。同一ブラウザ・同一セッションのみ状態が維持されるため、別ブラウザや別デバイスでは再現されません。
false
アプリの状態をFront-end サーバ側に保存します。そのため、Front-end サーバに保存されたデータを参照するため、異なるブラウザやデバイス間でのアプリの再現が可能となります。
3. 設定方法
以下のいずれかのトランザクションで、Launchpad 設定パラメータ:APPSTATE_TRANSIENT(設定値: true / false)を設定します。
T-cd: /UI2/FLP_CUS_CONF(クライアント依存設定の場合)T-cd: /UI2/FLP_SYS_CONF(クライアント非依存設定の場合)
4. 注意事項
Launchpad 設定パラメータ:APPSTATE_TRANSIENTをfalseに設定した場合は、Application Stateデータがサーバに保存されるため、サーバへの負荷やパフォーマンスの観点から定期的なクリーンアップが必要です。
データのクリーンアップは、Cleanup Layered Repository Files(T-cd: /UIF/CLEAN_LREP)から実行可能です。クリーンアップ実行において、以下のパラメータ設定が必要です。(クリーンアップ後のApplication Stateデータには、アクセスできません。)
Maximum number of times read:削除対象となるApplication Stateデータの最大アクセス回数(0 に設定した場合、一度もアクセスされてないデータが対象となります。)Minimum number of days not accessed:最後のアクセスから経過した最小日数(30 に設定した場合、30日間アクセスされていないデータが対象となります。)
詳細は、SAP Help: Cleanup of Expired Application Stateをご確認ください。
5. まとめ
Launchpad 設定パラメータ:APPSTATE_TRANSIENTをfalseに設定することで、異なるブラウザやデバイス間でのアプリの状態(フィルタ条件、ソート、ページネーションなど)を共有することが可能です。一方、APPSTATE_TRANSIENTをfalseに設定した場合は、Application Stateデータがサーバに保存されるため、サーバへの負荷やパフォーマンスの観点から定期的なクリーンアップが必要となります。
6. 参考情報
SAP Help: Launchpad Configuration Parameters
SAP KBA: 3260742 – Fiori appstate is not persisted across browser sessions
SAP Help: Cleanup of Expired Application State
1. はじめにFioriアプリの利用にあたり、業務の現場では、特定の日付範囲や会社コード等を検索条件として入力し、一覧の並び順も調整したうえで、“Share”ボタン経由でのメール送信やチャットでのアプリURLの送信等により、ほかのユーザに共有するケースがあります。しかし、URLを受け取ったユーザがそのURLを開くと、フィルタが初期化されていたり、並び順が元に戻っていたりするため、送信者の画面が再現できない場合があります。この挙動は、異なるブラウザ(例:ChromeからEdge)、異なるデバイス(PCからスマートフォン)、あるいは別セッションからアクセスした場合に発生します。結果として、受け手は再度フィルタ条件を聞き直したり、スクリーンショットと突き合わせたりしながら手作業で条件を復元することになり、レビューや承認、トラブルシュートのスピードが落ちることが考えられます。この事象の原因は、Fiori Launchpadのデフォルト設定にあります。標準設定では、アプリの状態(フィルタ、ソート、ページネーションなど)はブラウザ側の一時領域に保持されており、URLのみの共有では、フィルタ条件等は反映されません。そのため、URLを別の環境で開いても、送信者のブラウザに保存された情報は参照されず、URLに“sap-iapp-state”のパラメータが付与されていても画面の再現ができません。こちらのブログでは、異なるブラウザやデバイス間でフィルタ条件やテーブルカラムの並び順等の情報を含めてアプリを共有するための設定についてご紹介します。2. アプリの状態を共有するための仕組みアプリの状態は、Application Stateデータにより管理されます。Application Stateデータは、Fiori Launchpadでの“アプリの見た目やフィルタリングの状態“を扱うデータです。ユーザがフィルタ条件を設定したり、テーブルの並び順・表示列を調整したりしたとき、その状態をひとまとめの「スナップショット」として記録し、後から復元する仕組みとなっています。Fiori elementsやSmartFilterBarを使うアプリでは、このApplication Stateデータを通じてアプリの状態が保存・読み込みされています。Fiori アプリでは、URLに付与された参照キー(”sap-iapp-state“パラメータ)を使用してアプリの状態を再現します。Fiori LaunchpadにおけるApplication Stateデータの取り扱い方法は、Launchpad設定パラメータ:APPSTATE_TRANSIENTで定義され、以下の2種類のパラメータが提供されています。true (デフォルト)ブラウザ内の一時領域に状態を保持する方式(transient)です。同一ブラウザ・同一セッションのみ状態が維持されるため、別ブラウザや別デバイスでは再現されません。falseアプリの状態をFront-end サーバ側に保存します。そのため、Front-end サーバに保存されたデータを参照するため、異なるブラウザやデバイス間でのアプリの再現が可能となります。3. 設定方法以下のいずれかのトランザクションで、Launchpad 設定パラメータ:APPSTATE_TRANSIENT(設定値: true / false)を設定します。T-cd: /UI2/FLP_CUS_CONF(クライアント依存設定の場合)T-cd: /UI2/FLP_SYS_CONF(クライアント非依存設定の場合) 4. 注意事項Launchpad 設定パラメータ:APPSTATE_TRANSIENTをfalseに設定した場合は、Application Stateデータがサーバに保存されるため、サーバへの負荷やパフォーマンスの観点から定期的なクリーンアップが必要です。データのクリーンアップは、Cleanup Layered Repository Files(T-cd: /UIF/CLEAN_LREP)から実行可能です。クリーンアップ実行において、以下のパラメータ設定が必要です。(クリーンアップ後のApplication Stateデータには、アクセスできません。)Maximum number of times read:削除対象となるApplication Stateデータの最大アクセス回数(0 に設定した場合、一度もアクセスされてないデータが対象となります。)Minimum number of days not accessed:最後のアクセスから経過した最小日数(30 に設定した場合、30日間アクセスされていないデータが対象となります。)詳細は、SAP Help: Cleanup of Expired Application Stateをご確認ください。5. まとめLaunchpad 設定パラメータ:APPSTATE_TRANSIENTをfalseに設定することで、異なるブラウザやデバイス間でのアプリの状態(フィルタ条件、ソート、ページネーションなど)を共有することが可能です。一方、APPSTATE_TRANSIENTをfalseに設定した場合は、Application Stateデータがサーバに保存されるため、サーバへの負荷やパフォーマンスの観点から定期的なクリーンアップが必要となります。6. 参考情報SAP Help: Launchpad Configuration ParametersSAP KBA: 3260742 – Fiori appstate is not persisted across browser sessionsSAP Help: Cleanup of Expired Application State Read More Technology Blog Posts by SAP articles
#SAP
#SAPTechnologyblog