- Created by Robert Reiner, last modified by Anton Kronseder on 23. Sep 2020
projectdoc Toolbox
Specifies the pattern for auto increments for a given doctype.
- Tags
- Identifier
projectdoc.doctype.(doctype).auto-id-pattern
- Data Type
- JSON, string
- Default Value
- {}
- Since
- 2.6
This space property specifies a pattern to apply to generate identifiers for a given doctype. There can be at most one pattern per document type.
The property is part of the Auto Increment feature.
Increment Specification
The Increment Specification defines which number format should be applied to which document instance. For each doctype there may be one specification and in each of these specifications there may be specifications that take the doctype of the parent into account.
{ "specs": [ { "parentDoctypes": [], "parentProperty": "", "function": { "format": "", "increment": 1 } } ] }
Name | Description |
---|---|
specs | List of doctypes increment specifications. |
parentDoctypes | Comma-separated list of doctype IDs to specify for which parent document types the increment format should apply. If omitted, the format is applied to any parent doctype. Doctypes increment specifications without a doctype must be specified at the end of the list. |
parentProperty | The name of the parent property to use as the prefix for the ID. This value is only used if the new document has no siblings. |
function | The increment function to create the new ID. |
format | The format specifies the number of digits of the number block. |
increment | The increment for each new ID. The value must be an integer greater than zero. |
To test a configuration there is a REST service at projectdoc-internal/1/increment/test
that is available to logged in users.
Example of Usage
The specification is done in JSON format.
Example for the Topic Doctype
projectdoc.doctype.requirement.auto-id-pattern: { "specs": [ { "parentDoctypes": [], "parentProperty": "ID Prefix", "function": { "format": "5", "increment": 10 } } ] }
The example above applies to requirement documents that are added to any parent document (parentDoctypes
is empty, otherwise the parent doctype identifiers that select this specification would be listed).
The parentProperty
that defines the prefix is named "ID Prefix
". If this property is not found, the Prefix "ID
" would be used as default. So whenever a new requirement document is created, it will check if there are already siblings, and if not, use the given prefix and the following number format to create the auto-incremented identifier.
The function
defines the formatting rules. In format the digit defines the number of digits of a number block. In the example these are 5
. If the number has less than five digits, it will be filled with zeros. The increment shows the next number. In the example this is a ten-numbers step. If later a requirement needs to be added between to existing requirements, there is at least some space.
If the document that references all major requirements, has an "ID Prefix
" property with the value "REQ
", then the generated identifier for the first requirements document will be "REQ-00010
", the next will be "REQ-00020
", and so forth. The first subrequirement of the second requirement will have the ID "REQ-00020-00010
".
Note the the example above show the default. These can be specified with an empty JSON document like this:
projectdoc.doctype.requirement.auto-id-pattern: {}
Or in one line:
projectdoc.doctype.requirement.auto-id-pattern: {"specs":[{"parentDoctypes":[],"parentProperty":"ID Prefix","function":{"format":"5","increment":10}}]}
projectdoc.doctype.requirement.auto-id-pattern: { "specs": [ { "parentDoctypes": [docsection], "function": { "format": "4", "increment": 100 } }, { "parentDoctypes": [], "function": { "format": "10", "increment": 10 } } ] }
The above example shows that the requirement documents on the first level, which are attached to a document of type docsection, have another increment block format than requirements that are attached to a document of any other type. This includes the requirement doctype itself. In other words: sub requirements have a space of 10 digits, while the root requirements have only four.
It is not possible to control the format dependent on level. So all requirements from the second level to the last level share the same format.
Resources
- Default Group Name Pattern
- Specifies for the name pattern the default group to select.
- Doctype Document Name Pattern
- Specifies a doctype-specific pattern to match against the title property to derive the name property of a projectdoc document.
- Doctype Document Name Pattern
- Specifies a pattern to match against the title property to derive the name property of a projectdoc document.
- Doctype Document Name Pattern Group
- Specifies for the name pattern the doctype-specific group to select.
- Auto Increment
- A feature of the projectdoc Toolbox to prepend a unique identifier to the title of a page.
- Nameless Documents
- Feature to derive a document's name from its title.
- Doctypes Overview
- List of all doctypes provided by add-ons. Provides an overview over doctype IDs and blueprint keys.