System date time stamp on database record

phani_nzuv

New Member
Hi,

Is there a system field on each table in progress DB which will show me the data time stamp when a particular record was changed/created?

Regards,
nzuv
 

RealHeavyDude

Well-Known Member
Out of the box no auditing is enabled/available in a Progress OpenEdge database. When you need an audit trail you have two options, at least when you are on some reasonably recent OpenEdge version:
  1. Roll your own. Most solutions I have seen are based on database triggers. But I would not advise to go down that route as it does not hold water for serveral reasons
    1. Almost each database user must have write access granted to the audit trail in order to be able to write to it. That means, there is no way to make such a solution tamper proof
    2. Database triggers can be disabled - either accidentally or deliberately, again: Not tamper proof
    3. These triggers only fire when the database is updated with ABL procedures - not via the SQL engine ( SQL write access to a Progress database is a different discussion ... ) - again: Not tamper proof
    4. Most likely you won't have any context information apart from a user name and a time stamp. No information as to why or as part of which business process the record was updated or which other records were updated in the same context.
  2. Use the build-in auditing feature of the database that is policy driven and does not have any of the weaknesses mentioned above when implemented correctly. At least you need to define the audit policy and set it up. This is the route I would recommend you to go.
Heavy Regards, RealHeavyDude.
 
Top