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?

【備忘録】RAPベースのFioriアプリで一括処理アクションを有効化する方法

0
Posted at

1.はじめに

RAPベースの Fioriアプリ開発において、一覧から複数行を選択し、一括でアクションを実行したいという要件は珍しくありません。
今回の記事は一括処理の定義方法を紹介します。

2.通常パターン

まずはmetadataで特に指定せず、アクションを書いて動かしてみます。
※一応想定としては、製造指図をリリースするアクションです。

{
    position: 10, 
    importance: #HIGH, 
    type: #FOR_ACTION, 
    dataAction: 'order_release',
    label: '指図リリース'
} 

アプリ画面の一覧から3行選んで「指図リリース」実行
image.png

デバッグでアクションに入ってきた製造指図を確認すると、3行選択したのに1行しか設定されていないことが分かります。
image.png

F8で実行すると、2行目に選択した製造指図が設定されています。
image.png

つまり、一覧で複数行を選択して実行しているように見えても、実際には 1 行ずつアクションが呼ばれている という動きになっています。
そのため、通常の定義方法では「一括処理」にはならず、裏側ではループ的に個別実行が繰り返されているだけ、という挙動になるわけです。

3. 一括処理を有効化するには?

複数行をまとめてアクションに渡したい場合は、metadataで明示的に「複数行を対象にする」設定を行う必要があります。
invocationGrouping: #CHANGE_SETを追加します。

{
    position: 10, 
    importance: #HIGH, 
    type: #FOR_ACTION, 
    dataAction: 'order_release',
    label: '指図リリース',
    invocationGrouping: #CHANGE_SET
}

再度、アプリ画面の一覧から3行選んで「指図リリース」実行
image.png

デバッグでアクションに入ってきた製造指図を確認すると、しっかり3行設定されています!
image.png

4.まとめ

以上、アクション一括処理の方法でした。
このような細かいテクニックは忘れがちなので、備忘録としてどんどん載せたいと考えています。短い記事にはなると思いますが、、、

・デフォルトの #FOR_ACTION では複数選択しても裏では 1 行ずつ処理される
・一括処理を実現するには invocationGrouping: #CHANGE_SET を指定する

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?