NexJ Logo

Form controls

The following tables provide an outline of all the form controls and associated properties available on Process Management.

Summary of supported controls

ControlValue typeDescriptionSupported propertiesRequired propertiesSupported child items
bp:flown/aThe flowbind, globals, sync, image, title, showProgress, $onSubmit, $onSync
page
bp:pagen/aIndividual steps within the flowname, bind, caption, number, collection, valueCaption, captions, valueType, visible, onServer
section
bp:sectionn/aCards underneath a stepname, bind, caption, text, number, collection, valueCaption, captions, valueType, visible, validate, onServer

label, text, textarea, integer, number, radio, combo, checkbox, checkgroup, date, datetime, currency, attachment, object, objects, value, image, integration

bp:labeln/aText labelvisible, image, caption

bp:textStringText fieldname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, maxLength, hint, onServer

bp:textareaStringMultiline text fieldname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, maxLength, hint, onServer

bp:integerIntegerInteger fieldname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, min, max, step, onServer

bp:numberDecimalDecimal fieldname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, min, max, step, onServer

bp:radioString, which is the Enum Value codeRadio buttonsname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, options, where, image, onServeroptions
bp:comboString, which is the Enum Value codeDropdown selectionname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, options, where, image, onServeroptions
bp:checkboxBooleanCheckboxname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, onServer

bp:checkgroup

String[]

Contains a collection of all questions that have been selected

Grouped checkboxesname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, min, max, onServer
checkbox
bp:dateTimestampDate fieldname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, format, onServer

bp:datetimeTimestampDate time fieldname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, format, onServer

bp:currencyCurrencyCurrency fieldname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, format, onServer

bp:attachmentMessageAttachment file pickername, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, onServer

bp:attachmentsMessage[]Multi attachment file pickername, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, onServer

bp:object

Message

Contains the instance OID and any queried attributes

Object picker (M1)name, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, valueType, valueCaption, order, filterPath, where, valueDescription, valueIcon, valueComment, valueInfo, customPicker, singleClickPicker, onServervalueType, valueCaption, filterPath
bp:objects

Message[]

Contains the instance OID and any queried attributes

Object picker (MM)name, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, valueType, valueCaption, order, filterPath, where, valueDescription, valueIcon, valueComment, valueInfo, customPicker, singleClickPicker, onServer

valueType, valueCaption, filterPath

If assoc is specified, assocType is also required


bp:valueanyHidden question for storing intermediate valuesname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, onServer

bp:imageMessageImagesname, bind, sync, caption, text, initialize, visible, enabled, required, value, validate, onServer

bp:integrationanyService call buttonname, caption, value, visible, enabled, required, validate, onServer, event, result (Optional)event
toolsn/aAdditional tools of a pagen/a
tool
bp:toolMessagetool buttoncaption, visible, function

Property descriptions

PropertyDescription
nameThe element reference name. Usually specified in the Domain Specific Language (DSL) as (bp:<element> <name> ...)
bind

The model attribute bind, which is defined as a string.

Defaults to the element reference name. Fields with a bind can then configure the sync behavior. Also, if the underlying model was updated after the form was launched, bound fields will have data conflicts appearing.

syncFlag that determines if this field would sync back to the model. Applicable only if the flow itself has a bind. By default, sync is set to "true" when the attribute is not readonly.
globals

Defines global properties on the flow.

titleDefines the title text on the browser tab.
showProgressBoolean value to show the left sidebar on desktop. Set to "true" by default for multi-section forms and always hidden on mobile. Defaults to "false" for single page forms.
$onSubmitEvent handler code that is triggered after the form is submitted.
$onSyncEvent handler code that is triggered after the form is submitted and approved.
enabled$submitted

Boolean value to enable questions after submissions. Used by approvers to complete questions. Set to "false" by default.

numberDefines numbering for pages or sections. Specified as a string.
collection

Flag that determines if a page or section can be configured as a repeater. This flag is also inferred on bound elements if the underlying attribute is configured as an instance-collection.

By default, collection is set to "false". On bound fields, this will be "true" if the attribute is a collection.

onServer

This property can be configured to allow dynamic properties on the field to use server-side processing. In general, dynamic properties with metaclass or database dependencies need to be configured onServer.

