﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » Role Based Security  » Status/features of auditing?</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Sun, 26 Apr 2026 08:18:32 GMT</lastBuildDate><ttl>20</ttl><item><title>Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost6131.aspx</link><description>What is the status of the auditing feature of the security module? &lt;br&gt;
&lt;br&gt;
How will it work?&lt;br&gt;
&lt;br&gt;</description><pubDate>Tue, 09 Dec 2008 10:52:37 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost21084.aspx</link><description>Thanks Trent,&lt;br&gt;
I´ll follow your suggestion about using triggers</description><pubDate>Tue, 09 Dec 2008 10:52:37 GMT</pubDate><dc:creator>Guillermo Vilas</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost21078.aspx</link><description>Here is a suggestion.&amp;nbsp; First of all, any auditing logic that you are going to implement should be added to you BaseBO that all of your BOs inherit from.&amp;nbsp; The SF field level auditing hasn't been fully implemented or released due to the fact that implementing all field level auditing at the BO level isn't always going to be the best way to handle things.&lt;/P&gt;&lt;P&gt;The code that you have here is going to become noticably slower and slower the larger the table or rows that have to be auditing.&amp;nbsp; You will notice a performance hit if you are going to attempt to do this with every field.&amp;nbsp; I noticed that you had a set number of fields that you wanted to audit, and here is one suggestion.&amp;nbsp; If you are going to support a single database type, then creating triggers to handle the auditing may be a better way to go since this will all be done through UPDATEs, INSERTs, and DELETEs on the server side with no additional BO side programming logic...and it should be faster as well since all of the data is already server side.&amp;nbsp; You don't want to go crazy there either as you don't want to impact performance.&amp;nbsp; But you would probably have less impact there versus in the BO since the BO would require another trip to the server to save the audit records.&lt;/P&gt;&lt;P&gt;We will release field level auditing in the future, but fore now, this is the major argument why it has not been fully released.&amp;nbsp; It is relatively easy to add auditing yourself and you can optimize it more for your applicaiton.</description><pubDate>Tue, 09 Dec 2008 09:42:48 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost21064.aspx</link><description>Hi Ivan,&lt;br&gt;
The fields that I want to capture are:&lt;br&gt;
- DocumentCode&lt;br&gt;
- TransactionType&lt;br&gt;
- ChangesDescription&lt;br&gt;
- UpdateType&lt;br&gt;
- TableSourceName&lt;br&gt;
- UserCreated&lt;br&gt;
- DateCreated&lt;br&gt;
- UserModified&lt;br&gt;
- DateModified&lt;br&gt;
&lt;br&gt;
I´ve created a custom method the retreive Audit data, I´m not using SF Audit methods yet.&lt;br&gt;
I´m currently using the Audit logic at the OnBeforeSave And OnBeforeDelete Events, I´m still having some problems.&lt;br&gt;
&lt;br&gt;
1) In the OnBeforeSave Event the Object is not saved so if an error happens how can I stop the Auditing to be captured.&lt;br&gt;
2) As the BO is not yet saved I can´t retrieve the PK generated for this Object.&lt;br&gt;
3) If I put the Audit logic in the OnAfterSave then I do get the PK but can not log Modified BO´s because the state has changed.&lt;br&gt;
4) I can´t Audit deleted BO´s&lt;br&gt;
&lt;br&gt;
This are the methods I´m using on the Base BO&lt;br&gt;
&lt;br&gt;
[codesnippet]&lt;br&gt;
[code]&lt;br&gt;
    Private Sub AuditChanges(ByVal table As DataTable, ByVal transactionType As String, ByVal transactionDescription As String)&lt;br&gt;
        If (Not table.GetChanges Is Nothing) Then&lt;br&gt;
            Dim num4 As Integer = (table.Rows.Count - 1)&lt;br&gt;
            Dim i As Integer = 0&lt;br&gt;
            Do While (i &lt;= num4)&lt;br&gt;
                Dim loTable As DataTable = table&lt;br&gt;
                If loTable.Rows.Item(i).RowState &lt;&gt; DataRowState.Unchanged Then&lt;br&gt;
                    If (loTable.Rows.Item(i).RowState &lt;&gt; DataRowState.Deleted) Then&lt;br&gt;
                        loTable.Rows.Item(i).BeginEdit()&lt;br&gt;
                        If ((loTable.Rows.Item(i).RowState = DataRowState.Detached) OrElse (loTable.Rows.Item(i).RowState = DataRowState.Added)) Then&lt;br&gt;
                            If (loTable.Columns.Contains("UserCreated")) Then&lt;br&gt;
                                loTable.Rows.Item(i).Item("UserCreated") = MicroFour.StrataFrame.Security.SecurityBasics.CurrentUser.UserName&lt;br&gt;
                            End If&lt;br&gt;
                            If loTable.Columns.Contains("DateCreated") Then&lt;br&gt;
                                loTable.Rows.Item(i).Item("DateCreated") = DateTime.Now&lt;br&gt;
                            End If&lt;br&gt;
                        End If&lt;br&gt;
                        If loTable.Columns.Contains("UserModified") Then&lt;br&gt;
                            loTable.Rows.Item(i).Item("UserModified") = MicroFour.StrataFrame.Security.SecurityBasics.CurrentUser.UserName&lt;br&gt;
                        End If&lt;br&gt;
                        If loTable.Columns.Contains("DateModified") Then&lt;br&gt;
                            loTable.Rows.Item(i).Item("DateModified") = DateTime.Now&lt;br&gt;
                        End If&lt;br&gt;
                        loTable.Rows.Item(i).EndEdit()&lt;br&gt;
                    End If&lt;br&gt;
                    If (table.TableName &lt;&gt; "AuditTrail") Then&lt;br&gt;
                        Me.CreateAuditTrail(loTable.Rows.Item(i), transactionType, transactionDescription)&lt;br&gt;
                    End If&lt;br&gt;
                    loTable = Nothing&lt;br&gt;
                End If&lt;br&gt;
                i += 1&lt;br&gt;
            Loop&lt;br&gt;
        End If&lt;br&gt;
    End Sub&lt;br&gt;
