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

WAGBY11 MANUAL / 02

登録者・更新者と日時を記録する

監査項目で登録者・登録日時・更新者・更新日時を自動記録する方法を説明します。

最終更新日:

モデルの小目次へ

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

監査項目を使うと、誰がいつ登録し、誰がいつ最後に更新したかを自動記録できます。利用者が登録者名や日時を手入力する必要はありません。

監査項目とは、次の4つです。

項目名の例(name)固定の識別子(name_en)型記録する内容
登録者createdBy文字列(string)最初に登録した利用者の識別子
登録日時createdAt日時(datetime)最初に登録した日時
更新者updatedBy文字列(string)最後に更新した利用者の識別子
更新日時updatedAt日時(datetime)最後に更新した日時

監査項目は最初の登録と最後の更新を記録します。すべての変更履歴や過去の項目値を蓄積する機能ではありません。

2. Wagby11で実現できること

2.1 登録時に自動記録する

商品の登録画面では、監査4項目は表示されません。商品を保存すると、ログオン中の利用者と日時が自動記録され、詳細画面で確認できます。この例では登録者・更新者に「admin」が記録されています。

登録者と更新者がadminで登録日時と更新日時が15時51分の商品詳細
登録直後の監査値です。

2.2 更新日時を記録し、登録日時を保持する

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

登録日時15時51分を保持し更新日時が15時52分になった商品詳細
登録時の情報を残し、最後に更新した利用者と日時を記録します。

2.3 監査値を利用者に入力させない

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

業務項目は編集でき監査4項目はテキスト表示の商品更新画面
更新前の画面です。登録者・登録日時・更新者・更新日時には入力欄がありません。

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