Creating an Effective Audit Subrecord

By Chris Malek | Tue, Jan 24, 2012

Here is a simple but invaluable audit subrecord that I like to put on all my records. It logs when the row was originally created and by who and when the row was last updated and by whom. This can be invaluable for debugging issues and doing research on data. You just need to put this sub-record on all your records and the code will fire automatically to set the audit fields.

Sub-Record Name: C_AUDIT

Field Name Usage Field Type
LASTUPDDTTM The last date-time the row was updated. DateTime
LASTUPDOPRID The last user who updated the row. Char(30)
C_CREATED_TIME The date-time the row was created. DateTime
C_CREATED_USER The user who created the row. Char(30)

The subrecord has one piece of Peoplecode on LASTUPDDTTM.SavePreChange

If GetRow().IsNew And
      GetRow().IsChanged Then
   GetRecord().C_CREATED_TIME.Value = %Datetime;
   GetRecord().C_CREATED_USER.Value = %OperatorId;
   GetRecord().LASTUPDDTTM.Value = %Datetime;
   GetRecord().LASTUPDOPRID.Value = %OperatorId;
Else

   If GetRow().IsChanged Then
      GetRecord().LASTUPDDTTM.Value = %Datetime;
      GetRecord().LASTUPDOPRID.Value = %OperatorId;
   End-If;

End-If;

Article Categories