WAGBY11 MANUAL / 02
登録者・更新者と日時を記録する
監査項目で登録者・登録日時・更新者・更新日時を自動記録する方法を説明します。
最終更新日:
1. このページで伝える機能
監査項目を使うと、誰がいつ登録し、誰がいつ最後に更新したかを自動記録できます。利用者が登録者名や日時を手入力する必要はありません。
監査項目とは、次の4つです。
| 項目名の例(name) | 固定の識別子(name_en) | 型 | 記録する内容 |
|---|---|---|---|
| 登録者 | createdBy | 文字列(string) | 最初に登録した利用者の識別子 |
| 登録日時 | createdAt | 日時(datetime) | 最初に登録した日時 |
| 更新者 | updatedBy | 文字列(string) | 最後に更新した利用者の識別子 |
| 更新日時 | updatedAt | 日時(datetime) | 最後に更新した日時 |
監査項目は最初の登録と最後の更新を記録します。すべての変更履歴や過去の項目値を蓄積する機能ではありません。
2. Wagby11で実現できること
2.1 登録時に自動記録する
商品の登録画面では、監査4項目は表示されません。商品を保存すると、ログオン中の利用者と日時が自動記録され、詳細画面で確認できます。この例では登録者・更新者に「admin」が記録されています。

2.2 更新日時を記録し、登録日時を保持する
商品コードを「P001-R」、単価を1500へ変更して保存しました。登録日時は15:51のまま、更新日時は15:52に変わっています。同じadminで操作しているため、更新者の値もadminです。

2.3 監査値を利用者に入力させない
更新画面では、監査値は入力欄ではなく読み取り専用のテキストとして表示されます。業務項目と一緒に確認しながら、値を手で書き換えずに更新できます。

3. AIへの指示例
最小限の指示例
商品の登録者・登録日時・更新者・更新日時を自動で記録してください。AIは監査項目の定義と画面への表示方法を類推して補います。登録時と更新時の表示や編集可否まで指定したい場合は、次のように詳細を伝えます。
より詳細な指示例
商品モデルで登録者・登録日時・更新者・更新日時を自動記録してください。
登録者と更新者にはログオン利用者、日時にはサーバーで決定する値を使ってください。
登録画面では監査項目を表示せず、更新画面では編集できないテキストとして表示し、詳細画面でも確認できるようにしてください。
更新しても登録者・登録日時は保持し、更新者・更新日時だけが更新されることを確認してください。
既存の業務項目、主キー、権限、データを保持し、必要な監査項目の定義と型も確認してください。4. 編集されるAppSchemaの例
audit: trueで自動記録を有効にし、監査4項目もattributesへ明記します。audit: trueだけではYAMLの項目定義は追加されません。以下は商品モデルの監査部分の抜粋です。
entity:
audit: true
attributes:
# 主キー・業務項目・バージョンなどは省略
- name: 登録者
name_en: createdBy
type: string
reserved: true
readonly: true
- name: 登録日時
name_en: createdAt
type: datetime
reserved: true
readonly: true
- name: 更新者
name_en: updatedBy
type: string
reserved: true
readonly: true
- name: 更新日時
name_en: updatedAt
type: datetime
reserved: true
readonly: true登録者・更新者の型はstring、日時はdatetimeです。システムが扱う項目としてreserved: true、利用者に入力させない項目としてreadonly: trueを指定します。
この例では既定レイアウトを使います。監査項目にhidden: trueを指定すると更新・詳細でも見えなくなるため、この目的では指定しません。独自レイアウトを使う場合は、更新・詳細で確認したい監査項目を配置します。
5. 参考資料
- guide:モデルを作成する(監査)
designer/docs/appschema/html/guide/03-model/01-create-model.html- guide:読み取り専用項目(監査4項目)
designer/docs/appschema/html/guide/05-input-control/06-readonly-field.html- reference:entity(監査・論理削除)
designer/docs/appschema/html/reference/06-entity.html