In ITrack Enterprise, settings are flexible, editable settings that control the user's experience inside of ITrack.
Computer settings are settings that are stored per machine that ITrack is installed on. Currently, all such settings are stored in the Host.ini (Enterprise) file in the ITrack installation directory. These settings affect any user on the machine, and often control hardware or installation specific settings like:
- Database configuration
- Printer settings
- Available ITrack extensions
All database-level settings can be configured in the Configure Settings dialog.
These settings are stored for an entire company and apply to everyone who connects to the database they are stored in. Global settings can be configured in the Configure Settings (Enterprise) dialog. These settings usually apply to some company-wide setting that spans all stores, such as 'Use GL Accounting', or 'AR GL Account'.
The values for global settings are stored in the storesettingvalue table with a store ID of -1.
These settings have a value for each store at a company, and usually define settings that might be different from location to location (such as tax information).
The values for store settings are stored in the storesettingvalue table.
Group settings are settings that apply to entire user groups. Since user groups encompass entire sets of users, it can be used to easily define defaults for entire groups of users. Currently, no settings exist natively at the group level, but defaults can be defined at this scope, and it may be employed in the future.
The values for user groups are stored in the groupsettingvalue table.
This scope is the most common setting level, and often deals with user-specific preferences and options. Common examples of user settings are:
- Last used dialog location and size
- Default selections for combo boxes or check-boxes
- Search defaults
- Personal preferences
The values for user settings are stored in the usersettingvalue table.
Advanced DBA Information
Settings are defined at a particular scope (stored in setting.scope), but defaults can be specified at a higher scope (like globally). This has the effect of specifying defaults for any users who don't have a value yet. If settings are defined at a lower scope than they were specified for, the value at the lowest scope will always take priority.
For example, if a user is logged into a particular store, and a value is defined for both that user and that store, the user setting will take precedence (even if the setting is store scope).
Deleting a setting or setting value will only temporarily remove it. If ITrack looks for a setting that doesn't exist in the DB, it will be inserted. If a user/group/or store doesn't have a value for a setting, it will be inserted with the default value.