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
          }
      }
  ]
}
NameDescription
specsList 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.

functionThe increment function to create the new ID.
formatThe 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.