残高設定

期限つきで増えて、使うと減り、期限が来ると失効するものの残りを自動で計算する機能です。「アプリ設定」→「残高設定」から設定します。増える行(付与・購入・チャージなど)と減る行(消化・利用など)を同じアプリに記録しておくと、古い期限のものから順に消化した結果の「残り」が、増えた行それぞれに自動で書き込まれます。

機能そのものは業務の内容を知りません。扱う言葉はグループ / 増加 / 減少 / 数量 / 日付 / 期限 / 失効の 7 つだけなので、休暇の残日数・ポイント・回数券・前払い残高・クーポン・期限つきの在庫ロットなど、「期限つきで増減する数」であれば同じ仕組みで組めます。

スタンダードコース以上で利用可能 - ライトコースでは設定の新規作成と、停止中の設定の再開はできません。すでに有効な設定はそのまま残りの計算と失効の記録を続け、内容の確認・停止・削除も行えます。プランは契約管理画面から変更できます。

動作イメージ

1 つの台帳アプリに、増える行と減る行を並べて記録します。増えた行には期限残りの欄があり、残りは自動で埋まります。

台帳の一覧(休暇の残日数を管理する例)

区分基準日数量有効期限残り
付与2026-01-01102028-01-018.25
消化2026-08-101.75
失効2028-01-018.25

「失効」の行はシステムが自動で作ります(期限日に残っていた量を、台帳に 1 行として記録します)。これにより、増えた分・減った分・失効した分がすべて同じ台帳に並び、現在の残高は「増加 − 減少 − 失効」で読めるようになります。

設定項目

項目
設定名
内容
一覧に表示される名前です(例: 休暇の残日数、ポイント残高)
項目
グループ
内容
誰(何)ごとに残高を計算するか。ここが同じ値の行どうしで 1 つの残高になります。単一の値を持つ項目だけを指定できます(担当者・参照・選択肢・文字列など。複数選べる項目は指定できません)
項目
日付
内容
増える行・減る行に共通の発生日。この日付の古い順に処理します。日付が空の行は計算の対象外です
項目
増加の条件
内容
この条件に一致する行を「増える行」として扱います。一覧の絞り込みと同じ項目・演算子が使えます。1 件以上必要です
項目
増加の数量
内容
増えた量が入っている数値の項目(計算項目も指定できます)
項目
有効期限
内容
増えた分の期限(日付の項目)。指定すると、期限日に残っている分が失効として自動で記録されます。指定しない場合は期限のない残高として計算だけを行います
項目
「残り」の書き戻し先
内容
計算した残りを書き込む数値の項目。他の役割の項目とは別の項目を指定してください(同じアプリの別の残高設定と共有することもできません)
項目
減少の条件
内容
この条件に一致する行を「減る行」として扱います。増加・減少の両方に一致する行は増加として扱います
項目
減少の数量
内容
減った量が入っている数値の項目
項目
失効の行に書き込む値
内容
失効を記録する行に入れる固定値(例: 区分=失効)。増加の条件にも減少の条件にも一致しない値にしてください。この値は「失効の行を見分ける目印」も兼ねます
  • 1 つのアプリに登録できる残高設定は最大 3 件です(同じ台帳で 2 種類の残高を種別で分けて管理する、といった使い方ができます)。設定ごとに有効/停止を切り替えられます
  • 設定を変更・保存すると、その場ですべてのグループを計算し直します

有効期限を指定したときの追加ルール

有効期限を指定した設定は、失効を記録するために内部でスケジュール起票の仕組みを使います。そのため次の 2 点が必要になり、満たしていない場合は保存時にエラーになります。

  • 増加の条件の結合は「すべて満たす」のみです(「いずれかを満たす」は指定できません)。残っている分だけを対象にするための条件と正しく組み合わせられないためです
  • 減少の数量は数値の項目のみです(計算項目は指定できません)。失効の行を作るとき、システムがこの項目へ失効した量を書き込むためです
  • 失効の行に書き込む値も、システムが書き込める項目(計算項目・自動採番などを除く)で、かつ日付・減少の数量・グループの項目とは別の項目にしてください

