本文へ移動
Wagby11
マニュアルのグループを選ぶ

WAGBY11 MANUAL / 06

項目間の大小比較

開始日・終了日など二つの値の順序をチェックする方法を説明します。

最終更新日:

入力チェックの小目次へ

1. このページで伝える機能

開始日が終了日より後になっていないか、最小値が最大値以下かなど、二つの項目の順序を確認できます。同じ値を許すかどうかも指定できます。

2. Wagby11で実現できること

開始日より前の終了日を入力すると、終了日にエラーを付けます。

終了日が開始日より前になっていることを知らせる例。
終了日が開始日より前になっていることを知らせる例。

この例は開始日と終了日が同じ日でも保存できます。どちらの日付も必須です。

開始日と終了日を同じ日にして保存した例。
開始日と終了日を同じ日にして保存した例。

数値・日付・時刻・日時など、同じ実効型同士で大小を比較できます。文字列を辞書順で並べるための比較ではありません。

3. AIへの指示例

最小限の指示例

終了日は開始日以降になるようにしてください。

同じ日を許すか、どちらにエラーを表示するか、空欄時の扱いなどをAIが類推して補います。「以降」か「より後」かを区別して伝えます。

より詳細な指示例

InputCheckのstartDateとendDateは日付型で登録・更新とも必須にしてください。startDateがendDate以下であることを比較し、同じ日を許可します。終了日が開始日より前の場合はendDateへエラーを付けてください。空欄は各項目の必須チェックで扱います。逆転した日付で保存できず、同じ日では保存できることを確認してください。
既存のモデル・主キー・項目・データ・権限を保持し、必要なguide・referenceを確認してください。メニューと一般利用者向け操作マニュアルを更新し、設計情報の検証・コード生成・起動を行って、正常な入力とエラーになる入力を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。構文を覚えなくても、許可したい値とエラーにする条件をAIへ伝えられます。

entity:
  validation:
    constraints:
      - id: DATE_ORDER
        type: compare
        left: startDate
        operator: le
        right: endDate
        null_policy: skip_if_any_null
        severity: error
        attach_to: endDate
        operations: [CREATE, UPDATE]
        message_code: error.manual.date.order

leは左辺が右辺以下、ltは左辺が右辺未満です。数値の最小・最大を比較する場合も、比較元・比較先と境界を含むかを指定します。

5. 参考資料

guide:項目間の大小比較
designer/docs/appschema/html/guide/04-validation/09-order-comparison.html
reference:validation(入力チェック定義)
designer/docs/appschema/html/reference/11-validation.html