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

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