0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Fiori】List Reportの一括変更機能 (Mass Edit) を使ってみる

Last updated at Posted at 2024-01-19

はじめに

List Reportの一覧画面で複数のレコードを選択しての一括変更が、UI5バージョン1.98(OData V4は1.110あたり)からできるようになりました。

image.png
Enabling Editing Using a Dialog (Mass Edit) in the List Report より

この記事では、OData V4のサービスを使用したList Reportアプリで一括変更を有効化する手順について説明します。

CAPの場合

CAPの2023年12月のリリースで、一括変更がサポートされるようになったというアナウンスがありました。

一括変更を使用するためには、package.jsonファイルに以下の設定を追加する必要があります。

  "cds": {
    "fiori": {
      "bypass_draft": true
    }
  }

ただし、検証時点(2024年1月)では一括変更ダイアログの保存ボタンを押した時点で、以下のエラーになりました。

[odata] - > PATCH Books(ID=2,IsActiveEntity=true) 
[cds] - TypeError: Cannot read properties of undefined (reading '@Common.DraftRoot.ActivationAction')

SAP Communityに同様の質問が上がっていますが、まだ解決していません。

2024/2/3 追記
@sap/cdsのバージョンを7.5.2から7.6.1に上げたところ、問題が解決しました。上記2つめのスレッドによると7.5.3でも解決していたとのことです。

RAPの場合

RAPで作成したODataサービスの場合、一括変更機能を使うことができました。RAP側で特別な設定はありません(ドラフトを使用することくらい)。

List Reportの設定

manifest.jsonに設定を入れるだけで有効化できます。

                    "options": {
                        "settings": {
                            "contextPath": "/Books",
                            "variantManagement": "Page",
                            "navigation": {
                                "Books": {
                                    "detail": {
                                        "route": "BooksObjectPage"
                                    }
                                }
                            },
                            "controlConfiguration": {
                                "@com.sap.vocabularies.UI.v1.LineItem": {
                                    "tableSettings": {
                                        "enableMassEdit": true //追加
                                    }
                                }
                            }

controlConfigurationをどこに入れたらよいかわからない場合があると思います。そんなときはPage Mapを使うと簡単ですが、"enableMassEdit"はPage Mapからはまだ設定できないので、代わりにselectionModeの設定をすることで、controlConfigurationが自動的に入ります。あとは"enableMassEdit": trueを追加するだけです。
一括変更を有効化するためにはSelection Modeが"Multiとなっている必要がありますが、デフォルトがMultiなので、selectionModeの設定はあってもなくてもよいです。

  • webappフォルダを右クリック > Show Page Map
    image.png
  • List Reportの編集ボタンをクリック
    image.png
  • Tableの設定で、Selection Modeに"Multi"を選択
    image.png

行を選択すると、"Edit"ボタンが有効になります。
image.png

"Edit"を押すと以下のダイアログが出てきます。変更しない項目は< Keep Values >のままにしておき、変更したい項目に値を入れて保存します。
image.png

StockStatusが"2"に更新されました。
image.png

制限事項について

以下のドキュメントに一括変更できない項目の種類が記載されています。日付、時刻、ドロップダウン項目、カスタム項目などは変更できないということです。
https://sapui5.hana.ondemand.com/#/topic/965ef5b2895641bc9b6cd44f1bd0eb4d.html

変更させたくない項目の指定はできる?

ドキュメントを見る限り、特定の項目を変更ダイアログに出さないという設定はできないようです。ただし、一覧に出ていない項目はダイアログに出てこないので、@UI.LineItemアノテーションや@UI.Hiddenアノテーションでコントロールすることになると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?