ルール:検証とキー
ルールは、誤ったデータの混入を防ぐ仕組みです — マイナスにできない金額、開始日より前にできない終了日、決まった形式に従うべき請求書番号など。ルールはワークブックの Rules_ という名前のシートに書きます(単数形の Rule_ や Validation_ も使えます)。1 行に 1 ルール、使う列は Field、Rule Type、Value、Message、Section、Form です。どのルールを適用するかは Rule Type 列で指定します:
| ルールタイプ | 働き |
|---|---|
| required | フィールドを空欄のままにできません。Value 列に比較を追加することもできます — 例えば end_date に "greater or equal to start_date" と書けます。 |
| min / max | 許される最小値または最大値を設定します。上限・下限には、数値、日付(2026-07-01 の形式)、または別のフィールド名が使えます — "end_date | min | start_date" と書けば、終了日は開始日以降に保たれます。数値の min または max に限り、フィールドを必須にもします。 |
| min_length / max_length | テキストの長さの下限や上限を決めます — 例えば、コストセンターコードは 3 文字以上、など。 |
| pattern | 値がテキストパターン(正規表現)に一致する必要があります — 請求書番号や VAT 番号のような決まった形式に便利です。 |
| key | フィールドをレコードのビジネスキー — 発注番号や社員 ID など — としてマークします。フィールドは必須になり、インポート時には重複を作る代わりに、このキーで更新対象のレコードを探します。キーはフォームに 1 つだけです。 |
| subkey | ビジネスキーの 2 つ目の部分です — フォームごとに 1 つ、キーがある場合にのみ使えます。両方を設定すると、インポートはペア(例えば社員 ID + 週)で照合します。「sub key」「sub_key」「sub-key」とも書けます。 |
| sensitive / mask / pii | 給与、ID 番号、銀行口座といった個人情報を守ります。フィールド(型は問いません)はグリッド、フォーム、印刷、エクスポートでマスク表示され、運営者がフィールド暗号化を有効にしていれば暗号化して保存されます。代わりにルックアップテーブルの列を保護するには、Form 列にそのリスト名を書きます。その列はマスターデータ管理でマスクされ、その列を読み取るすべてのフォームフィールド — ドロップダウンや自動入力された値 — も同じくマスクされます。 |
| public | public — 公開されたアプリ(設定 → ウェブに公開)向け:公開ページには、そのフォームで public と印を付けたフィールドだけが表示されます。public ルールがない場合、公開ページには閲覧者に見える内容が表示されます。機密フィールドに public を付けても表示はマスクされたままで、実際の値は決して表示されません。ワークスペース内には影響しません。 |
| conditional / validation | 例:"required if status is 'Active'"。条件は複合にできます — AND / OR / XOR — 記号(=, !=, >=, <=, >, <)でも単語でも書け、比較する値には別のフィールドも使えます。先頭の "if" はあってもなくても自然に読み取られ、かっこも許容されます — "(total > 100) then required" と "if total > 100 then required" は同じ意味です(例:100 を超える経費にだけ領収書を必須にする)。 |
| between / range | 値を範囲内に保ちます:between <low> and <high>。各境界には、固定値、フィールド名、または "system date" / "today"(レコードの保存日)が使えます。明細行の日付の範囲を、ヘッダーのフィールドで決めることもできます("between start_date and end_date from HEADER")— タイムシートの行を給与計算期間内に収めるのに便利です。 |
| auto / autogen | 新しいレコードに、アプリが自動で番号を振ります — 1 から、または Value 列に入れた数値から開始します(100 → 100、101、102…)。フィールドの Data type が生成 ID(ulid / nanoid)の場合は、番号の代わりにその方式で ID を生成します。フィールドは読み取り専用で、一度払い出した番号は変わりません。auto フィールドはキーの役割も兼ねるため、同じセクションに別のキーフィールドは置けません。 |
| derived | 値は入力するのではなく、参照または計算で求められます。取得元はマスターデータか、日付計算です。マスターデータからは、from Products でレコード全体を、Product.UOM で単一の列を取り込めます(フィールド名と列名が異なる場合は UOM from Product と書きます。例えば uom 列から値を取る単位ピッカー)。 |
| calc / calculation | 値をアプリが計算して保存します — 通貨または単位の変換です(通貨と単位の変換を参照)。読み取り専用で、保存のたびに再計算されるので、古い値のまま残ることがありません。入力やインポートで入れた値は無視されます。calculation とも書けます。 |
| display | 表示専用で、入力は受け付けません。ユーザーではなく既定値から来る値に使います — 例えば、Value 列に system date を持つ required + display の submission_date は、今日の日付を編集不可で表示します。calc や auto と違い、アプリはここで何も計算や割り当てをせず、フィールドが持つ既定値をそのまま表示します。 |
Rules_ の行を分けて追加してください。例えば、ビジネス key でありながら auto で採番もされる sales_order は、同じ Field を持つ 2 行になります。start_date/end_date、from_date/to_date など)があると、終了日が開始日より前にならないようアプリが自動で確認します — ルールは不要です。既定値は入力の手間を省きます。どのルールでも、Value 列でフィールドを事前入力できます:default value "Active" または default = X。テキストは — 引用符付きでもそのままでも — 書いたとおりに使われます。別のフィールドへの参照(default = HEADER.currency_code)や簡単な計算(default = amount / 100)は、フォームや明細行が開かれたときに計算されます。system date / today / now という語はレコードの作成日を入れます — display と組み合わせれば、読み取り専用で表示できます。
単位や通貨の初期値。どちらも値の横にある小さな選択欄に設定します。値の列そのものではありません — Quantity に対するルールは単位ではなく数値を固定してしまいます。代わりに選択欄を指定してください:Unit(UoM、Units、unit_of_measure でも可)と Currency に、Value 列で default value "KGM" や default value "USD" と書きます。Section も指定してください — 明細と見出しはそれぞれ自分の選択欄を持ちます。コードが常に同じなら、もっと簡単な方法があります:サンプル行の Unit 列や Currency 列にそのコードを書けば、ルールなしで初期値になります。両方ある場合はルールが優先されます。
金額や数量のフィールドは自動で換算できます — 注文合計をユーロに、重量をキログラムに — 結果は保存され、常に最新に保たれます。通貨と単位の変換を参照してください。
計算フィールド — Formula_ シートでの合計、四則演算、IF や真偽(ブール)ロジック — については、数式を参照してください。