When an Item is classified the description of the item can be generated. The same item can have multiple secondary languages. The question arises, whether the description in the secondary languages is also generated and what is its format?
I have split the article into two, the first focuses on the description generation, the second part focuses on how the description in the secondary languages is created.
We’ll start with a new item and classify it using the classification PUMP \ CNTRFGL. The specification is created from the attributes associated with the classification but there is no description for the item.
If we navigate to the Classifications application, the reason there is no description is because the “Generate Description?” field shown on the left is not enabled for the classification. It has to be enabled to allow the description to be generated. Note the description generation will occur for all objects that use this classification. In this case, if it were enabled then whenever PUMP \ CNTRFGL was used on a classification on Item Master, Locations, Assets or Work Order Tracking applications then the description for item, location, asset and work order will be generated.
Notice, the “Use Classification?” is enabled, I’ll now explain the purpose of this field.
If we navigate to the parent classification PUMP, it also has its “Use Classification?” field enabled. When this field is enabled the description of the classification, “Pump”, will be used in the generation of the item’s description. Note, it is not the description of the Classification Path that is used, but the field above it.
I’ve returned to the PUMP \ CNTRFGL classification record and enabled the “Generate Description?” field.
Now, back in the Item Master application, when you save the item record after classifying it, the description is generated from the descriptions of each classification in the classification path, “Pump”+”,”+”Centrifugal”, or “Pump,Centrifugal”.
The “Use Classification” checkbox identifies whether the classification’s description should be used in the description generation, in this case the classification descriptions are:
- PUMP Pump
- CNTRFGL Centrifugal
Hence, as both classifications in the classification hierarchy for a Centrifugal Pump had their “Use Classification” marked, both classification descriptions were concatenated together, with a delimiter between each value.
Unfortunately, there isn’t a setting in the description generation for using the “Class Description”, in this case “Centrifugal Pump” which looks and reads more easily than “Pump,Centrifugal” in my opinion. The advantage of the way it is defined is that a sort on the description field will group all pumps together.
The “Generate Description” checkbox will generate a description for a record that is classified with this classification. Now, if a new record was classified as PUMP or PUMP \ CNTRFGL it would have its description generated. The generation of the description will also occur if the record was reclassified, or, as we shall see, if an attribute is also marked to be used in the description generation.
The delimiter between the two classifications is defined in the A structural element of a Maximo database which is used for data sharing and is often aligned to a legal entity of an organisation. More application by the System Settings action under the Classification Catalog section, it is the field called “Delimiter in Asset Descriptions”, it didn’t seem to work on Maximo 22.214.171.124 when I quickly changed it to a hyphen.
I have added two Numeric Values to the Capacity and TTLHD attributes and then saved the record. The description of the item has now been generated to include those two values, “Pump,Centrifugal, 100.0, 60.0 FtHd”.
Notice the value for the CAPACITY attribute has occurred before the TTLHD attribute, the unit of measure has been included for the TTLHD attribute, and the decimal places are included in the description generation for numeric attributes. The attribute values in the description have been separated by the ‘,’ delimiter.
I’ve navigated back to the Classifications application and scrolled down to the Attributes table window. On the right-hand side there is a button just before the delete row button called “Use with Object Detail”.
The same classification can be used with multiple Maximo objects. For rotating items that create rotating assets, it would normally be the case that a classification for the ITEM object is also used with the ASSET object. By default, when you add a new attribute to a classification the attribute will be added to the same set of objects as for the classification.
To understand how the description generation works on the Item Master application we have looked at the record where the Use With Object is set to ITEM. For the CAPACITY attribute the sequence number is 3, this is the order in which the attribute is displayed in the item’s specification, but the same sequence is used to determine the order of the attributes in the description generation function.
The “Use In Description Generation” checkbox determines whether the attribute is used in the description generation for records in the object. In this case CAPACITY is included in the description generation for an item. Up in the top right corner you can see that the CAPACITY field has no “Unit of Measure”.
For the TTLHD attribute, its sequence is 4, coming after the CAPACITY attribute, it is also used in the generation of the description for an item, and there is a unit of measure “FT HD”.
Note. The “Use In Specifications” checkbox is used to indicate that the attribute will be copied to the specification for the object. If it is unchecked, the attribute will not exist in the item’s specification, in which case there will be no value to use in the generated description. Therefore, when “Use In Description Generation?” is enabled, “Use In Specification?” must also be enabled. Maximo does not set this automatically.
In the “Add/Modify Unit of Measure” dialog found from the “Add/Modify Properties” menu, it is the abbreviation of the unit of measure “FtHd” which is used as a suffix to the attribute value in the description generation and not the unit of measure value “FT HD”, or its description.
Back in the Attributes table window for the classification, what we call the class spec because the underlying object/table is called CLASSSPEC, I have added a Description Prefix of “Cap.” to the CAPACITY attribute and also a unit of measure of “CFM” (cubic feet per minute).
Back in the Item Master application on item AJE11, I have removed and reclassified the item, re-entered the values for capacity and total head and saved the record. The description has been generated to “Pump,Centrifugal, Cap. 100.0 CFM, 60.0 FtHd”. It happens that the abbreviation for the CFM unit of measure is also CFM.
You can add a prefix to an attribute value in the generated description and the suffix is the abbreviation of the unit of measure of the attribute, “Cap.” and “CFM” have been added either side of the attribute value “100.0”.
Alphanumeric attributes in a classification can have a supporting ALN domain. Numeric attributes can have numeric domains or numeric range domains. Using a domain for as many attributes as possible is a good idea as it creates consistency, the user can only choose a value from the domain.
I have created a new ALN domain called SORM – Single or Multiple with values of MULTI or SINGLE. These domains are only intended to be used in classifications and not against attributes that may appear elsewhere in Maximo and where you need to use the Database Configuration application to make the association. I have deliberately used upper case for the Value attribute, in order to demonstrate something, you will see in a minute, I advocate not using upper case, you will see why.
In the Classifications application for PUMP \ CNTRFGL I have added the SORM domain to the STAGE attribute.
Back on the Item Master application for item AJE11, I have removed and reclassified the item, re-entered the values for capacity and total head and selected MULTI from the lookup on the STAGE attribute, then saved the record. The description has been generated to “Pump,Centrifugal, MULTI, Cap. 100.0 CFM, 60.0 FtHd”. It is the Value part of a domain which is used in the description generation and not the domain’s description which is used. It is the attribute values in the specification which are used in the description. “MULTI” in capital letters does not look as good as “Multi” or even “Multiple” in a description.
An objects description can then be generated from the way you classify the record and enter values in the Specifications tab. The two main reasons why I think this is important for the description to be generated, especially for items are:
- It becomes easier to spot duplicate items when the descriptions have been generated.
- Consistency in the way items are described will generally make it easier for users to find the items they want. Most of the time they will be searching by a description, although Maximo also provides a Classification Search and an Attribute Search, both of which also show the Item and its Description after the filters have been applied. If you have to scan multiple rows, it will be quicker to find the right record when those descriptions have been generated and sorted by the description.
Generating a Description for a Secondary Language
Maximo supports multiple languages. A user whose language is French can see menu, field and report labels and field help in their own language. Spanish users will see the same elements in their own language. Maximo has a base language, and a set of secondary languages. On the system I am using, English is the base language, but I have installed French, Spanish and Dutch.
Maximo also supports multiple languages on alphanumeric data fields. The obvious example of this is to output a description in the language of the user and in a default Maximo setup the ITEM object/table has a supporting language table, L_ITEM, with both the item’s description and its long description being capable of supporting a description in multiple languages for the same item.
There is an article on Maximo Languages and Language Tables which you can find here – http://maximosecrets.com/2019/06/06/maximo-languages-and-language-tables/
This part of the article will focus on what happens if you have multiple languages when you generate a description from the way you classify and define the attribute values in the records specification. We will start by continuing to use the AJE11 item in the Item Master application. It already has a language table, but what does it store for the newly generated item description in the language table for one of the secondary languages, French or Spanish?
In the User Profile – Default Information I have changed the Language (or should I say “Langue”) to FR (French). You will need to log out and log back in again to see the differences.
The Item Master application now has menu actions and field labels in French. The attribute descriptions are in French, but not the attributes, SIZE, STAGE, etc. The attributes are part of the key and cannot be changed. The generated description is just the same as before, as it were in English. What you see for the description field is actually coming from the language table L_ITEM. Maximo has copied the item description from the base/primary language to the language table for each language, this makes it easier to translate.
If I remove the Classification and the description, the description reappears. This is because it is being populated from the base language (English) version of the description of the item. To remove it completely, you need to remove it when logged in with EN as your language.
If I classify the item when logged in with FR as my language the item’s description will be generated, however, it is loaded into the language table for the item, the value of the description field in the primary language (EN) will remain blank. The copying of the description only goes from the base/primary language to the secondary languages and not the other way around.
The reason why the attributes have a translated value for the attribute description is because in the Database Configuration application and the ASSETATTRIBUTE object there is a Language Table L_ASSETATTRIBUTE.
The DESCRIPTION attribute has “Multilanguage in Use?” set. This enables the attribute descriptions to be stored in another language.
By default, the CLASSIFICATION object has no language table, but this is easily remedied in the Database Configuration application. I have also enabled the DESCRIPTION field for the CLASSIFICATION object by setting its “Multilanguage in Use?” to enabled.
Similarly, I have added a language table to the CLASSSTRUCTURE object and enabled its DESCRIPTION field.
There is a lookup on the Item’s Class Description field, this shows the classification and description taken from the Class Structure (CLASSSTRUCTURE) table.
With the user set with a language of FR, in the Classifications application and the Classifications action in Add/Modify Properties menu, I have changed the English descriptions as follows:
- Pump to Pompe
- Centrifugal to Centrifuge
- Rotary to Rotative
- Reciprocating to Réciproque
I have also found the Classifications and changed the Class Descriptions for Pump and its three child classifications as follows:
- PUMP to Pompe
- Centrifugal Pump to Pompe centrifuge
- Rotary Pump to Pompe rotative
- Reciprocating Pump to Pompe à piston
As I am logged in with a language code of FR these new descriptions will be added to the language tables, L_CLASSIFICATION and L_CLASSSTRUCTURE for each set respectively.
Now, when you are logged in with FR as your language and you are classifying a new item, you will be presented with descriptions in the French language.
If we add the specification attributes for this new item AJE12 as we did for AJE11 the description generation has used the language of the logged in user as they classified the record, resulting in a description of “Pompe,Centrifuge, MULTI, Cap. 100.0 CFM, 60.0 FtHd”. The logged in user is working in the language of FR.
If I log back in with EN as the language of the user, and find the same item, AJE12, you will find there is no generation of the item description. Unfortunately, the description generation function only occurs in the language in which you are logged in. There is also no copy from a secondary language back to the base/primary language.
Logged in with EN language for the user, if I update the item by adding “Left” to the ALTYPE attribute and save the record, this value is now included in the description generation.
Logged back in with FR language for the user, you can see the value of “Left” for the ALTYPE attribute, but the description has not changed. As we said, a minute ago the description generation function only occurs in the language in which you are logged in.
For my other languages ES (Spanish) and NL – Netherlands (Dutch), I have never added a description for AJE12 in these languages, so as you continue to change the item’s specification and the description is generated in the base language, Maximo will continue to copy this description into the language table for the item object, L_ITEM.
It is better to add new items and to classify them in the primary language of your Maximo system. But to get the item description in the language of the user you have two choices:
- Export the language descriptions for your items and have them translated before importing them.
- Create a custom function to generate the item descriptions in the secondary languages using the translation tables of Maximo. In that way, you could automatically correct “MULTI” for “Plusieurs” or “Left” for “Gauche”. In Maximo, the ALNDOMAIN object already has a language table L_ALNDOMAIN.
Incidentally, the Description Prefix is in the CLASSSPEC object/table, it is the attribute ATTRDESCPREFIX. The CLASSSPEC table can support a language table, but you will find that the ATTRDESCPREFIX is not marked as “Multilanguage Supported” and this field in Database Configuration is read-only. It is an ALN field and so it should be capable of supporting multiple languages. I have not tried it specifically on this attribute, but I have set other ALN fields to be “Multilanguage Supported” in the past, and so I see no reason why this field could not also support secondary language values.
I have made item AJE12 a rotating item and changed status to ACTIVE. Logged in with the language of FR for the user, when I create a new asset and reference AJE12 in the Rotating Item field (Article tournant) then the asset inherits its classification and attributes from the rotating item. The asset description has come from the Item’s description, but from the language table with FR as the language. I can tell this has happened because there is no alignment type of “Left” at the end of the description.
The Classification Description (Description de classe) has used the classification that we stored for the FR language in the language table L_CLASSSPEC, “Pompe centrifuge”.
The description generation for the asset can be generated when you classify or change the attribute values on the asset. Here we have added the numeric value of 3,600.0 to the SPEED attribute, and when the asset description is generated the alignment type (Left) now appears in the description.
Just a word of caution, do not be tempted to correct an item’s description in a secondary language by setting a value for an attribute and then removing that value, especially do not do this for a rotating item, the reason is there is a function in Maximo which will go and change the attribute value for all assets and A physical place where assets exist and where work can be performed. More that reference this rotating item.
To illustrate this point, I changed on Item Master application for item AJE12, the alignment type to “Right”. When I fetched asset 2219 from the Assets application the ALTYPE attribute now shows “Right” and the asset’s description has been regenerated to “Pump,Centrifugal, MULTI, Cap. 100.0 CFM, 60.0 FtHd, 3,600.0 RPM, Right”. So, changing a value on the item specification to a value and back again could be creating a lot of work for Maximo depending on how many assets and locations reference this item.
To summarise the Description Generation function:
- Requires the “Generate Description” checkbox to be set for the classification
- Uses the classification’s description in each level of the classification hierarchy where the “Use Classification” checkbox is set.
- Adds attribute values after the classification part of the description has been compiled
- Adds attribute values where the “Use in Description Generation” has been set for the attribute on the object where the description will be generated.
- Can add a prefix to the attribute value. The suffix is the abbreviation of the unit of measure.
- For ALN attributes with an ALN domain it is the domain value which is used in the generated description and not the description of the domain value.
To summarise the Language Description Generation function:
- The description generation function is only triggered for the language of the logged in user.
- It is better to classify items and update the specification values when logged in with the primary language of the system, and not a secondary language.
- If you want to generate the item description for secondary languages, I would create a custom function that would operate from the List tab of the Item Master application.
- The CLASSIFICATION and CLASSSTRUCTURE objects should have a language table if you wish to share the same items across multiple languages. The DESCRIPTION attribute in each object needs to be set for “Multilanguage in Use?”
- If you write a custom function, then you could use the language description for ALN domains that support an ALN attribute in the classification’s specification.
- When logged in with a secondary language, then creating a rotating asset will use the classifications from the secondary language and generate the asset description accordingly.
- Updating the specification of a rotating item using the primary language, will update the rotating assets specification values and regenerate the description on the assets using the language in which the assets were created.
Bear in mind that the default length of the Description attribute on an ITEM and ASSET object is ALN 100, longer descriptions will be truncated after 100 characters. If you are going to use the description prefix, the chances are you will need to extend the length of the field which you should do from the ITEM object, the ASSET object will be kept in line with the new length.
Be reluctant to increase the width of fields generally, Maximo gives you the ability to do this, but there are often knock-on effects.