&lt;br&gt;
    Private Sub CreateAuditTrail(ByVal rowValue As DataRow, ByVal transactionType As String, ByVal transactionDescription As String)&lt;br&gt;
&lt;br&gt;
        If Me.EnableAuditTrail Then&lt;br&gt;
            Using bo As New AuditTrailBO&lt;br&gt;
                bo.NewRow()&lt;br&gt;
                Dim current As DataRowVersion = DataRowVersion.Current&lt;br&gt;
                Dim builder As New StringBuilder&lt;br&gt;
                If (rowValue.RowState = DataRowState.Deleted) Then&lt;br&gt;
                    current = DataRowVersion.Original&lt;br&gt;
                End If&lt;br&gt;
                bo.CurrentRow.BeginEdit()&lt;br&gt;
                If rowValue.Table.Columns.Contains("Counter") Then&lt;br&gt;
                    bo.CurrentRow.Item("DocumentID") = System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(rowValue.Item("Counter", current))&lt;br&gt;
                End If&lt;br&gt;
                Dim num2 As Integer = (rowValue.Table.PrimaryKey.Length - 1)&lt;br&gt;
                Dim i As Integer = 0&lt;br&gt;
                Do While (i &lt;= num2)&lt;br&gt;
                    If (i = 0) Then&lt;br&gt;
                        builder.Append(rowValue.Item(rowValue.Table.PrimaryKey(i).ColumnName, current).ToString)&lt;br&gt;
                    Else&lt;br&gt;
                        builder.Append(("," &amp; rowValue.Item(rowValue.Table.PrimaryKey(i).ColumnName, current).ToString))&lt;br&gt;
                    End If&lt;br&gt;
                    i += 1&lt;br&gt;
                Loop&lt;br&gt;
                bo.CurrentRow.Item("AuditTrailGUID") = Guid.NewGuid&lt;br&gt;
                bo.CurrentRow.Item("DocumentCode") = builder.ToString&lt;br&gt;
                bo.CurrentRow.Item("TransactionType") = transactionType&lt;br&gt;
