WAGBY11 MANUAL / 10
保存時に計算する
登録・更新の保存処理で計算する項目と、計算順を説明します。
最終更新日:
1. このページで伝える機能
データを保存するタイミングで値を計算し、結果を保存できます。数量や単価を変更して保存すれば、金額も同じ保存処理で求め直せます。
使える関数の一覧、演算子、未設定値や丸めの規則、用途ごとの制約は関数と式の仕様を参照してください。
2. Wagby11で実現できること
計算見積を数量2・単価1,200円で登録すると、金額2,400円を保存します。更新で数量を3、会員割引をオン、件名を「会議室備品」にして保存します。

税抜金額を3,600円、その結果から適用金額を3,240円へ更新し、見積表題も組み立て直します。

この例には入力中の自動再計算は付けていません。保存後の結果を確認します。初期表示の候補とは異なり、保存用の計算は通常の登録・更新APIなど、生成された保存処理にも適用されます。
3. AIへの指示例
最小限の指示例
数量や単価を変更して保存したときに、金額も計算し直してください。AIは登録と更新のどちらを対象にするか、計算結果同士の依存関係、保存値を残す条件を類推して補います。画面表示時だけの計算や初期値とは区別して、保存時の要件を伝えます。
より詳細な指示例
CalcQuote.amountとpayableAmountは保存項目にし、calc.onをcreateとupdateにしてください。amountを数量×単価で求め、payableAmountはamountと割引スイッチから求めます。calculatedAtには保存処理時の#now()を設定します。数量変更で金額を作り直し、結果がAPI取得でも保持されることを確認してください。
既存のモデル・主キー・項目・データ・権限を保持し、Wagby11のguide・referenceを確認してください。新規モデルには自動採番の主キーと予約属性version、必要なG_ADMINのCRUD権限を用意します。メニューと一般利用者向け操作マニュアルを更新し、設計情報の検証・コード生成・ビルドを完了してから起動し、画面と保存結果を確認してください。4. 編集されるAppSchemaの例
以下は関連する定義の抜粋です。構文を覚えなくても、何から・いつ値を求め、保存するかをAIへ伝えられます。
entity:
attributes:
- name: 税抜金額
name_en: amount
type: decimal
precision: 14
scale: 2
calc:
on: [create, update]
expression: 'quantity == null or unitPrice == null ? null : quantity * unitPrice'
- name: 計算日時
name_en: calculatedAt
type: datetime
calc: { on: [create, update], expression: '#now()' }保存項目のcalc.onを省略すると登録・更新の両方が対象です。計算の依存関係から評価順を決めます。計算項目はAPIやアップロードの入力対象から除外されます。式で表せない業務処理は別の実装が必要です。自然言語のexprを書くだけで計算が実行されるわけではありません。
5. 参考資料
- reference:式言語(属性の計算)
designer/docs/appschema/html/reference/16-expression-language.html- reference:利用できる関数
designer/docs/appschema/html/reference/17-expression-functions.html- guide:導出項目
designer/docs/appschema/html/guide/08-rules/05-derived-fields.html