計算のしかた

  • 減る分は期限が早いものから順に充当します。期限のないものは最後に回ります(同じ期限のときは日付が古いものから)。充当の順番は変更できません
  • 増えた分はその日から期限日の当日まで使えます(期限日ちょうどの消化は有効です)
  • 同じ日に「増える行」と「減る行」が混在する場合は、その日の増加をすべて反映してから減少を処理します
  • 残高より多く消化した場合の扱いは「マイナス残高を許可する」で選べます。許可する(既定)と、足りない分はその後に増えた分から順に充当されます(有給を付与前に取得する、など)。最後まで足りなければ、その不足分はどの行にも充当されないまま残ります(各行の「残り」がマイナスになることはありません)。全体としてマイナスであるという事実は、集計項目で「増加 − 減少 − 失効」を出せば読み取れます。許可しないと、消化は残高の分までしか充当されず、超過分は後の増加からも充当されません(仮払金のように、まだ受け取っていない分で相殺できない残高向け)
  • 充当額」の書き戻し先を指定すると、減少の各行に実際に残高から引き当てられた数量が書き込まれます。残高が足りなければ数量より小さくなります。「いくら充当できたか」を後で集計する場合(仮払金の相殺額など)に使います
  • 失効の行は計算の入力にはしません(失効した量は期限から自動的に導かれるためです)

「残り」はシステムが上書きします

「残り」の項目は計算結果を書き込むための項目です。手で書き換えても、次に台帳のデータが変わったときの再計算で元に戻ります。集計項目や計算項目と同じ性質だとお考えください。

  • この書き込みは変更履歴に残らず、通知も発生しません(システムによる導出値の更新のため)
  • 再計算は、台帳のレコードを追加・編集・削除したときに自動で走ります(一覧のインライン編集・一括更新・CSV 取り込み・ゴミ箱からの復元・変更履歴の巻き戻しなど、レコードが変わる経路はすべて対象です)
  • グループの項目の値を変えた場合は、変更前と変更後の両方のグループを計算し直します

失効の自動記録

有効期限を指定すると、その台帳に失効を記録するためのルールが自動で作られます。「アプリ設定」→「スケジュール起票」の一覧に「残高設定により管理」と表示され、内容の変更は残高設定の画面からのみ行えます(実行履歴の確認と手動での再実行はできます)。

  • 失効の行は期限日の当日(既定は 00:30)に作られます。残りが 0 の分については行を作りません
  • 失効の行は通常のレコード追加と同じ経路で作られるため、入力チェック・期間ロック・権限がそのまま効きます。これらで作成できなかった回は行を作らず、理由が実行履歴に記録されて通知されます。原因を解消したうえで、実行履歴から手動で再実行してください

あとから過去のデータを直したとき

失効の行はシステムが管理する行として扱われ、あとから過去の消化を追加・修正・削除しても、失効した量が自動で計算し直されます

  • 失効の量が変わった場合は、既存の失効の行の数量が更新されます(新しい行は増えません)
  • 計算し直した結果、失効が 0 になった場合も行は残したまま数量を 0 にします(「失効を記録した」という記録自体は消しません)
  • 期限日の時点では残りが 0 で行が作られなかった分に、あとから遡って失効が生じた場合は、その時点で失効の行を新しく作ります(このとき権限や期間ロックで作成できなかった場合は通知され、原因が解消されれば次の再計算で自動的に作られます)
  • 増えた行そのものを削除した、または増加の条件に当てはまらなくなった場合は、対応する失効の行の数量を 0 にします(実体のない控除を残さないためです)
  • 失効の行をご自身で削除した場合は、作り直しません。意図して消したものとして扱います。残高を合わせ直したい場合は、手動で行を登録してください
  • 「未実行」やエラーで終わっている回については自動の補正を行いません。スケジュール起票の実行履歴から手動で再実行して回収してください