&lt;br&gt;
                If String.IsNullOrEmpty(transactionDescription) Then&lt;br&gt;
                    bo.CurrentRow.Item("TransactionDescription") = GetCurrentDescription(rowValue, True)&lt;br&gt;
                Else&lt;br&gt;
                    bo.CurrentRow.Item("TransactionDescription") = transactionDescription&lt;br&gt;
                End If&lt;br&gt;
                bo.CurrentRow.Item("UpdateAction") = rowValue.RowState.ToString&lt;br&gt;
                bo.CurrentRow.Item("TableSourceName") = rowValue.Table.TableName&lt;br&gt;
                bo.CurrentRow.Item("UserCreated") = MicroFour.StrataFrame.Security.SecurityBasics.CurrentUser.UserName&lt;br&gt;
                bo.CurrentRow.Item("DateCreated") = DateTime.Now&lt;br&gt;
                bo.CurrentRow.Item("UserModified") = MicroFour.StrataFrame.Security.SecurityBasics.CurrentUser.UserName&lt;br&gt;
                bo.CurrentRow.Item("DateModified") = DateTime.Now&lt;br&gt;
                bo.CurrentRow.EndEdit()&lt;br&gt;
                bo.Save()&lt;br&gt;
            End Using&lt;br&gt;
        End If&lt;br&gt;
    End Sub&lt;br&gt;
&lt;br&gt;
    Private Function GetCurrentDescription(ByVal row As DataRow, ByVal formatVertical As Boolean) As String&lt;br&gt;
        Dim builder As New StringBuilder&lt;br&gt;
        Dim column As DataColumn&lt;br&gt;
        For Each column In row.Table.Columns&lt;br&gt;
            If (row.RowState = DataRowState.Deleted) Then&lt;br&gt;
                If formatVertical Then&lt;br&gt;
                    builder.AppendLine(String.Concat(New String() {"[-]", "", column.ColumnName, ": ", row.Item(column, DataRowVersion.Original).ToString}))&lt;br&gt;
                Else&lt;br&gt;
                    builder.Append(String.Concat(New String() {"[-]", " ", column.ColumnName, ": ", row.Item(column, DataRowVersion.Original).ToString, ChrW(9)}))&lt;br&gt;
                End If&lt;br&gt;
                Continue For&lt;br&gt;
            End If&lt;br&gt;
            If (row.RowState = DataRowState.Added) Then&lt;br&gt;
                If formatVertical Then&lt;br&gt;
                    builder.AppendLine(String.Concat(New String() {"[+]", " ", column.ColumnName, ": ", row.Item(column, DataRowVersion.Current).ToString}))&lt;br&gt;
                Else&lt;br&gt;
                    builder.Append(String.Concat(New String() {"[+]", " ", column.ColumnName, ": ", row.Item(column, DataRowVersion.Current).ToString, ChrW(9)}))&lt;br&gt;
                End If&lt;br&gt;
                Continue For&lt;br&gt;
            End If&lt;br&gt;
            If ((row.RowState = DataRowState.Modified) Or (row.RowState = DataRowState.Unchanged)) Then&lt;br&gt;
                If Not row.Item(column, DataRowVersion.Original).ToString.Equals(row.Item(column, DataRowVersion.Current).ToString) Then&lt;br&gt;
                    If formatVertical Then&lt;br&gt;
                        builder.AppendLine(String.Concat(New String() {"[*]", " ", column.ColumnName, ": ", row.Item(column, DataRowVersion.Original).ToString, " -&gt; ", row.Item(column, DataRowVersion.Current).ToString}))&lt;br&gt;
                    Else&lt;br&gt;
                        builder.Append(String.Concat(New String() {"[*]", " ", column.ColumnName, ": ", row.Item(column, DataRowVersion.Original).ToString, " -&gt; ", row.Item(column, DataRowVersion.Current).ToString, ChrW(9)}))&lt;br&gt;
                    End If&lt;br&gt;
                    Continue For&lt;br&gt;
                End If&lt;br&gt;
                If formatVertical Then&lt;br&gt;
                    builder.AppendLine((column.ColumnName &amp; ": " &amp; row.Item(column, DataRowVersion.Original).ToString))&lt;br&gt;
                Else&lt;br&gt;
                    builder.Append((column.ColumnName &amp; ": " &amp; row.Item(column, DataRowVersion.Original).ToString &amp; ChrW(9)))&lt;br&gt;
                End If&lt;br&gt;
            End If&lt;br&gt;
        Next&lt;br&gt;
        Return builder.ToString&lt;br&gt;
    End Function&lt;br&gt;
