ブログ

【SAP Fiori】OData V2 / V4対応! SAPUI5 Variant Managementで検索条件を保存する方法について解説

この記事をSNSでシェア!

はじめに

本記事では、SAPUI5で検索条件の保存などに利用することができる「バリアント機能」について紹介します。
複数のデータを表示するアプリケーション内で、同じような検索条件を繰り返し利用する場面は多いと思います。こうした場面で活用できるのがバリアント機能です。
バリアント機能を利用することで、Filter Barに入力した検索条件の保存・再利用が可能になり、作成した検索条件を他のユーザに共有することも可能です。
検索条件の保存機能が利用可能になることでユーザが毎回同じ検索条件を入力する手間を削減し、他のユーザに共有することでチーム内の検索条件を標準化することも可能です。

概要

保存するビューには以下のようなオプションを設定することが可能です。

デフォルトとして設定対象のアプリケーションの初期表示時に、保存したビューを自動でセットすることが可能。
公開作成したビューを作成者だけでなく、他のユーザも利用することが可能になる。
自動的に適用ユーザがビューを選択した直後に検索などの処理を実行することが可能。

バリアントの比較

SAPUI5では以下のようなバリアント機能を利用することができます。

  • sap.ui.comp.smartvariants.SmartVariantManagement
    (以下、「Smart Variant Management」)
  • sap.ui.fl.variants.VariantManagement
  • sap.m.VariantManagement

メリットデメリット
Smart Variant Management・OData V2に対応、スマートコントロール(Smart Filter Bar、Smart Tableなど)と連携可能で、開発工数の削減が可能
・「UI5 flexibility for key users」サービスとともに利用することで、他ユーザへの公開設定とロール管理を簡単に実装可能
・連携先がスマートコントロールに限定される
・高度なカスタマイズが利用できない
sap.ui.fl.variants.VariantManagement・OData V4に対応、sap.ui.mdcライブラリのフィルターバーやテーブルと連携が可能
・「UI5 flexibility for key users」サービスとともに利用することで、他ユーザへの公開設定とロール管理を簡単に実装可能
・連携先がsap.ui.mdcライブラリに限定される。
・高度なカスタマイズが利用できない
sap.m.VariantManagement・使用用途を自由にカスタマイズすることが可能・ビューの保存やロール管理を手動で実装する必要があり、開発工数がかかる


Smart Variant Managementsap.ui.fl.variants.VariantManagementはSAPによって用意された場所に自動的にデータが保存されるため、複雑な実装なしで利用することができます。sap.m.VariantManagementは高度なカスタマイズが可能ですが、ビューデータの登録処理や保存先のデータベースを自身で用意する必要があります。

ここからは3つのバリアントそれぞれの実装時の注意点を解説していきます。

Smart Variant Managementについて(OData V2)

Smart Variant Managementは以下のスマートコントロールと組み合わせて利用することが可能です。

  • Smart Filter Bar
  • Smart Table
  • Smart Chart

 など

設定手順 (Smart Variant Management)

① Smart Variant Managementの実装
 今回使用するアプリケーションではSmart Filter BarとSmart Tableを使用しています。
 Smart Filter Barをview.xmlで定義し使用している場合は既にSmart Variant Managementの機能が組み込まれているため、新たにSmart Variant Managementを追加する必要はありません。

  ※SmartFilterBarやSmartTableの実装方法についてはこちらのブログで説明しています。
  【SAP Fiori】SmartTableってどんなテーブル?実装付きで解説!


Smart Variant Managementの実装だけで基本的な機能を利用することは可能ですが、このままでは公開設定は利用することができません。


公開設定を利用して作成されたビューを他のユーザと共有したい場合は、「UI5 flexibility for key users」というサービスとアプリケーションを紐づける必要があります。

設定手順 (公開設定追加)

1.アプリケーションに新しいルートを追加
 対象のSAPUI5アプリケーションのxs-app.jsonに以下のルーティングを追加します。

{
	"source": "^/keyuser/(.*)$",
	"target": "$1",
	"service": "com.sap.ui.flex.cf.keyuser",
	"endpoint": "keyuser"
}

 

2.SAP BTPコックピットで「UI5 flexibility for key users」サービスを追加

 ● UI5 flexibility for key users とは
 主要ユーザによるUI Adaptation機能を利用できるサービスです。UI Adaptation機能を利用することで簡単にUIの変更が可能になります。

サービスプラン説明
KeyUser有料プラン
1ユーザ単位で料金が発生します。(※)
サービスが無効化されるまでユーザの情報が保持されます。
※1ユーザ当たり0.42ユーロ(2025年7月時点)
Free無料プラン
ユーザ情報は毎月1日にデータベースから削除されます。

 

 SAP BTP コックピットのEntitlements/Subaccount AssignmentsのAdd Serviceから「UI5 flexibility for key users」サービスを有効化

 

 

 

 有効化することで対象のサブアカウントから「UI5 flexibility for key users」サービスが作成可能になります。

 

 マルチターゲットアーカイブを使用してインスタンスを作成
 mta.yamlに以下の記載を行い、対象のアプリケーションをデプロイすることで、
 インスタンスの作成とバインドを行います。

 ・resourcesにサービスを追加

- name: ui5-flexibility-keyuser
  parameters:
    service-plan: free
    service: ui5-flexibility-keyuser
  type: org.cloudfoundry.managed-service

 

 ・modulesにサービスを紐づけ

modules:
  requires:
    - name: ui5-flexibility-keyuser

 

