CNS Audit
Version 1.5
Setup Guide
CNS Audit
Table of Contents
Preparing the database for CNS Audit!
4
Creating the CNS Audit Tables !
4
Removing Layout Name / Table Occurrence Name conflicts!
4
Set up the database for tracking field changes!
6
Set up the database for tracking record deletions!11
Set up the database for startup and shutdown!
15
Auditing existing data!
21
Solution 1!
21
Solution 2!
24
Set up is complete!
26
Optional set up tasks!
27
Protecting Audit Trail Data !
27
Auditing Actions other than Modifying Data!
27
Auditing Record Views!
28
Preventing database modification if CNS Audit is not present! 31
Setting up Multiple Files / Data Separation Model! 34
Make sure all files have a reference to the CNS Audit tables!
34
Modify the CNS Audit Trigger fields !
34
Modify the Startup scripts!
37
2
CNS Audit
Modify any CNSAudit_AccessLog calls!
Additional Information!
Modifying schema!
38
39
39
3
CNS Audit
Preparing the database for CNS Audit
All of the example screenshots and text in this guide were taken from the CNS Audit
Example database included with the plug-in. So, if you want to see a live example of
the steps taken in this guide, feel free to explore that database as you follow along.
Creating the CNS Audit Tables
Before CNS Audit can start tracking changes to your database, a few tables need to be
created. CNS Audit can do this for you from the CNS Audit Configuration Dialog. Open
your database in FileMaker Pro and make sure you log in with an account that has
[Full Access] privileges. Next, open the CNS Audit Configuration Dialog on Mac by
choosing Preferences from the FileMaker Pro menu, switch to the Plug-Ins tab, then
double-click on CNS Audit. On Windows, choose Preferences from the Edit menu,
switch to the Plug-Ins tab, and double-click on CNS Audit. In the CNS Audit
Configuration Dialog, switch to the Basics tab and press the Create Audit Tables
button. A dialog should come up telling you that the tables were created.
Removing Layout Name / Table Occurrence Name conflicts
If your database will be used with any version of FileMaker Pro prior to version 11,
regardless of the version of FileMaker Pro you develop with, you will need to prepare it
for use with CNS Audit under those versions. In Order for CNS Audit to work properly
with versions of FileMaker Pro prior to version 11, there cannot be any Table
Occurrences with the same name as Layouts in the database. CNS Audit is capable of
keeping track of the fields in the database even if their names are changed, but to do
this in versions of FileMaker Pro prior to version 11, it needs to use the FieldIDs
calculation function. This function allows for retrieving the Field IDs of all the fields in a
specific Table Occurrence, so long as there is not a Layout with the same name as the
Table Occurrence. If there is a Layout with the same name as the Table Occurrence, the
FieldIDs function returns the Field IDs of all the fields on the Layout instead of in the
Table Occurrence. Since all the fields in the Table Occurrence may not be on the
Layout, this causes CNS Audit to not see, and therefore not Audit, all the fields in the
Table Occurrence.
Unfortunately, when creating a table, FileMaker Pro automatically creates a Layout with
the same name as the table. To prepare your database for use with CNS Audit under
versions of FileMaker Pro prior to version 11, these duplicate names must be changed.
Either rename the Table Occurrence or rename the Layouts. It is probably easier to
rename the Layouts because when renaming a Table Occurrence, if the automatically
generated Layout has never been manually renamed, FileMaker Pro updates the
automatically generated Layout to have the same name as the Table Occurrence.
Consider renaming the Layout by adding the word "Entry" to the end. For example, if a
Table Occurrence is named Contacts, the associated Layout would be named
Contacts Entry. However, this is only a suggestion.
4
CNS Audit
CNS Audit makes it easy to determine which Layouts have the same name as Table
Occurrences in your database. Open your database in FileMaker Pro and make sure
you log in with an account that has [Full Access] privileges. Next, open the CNS Audit
Configuration Dialog. (See the Creating the CNS Audit Tables section above for
instructions on how to open the CNS Audit Configuration Dialog.) In the CNS Audit
Configuration Dialog, switch to the Basics tab and press the Check for Layout
Conflicts button. (Note: This button is not visible when running under FileMaker Pro 11
or above.) If there are any Layouts that have the same name as any Table Occurrences,
the plug-in will present you with a list of those Layouts. After renaming those layouts,
you can use the Check for Layout Conflicts button again to ensure all the conflicts
have been resolved.
5
CNS Audit
Set up the database for tracking field changes
This section explains the steps necessary to set up each Table in the database for
auditing. After completing these steps, the plug-in will be able to track the changes to
field values in the database. (Note: You may also want to implement the validation
options described in the Preventing database modification if CNS Audit is not present
subsection of the Additional Information section at this time.) If your solution consists of
multiple files, you will also need to follow the instructions in the Setting up Multiple
Files / Data Separation Model section.
1. Open the Database file and go to Define / Manage Database.
2. Switch to the Fields tab and select the first table from the Table drop-down menu
in which auditing needs to be added.
Step 2.
Step 3.
Step 4.
3. Add a new Timestamp field named CNS Audit Timestamp.1
4. Press Options for the CNS Audit Timestamp field.
1
Make sure the field is named CNS Audit Timestamp exactly.
6
CNS Audit
5. In the Options for Field dialog that pops-up, switch to the Auto-Enter tab, and
check the Modification Timestamp option.
Step 5.
Step 7.
6. Optional: Set up the Validation options as described in the Preventing database
modification if CNS Audit is not present subsection of the Additional Information
section.
7. Press OK to close the Options for Field dialog.
8. Add a new Text field named CNS Audit Trigger.2
2
Make sure the field is named CNS Audit Trigger exactly.
7
CNS Audit
Step 8.
Step 9.
9. Press Options for the CNS Audit Trigger field.
8
CNS Audit
10. In the Options for Field dialog that pops-up, switch to the Auto-Enter tab, and
check the Calculated Value option.
Step 10.
Step 14.
Step 15.
11. In the Specify Calculation dialog that pops up, change the View drop-down to
External Functions.
9
CNS Audit
Step 11.
Step 12.
Step 13.
12. In the list of functions, scroll down until a line for CNSAudit_RecordChange is
visible and double-click it.
13. Press OK to close the Specify Calculation dialog.
14. Back on the Options for Field dialog, uncheck the Do not replace existing
value of field (if any) option.
15. Press OK to close the Options for Field dialog.
16. Repeat steps 3-15 for each table that needs auditing. (If using FileMaker Pro
Advanced, highlight the two fields, press Copy, and then go to each table and
press Paste.)
17. Close the Define / Manage Database dialog.
10
CNS Audit
Set up the database for tracking record deletions
This section explains the steps necessary to set up each Privilege Set for tracking
record deletions.
Note: The Record Privileges for the [Full Access] Privilege Set cannot be modified,
therefore any user logging in with the [Full Access] Privilege Set will be able to view
and delete records without being audited. The best practices for security in FileMaker
Pro say to not have anyone logging in with the [Full Access] Privilege Set anyway, so
you should consider creating a new Privilege Set with the options defined below and
then apply it to your users that are currently assigned the [Full Access] Privilege Set.
1. Open up the Accounts & Privileges / Manage Security dialog.
2. Switch to the Privilege Sets tab and edit the first custom privilege set. If there
are no custom privilege sets, highlight the [Data Entry Only] privilege set, press
Duplicate, and then edit that new privilege set.
Step 2.
3. In the Data Access and Design section, press the Records drop-down menu
and select Custom Privileges.
11
CNS Audit
Step 3.
4. In the Custom Record Privileges dialog that pops up, select the first table.
5. Press the Delete drop-down menu and select limited....
Step 4.
Step 5.
6. In the Specify Calculation dialog that pops up, change the View drop-down to
External Functions.
12
CNS Audit
Step 6.
Step 7.
Step 8.
Step 9.
7. In the list of functions, scroll down until a line for CNSAudit_RecordDelete is
visible and double-click it.
8. Determine if your database will only be used by client versions of FileMaker Pro
11 or above:
a. If so, replace the TableName parameter with the Base Table Name of the
table you are editing the privileges of.
b. If not, specify any Table Occurrence Name of the table you are editing the
privileges of. (At the top of the Specify Calculation dialog is the Evaluate
this calculation from the context of setting. You can use the same Table
Occurrence name in your calculation as is selected in that setting.)
9. Press OK to close the Specify Calculation dialog.
10. Repeat steps 5-9 for each table in the Custom Record Privileges dialog. (Once
the CNSAudit_RecordDelete function has been added to one calculation, copy
and paste it to the other ones, or just retype it, and skip selecting the External
Functions repeatedly. Make sure you update the TableName parameter for
each table, though.)
11. Press OK to close the Custom Record Privileges dialog.
12. Press OK to close the Edit Privilege Set dialog.
13. Repeat steps 3-12 for each custom privilege that needs modifying.
14. Switch to the Accounts tab and reassign Privilege Sets to the Accounts as
necessary.
15. Press OK to close the Accounts & Privileges / Manage Security dialog.
13
CNS Audit
Once these Custom Record Privileges are set up, the plug-in will be able to track record
deletions which are stored in the CNS Audit Log table. The CNSAudit_RecordDelete
function will also cause the record to be audited before it is deleted if it has never been
audited before. The audit actually occurs whether the user actually deletes the record or
if he or she presses Cancel on the record deletion confirmation dialog.
14
CNS Audit
Set up the database for startup and shutdown
This section explains how to add or modify the Startup and Shutdown scripts for the
database for setting up CNS Audit for the file. While this is optional for single-file
solutions, by following these instructions, CNS Audit will function better with the
database. If your solution consists of multiple files, you will be required to add at least a
Startup script and follow the instructions in the Setting up Multiple Files / Data
Separation Model section below.
1. Open up the ScriptMaker / Manage Scripts dialog.
2. Create a script named Startup (or something similar) or edit an existing Startup
script if one is already in use.
3. Add a Set Variable script step and double-click it.3
4. In the Set Variable Options dialog that pops up, name the variable $CNSAudit
or something similar.
Step 4.
Step 5.
Step 10.
5. Press Specify... next to the Value field.
6. In the Specify Calculation dialog that pops up, change the View drop-down to
External Functions.
If using FileMaker Pro 7, use a Set Field script step and set a field in the database with the same
calculation as the Value calculation for the Set Variable script step.
3
15
CNS Audit
Step 6.
Step 7.
Step 8.
Step 9.
7. In the list of functions, scroll down until a line for CNSAudit_StartupFile is
visible and double-click it.
8. For now, select everything in curly brackets after CNSAudit_StartupFile and
delete it.4
9. Press OK to close the Specify Calculation dialog.
10. Press OK to close the Set Variable Options dialog.
11. Save and close the Startup script window.
12. Create a script named Shutdown (or something similar) or edit an existing
shutdown script if one is already in use.
13. Add a Set Variable script step and double-click it.5
4
If your solution contains multiple files, see the Setting up Multiple Files / Data Separation Model section
for an explanation of the optional parameter for the CNSAudit_StartupFile function.
If using FileMaker Pro 7, use a Set Field script step and set a field in the database with the same
calculation as the Value calculation for the Set Variable script step.
5
16
CNS Audit
14. In the Set Variable Options dialog that pops up, name the variable $CNSAudit
or something similar.
Step 14.
Step 15.
Step 20.
15. Press Specify... next to the Value field.
16. In the Specify Calculation dialog that pops up, change the View drop-down to
External Functions.
Step 16.
Step 17.
Step 18.
Step 19.
17. In the list of functions, scroll down until a line for CNSAudit_ShutdownFile is
visible and double-click it.
17
CNS Audit
18. For now, select everything in curly brackets after CNSAudit_ShutdownFile and
delete it.6
19. Press OK to close the Specify Calculation dialog.
20. Press OK to close the Set Variable Options dialog.
21. Save and close the Shutdown script window.
22. Close the ScriptMaker / Manage Scripts dialog.
23. Open the File Options dialog and switch to the Open/Close tab.
24. In the When opening this file section, check the Perform script option.
Step 24.
Step 27.
6
See the online CNS Audit Function Reference for an explanation of the optional parameter for the
CNSAudit_ShutdownFile function.
18
CNS Audit
25. In the Specify Script dialog that pops up, select the Startup script created/
edited in step 2.
Step 25.
Step 26.
26. Press OK to close the Specify Script dialog.
27. Back on the File Options dialog, in the When closing this file section, check the
Perform script option.
19
CNS Audit
28. In the Specify Script dialog that pops up, select the Shutdown script created/
edited in step 12.
Step 28.
Step 29.
29. Press OK to close the Specify Script dialog.
30. Press OK to close the File Options dialog.
20
CNS Audit
Auditing existing data
CNS Audit is normally invoked when a record is committed and at that point it compares
the data in the committed record with the Audit Trail data in the CNS Audit Log
database. When adding CNS Audit to an existing database with existing data (as
opposed to a new database), the CNS Audit Log will not contain any Audit Trail data for
the database at the point CNS Audit is implemented. If there is no previous entries for
any given record in the CNS Audit Log when a record is audited, CNS Audit will create
new entries for the record, but any values in the record prior to the audit will be lost.
CNS Audit offers two solutions for this situation:
Solution 1
CNS Audit includes a function named CNSAudit_RecordOpen. This function is similar
to the CNSAudit_RecordDelete function in that it's used in the Custom Record
Privileges for each table in your database. By using this function with the Edit Custom
Record Privilege, CNS Audit is able to capture the current state of the record before any
edits are made. This function also logs an Open action to the CNS Access Log table.
Follow these instructions to add the CNSAudit_RecordOpen function.
1. Open up the Accounts & Privileges / Manage Security dialog.
2. Switch to the Privilege Sets tab and edit the first custom privilege set.
Step 2.
3. In the Data Access and Design section, press the Records drop-down menu
and select Custom Privileges.
21
CNS Audit
Step 3.
4. In the Custom Record Privileges dialog that pops up, select the first table.
5. Press the Edit drop-down menu and select limited....
Step 4.
Step 5.
6. In the Specify Calculation dialog that pops up, change the View drop-down to
External Functions.
22
CNS Audit
Step 6.
Step 7.
Step 8.
Step 9.
7. In the list of functions, scroll down until a line for CNSAudit_RecordOpen is
visible and double-click it.
8. Determine if your database will only be used by client versions of FileMaker Pro
11 or above:
a. If so, replace the TableName parameter with the Base Table Name of the
table you are editing the privileges of.
b. If not, specify any Table Occurrence Name of the table you are editing the
privileges of. (At the top of the Specify Calculation dialog is the Evaluate
this calculation from the context of setting. You can use the same Table
Occurrence name in your calculation as is selected in that setting.)
9. Press OK to close the Specify Calculation dialog.
10. Repeat steps 5-9 for each table in the Custom Record Privileges dialog. (Once
the CNSAudit_RecordOpen function has been added to one calculation, copy
and paste it to the other ones, or just retype it, and skip selecting the External
Functions repeatedly. Make sure you update the TableName parameter for
each table, though.)
11. Press OK to close the Custom Record Privileges dialog.
12. Press OK to close the Edit Privilege Set dialog.
13. Repeat steps 3-12 for each custom privilege that needs modifying.
14. Press OK to close the Accounts & Privileges / Manage Security dialog.
23
CNS Audit
Solution 2
CNS Audit includes a function named CNSAudit_Init that can create an initial set of
Audit Trail data. This function will look for every table in your database that contains the
CNS Audit Trigger field (ie. tables that have been set up for auditing) and examine
every record in those tables to determine if that record has been audited. If it has not, or
if the record indicates there was some error the last time it was audited, then CNS Audit
will create a set of initial records in the CNS Audit Log table to reflect the state of the
record at that moment. After using CNSAudit_Init the CNS Audit Log table will contain
all necessary information for rolling back changes to the database up to the point that
the CNSAudit_Init function was used.
Some important information about this function: This function examines every single
record in every single table that has been set up for auditing and will create a record in
the CNS Audit Log table for every single field in each of those records. For any
database that has a moderate to large number of records, the CNSAudit_Init function
can take hours to complete and will easily triple or quadruple the size of your database.
While it's possible to run the CNSAudit_Init function on a database that is hosted via
FileMaker Server, the process will complete much faster if it's brought down from the
server and run locally before being hosted again. Unless it's absolutely necessary that
you have a full audit of every single record in your database (eg. to recreate the
database from an empty clone), using the CNSAudit_RecordOpen solution above to
only track changes as they happen is probably a better choice.
Follow these steps to use the CNSAudit_Init function:
1. Open up the ScriptMaker / Manage Scripts dialog.
2. Create a script named Init File or something similar.
3. Add a Set Variable script step and double-click it.7
If using FileMaker Pro 7, use a Set Field script step and set a field in the database with the same
calculation as the Value calculation for the Set Variable script step.
7
24
CNS Audit
4. In the Set Variable Options dialog that pops up, name the variable $CNSAudit
or something similar.
Step 4.
Step 5.
Step 9.
5. Press Specify... next to the Value field.
6. In the Specify Calculation dialog that pops up, change the View drop-down to
External Functions.
Step 6.
Step 7.
Step 8.
7. In the list of functions, scroll down until a line for CNSAudit_Init is visible and
double-click it.
8. Press OK to close the Specify Calculation dialog.
25
CNS Audit
9. Press OK to close the Set Variable Options dialog.
10. Save and close the Init File script window.
Run the Init File script to initialize the CNS Audit Log table with the data from the
database. If the CNS Audit Log table has not yet been created, this function will create
it and ask you to run the Init function a second time.
Notes:
• While running, the CNSAudit_Init function shows a dialog with a progress bar and
a Cancel button. The initialization process can be stopped at any time by pressing
the Cancel button. The process can then be started again by running
CNSAudit_Init again and it will pick up where it left off.
• The CNSAudit_Init function can be called at any time after CNS Audit has been
implemented in a database and can be called multiple times if the need arises. For
example, if for some reason CNS Audit was not installed on a computer that was
using the database, any records added on that computer would not be audited.
The CNSAudit_Init function could be used to create Audit Trail data for those
records added on the computer that did not have CNS Audit installed.
Set up is complete
Your single-file database solution has now been set up for auditing via the CNS Audit
Plug-in. Any edits to your data will now create Audit Trail records in the CNS Audit Log
table. The remaining sections of this guide will show you how to make sure the plug-in
is installed when your solution is open, how to add support for auditing Record Views,
and how to set up multi-file / data separation model solutions to be audited.
26
CNS Audit
Optional set up tasks
Protecting Audit Trail Data
While CNS Audit is in charge of creating an Audit Trail of the database, keeping
everyday users from directly modifying that Audit Trail data after-the-fact is up to the
database developer. To ensure that everyday users can add to, but not modify, the
Audit Trail data, modify the CNS Audit Log entry in the Custom Record Privileges for
the everyday users' Privilege Set as follows:
View: yes
Edit: no
Create: yes
Delete: no
Field Access: all
Auditing Actions other than Modifying Data
CNS Audit provides a CNSAudit_AccessLog function for auditing any custom actions
performed by database users. This function has one required parameter and one
optional parameter. The first parameter is the Action to log, for example User Login.
The second parameter is any special Notes about the action, for example User is
logged in after hours. This information is stored in a separate table in the database
named CNS Access Log.
27
CNS Audit
Auditing Record Views
In the same way that the plug-in offers functions for tracking records being opened and
deleted, CNS Audit includes a function for tracking record views. The
CNSAudit_RecordView function is used within the Custom Record Privileges just like
the CNSAudit_RecordOpen and CNSAudit_RecordDelete functions:
1. Open up the Accounts & Privileges / Manage Security dialog.
2. Switch to the Privilege Sets tab and edit the first custom privilege set.
Step 2.
3. In the Data Access and Design section, press the Records drop-down menu
and select Custom Privileges.
28
CNS Audit
Step 3.
4. In the Custom Record Privileges dialog that pops up, select the first table.
5. Press the View drop-down menu and select limited....
Step 4.
Step 5.
6. In the Specify Calculation dialog that pops up, change the View drop-down to
External Functions.
29
CNS Audit
Step 6.
Step 7.
Step 8.
Step 9.
7. In the list of functions, scroll down until a line for CNSAudit_RecordView is
visible and double-click it.
8. Determine if your database will only be used by client versions of FileMaker Pro
11 or above:
a. If so, replace the TableName parameter with the Base Table Name of the
table you are editing the privileges of.
b. If not, specify any Table Occurrence Name of the table you are editing the
privileges of. (At the top of the Specify Calculation dialog is the Evaluate
this calculation from the context of setting. You can use the same Table
Occurrence name in your calculation as is selected in that setting.)
9. Press OK to close the Specify Calculation dialog.
10. Repeat steps 5-9 for each table in the Custom Record Privileges dialog. (Once
the CNSAudit_RecordView function has been added to one calculation, copy
and paste it to the other ones, or just retype it, and skip selecting the External
Functions repeatedly. Make sure you update the TableName parameter for
each table, though.)
11. Press OK to close the Custom Record Privileges dialog.
12. Press OK to close the Edit Privilege Set dialog.
13. Repeat steps 3-12 for each custom privilege that needs modifying.
14. Press OK to close the Accounts & Privileges / Manage Security dialog.
Once these Custom Record Privileges are set up, the plug-in will add a record to the
CNS Access Log table anytime a user views a record in the database.
30
CNS Audit
Preventing database modification if CNS Audit is not present
If CNS Audit is not installed or not enabled on a machine, any modifications to the
database will not be recorded to the CNS Audit Log. To correct this behavior, some
validation options can be added to prevent modification to the database. Follow these
steps to prevent modification when CNS Audit is missing:
1. Open the Database file and go to Define / Manage Database.
2. Switch to the Fields tab and select the first table from the the Table drop-down
menu in which auditing has been added.
Step 2.
Step 3.
Step 4.
3. Select the CNS Audit Timestamp field that was created when the database was
set up for tracking field changes.
4. Press Options.
5. In the Options for Field dialog that pops-up, switch to the Validation tab.
6. Select Always in the Validate data in this field: section.
31
CNS Audit
Step 6.
Step 7.
Step 8.
Step 12.
7. Uncheck the Allow user to override during data entry option in the Validate
data in this field: section.
8. Check the Validated by calculation option in the Require: section.
9. In the Specify Calculation dialog that pops up, type into the calculation:
If ( CNSAudit_Version = "?" ; 0 ; 1 )
32
CNS Audit
Step 9.
Step 10.
Step 11.
10. Uncheck the Validate only if field has been modified option near the bottom of
the Specify Calculation dialog.
11. Press OK to close the Specify Calculation dialog.
12. Optional: Back on the Options for Field dialog, check the Display custom
message if validation fails option and enter in something similar to:
Modification to this database has been disabled because changes
cannot be recorded to the Audit Trail log. Please make sure CNS
Audit has been installed and enabled.
13. Press OK to close the Options for Field dialog.
14. Repeat steps 3-13 for each table that has been set up for auditing.
15. Close the Define / Manage Database dialog.
33
CNS Audit
Setting up Multiple Files / Data Separation Model
If your database solution is made up of multiple related files, such as in a solution that
uses the Data Separation Model, there are a few extra steps that need to be done for
CNS Audit to correctly audit your databases.
Make sure all files have a reference to the CNS Audit tables
Every file in the solution will need an external Table Occurrence reference to the three
CNS Audit tables, CNS Audit Log, CNS Access Log, and CNS Audit Prefs. It does not
matter which file the actual CNS Audit tables are in, and they can even be in a file all by
themselves if you want, but every file in the solution needs to have access to them.
Also, make sure you do not rename the Table Occurrences.
Modify the CNS Audit Trigger fields
In each of your tables that you have set up for auditing by adding the CNS Audit
Timestamp and CNS Audit Trigger fields, you will need to make a small modification
to the CNS Audit Trigger calculation.
1. Open the Database file and go to Define / Manage Database.
2. Switch to the Fields tab and select the first table from the Table drop-down menu
in which auditing has been added.
34
CNS Audit
Step 2.
Step 3.
Step 4.
3. Select the CNS Audit Trigger field you created when setting up the database for
tracking field changes.
4. Press Options.
5. In the Options for Field dialog that pops-up, switch to the Auto-Enter tab, and
click the Specify... button next to the Calculated Value option.
35
CNS Audit
Step 5.
6. In the Specify Calculation dialog that pops up, you should see two double
quotes as the last parameter to the CNSAudit_RecordChange function.
7. Determine if your database will only be used by client versions of FileMaker Pro
11 or above:
a. If so, insert the Base Table Name of the table you are modifying between the
double quotes.
b. If not, insert any Table Occurrence Name of of the table you are modifying
between the double quotes. (At the top of the Specify Calculation dialog is
the Evaluate this calculation from the context of setting. You can use the
same Table Occurrence name in your calculation as is selected in that
setting.)
36
CNS Audit
Step 7.
Step 8.
8. Press OK to close the Specify Calculation dialog.
9. Press OK again to close the Options for Field dialog.
10. Repeat steps 3-9 for each table that you have setup for auditing.
11. Close the Define / Manage Database dialog.
Modify the Startup scripts
Every file in your solution will need a script that is called when your solution is opened.
You can follow the instructions in the Set up the database for startup and shutdown
section if you have not already. However, it's important to note that it's possible for a
database file to be opened without the Startup script being run. This usually happens if
FileMaker Pro opens the file to satisfy a relationship from the current file. Because of
this, you need to ensure that the main database file for your solution will call the Startup
scripts of every other file in your solution.
In the Startup scripts for each of the files, modify the CNSAudit_StartupFile function to
include a paragraph-mark delimited list of every file name in the solution. For example, if
your solution is made up of three files named Contacts.fp7, Calendar.fp7, and
Interface.fp7, then modify the CNSAudit_StartupFile function in each file to look like:
CNSAudit_StartupFile( "Contacts¶Calendar¶Interface" )
Note: Do not include the .fp7 extension when listing the file names.
37
CNS Audit
Modify any CNSAudit_AccessLog calls
If you are using the CNSAudit_AccessLog function in any scripts or calculations, you
will need to update those calls as well. That function also has an optional third
parameter like the CNSAudit_RecordChange function. If your database solution will
only be used with FileMaker Pro 11+ clients, specify the Base Table Name of the table
that is in context for the script or calculation as the third parameter. If your database
solution will be used with any version of FileMaker Pro less than version 11, specify any
Table Occurrence name of the table that is in context for the script or calculation as the
third parameter.
After making the above four changes, your multi-file database solution will be set up for
auditing with the CNS Audit plug-in.
38
CNS Audit
Additional Information
Modifying schema
One of the many steps CNS Audit takes to speed up auditing is to cache the schema
information from the database. When running under versions of FileMaker Pro prior to
version 11, this cached schema information can become out of sync with the actual
database if you are actively developing the database (eg. adding/renaming tables,
fields, and layouts). To ensure that CNS Audit is correctly auditing the database when
running under versions of FileMaker Pro prior to version 11, the CNSAudit_StartupFile
function can be used at any time to force a reload of the schema information. When
running under FileMaker Pro 11 or above, the plug-in is able to track changes to the
schema and will reload the schema information automatically.
39
Download PDF
Similar pages