テーブルのデータ更新時に排他制御を行う

テーブルから取得したデータを更新するとき、他のユーザーが同じデータを更新している場合があります。
この場合、他のユーザーが更新したデータを意図せず上書きすることになってしまいます。
このようなことが起きないように、同じデータを複数ユーザーが同時に変更できないようにする仕組みを排他制御といいます。
ここでは、CELF において排他制御を行う方法を説明します。

テーブルのデータ更新時に排他制御を行う

  1. 「アクションセット設定」ダイアログを開きます。
  2. 「テーブルのデータを更新する」、または、「テーブルのデータを削除する」のアクションにて、「他のユーザーが更新または削除していた場合はエラーとする」をチェックします。
../../../../_images/img_0118.png

ちなみに

  • CELFの排他制御は、あらかじめ更新対象となる行の「ID」と「LAST_MODIFIED」を取得(シート上に出力)し、

    更新実行時にその「ID」を持つ行の「LAST_MODIFIED」を比較することで、当該行が他ユーザーによって更新されたかどうかを判断する仕組みです。

  • 「他のユーザーが更新または削除していた場合はエラーとする」をチェックした場合、更新・削除条件として対象データの「ID」を指定する必要があるため、

    1件毎の更新・削除となります。(同時に複数件のデータ更新、または、削除を行うことはできません。)

  • 「ID」、「LAST_MODIFIED」については、テーブルを作成する を参照してください。

  1. 更新チェック項目と、更新条件を指定します。
../../../../_images/img_0218.png
[1] 更新チェック項目
シート内の更新・削除データにおける「LAST_MODIFIED」の値を指定します。指定した値と、データベースの更新・削除対象データの値が異なる場合、エラーとなります。
あらかじめ「LAST_MODIFIED」の値を取得しておき、シート内に保持しておく必要があります。
[2] 更新条件
更新・削除データを識別するため、シート内の更新・削除データにおける「ID」の値を指定します。
あらかじめ「ID」の値を取得しておき、シート内に保持しておく必要があります。

参考

更新チェック項目の値が変更されていた場合はエラーとなるため、エラーの制御を行う必要があります。エラーの制御方法については、エラーをハンドリングする を参照してください。

  1. アクションセットを保存します。

動画で見る

※動画内の画面は最新バージョンの CELF とは異なる場合があります。
※動画に音声はついていません。


重要

テーブルのデータを更新するためには、以下の権限が必要です。

  • アプリ作成者

また、アプリ作成者についてはテーブルに対する以下の権限が必要です。

  • 編集
../../../../_images/celf_help_mascot1.png

関連キーワード

楽観、ロック