(bp:text q1
    (: caption "Calculate value and enablement on the server")
    (: value
        ((read-instance Person '(firstName lastName) '(and (= (@ firstName) "Tim") (= (@ lastName) "Lamont")) #f)'lastName)
    )
    (: enabled
        (and
            (not (null? (@ question q0)))
            (= "Lamont" ((read-instance Person '(firstName lastName) '(and (= (@ firstName) "Tim") (= (@ lastName) "Lamont")) #f)'lastName))
        )
    )
    (: onServer '(value enabled))
)
bp.text(q1,
  {
    caption: "Calculate value and enablement on the server",
    value: jsToScheme("((read-instance Person '(firstName lastName) '(and (= (@ firstName) \"Tim\") (= (@ lastName) \"Lamont\")) #f)'lastName)"),
    enabled: function () {
      ( $.question.q0 !== null ) && jsToScheme("(= \"Lamont\" ((read-instance Person '(firstName lastName) '(and (= (@ firstName) \"Tim\") (= (@ lastName) \"Lamont\")) #f)'lastName))")
    },
    onServer: jsToScheme("'(value enabled)")
  }
)
hintThe hint text for the field.
initializeThe initial field value.
minThe minimum value for numerical questions. On checkgroups, this is the minimum number of items that have to be checked.
maxThe maximum value for numerical questions. On checkgroups, this is the maximum number of items that can be checked.
step

The step value (applicable on numerical questions). When this, along with min and max are configured, numerical type questions will use a slider control.

(bp:integer integerQtn
    (: min 1)
    (: max 10)
    (: step 1)
)
bp.integer(integerQtn,
  {
    min: 1,
    max: 10,
    step: 1
  }
)
valueTypeThe Metaclass type that the picker will query for. This is inferred for pickers that have binds specified.
valueCaption

The attribute name that drives the chip caption for each object. By default, it uses the class name attribute. On repeaters, this is a string that describes the repeater object. By default, it is the class caption attribute.

valueDescriptionThe attribute name that drives the picker items description.
valueCommentThe attribute name that drives the picker items comment.
valueInfoThe attribute name that drives the picker items name.
valueIconThe attribute name that drives the picker chip icons.
orderThe order by clause for object picker fields. Uses valueCaption by default.
filterPathThe attribute to be used for typeahead search on pickers. Uses valueCaption by default.
singleClickPickerBoolean value allowing users to click once on a target object or objects input to open the picker. When enabled, the type-ahead option will be disabled.
customPicker

The name of the custom picker. Usually defined in ui.bp.pick.js.

Use cases for this are: adding additional filtering, changing the layout of results, adding custom logic.

/** Custom picker for entities filtered by FA and split code */
"entityFAPicker": function(q, a, p, v) {
    var faId = ui(bp.FilterValue, {validator: ["required"],
		handler: updateFAWhere}), 
		...
	//The js implementation must return a picker dialog
	view.dialog(function(selection, handler) {
   		return ui("MultipickerDialog", {
      	...
      	children: [ui("Picker", {caption: "Select status", ...}]
   		}
	});
}
format

The formatting code for dates and currency type questions.

(bp:date dateQtn
	(: format "mediumDate")
)
bp.date(dateQtn,
  {
    format: "mediumDate"
  }
)
eventEvent handler code that is triggered when the integration button is clicked on. This is usually configured to trigger a third party service call.
resultThe handler for displaying results obtained from integration service call. By default, the result is configured to be successful while displaying the data received from the service call.
assoc

The attribute that points to the collection from the intersection class.

(bp:objects entityParticipants
	(: caption "For Field")
	(: assoc "entity")
)
bp.objects(entityParticipants,
  {
    caption: "For Field",
	assoc: "entity"
  }
)
assocTypeThe type of the attribute defined in the assoc property.

image

The associated image for a given field.

(bp:radio i1
	(: caption "Radio Image with caption")
	(: options (collection "Image Option 1" "Image Option 2"))
	(: image "image:opportunity.jpg")
)
bp.radio(i1,
  {
    caption: "Radio Image with caption",
	options: ["Image Options 1", "Image Option 2"],
	image: "image:opportunity.jpg"
  }
)

Dynamic properties

The following properties will automatically recalculate whenever their dependencies change.

PropertyDescription
valueThe field value.
required

The field requiredness. Default is false.
On bound questions, this defaults to true if the attribute is required.

validate

The field validation. Errors appear as red text upon completion. The validation result format is usually the following:
(<validation result as a boolean> . <String error message>)
Validation is successful if #t is returned. If the return value is #f or is a string, it will fail.

enabled

Controls fields being grayed out on the form. Defaults to "true".
On bound fields, this defaults to "true" if the attribute is not readonly. Otherwise it defaults to "false".

caption

The caption of the field. On bound questions, this defaults to the attribute caption.

captionsThe summary caption for a repeating page/section element.
options

The enumeration options on the field. Can be defined in the following ways:

  • Enumeration class. For example, (: options Country)
  • A class with bp:OBJECT_AS_ENUM aspect applied to it. For example, (: options AddressType)
  • Manually defined strings. For example, (: options (collection "Option1" "Option2" "Option3"))
textThe subtitle description on the field.
where

The where clause used by pickers to filter out entries. For example,  `(= (@ name) (@ question firstName))

visible

Controls fields being hidden on the form. Defaults to "true".