上記の設定でデプロイを実行します。

 SAP Build Work Zoneでキーユーザアダプテーションを有効化

 ・SAP Build Work Zoneのサイト設定に遷移します。

 

 ・キーユーザアダプテーションを有効にして保存します。

 

④ ユーザにUI5 flexibility for key usersサービスのロールである「FlexPublicViewEditor」を付与

 

以上の設定でアプリケーションでUI Adaptation機能が有効化され、Smart Variant Management公開設定が追加されます。

sap.ui.fl.variants.VariantManagementについて(OData V4対応)

sap.ui.fl.variants.VariantManagementはSmart Variant Managementと同様にODataサービスとともに利用することが可能ですが、sap.ui.fl.variants.VariantManagementはOData V4に対応したsap.ui.mdcライブラリを使用することができます。
sap.ui.mdcライブラリもSmart Variant Managementで使用するsap.ui.compライブラリと同様にODataのメタデータを利用することで簡単にテーブルやフィルターバーを実装することが可能です。

sap.ui.fl.variants.VariantManagementによる検索条件の保存機能は以下のようなコントロールとともに利用することが可能です。

  • sap.ui.mdc.FilterBar
  • sap.ui.mdc.Table

 など

設定手順

1.view.xmlにsap.ui.fl.variants.VariantManagementを追加
view.xmlにはsap.ui.fl.variants.VariantManagementとsap.ui.mdcの実装が必要です。

また、公開設定を利用するためにはSmart Variant Managementと同様に「UI5 Flexibility for key users」サービスの有効化と連携が必要になります。

※詳細についてはSmart Variant Managementの設定手順を参照

sap.m.VariantManagementについて

sap.m.VariantManagementの基本的な機能はSmart Variant Managementやsap.ui.fl.variants.VariantManagementと同じですが、データベースへの連携などを手動で実装する必要があります。

設定手順

1.view.xmlにsap.m.VariantManagementを追加

 

主な設定内容

プロパティ

creationAllowedビューの作成可否
popoverTitleビュー選択画面のヘッダータイトル
defaultKeyデフォルト設定として保存したビューのキー
selectedKey選択されたビューのキー
supportApplyAutomatically自動適用機能のサポート
supportDefaultデフォルト設定のサポート
supportFavoritesお気に入り機能のサポート
supportPublic公開機能のサポート

 

■イベント

save「保存」ボタン押下時に起動するイベント ※1
selectビュー選択時に起動するイベント
manage管理画面内の「保存」ボタン押下時に起動するイベント ※2
manageCancel管理画面内の「キャンセル」ボタン押下時に起動するイベント

保存(新規登録)
保存(更新)
管理画面

注意点

※1 新規登録の「保存」ボタンと更新の「保存」ボタンは
   どちらも同じイベントが起動しますが、「overwrite」パラメータから判別することが可能です。

 

※2 管理画面内の「保存」ボタン押下で起動するイベントは、
   パラメータから変更されたデータのキーを取得することが可能です。
   (設定が解除された際は検知されないため注意が必要です。※2025/07/16現在)

  • renamed …ビュータイトル変更時
  • deleted…削除時
  • exe…自動実行チェックボックス有効化時
  • fav…お気に入り登録時
  • def…デフォルト設定時

 

 

 

2.データの追加方法

下記のような記述でVariantManagementにビューデータを追加することが可能です。
今回はVariantItem内のCustomDataに検索条件を保存しています。

let item = new sap.m.VariantItem(); //VariantManagementに追加するVariantItemを定義
item.setKey("key"); //キーを設定
item.setAuthor("Author"); //作成者を設定
item.setChangeable(true); //編集可否を設定
item.setRemove(true); //削除可否を設定
item.setRename(true); //タイトル変更可否を設定
item.setSharing(sap.m.SharingMode.Public); //公開またはプライベートを設定
item.setFavorite(true); //お気に入りを設定
item.setExecuteOnSelect(true); //自動実行を設定


let customData = new sap.ui.core.CustomData(); //VariantItemに紐づく検索条件の定義
customData.setKey("filterConditionKey"); //フィルター条件を設定する項目に紐づく一意のキー
customData.setValue("filterValue"); //保存された検索条件
item.addCustomData(customData); // VariantItemに検索条件の定義を追加

this.byId("idVariantManagement").addItem(item); //VariantManagementにアイテムを追加

this.byId("idVariantManagement").setDefaultKey("key"); //デフォルト設定されたアイテムのキーを登録
this.byId("idVariantManagement").setSelectedKey("key"); //VariantItemを選択させる

  

最後に

本記事では、SAPUI5アプリケーションで実装できるバリアント機能についてご紹介しました。
検索条件の保存機能の実装により、複雑な条件の組み合わせも保存することできるため、作業の効率化だけでなく手動入力による人為的なミスを防ぐ効果も期待できます。
バリアント機能を実装される際の助けになれば幸いです。
最後までご覧いただきありがとうございます。


参考

sap.ui.comp.smartvariants.SmartVariantManagement
sap.m.VariantManagement
sap.ui.fl.variants.VariantManagement
UI5 Flexibility for Key Users – Initial Setup
table with filter bar – Samples

投稿者プロフィール

蝦名 亮汰
蝦名 亮汰
2023年より新卒入社。
Vue.js、Java(SpringBoot)、 AWSを使用した開発を経験後、
現在はSAPを用いた開発案件でアプリ開発やサービス調査に取り組んでいます。
業務を通じて得た技術に関する記事を共有していきたいと思います。
この記事をSNSでシェア!