The product provides advanced tools for automatically generating custom item ID’s for list items and documents in SharePoint.
These capabilities include:
- ID’s can be generated based on constant values, column values and function values.
- Applying ID’s on item creation, editing or both.
- ID’s can be applied only when certain conditions are met.
To enter the management page, go to Design and click on Item IDs.
You are presented with the selection of text column from list. Select a column you want to store the generated ID in.
You can specify whether to create the ID just once, on item creation, on each update or both. You must select at least one form.
You can also make the system prevent manual editing by hiding the column from the New and Edit forms.
NOTE: Prevent manual editing feature does not turn the column into a read-only column; it can still be edited in Datasheet view or in Document Information Panel. If needed, it can be made hidden under the content type settings
The ID pattern can contain:
- Regular characters – any character, letter or number can be used, except for those reserved for functions. The characters will be used in the ID verbatim.
- Column values – inserts current value of any column from the current item. You can use the column picker or just enter any column name surrounded by square brackets, such as “[Title]” (without the quotation marks).
- Functions – special functions, performing operations on data or inserting data not present in the current item. The first type of functions look like $function(), while the second type look like column value except for the fact that the function name is a reserved word.
- Year ($Year()) – returns the year part of a Date/Time column value, such as $Year([Created])
- Month ($Month()) – returns the month part of a Date/Time column value, such as $Month([Created])
- Day ($Day()) – returns the day part of a Date/Time column value, such as $Day([Created])
- Hour ($Hour()) – returns the hour part of a Date/Time column value, such as $Hour([Created])
- Minute ($Minute()) – returns the minute part of a Date/Time column value, such as $Minute([Created])
- Today ([Today]) – returns today’s date
- Current User ([Me]) – returns current user’s full name
- Numerator ([#]) – inserts next available number for the pattern value. The numerator is not a unique value, but depends on other components of the ID as well, so that two ID’s with different column value can have the same numerator value. You should consider always adding the numerator function when you are not sure the ID pattern will provide a unique value.
You can optionally provide a seed value for the numerator, so that the numbering will start from that value, instead of starting from 1. Use the following syntax: [#|n] – where n is the seed value, e.g. [#|100] to start from 100.
When using a seed value, you can also provide another parameter to specify the number of digits: [#|n|m] - where n is the seed like above and m is the number of the digits. In case that that the enumerator returns a number with less digits the final result will be padded with leading zeros.
For example: [#|10|3] will generate the ids: 010, 011, 012, etc..
- Lookup ($Lookup(|)) – returns the value of another column from a lookup list, based on the value selected in the lookup column in the current item. Example usage could be a lookup column showing a list of departments. The department is selected by its full name, but the ID should show a short 3-letter code name of the department, which is stored in another column of the Departments list. Using the lookup function, you can turn for example the Marketing department value into a short MKT value, which is stored in the Short Name column:
$Lookup([Department]|[Short Name]), where Department is the lookup column in the current list and Short name is a text column in the Departments list.
- List Title ([ListName]) - returns the name of the current list.
- Site Title ([WebName]) – returns the name of the current website.
- Additional functions are documented under Value Picker in Shared Components section on the left.
The following pattern can produce this value:
- ANN – constant value, identifying the item as an announcement.
- $Lookup([Product]|[Source]) – returns the supplier’s name from the Source column of the Products list, being looked up in the Product column
- [Me] – name of the user creating the item
- [#] – numerator value, indicating that this is the first item where the ID is made up of the same values.
NOTE: When list items limit is reached, while items still can be added, ID rules that use numerator will not be able to generate new Ids.
You can apply patterns in all cases or only when a set of conditions apply. When adding more than one condition, all the conditions must return True for the pattern to be applied.
NOTE: You can specify more than one pattern for a column. When setting the ID, the system will use the pattern fulfilling the most conditions. If there is a tie, the first pattern found is used.
The conditions can compare a column value to one of the following:
- Scalar value you typed in (or left blank)
- Column value (just enter the column name surrounded by square brackets)
- Functions – various functions are supported
Use Value Picker to build suitable expressions.
The system updates items using code running as a custom event receiver on the list. Event receivers are pieces of software responding to event in a list item, such as item being created or updated.
When you create a list ID rule, the system will ensure that the event receiver is attached to the list. When you remove all the rules from the list, the event receiver will be detached from the list. Also, if you requested manual editing prevention for a column, the editing will be restored as well.
NOTE: You should always remove all the rules from your lists before uninstalling the product, otherwise SharePoint will attempt to find and run the event receiver each time, reducing performance.
2/26/2020 5:23 PM