V2 Classification
Definitions
Classification Field - Classification field types
- Select from a list
- Select from a tree
- Checkbox
- Values
- Single value
- From-To value
- Strings, dates, numbers, integers, etc.
Classification Scheme - A pre-defined set of classification fields (ClassificationClass)
- A classification Scheme should have a name and a description
- Defines:
- The set of allow classification fields
- The layout and order of the fields in the top-block, data-block and classifictaion-block
- Whether values for classification fields are required
- Whether multiple values for classification fields are allowd
- Which classification fields are displayed in which blocks
Object Sub-Type - A object database field that identifies the objects type, which also determines the classification scheme that should be applied to that instance of the object. It would stored one of the following fields:
- Documents - document_sub_type_id
- Revisions - revision_sub_type_id
- Tasks - task_sub_type_id
- Transmittals - transmittal_sub_type_id
- Users - user_sub_type_id
Blocks
Identification Block - The block containing:
- Code (for objects which have codes)
- Title
- Sub-type
Data Block - A new block displayed above(? Ask JK) the classifictaion block
Classification Block - The main classification fields
Requirements
- Flexible classification system based on multiple classification schemes
Classification schemes are assigned to objects based on value of object's sub-type. E.g. when you set or change the sub-type (probably called {object} Type on the screen), the input form has to change to display the appropriate set of input fields for the selected classification scheme.
- Multiple classification schemes can be defined. A classification scheme definition includes
- A name
- A description
- The list of classification fields that are allowed
For each classification field (e.g. the ClassificationClass table)
- Is a value for the classification field required
- Are multiple values for the classification field allowed 1. Where the field is displayed.
- Is the field displayed in lists
Is the field displayed in detail screens - Issue: Would classification_classes.display_on_detail ever be set to false?
- It should be possible to change a object's sub-type
- Doing so may cause a loss of classification data
- Cancel, with no loss of data should be allowed. Therefore the classification data is only changed in the database when the user commits the change (e.g. saves)
Tables
- Object tables: Documents, Revisions, Tasks, Transmittals, Users
ResourceSubTypes
- id
resource_type_id - E.g. document, revision, task, etc.
- name
description - Example values: Drawing, Report, Business Letter, Inspection report, Invoice, etc.
- classification_scheme_id
- is_default_list_format
ClassificationSchemes
- id
- name - Example values: Technical, Financial, Correspondence
- description
ClassificationSchemesClasses
- id
- classification_scheme_id
- classification_class_id
- sort_order
- block
- display_on_list
- display_on_detail
- is_required
- is_multiple_allowed
ClassificationClasses -- The description of a set of classification fields, properties (required, multiple, etc.), ordering and their screen layout
id -- Note the current resource_type field will be removed
- classification_id
- code -- Display code
- name -- Display name
Classifications
- id
- code -- Display code
- name -- Display name
- description -- Detailed description
- classification_class_id -- foreign key to the classification class in the case of root classification
- data_type -- BOOL, INT, FLOAT, DATE, TEXT, URL, NONE or MLTEXT (multi-line text)
- from_to_flag -- 2 values (from and to) can be used in object classification if true (only if data_type is INT, FLOAT or DATE)
- min_int -- the minimum of object classification's value if data_type is INT
- max_int -- the maximum of object classification's value if data_type is INT
- min_float -- the minimum of object classification's value if data_type is FLOAT
- max_float -- the maximum of object classification's value if data_type is FLOAT
- min_date -- the minimum of object classification's value if data_type is DATE
- max_date -- the maximum of object classification's value if data_type is DATE
- resource_type -- User or Organisation, classification tree syncronized to, in case of root classification
- resource_id -- reference to the source (User or Organisation) record if resource_type of root of this classification is set
- code_method -- method of the source record used to generate the code of the classification
- In case of User - "initials"
- In case of Organisation - "code"
- name_method -- method of the source record used to generate the name of the classification
- In case of User - "initials", "first_name_last_name" or "last_name_comma_first_name"
- In case of Organisation - "name"
- sort_by -- th syncronized classifications arre sorted by "code" or "name"
- parent_id -- reference to the parent classification
Administration
Steps to perform full classification configuration, assumed, that we want to have a company list, used as sender as well as recipient classifications for document types letter and offer:
Create Companies as Classification List in menu Project/Classifications/Classification List.
Create Sender and Recipient as Classification Classes based on Classification List Companies in Project/Classifications/Classification Classes.
Create Sender and Recipient as Classification Scheme with Classification Classes Sender and Recipient. Set all the necessary flags here regarding displaying (on list, on detail, ordering) and properties (required, multiple allowed) of the classification classes in this scheme. Do this in Project/Classifications/Classification Schemes.
Create Resource Sub Types Letter and Offer for Documents selecting the Classification Scheme Sender and Recipient in Project/Classifications/Resource Sub Types.
Notes:
As in the example above the same Classification List can be used in different Classification Classes.
A Classification Scheme is a set of Classification Classes with properties set. Re-use the same Classification Classes whenever is possible. The Classification Classes can build columns on document, task, etc. lists.
Re-use the same Classification Scheme whenever is possible.