The following code, sets the values to today’s date and current user.
edvUD100.dataView.Table.Rows[0]["CollectionStampDate_c"] = DateTime.Now;
edvUD100.dataView.Table.Rows[0]["CollectionStamp_c"] ((Ice.Core.Session)oTrans.Session).UserName;
You should probably only use that code when doing an Update, otherwise you should simply just EpiBind to CollectionStampDate_c & CollectionStamp_c and nothing more, nothing less.
Even better, the way I would do it is I would set the user and the timestamp in the UD100 BPM so if you have multiple companys and they have their own timezones you could use
Ice.Lib.CompanyTime.Today(CompanyID);
Ice.Lib.CompanyTime.Today(); // CurrentCompany Defaulted
Ice.Lib.CompanyTime.Now(CompanyID);
Ice.Lib.CompanyTime.Now(); // CurrentCompany Defaulted
In addition it wouldnt matter then if the record is updated via UBAQ, Dashboard or DMT it would trigger your BPM and always keep that audit trail.
PS: On UD tables you can also enable chglog.