1
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?

rex0220 計算式プラグイン パフォーマンス改善(イベント処理の抑止)

1
Last updated at Posted at 2026-02-21

rex0220 計算式プラグインで多くの計算を設定していると、レコードの追加画面や編集画面を開く際に「計算中...」の待ち時間が発生することがあります。

Ver.97 では、「追加画面表示」「編集画面表示」等のイベント計算を個別に抑止(オフに)することで、画面表示のパフォーマンスを劇的に改善できるようになりました。
しかし、設定には慎重な判断が必要です。
現状でパフォーマンスに問題が無ければ、イベント処理を抑止する必要はありません。

概要

計算式プラグインの設定画面で、各種設定ダイアログで、イベント処理の抑止を行うことが出来ます。

  • プラグイン設定画面

2026-02-21_10h20_14.png

  • 新規レコード追加画面: 各合計金額の計算を行わない

2026-02-21_10h39_46.png

1. 画面表示イベントを抑止するメリット

通常、画面を開いた瞬間にプラグインは全ての計算式を一度実行します。これを抑止すると以下の効果があります。

  • 画面表示の高速化:
    複雑な集計(SUMIF など)が多いアプリや、サブテーブルの行数が多いレコードでも、瞬時に画面が開くようになります。
  • 無駄な処理の削減:
    「開いて中身を見るだけ」のときに重い計算を回さないため、ブラウザの負荷が軽減されます。

2. 考慮すべきリスクと注意点

パフォーマンスが上がる一方で、以下のリスクを検討しなければなりません。

⚠️ 初期値や自動更新が反映されない

画面表示時の計算をオフにすると、「画面を開いた瞬間に計算結果を最新にする」 という動作が行われません。

  • 問題が出る例:
    「今日の日付」や「ログインユーザー情報」を元に計算している場合、前回保存時から情報が変わっていても、編集画面を開いただけでは値が更新されません。
  • ルックアップとの兼ね合い:
    ルックアップの取得イベントに連動して計算させたい場合、表示イベントを抑止していると、最初の表示状態では計算結果が古いまま(または空)に見えることがあります。

3. 判断基準:抑止すべきか?

✅ 抑止して良いケース

  • 現状の画面表示が重くて困っている。
  • 保存済みのデータ(数値や文字列など)を表示するだけで、画面を開いた瞬間に再計算する必要がない。
  • 計算のトリガーが「項目の値変更」や「保存時」だけで完結している。

❌ 抑止すべきでないケース

  • 現状の処理時間に問題がない。(安全のためデフォルトのままを推奨)
  • 「追加画面を開いた時に自動で初期値を計算してセットしたい」項目がある。
  • 画面を開くたびに、最新のユーザー情報(組織など)を反映させる必要がある。

4. 計算式変更時のトラブル防止

抑止設定を行っているアプリで新しく計算式を追加した際は、特に注意が必要です。

「新しく追加した計算式が、画面を開いた時に動かない!」という問い合わせの多くは、このイベント抑止が原因です。

運用ルール:
計算式を新規追加・変更した際は、一度「追加画面表示」「編集画面表示」のチェックを戻して動作確認を行うか、画面表示時に計算が必要な式でないかを必ずセットで確認しましょう。


交通費申請アプリへの適用例

交通費申請アプリでは、外部連携や CSV 読み込みのレコード追加・更新が無い場合に、「追加画面表示」「編集画面表示」のイベント計算を抑止することが出来ます。

  • レコード複写表示の例

レコード複写時は、複写元のレコードに保存されていた計算結果もそのまま引き継がれます。
そのため、画面表示時の再計算を抑止しても、初期状態で正しい合計値が表示されたままスタートできます。
「編集画面表示」のイベントも計算結果が変わらないので、同様に抑止できます。

2026-02-21_10h42_32.png

OPTION: 非同期計算, ユーザー情報
STEP: 計算処理1, 計算処理テーブル, 計算処理2
EVENT: (追加画面表示), (編集画面表示), 追加画面変更, 編集画面変更, 追加画面保存, 編集画面保存, 追加画面保存成功, 編集画面保存成功, プロセス管理アクション

// 合計金額 NUMBER (rank:-1)
SUM(
  電車新幹線合計,
  バスタクシー合計,
  飛行機合計,
  その他合計
)

// 電車・新幹線合計 NUMBER
SUMIF(
  IN(交通手段,"電車(片道)","電車(往復)","新幹線(片道)","新幹線(往復)"),
  金額
)

// バス・タクシー合計 NUMBER
SUMIF(
  IN(交通手段,"バス(片道)","バス(往復)","タクシー"),
  金額
)

// 飛行機合計 NUMBER
SUMIF(
  IN(交通手段,"飛行機(片道)","飛行機(往復)"),
  金額
)

// その他合計 NUMBER
SUMIF(交通手段="その他",金額)

まとめ:パフォーマンスと確実性のバランス

  1. 速度に不満がないなら、イベント抑止は行わない(デフォルトが最も安全)。
  2. 「表示の重さ」が課題になったら、表示イベントのチェックを外して最適化する。
  3. 抑止した場合は、再計算の必要な計算式が含まれていないか、テストを徹底する。

1
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
1
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?