This article provides guidelines for choosing optimal metadata object types for storing data in your configuration.
1. At the solution design stage, the proper selection of metadata object types that will store business data is very important. Incorrect choices might impact the applied solution efficiency and future development options, and hinder adaptation to possible changes in business tasks covered by the applied solution.
2. We recommend that you choose metadata object types based on the following diagram:
The diagram contains the following blocks:* The arrows represent data dependencies (cross-references).
1. Conventionally static data. This includes data that is normally entered once, rarely changed, and regularly accessed. Examples: classifiers, settings, lists, registers, and regulations.
2. Business process-related events, which have time stamps and can generate or modify data when registered. Examples: enterprise document flow, accounting, registering orders or calls.
3. Collected data and commercial indicators, which describe the current state of the application area and the current processes. Unlike data described in paragraphs 1 and 2, this data does not have object nature and it does not describe independent entities belonging to the application area. Examples: item sales history, warehouse balances, current account balances, currency exchange rate history.
The last block represents data analysis, processing, and reporting tools. They utilize data from the other blocks but do not store data themselves.
2.1. Therefore, you have to assign each business area entity to one of these blocks based on the following algorithm:
-
If you need to store data that is rarely changed and does not have time stamps, use the conventionally static data block (1).
-
If you need to register documented events that have time stamps, use the busines process-related events block (2).
-
Otherwise use the collected data and commercial indicators block (3).
Detailed block selection criteria:
Criterion / block |
Conventionally static data |
Business process-related events |
Collected data and commercial indicators |
Main purpose |
Store registers and regulations
|
Register events that are part of business processes, provide documentary proof for various data |
Store data that describes current processes and current state of the application area |
Monitoring state changes |
Not required |
Post and unpost documents, record start and end times, modify task states, and generate records |
Not required |
Hierarchy and grouping |
Use hierarchy and groupings, possibly involving entities of different types |
Not required | Not required |
Key properties |
Code and description |
Event date and number. |
Not required |
Storing additional entity attributes |
Store rarely changed attributes of custom data |
Store references to other objects and parameters that describe the event |
Store only attribute values of other database objects |
Numbering |
Generate code series for items of a given type or within a hierarchy |
Generate number series for all items of a given type or for items within a given period, continuous numbering for objects of different types. |
Not required |
2.2. Then select a specific metadata object type inside the selected block:
2.2.1. For conventionally static data:
1. To store a chart of accounts for double-entry bookkeeping, use the Chart of accounts metadata object.
2. To store a chart of calculation types for calculating accruals and retentions, use the Chart of calculation types metadata object.
3. To store a single value that can be edited by users (usually by the administrator who performs the system setup) and does not require references from other data, use the Constant metadata object.
4. To define a fixed list of values that cannot be edited by users and does not have additional attributes, use the Enumeration metadata object.
5. To store the list of characteristics (properties) where both the characteristic types and their content are defined by users, use the Chart of characteristic types metadata object.
6. In most other cases, you can use the Catalog metadata object.
Detailed criteria for metadata object selection:
Критерий / тип объекта Criterion / object type |
Constant | Enumeration | Chart of characteristic types | Catalog |
Main purpose |
Store a single predefined value |
Store a list of aliases that are never changed and do not have additional attributes |
Store a list of entities and values of characteristics of each entity |
Store a list of objects and their attribute values |
Users can add and edit items |
Edit the value only |
Not required |
Add, edit, or delete items, edit the content and values of entity characteristics |
Add, edit, or delete items |
Hierarchy and grouping |
Not required |
Not required |
Required within a single entity
|
Required within a single entity or between different entities |
Storing values of additional entity attributes |
Not required |
Not required |
Store custom data in entity attributes |
Store custom data in entity attributes |
Storing lists of additional attribute values
|
Not required |
Not required |
Store lists of entity attribute value sets |
Store lists of entity attribute value sets |
Generation based on other objects |
Not required |
Not required |
Enter new items based on other objects |
Enter new items based on other objects |
Numbering |
Not required |
Not required |
Code series for items of a given type or within a grouping |
Code series for items of a given type, or within a grouping, or for a set of subordinate items |
2.2.2. For business process-related events:
1. To register one-time events that have performers (users, employees, groups, or roles) and do not require posting once they are completed, use the Task metadata object.
2. To register the creation and progress of a repeated process that can be divided into a set of actions (events), use the Business process metadata object. To register actions (events) that form a process, use the Task metadata object.
3. In most other cases, you can use the Document metadata object.
Detailed criteria for metadata object selection:
Criterion / object type | Task | Business process (with tasks) | Document |
Main purpose | Register one-time events that have performers |
Register a sequence of events that have performers |
Register events with time stamps and generate data based on these events |
Subordinate items |
Not required |
Register nested processes (task hierarchy) |
Not required |
Combining items into journals |
Not required |
Not required |
Combine documents of different types in a single journal |
Object state |
Required states: new, completed |
Required states: new, in progress, completed |
Required states: posted, unposted |
Numbering | Number series for all tasks of a specific type or within a specific period |
Number series for all processes of a specific type or within a specific period; numbering events within a process |
Number series for various document types, continuous or within a specific period |
2.2.3. For collected data and commercial indicators:
1. To store accounting data for double-entry bookkeeping, use the Accounting register metadata object.
2. To store calculated accruals and retentions, use the Calculation register metadata object.
3. To store the history of indicator changes (incomes and expenses, turnovers and balances for a specific period), use the Accumulation register metadata object.
4. In most other cases, you can use the Information register metadata object.
Detailed criteria for metadata object selection:
Criterion / object type | Accumulation register | Information register |
Main purpose | Store data changes (incomes and expenses, indicator changes) | Store data as record sets; register some values. |
Retrieving data |
Retrieve balances and turnovers |
Retrieve data slice for a specific moment, or retrieve current indicator values. |
Referencing data sources |
Reference to the recorder document |
Referencing is not mandatory |
3. Example of metadata object type selection:
A company provides survey services. Each questionnaire includes a date and a set of questions, a filled questionnaire also includes a set of answers. The "questionnaire" entity has a time stamp and generates statistical data (the answers).
Let us use the algorithm described in this article:
- Filling a questionnaire is an event that has a time stamp and generates parameter values. It belongs to the second block: business process-related events.
- According to the table describing this block, a questionnaire that generates data (the answers) is represented by a Document object.