# Identifiers
... fix this!
# Attribute Identifiers
In the examples I pass CatID
and AttrID
as parameters to the SetValue()
and GetValue()
functions. These are just the category DataID
and attribute ID.
The difficulty with using IDs is that they are inherently different among Content Server installations. Hardcoding these values will certainly cause problems once the module is installed on a different system.
One workaround is to retrieve the category and attribute IDs from the category and attribute name. However, this can lead to ambiguous cases when the category name is repeated within a system (I've seen this happen) or the attribute name is repeated within a category. It's also unreliable since any user with the appropriate permissions could rename a category or attribute.
To deal with this problem RHCore introduces the concept of identifiers and attribute identifiers. An identifier permits a unique string to be mapped to a DataID. It's similar to a nickname, but can only be viewed or modified by a user with Administrator rights.
An attribute identifier extends the identifier concept to attribute IDs by allowing each attribute in a category to be mapped to a unique string. With the category identifier it becomes possible to reference a specific category and attribute without having to hardcode any IDs. The only prerequisite is for the Administrator to setup the identifier mappings on each target system (which only needs to be done once).