Hi all,
IIQ version: 8.5
Use case: In a form I have a dynamic dropdown that returns a list of ManagedAttribute objects (filtered by two classifications, e.g., GDrive + selected location). I’d like the visible label of each option to come from a custom attribute (e.g., description or sysDescriptions.de_DE) instead of the default displayName.
What I tried
-
Field type is
ManagedAttribute. Allowed values returnList<ManagedAttribute>. -
I tried adding form attributes like
valueProperty/displayProperty, but fortype="ManagedAttribute"they seem to be ignored (the UI still shows the default ‘groups/memberOf/……….`).
Question
-
Is there a supported way to keep
type="ManagedAttribute"and override the displayed label in the dropdown (e.g., tell the renderer to usedescriptionor another attribute)? -
Does the form rendering support providing something like
SelectOption(id + label) while still binding the actual value to the fullManagedAttribute? -
Any hidden/less-documented field attribute, renderer hook, or recommended pattern for this?
Minimal snippet (simplified)
<Field
name="gDriveItem"
type="ManagedAttribute"
displayName="Drives Options"
dynamic="true" postBack="true"
dependencies="selectedLocation"
required="true">
<AllowedValuesDefinition>
<Script>
<Source>
import sailpoint.object.*;
import sailpoint.object.Filter;
import sailpoint.object.QueryOptions;
if (selectedLocation == null || selectedLocation.trim().isEmpty())
return java.util.Collections.EMPTY_LIST;
QueryOptions qo = new QueryOptions();
Filter f1 = Filter.collectionCondition("classifications",
Filter.eq("classification.name", "GDrive"));
Filter f2 = Filter.collectionCondition("classifications",
Filter.eq("classification.name", selectedLocation.trim()));
qo.addFilter(Filter.and(f1, f2));
return context.getObjects(ManagedAttribute.class, qo);
</Source>
</Script>
</AllowedValuesDefinition>
</Field>
Goal
Keep the field typed as ManagedAttribute for clean binding/validation, but display a custom label (preferably description with fallback to sysDescriptions, then displayName).