= V2 Classification = [[V2Master]] | [[V2HighLevelDesign]] <> = Definitions = 1. '''Classification Field''' - Classification field types 1. Select from a list 1. Select from a tree 1. Checkbox 1. Values 1. Single value 1. From-To value 1. Strings, dates, numbers, integers, etc. 1. '''Classification Scheme''' - A pre-defined set of classification fields (''Classification``Class'') 1. A classification Scheme should have a name and a description 1. Defines: 1. The set of allow classification fields 1. The layout and order of the fields in the top-block, data-block and classifictaion-block 1. Whether values for classification fields are required 1. Whether multiple values for classification fields are allowd 1. Which classification fields are displayed in which blocks 1. '''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: 1. Documents - document_sub_type_id 1. Revisions - revision_sub_type_id 1. Tasks - task_sub_type_id 1. Transmittals - transmittal_sub_type_id 1. Users - user_sub_type_id 1. '''Blocks''' 1. '''Identification Block''' - The block containing: 1. Code (for objects which have codes) 1. Title 1. Sub-type 1. '''Data Block''' - A new block displayed above(? Ask JK) the classifictaion block 1. '''Classification Block''' - The main classification fields = Requirements = 1. Flexible classification system based on multiple classification schemes 1. 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. 1. Multiple classification schemes can be defined. A classification scheme definition includes 1. A name 1. A description 1. The list of classification fields that are allowed 1. 1. For each classification field (e.g. the ''Classification``Class'' table) 1. Is a value for the classification field required 1. Are multiple values for the classification field allowed 1. Where the field is displayed. 1. Is the field displayed in lists 1. Is the field displayed in detail screens - '''Issue:''' Would ''classification_classes.display_on_detail'' ever be set to false? 1. It should be possible to change a object's sub-type 1. Doing so may cause a loss of classification data 1. 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 = 1. Object tables: Documents, Revisions, Tasks, Transmittals, Users 1. ''Resource``Sub``Types'' 1. id 1. resource_type_id - E.g. ''document, revision, task'', etc. 1. name 1. description - Example values: ''Drawing, Report, Business Letter, Inspection report, Invoice,'' etc. 1. classification_scheme_id 1. is_default_list_format 1. ''Classification``Schemes'' 1. id 1. name - Example values: Technical, Financial, Correspondence 1. description 1. ''Classification``Schemes``Classes'' 1. id 1. classification_scheme_id 1. classification_class_id 1. sort_order 1. block 1. display_on_list 1. display_on_detail 1. is_required 1. is_multiple_allowed 1. ''Classification``Classes'' -- The description of a set of classification fields, properties (required, multiple, etc.), ordering and their screen layout 1. id -- Note the current ''resource_type'' field will be removed 1. classification_id 1. code -- Display code 1. name -- Display name 1. ''Classifications'' 1. id 1. code -- Display code 1. name -- Display name 1. description -- Detailed description 1. classification_class_id -- foreign key to the classification class in the case of root classification 1. data_type -- BOOL, INT, FLOAT, DATE, TEXT, URL, NONE or MLTEXT (multi-line text) 1. 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) 1. min_int -- the minimum of object classification's value if data_type is INT 1. max_int -- the maximum of object classification's value if data_type is INT 1. min_float -- the minimum of object classification's value if data_type is FLOAT 1. max_float -- the maximum of object classification's value if data_type is FLOAT 1. min_date -- the minimum of object classification's value if data_type is DATE 1. max_date -- the maximum of object classification's value if data_type is DATE 1. resource_type -- User or Organisation, classification tree syncronized to, in case of root classification 1. resource_id -- reference to the source (User or Organisation) record if resource_type of root of this classification is set 1. 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" 1. 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" 1. sort_by -- th syncronized classifications arre sorted by "code" or "name" 1. 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'': 1. Create '''Companies''' as ''Classification List'' in menu ''Project/Classifications/Classification List''. 1. Create '''Sender''' and '''Recipient''' as ''Classification Classes'' based on ''Classification List'' '''Companies''' in ''Project/Classifications/Classification Classes''. 1. 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''. 1. 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.