Adding the ICM$NAME attribute to a hierarchical item type
The ICM$NAME attribute is the standard name attribute for an item type. It is a required attribute for hierarchical item types. If you do not add the ICM$NAME attribute to an item type when you enable its hierarchical option, it is automatically added when the hierarchical item type is created.
You can add the ICM$NAME attribute to the root component of any new or existing item type, except the part type class. The ICM$NAME attribute can be applied to documents, folders, or any data that is returned while performing a browse or a search. As the standard name attribute, the ICM$NAME attribute is useful for sorting and querying operations on item types, such as sorting results by name and resolving name-based paths.
- It is a predefined user attribute.
- It cannot be updated or deleted.
- Its value does not have trailing blanks
- Its data type is VARCHAR with length 256.
- It cannot be added to any user-defined attribute groups.
- When it is created, its attribute ID conforms to the user attribute ID generation rule (1 is added to the maximum). Therefore, its attribute ID is greater than or equal to 1000 and is different on different Content Manager Enterprise Edition systems.
- Not nullable
- Not unique. This property cannot be changed.
- Not text-searchable
- Not represented
- No default value
When you provide a value for ICM$NAME, there is no restriction on the characters you can use. However, all the trailing blanks in the value are removed by the library server. Therefore, if you have provided an ICM$NAME value with trailing blanks, those trailing blanks are not visible in any search results. If you provide an ICM$NAME value with a string consisting entirely of blanks, its value is converted to an empty string and error ICM7016 is returned from the library server.
The following restrictions apply for an ICM$NAME attribute of a hierarchical item type. You cannot:
- Update the uniqueness property of the ICM$NAME attribute after it has been added to an item type. If you attempt to do so, the library server returns error ICM7123.
- Add the ICM$NAME attribute to a child component. If you attempt to do so, error DGL7351A (DK_ICM_MSG_HIERARCHICAL_CHILD_COMPONENT_USE_ICMNAME_INVALID) is returned.
- Add the ICM$NAME attribute to a user-defined attribute group. If you attempt to do so, error DGL7353A (DK_ICM_MSG_HIERARCHICAL_ATTR_GROUP_USE_ICMNAME_INVALID) is returned.
- Set the ICM$NAME attribute to be nullable while creating or updating a hierarchical item type. If you attempt to do so, error DGL7349A (DK_ICM_MSG_HIERARCHICAL_INVALID_ICMNAME_NULLABLE) is returned.
- Set the default value of the ICM$NAME attribute while creating or updating a hierarchical item type. If you attempt to do so, error DGL7350A (DK_ICM_MSG_HIERARCHICAL_INVALID_ICMNAME_DEFAULT_VALUE) is returned.
To get the ICM$NAME attribute value of an item type, call the getName() method of its DKDatastoreICM object. For more information, see the Application Programming Reference.
Removed the following restriction: Add the ICM$NAME attribute to a non-hierarchical item type. If you attempt to do so, error DGL7352A DK_ICM_MSG_HIERARCHICAL_ICMNAME_USED_FOR_NON_HIER_ITEMTYPE is returned.