失効の行を誰にも触らせたくない場合は、期間ロック権限で保護できます(残高設定が自動でロックすることはありません)。

有効期限に使う項目を後から変えるとき

有効期限に指定する項目を別の項目に差し替えると、同じ増加行に対して新しい期限日で 2 通目の失効の行が作られ、元の失効の行が補正の対象から外れて残ります。差し替える場合は、古い失効の行を手動で確認・整理してください。

現在の残高を出す

残高設定が書き込むのは「増えた行ごとの残り」だけです。全体の残高は、関連レコード集計などで「増加の合計 − 減少の合計 − 失効の合計」を組み立てます(3 つとも同じ台帳を条件違いで集計するだけです)。

  • 「もうすぐ期限が切れる分」の一覧は、残りが 0 より大きい行を有効期限で並べれば、通常のビューの絞り込みだけで作れます
  • 残高を超える消化を入力時に止める機能はありません。必要な場合は入力ルールの入力チェックと組み合わせてご検討ください

上限と注意点

  • 1 つのアプリに登録できる残高設定は最大 3 件です
  • 1 つのグループ(1 人分など)の対象行が 5,000 行を超えると、そのグループは計算せずに警告でお知らせします(誤った残りを書き込まないためです)。年ごとに台帳を分ける、古い行を別アプリへ退避するなどで行数を抑えてください
  • 設定の保存時に行う全体の計算し直しにも上限があり、対象が非常に多い場合は途中で打ち切って画面に警告を表示します。この場合、一部の行の「残り」は最新ではありません(その後の追加・編集で順次追いつきます)
  • 残高設定を削除しても、すでに書き込まれた「残り」と失効の行はそのまま残ります。以後の再計算と失効の自動記録が止まるだけです

バックアップ・パッケージへの同梱

残高設定は、アプリの設定の一部としてバックアップパッケージに含まれます。ただし、失効まわりは次のように扱われます。

  • 復元・導入した残高設定は「無効」の状態で入ります。設定の内容(対象のフィールドや条件)を確認したうえで、ご自身で有効にしてください。無効のままでは「残り」の計算も失効の記録も動きません。復元した直後に自動で数値が書き換わらないようにするための扱いで、スケジュール起票のルールが無効で入るのと同じ考え方です
  • 失効を記録するためのスケジュール起票のルールは同梱されません。残高設定を有効にした時点で自動的に作られます(同じ内容の定義を 2 か所に持たないためです)
  • 有効にするとすべてのグループを計算し直します。「残り」は復元されたレコードから改めて求め直されるので、設定とデータが揃っていれば元どおりになります
  • すでに作られていた失効の行と、その元になった増えた行との対応づけは引き継ぎません。復元・導入先では、過去の失効の行は自動補正の対象外になります(数量を直したい場合は手動で編集してください)。以後に新しく作られる失効の行は通常どおり補正されます

サンプルで試す

アプリストアのパッケージ「勤怠」の「有給休暇台帳」に、この機能を使った設定が最初から入っています。付与を「増加」、消化を「減少」、有効期限(時効 2 年)を「期限」として、付与ごとの残日数が自動で入り、期限が来た分は「失効」の行として自動で記録されます。付与そのものはスケジュール起票が担当していて、「増やすのはスケジュール起票、残りと失効は残高設定」という組み立て方の実例になっています。

残高設定は AI エージェント連携 (MCP) からも設定できます (settings:balances を許可したトークンが必要です)。 AI から設定する場合も、画面と同じ保存前の検証とプランの制限を通り、期限を指定すれば失効の起票ルールも同じように自動で作られます。

関連機能

この機能が扱う言葉

グループ増加減少数量日付期限失効