This is a special screen that can be loaded into any version of ITrack (Pro/AX/EE/etc) that allows the user to perform advanced, power-user functions. This screen was developed initially to allow ISoft employees to perform advanced operations and view in-depth information about specific datasources. Some of the features of this screen may be applicable to DBAs, ITrack Enterprise administrators, or other power users.
This screen has the special ability that it dynamically loads other extensions that contain additional administrative tools which are turned into property pages on the screen. The current Administration Screen extensions are listed below with a description of their purpose, who would use them, and what features they implement.
This extension is the Administration screen itself, and is required for the use of any Administrative tools. In addition this extension contains the following tool pages.
This page is designed to allow a troubleshooter or ITrack manager to run a set of store constraint checks across their database. This is sometimes called a 'database sanity check'. This screen allows the user to run any number of stored queries (called constraints) against their database. Every violation is reported to the user, along with the severity of the issue, its total impact (which is constraint specific), date, etc.
For example, a common constraint might be to verify that every time a customer WO was invoiced, that the invoice line price (saleosrderline.price) matches the job subtotal. If this was off in any case, that would be a problem, as the Sales/COGS accounts on the invoice wouldn't be hit for the same amount as the work order expected (which could leave value in the WIP accounts).
To add new constraints to this system, an administrator can add queries to the dataconstraint table. The result set and query must be formatted in a specific way in order to utilize the full capability of the interface. For a tutorial on creating data constraints, contact ISoft Data Systems for assistance.
This extension contains 3 tool pages that give the user certain advanced database tools. This extension will usually only ever apply to ISoft employees.
This page is an extremely advanced file importing tool. Using this interface, the user can add hundreds of .csv (comma separated value) or .tdv (tab delimited value) spreadsheets into the database, with automatic data type conversion, data integrity verification, automatic column matching, and data preview. The screen is capable of simply running queries directly against the destination database, or it can generate a .sql script to be run later. Mass-data insertion can be configured to use either manual bulk-insert statements (limited to stay withing destination server's MAXIMUM_PACKET_SIZE) or LOAD DATA INFILE statements.
If someone ever needs to be able to perform initial data imports for new installs, this screen is designed to facilitate it.
This page allows the user to visually explore the schema of the currently loaded database. This tool was created for internal ISoft use only. This screen has several 'modes' which allow rapid completion of common functions on a specific database schema.
The main feature of the screen is the ability to see a tree of database/tables in the current database server's schema (to make this quick, items are loaded into memory as needed). The user can see table size, as well as view all columns in that table. A specialized MySQL language parser is used to scan and break apart the table creation statements. What the user can do with this interface depends on what mode they are in. The two currently supported modes are described below.
This mode allows the user to rapidly generate an MFC C++ object that is capable of translating the specified table entity into an ITObject (and vice versa). These ITObjects allow for more readable and more reusable user interface code. ITObjects are capable of loading one or more object from the database into memory, tracking changes, and serializing those changes back into the table. In the classic Model/View/Controller structure, these objects represent the Model as well as part of the Controller.
This screen makes the programmer's life easier by automatically parsing the table, guessing which columns are keys (primary or external), guessing the class names of keys, guessing the proper data type for fields, guessing the properly formatted variable name for a column. Automatic table and column name formatting is performed through a dictionary of common ITrack terms. This way, scanning a new table, the screen is already quite certain of the properly formatted variable/function names that correspond to the columns it detected. The user can choose which fields to include in the ITObject, customize/correct data type, variable name, etc.
When the user is finished preparing an object class, they can hit export, which will create <ClassName>.cpp and <ClassName>.h where <ClassName> is a customizable version of the table's name, run through the same variable name parser used on the columns.
This mode is used to rapidly generate MySQL trigger creation scripts that log changes made to any number of fields in any number of tables. The impetus of this mode is that often, a customer or company wishes to log all changes made against one or more fields in one or more tables in a MySQL database. Triggers that log said activity can be written by hand, but can be quite tedious, especially if a large number of fields or tables are involved.Currently, this mode allows the user to check any number of tables within a database (and any number of columns in those tables) to log the changes on. The user is given an opportunity to customize the name of the 3 triggers that are generated for each table being logged this way. The default trigger name is "t_