&lt;br&gt;
    Protected Overrides Sub OnBeforeSave(ByVal e As MicroFour.StrataFrame.Data.BeforeSaveUndoEventArgs)&lt;br&gt;
        MyBase.OnBeforeSave(e)&lt;br&gt;
&lt;br&gt;
        If Me.AuditDataChanges Then&lt;br&gt;
            If (Not e.Cancel) Then&lt;br&gt;
                Me.AuditChanges(Me.CurrentDataTable, Me.TableName, "")&lt;br&gt;
            End If&lt;br&gt;
        End If&lt;br&gt;
&lt;br&gt;
    End Sub&lt;br&gt;
&lt;br&gt;
    Protected Overrides Sub OnBeforeDelete(ByVal e As MicroFour.StrataFrame.Business.BeforeDeleteEventArgs)&lt;br&gt;
        MyBase.OnBeforeDelete(e)&lt;br&gt;
&lt;br&gt;
        If Me.AuditDataChanges Then&lt;br&gt;
            If (Not e.Cancel) Then&lt;br&gt;
                Me.AuditChanges(Me.CurrentDataTable, Me.TableName, "")&lt;br&gt;
            End If&lt;br&gt;
        End If&lt;br&gt;
&lt;br&gt;
    End Sub&lt;br&gt;
