期間ロック

経理の締めが終わった月の伝票や、給与計算の済んだ勤怠のように、確定した過去の記録を、あとから誰かが直したり消したりできないように固定できます。期間と対象者を決めるだけで、その期間の記録は管理者を含めて編集も削除もできなくなります。

ロックされたレコードの詳細。「ロック中」のバッジと説明が付き、編集と削除のボタンが押せない
完成イメージ

アプリを 1 つ作って試すなら: 経費申請 応用: 締めた月の申請を直せなくする (約 5 分)

指定した期間・対象者に該当するレコードを、編集も削除もできないようにする機能です。給与計算後の勤怠データや、経理締め後の伝票など、「確定した過去データを誰にも触らせたくない」場面で使います。 アプリの「設定」→「期間ロック」タブから設定します。

  • 期間ロックは拡張機能です。「期間ロック」タブが無いときは、アプリの「設定」→「拡張機能」の「自動化」にある「期間ロック」をオンにしてください(オンにするとタブが出ます)
  • スタンダードコースの機能です(試用期間中も使えます)
  • ロックのルールや連動の条件が 1 件でも登録されている間は、拡張機能の「期間ロック」をオフにできません。先にルールと条件を削除してください

動作イメージ

期間ロックの画面。手動のロックの表に 2026/09/01 〜 2026/09/30 の行があり、その下に連動の条件の欄がある
手動のロックは表に並びます。連動の条件は、その下の欄で設定します。

ロックされた期間・対象に該当するレコードは、詳細画面に「ロック中」のバッジが付き、「編集」「削除」のボタンが押せない状態になります(ボタンにマウスを載せると理由が表示されます)。一覧では、ロック中のレコードの行に鍵のアイコンが付きます。一覧のインライン編集や API など別の経路から変えようとした場合は、保存したときにエラーになり、保存されません。一覧表示や詳細の閲覧は制限されません(見るだけなら誰でもいつでも可能です)。

ロックルールの内容

1件のルールは、以下の内容で構成されます。

項目
対象の日付フィールド
内容
このアプリの「日付」型フィールド、または基準タイプが日付の範囲型フィールドから選びます。年のみ・年月のみの入力方式のフィールドは、期間の絞り込みが成立しないため選択できません
項目
期間(開始日・終了日)
内容
ロックする期間です。開始日・終了日の当日も含まれます(境界を含む)。対象の日付フィールドが空のレコードはロック対象になりません
項目
対象者(任意)
内容
ユーザー選択/組織選択/グループ選択のいずれかのフィールドと値を指定すると、その値に一致するレコードだけが対象になります。指定しなければ、期間に該当するアプリ全体のレコードが対象です
  • 1つのアプリに登録できるルールは最大50件です
  • 期間・対象者の異なるルールを複数登録すれば、複数の締め期間を並行して管理できます
  • 対象の日付フィールドに範囲型フィールドを指定した場合、判定は値の一致ではなく重なりで行われます。レコードの範囲(開始〜終了)がロック期間と少しでも重なればロック対象になります(境界を含む)。終了未定(開区間)の範囲は、開始日以降ずっとロック対象になります

境界日の扱い

開始日・終了日はどちらもロック期間に含まれます。たとえば「2026/07/01 〜 2026/07/31」のルールでは、7月1日と7月31日のレコードもロック対象です。

アプリ管理者を含め、誰もレコードの値を変更・削除できません

ロック対象レコードを開いたときの表示(イメージ)

この期間はロックされています。解除するにはアプリ管理者に連絡してください

レコードのアクセス権(権限設定)は、アプリ管理者にも一般メンバーと同じくそのまま適用されます(暗黙のバイパスはありません)。期間ロックも同様で、アプリ管理者・システム管理者を含め、誰であってもロック対象のレコードの値を変更・削除することはできません。ロックを外すには、アプリ管理者が後述のルール自体を削除します。なお、ロックが止めるのはレコードの値の変更と削除です。値を書き込まないワークフローの操作(承認・差し戻しなど)やコメントは、ロック中でも行えます(後述の「対象になる操作・ならない操作」)。

ルールの追加・削除はアプリ管理者のみ

ロックルールの追加・削除ができるのは、そのアプリの管理者(作成者、または管理者権限を付与されたメンバー)だけです。一般メンバーはルールの一覧を閲覧できますが、追加・削除はできません。

手動のロックと「連動の条件」(後述)は、どちらも同じ「期間ロック」タブで管理します。連動の条件によってかかったロックは、手動のロックのように一覧から個別に削除することはできません(外すには、締めたレコードを差し戻すか、条件そのものを削除します)。

連動の条件(別のアプリの締めに合わせて自動でロック)

期間ロックタブ「連動の条件」(イメージ)

「月次サマリ」が「締め済み」に進んだら、「日付」でロック
期間の決め方: 月(締める側の「対象月」の値から)
対象者: 締める側の「従業員」と、このアプリの「従業員」が一致する行

