The basic elements in a Form definition are:
<Form>
<Attributes> (entry i.e., map of name/value pairs that influence the form renderer)
<Button> (determine form processing actions)
<Section> (subdivision of form; may contain Attributes map and nested Fields)
<Field> (may contain Attributes map, Script to set value, Allowed Values Definition script, and Validation Script)
Forms embedded inside a workflow step do not need any attributes on the Form element itself, though they can have a name attribute.
Top-level Form objects do, however, have a couple of important attributes specified within the Form element.
<Form name="My Custom Form" type="Workflow">
type:
Determines where the form can be referenced in other UI pages;
Automatically set for top-level forms created through the centralized form repository UI (Gear menu -> Global Settings -> Forms)
Workflow forms: type="Workflow"
Application provisioning policy forms: type="Application"
Role provisioning policy forms: type="Role"
Forms that have a type other than these 3 values will not be listed in the centralized form repository.
Forms with no type will be listed there, but to edit them there, you will have to designate them as one of these 3 types.
Attributes:
pageTitle : Title to render at top of the page (typically larger and a different color than the form title); also displayed in browser window header bar in some cases.
title : Form Title (shown at top of form body).
subTitle : Form subtitle (shown below title).
readOnly : makes form read-only so the fields are rendered as uneditable text or as disabled HTML components.
izWizard : turns the form into a multi-page “wizard”-type form with each Section rendered as a separate page.
Buttons:
Buttons allow the user to indicate what action to take next and how to process the data on the form. They always appear at the bottom of the form.
Buttons really only apply to Workflow forms.
label : Text to display on the button; can be a hard-coded string value or a message catalog key for localization
action:
next: save any entered form data and set the work item status to “approved”, running any field validation scripts/rules specified; the work item status can then be used in the Transition logic to advance the workflow to the next step; this action is used to drive OK/Save/Approve/Submit functionality
back: save entered form data and set the work item status to “rejected”, running any field validation scripts/rules specified; the work item status can then be used in the Transition logic to return to a previous step (or any other appropriate action for a rejection); saved values are redisplayed on the form if the workflow logic progresses back through this step again
cancel: close the form, suspend the workflow, and return to the previous page in UI (i.e. Dashboard, Manage Work Items page, etc.); this leaves the work item active, awaiting a different action chosen by the user; does not save any data entered in the form
refresh: save the entered form data and regenerate the form; this is not a state transition – just a redisplay of the form; it is not commonly used, but it can be used when a script needs to be re-run following entry of several data fields together, rather than reprocessing scripts after each field completion
Ex:
<Form>
<Atttributes>
</Attributes>
<Button label='Submit' action='next'/>
<Button label="Suspend" action="cancel"/>
<Button label="Reject" action="back"/>
</Form>
name: Name for the field that can be referenced in code as the variable name in which the field’s value is stored.
displayName: Label for the field; maybe text or a message key
helpKey :Tooltip may be text or a localizable message key
type : Field datatype; influences the display widget used to display the field on a form Valid values are: string, int, long, boolean, date, and SailPoint object types (Identity, Bundle, Permission, Rule, Application, etc.); default is a string.
multi : Boolean indicating whether the field is multi-selectable; only appropriate to drop-down lists, which are then displayed as combo boxes; (used with SailPoint object field types or with a nested AllowedValues / AllowedValuesDefinition element that populates a selection list for the field).
readOnly : Boolean indicating that the field cannot be edited on the form; value is displayed as text, rather than in an editable box.
required : Boolean indicating whether a value is mandatory for the field; required="true" marks field with * on the form to indicate required and prevents form submission without a value for the field
columnSpan : Used when the section is configured with multiple columns; specifies the number of columns the field should span.
filterString : Used for fields where “type” is a SailPointObject class to specify a filter to restrict
the set of selectable objects presented in the drop-down list; filterString is specified according to the filter string syntax
postBack : Boolean that, when true, causes the form to refresh when the field’s data value changes, running any rules or scripts that run on form reload.
displayType : Forces string fields to display as specified; used only for string fields Valid displayTypes are: radio, combobox, textarea.
dynamic : If dynamic = true is configured then those fields values are recalculated during
form postback
reviewRequired : ows a default value to be assigned for the field while still including the field on
the form displayed to a user so the default can be overridden if desired; without reviewRequired="true"specified, template fields with a default value (or value script/rule that returns a value) are omitted from the user-facing form.
and the default value is automatically used
displayOnly : Boolean that indicates that the field should be included on the form but should not be passed to the provisioning plan. This is useful for fields that determine values to display in other fields’ allowed values lists or for fields used as components to build other field's values.
Applies to application and role provisioning policies only
authoritative ; Boolean that specifies whether the field value should completely replace the current value rather than be merged with it; applicable only for multi-valued attributes
value : Sets the default/initial value for the field