[/code]&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
I´ll keep searching the forum for SF Audit implementations&lt;br&gt;</description><pubDate>Mon, 08 Dec 2008 12:12:31 GMT</pubDate><dc:creator>Guillermo Vilas</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost21063.aspx</link><description>Hi Guillermo.&lt;/P&gt;&lt;P&gt;Have a look at this post:&lt;/P&gt;&lt;P&gt;&lt;A href="http://forum.strataframe.net/FindPost12173.aspx"&gt;http://forum.strataframe.net/FindPost12173.aspx&lt;/A&gt;</description><pubDate>Mon, 08 Dec 2008 11:01:45 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost21062.aspx</link><description>Hi guys,&lt;br&gt;
Can you post a sample that shows the best place to put the Audit logic, I was trying in the AfterSave and AfterDelete events in my Base BO but I can not trap the row changes when deleted. At this moment I'm able to capture the Added and Modifed changes in the row. but if the BO is deleted I can't log it.&lt;br&gt;
&lt;br&gt;
Thanks for your help</description><pubDate>Mon, 08 Dec 2008 10:39:01 GMT</pubDate><dc:creator>Guillermo Vilas</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost20972.aspx</link><description>Hi,&lt;br&gt;
I would like to know, how would the auditing feature work in RBS? What would be audited? and etc...&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Tue, 02 Dec 2008 21:19:20 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost20957.aspx</link><description>The auditing features have not been fully implemented (or released).&amp;nbsp; If you notice, you will actually find the Auditor class within the framework as well as the SFSAuditing tables that get imported when importing the security tables into a DDT project.&amp;nbsp; However, though the BOs technically support this, we have not fully released this as of yet as we intend to add some additional functionality in the form of a control that allows you to place a viewer for teh audit records on a dialog.&amp;nbsp; Once this has been completed, then the user-level actions will be enabled.</description><pubDate>Tue, 02 Dec 2008 09:52:48 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost20940.aspx</link><description>Good Morning! &lt;br&gt;
&lt;br&gt;
I'm running the latest beta (1.6.7) and am seeing a discrepancy between the help for the Permission Editor and the actual dialog. Specifically, the Help shows a dialog that has Auditing options for Application and Data Events; the actual Permission dialog I am seeing does not. &lt;br&gt;
&lt;br&gt;
Should I be seeing the two additional options? &lt;br&gt;
&lt;br&gt;
Thanks. &lt;br&gt;
&lt;br&gt;</description><pubDate>Mon, 01 Dec 2008 11:00:49 GMT</pubDate><dc:creator>Alex Luyando</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost16454.aspx</link><description>Cool. I must have missed that post.  I check it out some more. :D&lt;br&gt;
&lt;br&gt;
Thanks!</description><pubDate>Mon, 19 May 2008 13:29:53 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost16438.aspx</link><description>Actually, it has already been plumbed into framework and could technically be used...we have just not mentioned it as there are still a few things that need to be done.&amp;nbsp; You have already seen the auditing files in the DDT, and probably some of the properties on the BO through the designer.&amp;nbsp; We have not created the auditing viewer yet and so we have not yet "released" it.&amp;nbsp; But we are using the auditing features already and working through the "issues" and will release all of it probably in the 1.6.7 version.&lt;/P&gt;&lt;P&gt;You can see another post about it here: &lt;A href="http://forum.strataframe.net/FindPost16202.aspx"&gt;http://forum.strataframe.net/FindPost16202.aspx&lt;/A&gt;</description><pubDate>Mon, 19 May 2008 08:39:21 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost16421.aspx</link><description>I'm wondering what the current status of auditing is?</description><pubDate>Fri, 16 May 2008 14:40:33 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost14002.aspx</link><description>Actually the we have been implementing the auditing portion of RBS and implementing it into our medical software...so the creation of audit records has actually been completed and is being tested.&amp;nbsp; However, we still have to write the user control that will allow you to view and navigate through the records.&amp;nbsp; The next update will include the code, at least, that allows records to be created (including the CRUD options).&amp;nbsp; However, I am not sure that we will have full released the auditing portion in this next build and it will probably be full released and documented in the following update (which should be a smaller update and inlcude the finalized auditing).</description><pubDate>Tue, 05 Feb 2008 09:24:05 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost13999.aspx</link><description>This is something I would like to know too, since is the must wanted feature that helped me decide to buy StrataFrame :P</description><pubDate>Tue, 05 Feb 2008 08:23:52 GMT</pubDate><dc:creator>Guillermo Vilas</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost12739.aspx</link><description>Are there any new developments on the Auditing feature?&amp;nbsp; I'm needing to implement data change auditing and if it's going to be released with the next major version (shortly I hope with VS2008 releasing soon :D),&amp;nbsp; I would much rather utilize this vs having to&amp;nbsp;invent my own lopsided wheel. :hehe:</description><pubDate>Fri, 16 Nov 2007 13:46:32 GMT</pubDate><dc:creator>Crones</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost6198.aspx</link><description>Thanks for the reply.  I know it is hard to manage customer expectations (especially demanding ones ;)  ).  Of course, it is hard for us customers to manage the developers of our favorite framework to implement our pet features too!  :w00t:</description><pubDate>Thu, 25 Jan 2007 01:03:40 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost6177.aspx</link><description>&lt;TABLE cellSpacing=0 cellPadding=0 width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=smalltxt vAlign=top&gt;&lt;P&gt;&lt;SPAN id=_ctl1__ctl0_ctlTopic__ctl0_ctlPanelBar_ctlTopicsRepeater__ctl1_lblFullMessage&gt;[quote]I wasn't really trying to debate the features[/quote]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Poor word choice on my part:&amp;nbsp; let's day discuss versus debate.&amp;nbsp; :D&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I agree input is healthy -- extremely so when your opinion agrees with mine. :)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Nevertheless, we aim to please and will strive to produce something that has&amp;nbsp;some WOW factor.&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description><pubDate>Wed, 24 Jan 2007 14:02:41 GMT</pubDate><dc:creator>Steve L. Taylor</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost6176.aspx</link><description>I wasn't really trying to debate the features, just providing some feedback as to what features one of your customers will need, hoping that it might be provided early enough that a) you might decide to support some/all of these features or b) you at least keep in mind these features so the product can be customized to handle the feature needed but not implemented by the framework.  I look forward to trying out the beta when it gets built.  :D</description><pubDate>Wed, 24 Jan 2007 13:52:54 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost6172.aspx</link><description>[quote]These features are the minimum set required for my app.[/quote]&lt;P&gt;It is an unreleased product and I don't want to debate its entire functionality, until beta.&amp;nbsp;&amp;nbsp;At a glance I think you will generally be satisfied, although the user comment feature will not be included.&amp;nbsp;</description><pubDate>Wed, 24 Jan 2007 13:41:17 GMT</pubDate><dc:creator>Steve L. Taylor</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost6159.aspx</link><description>Thanks for the update. &lt;br&gt;
&lt;br&gt;
I also have to have auditing. Here are the features that I'm currently using, most implemented via Instead Of triggers (big, ugly triggers).&lt;br&gt;
&lt;br&gt;
- Audit history is tracked. For each record, there is a history which includes the user who made the change, the data and time and what type of change (add, edit, delete).&lt;br&gt;
- Audited Field history is tracked. A history of each field that is changed is kept.  So for a given audit history item (item 1 above), there is associated with that the set of fields that where changed (only the fields that were changed), including the old and new values.&lt;br&gt;
- User can enter an audit comment about why a change was made. This can be turned on/off by business users as needed (that is to say it can be required or not, but it is always available).&lt;br&gt;
&lt;br&gt;
These features are the minimum set required for my app.  The one I'm most concerned about is the last item, as this is critical.  I hope this information helps in your deciding what features to implement.&lt;br&gt;</description><pubDate>Wed, 24 Jan 2007 10:44:30 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item><item><title>RE: Status/features of auditing?</title><link>http://forum.strataframe.net/FindPost6137.aspx</link><description>&lt;TABLE cellSpacing=0 cellPadding=0 width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=smalltxt vAlign=top&gt;&lt;P&gt;&lt;SPAN id=_ctl1__ctl0_ctlTopic__ctl0_ctlPanelBar_ctlTopicsRepeater__ctl1_lblFullMessage&gt;[quote]What is the status of the auditing feature of the security module? [/quote]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Currently the auditing feature is slated to be released 2nd-3rd quarter, range.&amp;nbsp; As the time comes closer we will release beta copies for your enjoyment or frustration, depending on your viewpoint. :w00t:&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;P&gt;[quote]How will it work?[/quote]&lt;/P&gt;&lt;P&gt;The auditing will have two major functions: application events and data events.&amp;nbsp; The application events will be used within your application to monitor user traffic.&amp;nbsp; For example, you may want to log an event every time the user logs into the system.&amp;nbsp; The data event trapping will be used to monitor how data is created, updated, and queried.&amp;nbsp; Obviously, this will create overhead but could be used to monitor a user if they are manipulating data.&amp;nbsp; &lt;/P&gt;&lt;P&gt;This feature is important to us since it is necessary for medical certification.&lt;/P&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description><pubDate>Wed, 24 Jan 2007 08:39:56 GMT</pubDate><dc:creator>Steve L. Taylor</dc:creator></item></channel></rss>