「連動の条件」は、ロックされる側のアプリに設定します(そのアプリの「設定」→「期間ロック」タブの「連動の条件」の節)。「別のアプリ(締める側)のレコードが指定のステータスに進んだら、そのレコードの期間(と対象者)に入る、このアプリのレコードを編集・削除できなくする」という宣言です。手動でルールを作らなくても、たとえば月次サマリの「締め」操作だけで、対象月の日次データを一括でロックできます。

  • 設定するには、ロックされる側のアプリと締める側のアプリの両方の管理者である必要があります。締める側のワークフロー設定では、条件が指しているステータスに「このステータスに進むと『○○』の期間をロックします」と表示されます(見るだけで、設定は変えられません)
  • 条件には、締める側のアプリ・締めのステータス(複数選べます)・ロックする日付の項目・期間の決め方を指定します。1 つのアプリに設定できる条件は最大 5 件、1 つのアプリを締める側にできる条件は最大 10 件です
  • 期間の決め方は 3 種類です。月(締める側の月の値から、その月全体)、1 日(締める側の日付の項目から、その 1 日)、開始日〜終了日(締める側の 2 つの日付の項目から、その間。両日を含む)。詳しくはワークフローマニュアルの「他のアプリの期間のロック」の表を参照してください
  • 「月」で期間を決めるときは、ロックされる側のアプリの休日カレンダーの「月の区切り日」が、締めたときの値で使われます。20 日締めなら 9/21〜10/20 のようになります。締めた後に区切り日を変えても、すでにかかったロックの期間は変わりません
  • 対象者を絞り込む場合は、ロックされる側の対象者の項目と締める側の対象者の項目(どちらもユーザー・組織・グループ選択の同じ種類)を 1 組選びます。締める側のレコードの値(複数人なら全員)に当たる行だけがロックされます。絞り込まない場合は、対象者によらず期間に入る行すべてがロックされます
  • 差し戻しで自動的に解除されます。締めのステータスから離れる遷移が起きると、そのレコードの締めによるロックだけが外れます(手動のロックや、別のレコードの締めによるロックには影響しません)。締めのステータスの中の別のステータスへ動いただけなら、最初に入ったときのロックのままです
  • ロックされたレコードを開くと、詳細画面に理由が表示されます(「『月次サマリ』のレコード #12 の締めにより、この期間はロックされています。解除するには、そのレコードを差し戻してください」。見ている人が締めたレコードを閲覧できないときは、アプリ名と番号を伏せて「締めにより、この期間はロックされています」と表示されます)。一覧には鍵のアイコンが表示されます
  • 条件の内容(締めのステータス・日付の項目・期間の決め方・対象者)は、後から編集できます。締める側のアプリだけは変更できません(変えるときは条件を削除して作り直します)。編集した内容の効き方は項目で違います。締めのステータス・締める側の項目・期間の決め方は、以後の締めから効きます(すでに締めたレコードの期間は、締めたときに決めたままです)。ロックされる側のアプリの「ロックする日付の項目」と「対象者の項目」は、すでに締め済みのロックにもすぐに効きます(たとえば対象者の項目の組を外すと、その期間は対象者を問わず全員の行がロックされます)
  • 条件を削除すると、その条件で締め済みのロックもすべて外れます。削除の確認画面にもその旨が表示されます
  • 条件は、設定する前に締めたレコードには遡って効きません。すでに締め済みのレコードは、一度差し戻して締め直すと、その時点からロックされます
  • 期間・対象者を決められない締め(基準にしている項目が空・形式が違う、ロックされる側のアプリや日付の項目が見つからない等)は、その遷移自体を止めてエラーを表示します(ステータスは変わりません)。締めたつもりでロックされていない状態を作らないためです。たとえば「ロックする期間をこのレコードから決められません」と表示されたら、そのレコードの対象月・対象日を入力してからもう一度実行してください
  • 期間ロックの拡張機能(「期間ロック」)は、条件を作ると自動でオンになります。条件が 1 件でもある間はオフにできません。ほかのサーバーでの新しい条件の効き始めは、最大 1 分ほど遅れることがあります
  • 締めたレコードがゴミ箱に入っても、ロックは残ります(完全に削除されたときにだけ外れます)。締める側のアプリを完全に削除しようとしたとき、ほかのアプリの条件から指されていると、削除できません(確認画面に表示されます)

締める側のワークフローの設定方法は「ワークフロー」マニュアルを参照してください。

締め日が月末でない場合は「月の区切り日」を設定してください

「月」で期間を決める連動の条件は、既定では暦月(1日〜末日)をロックします。しかし給与でも請求でも、締め日が月末でない運用(20日締め・15日締めなど)は一般的です。 この場合、月の区切り日を設定しないと、締めたときにロックされる期間が実際に確定した期間と逆転します。

たとえば20日締めで「2026年8月分」を締めた場合、実際に確定した期間は2026-07-21〜2026-08-20です。月の区切り日を設定していないと、以下のように本来と逆の範囲がロック・開放されてしまいます。

期間
2026-07-21 〜 07-31
実際の状態
支払済み(確定済み)
月の区切り日を設定していない場合
ロックされない(書き換え可能なまま残る)
期間
2026-08-01 〜 08-20
実際の状態
支払済み(確定済み)
月の区切り日を設定していない場合
ロックされる(正しい)
期間
2026-08-21 〜 08-31
実際の状態
未確定(翌月分)
月の区切り日を設定していない場合
ロックされる(まだ直せるはずが編集できなくなる)

これを避けるには、ロックされる側のアプリの休日カレンダー(「設定 > 休日カレンダー」の「月の区切り日」)に実際の締め日を設定してください。設定すると、「月」で決める連動の条件の期間は月次集計の月バケットと同じ区切りで動くようになります(既定の末日のままであれば、これまでどおり暦月のままで何も変わりません)。

月の区切り日はロックされる側のアプリの休日カレンダーのものが、締めたときに使われます。集計に使ったアプリとロックされる側のアプリが異なる構成では、両アプリの「月の区切り日」が一致していることを利用者側で確認してください(一致していない場合の食い違いは自動検出されません)。

一括ステータス付替では発動しません

ワークフロー設定の「既存レコードの移行」(ドロップダウン/ラジオボタンのフィールドとワークフローを相互移行する機能)でステータスを一括付替した場合、連動の条件によるロックの記録・解除は行われません。この移行は既存データの一括変換であり、通常の遷移操作(承認・差し戻し等)とは別の扱いです。移行後に締めが必要な場合は、対象レコードで通常のワークフロー遷移を行うか、手動でロックを追加してください。

対象になる操作・ならない操作

期間ロックは、レコードの編集画面からの保存だけでなく、以下を含むレコードの値を書き込む・削除するすべての経路で判定されます。ロック対象のレコードに対しては、いずれの経路でも書き込みが拒否されます。

  • レコードの新規作成・編集・削除(通常の画面、一覧のインライン編集)
  • 一括更新・一括削除、CSVインポート
  • APIトークン経由のREST API
  • データパイプラインによる自動書き込み(対象レコードはスキップされ、スキップ件数が実行結果に表示されます)
  • アクション(転記アクション・アクションウィジェットの打刻等)、公開フォームからの登録、バーコード/QRコードのスキャン、ゴミ箱からの復元
  • ワークフローの遷移のうち、遷移の設定で項目に値を書き込むもの(「締めた期間にかかるため、遷移で値を書き込めません」と表示され、遷移も行われません)

次の操作はレコードの値を書き換えないため、ロック中のレコードでも行えます。

  • 値を書き込まないワークフローの遷移(承認・差し戻しなど、ステータスだけが変わるもの)
  • レコード詳細画面の「管理者: ステータスを強制変更」
  • コメントの投稿

一方で、閲覧は制限されません。一覧・詳細・検索・エクスポートなど、データを読み取るだけの操作はロックの影響を受けません。また、集計値の自動再計算(サブテーブル集計・ルックアップの参照コピー更新など、システムが整合性維持のために行う派生値の書き換え)は、元となる編集操作そのものが既にロックで拒否されるため、ロックの対象外です。

使用例

例1: 給与計算後の勤怠データを固定する(手動)

  • 対象の日付フィールド: 「日付」
  • 期間: 給与計算対象月の初日〜末日
  • 対象者: 指定なし(アプリ全体)

例2: 月次サマリの締めと連動して日次勤怠を自動ロック(連動の条件)

  • 日次勤怠の「期間ロック」タブ →「連動の条件」で、締める側のアプリに「月次サマリ」、締めのステータスに「締め済み」を指定
  • ロックする日付の項目: 「日付」
  • 期間の決め方: 月(月次サマリの「対象月」フィールドの値から。日次勤怠の月の区切り日に従う)
  • 対象者: 日次勤怠の「従業員」と、月次サマリの「従業員」が一致する行のみ

例3: 特定の担当者の退職月だけをロックする(手動)

  • 対象の日付フィールド: 「対応日」
  • 期間: 退職月の初日〜末日
  • 対象者: 「担当者」フィールド = 該当メンバー

AI エージェントから設定する

AI エージェント連携 (MCP) の接続に「期間ロック」の許可 (settings:period_locks) を付けると、AI がロックルールを読んだり足したりできます。 ルールを外すときは、AI は外すルールの内容を確かめて申告する必要があり、レコードの書き込み・削除もできる接続からは外せません。 詳しくは AI エージェント連携 をご覧ください。

ヒント

  • ロックを一時的に外して修正したい場合は、ルールを削除してから編集し、必要であれば同じ内容でルールを作り直してください(部分的な解除はできません)
  • 対象者条件を使う場合、フィールドと値は必ずセットで指定します。値を指定しないと保存できません
  • 連動の条件の節には、条件ごとに「『月次サマリ』が『締め済み』に進んだら、『日付』でロック」のように内容が表示されます。締めのステータスや締める側の項目が無くなった条件には注意の印が出ます(その条件は何もロックしません)。締め済みの件数は表示しません
  • バックアップから復元しても、過去の締めによるロックは戻りません(条件の設定だけが戻ります)。締め済みのレコードを一度差し戻して締め直すと、再びロックされます
  • ロックがかかっているのに編集できてしまう/逆に想定外にロックされる場合は、対象の日付フィールドの入力方式(年のみ・年月のみではないか)と、対象者フィールドの型を確認してください