====== Auto populate CREATE/UPDATE USER_ID and CREATE/UPDATE DT on inserting/updating a record ======
Almost every Codecharge form needs to auto populate create and update audit fields. Here is how it can be done.
===== CREATE_USER_ID =====
Steps
- Before Insert (Record) Event
- Add Action - "Retrieve Value for Control" & Set
- Control Name = CREATE_USER_ID
- Source Type = Session
- Source Name = UserLogin
===== CREATE_DT =====
Steps
- (Add another) Before Insert (Record) Event
- Add Action - "Retrieve Value for Control" & Set
- Control Name = CREATE_DT
- Source Type = Expression
- Source Name = time()
===== UPDATE_USER_ID =====
Steps
- Before Update (Record) Event
- Add Action - "Retrieve Value for Control" & Set
- Control Name = UPDATE_USER_ID
- Source Type = Session
- Source Name = UserLogin
===== UPDATE_DT =====
Steps
- (Add another) Before Update (Record) Event
- Add Action - "Retrieve Value for Control" & Set
- Control Name = UPDATE_DT
- Source Type = Expression
- Source Name = time()
===== Formatting =====
Set both CREATE and UPDATE date to the following date format to display the full date with time
mm/dd/yyyy h:nn:ss AM/PM
And to the following for the dbformat
yyyy-mm-dd HH:nn:ss
==== Other consideraions ====
* Make all create userid/date NOT required
* Make all create/update userid/date read-only
* Make all field the same size and remove any blank spaces around the controls. Size 20 seems to work well.
* Appreance
* Group all audit fields in one row with four columns
* Delete the date pickers
* Add a blank row about the four column row and label it with "{res:audit_field_div}"
* Update the Locale for the above as "Create User/Date & Update User/Date"
====== Alternate way to auto populate CREATE_USER_ID and CREATE_DT on new record ======
This method should not be used because it does not set the insert date on the time of insertion. It sets it when the blank record is loaded and the date will not be accurate. The User id on the other hand is fine.
===== CREATE_USER_ID =====
In the default value property
CCGetSession("UserLogin")
===== CREATE_DATE =====
In the default value property
CurrentDateTime