This chapter describes in detail the XML structure of the configuration file format.

This is the root element for the submission form configuration file.

Submission form title to show in list of all submissions. Type definitions. Content security policy header definition. Script definitions. Style definitions. Resource definitions. Property definitions. Variable definitions. Submission form layout. Geo-positioning definition. Deprecated: Was used with NemID login applet Displayed contact details. Sender contact properties. General web page configuration. F2 case and dossier configuration. Login configuration. Payment provider setup. Product configuration. Reply process declaration. Validation configuration. Language configuration.

This element contains the list of different type declarations.

Enumeration declaration (repeatable). Set declaration (repeatable). Record declaration (repeatable). List declaration (repeatable).

This element represents a single record type declaration.

List of properties in the record. List of validators for the record. List of variables in the record. Record type name.

This element represents a single list type declaration.

List type name. Name of record type to base list on.

This element represents a list of content security policies to include in the "Content-Security-Policy" HTTP header.

A single content security policy.

This element represents a single content security policy.

One or more values for the directive.

CSP directive such as "default-src" or "media-src".

This element represents a list of external scripts to be included in the submission form.

A script. Can refere to the following items:

  • An external script URL.
  • A file from the Themes folder. This file should be placed in 'Scripts/GlobalLib'.

This element represents a list of external styles to be included in the submission form.

A style. Can refere to the following items:

  • An external style URL.
  • A file from the Themes folder. This file should be placed in 'Styles/GlobalLib'.

This element represents a list of resources to be referenced in the submission form.

A file resource.

This element represents a file to read and make available as a named resource.

File format configuration. Name of resource.

Resource data type.

File location (file name). The file must be located in the "resources" folder.

This element represents file format specific configurations.

CSV file format configuration.

This element specifies configuration properties for reading CSV files.

CSV field delimiter character (default delimiter is a semicolon).
Displays a dropdown selection list instead of radio buttons (for enumeration types).

This type of element represents a list of properties to store user input in - either globally or by record.

Single property declaration.

This element represents a single property declaration.

Short description of the property. Can include html A longer text describing the property. The text is shown in a popup and not visible from start. Expression for calculating whether it should be required to fill in the property. For lists only "true"/"false" is supported. Minimum and maximum string length. Minimum and maximum values for numbers and dates. Regular expression for validation of strings. File extension validation for document properties. Configuration of multiple file upload for document properties. Configuration of maximum file size for document properties. Visibility expression. Item visibility expression for enumeration groups. Property name.

Type of property.

bool
Boolean true/false value.
int
Integer value.
double
Floating point value. The display-format of decimal numbers is specified by the Globalization culture attribute in web.config, or the current language.
decimal
Fixed point value. The display-format of decimal numbers is specified by the Globalization culture attribute in web.config, or the current language.
date
Date Value.
string
Short string input (max 1024 characters).
text
Long string input (max 10000 characters). Text properties are not saved as task guide fields but are instead included in the dossier document of the received dossier.
email
E-mail value.
phonenumber
Phone number value.
document
Document upload.
set
Multiple selection of values from enumeration type.
<enum-type-name>
Single selection of a value from enumeration type.
<set-type-num>
Multiple selection of values from enumeration type.
<list-type-name>
Dynamically extending list of a certain Record type.
Display title as shown to the end-user. Short description of the property. A longer text describing the property. The text is shown in a popup and not visible from start. Defines the layout orientation of checkbox and radio button lists. Defines how to display the property. Force property to evaluate to its real value instead of "empty" when hidden. If the value of this element is 'true', then cyclic dependencies are allowed in visibility expressions for the related property. See DefaultValue .

Default value expression. Use "true" or "false" for booleans, numbers for integers and floating point values and strings for all other types. For enumerations use the string representation of the enumeration "Value". For sets use a string of comma-separated enumeration values.

The default value expression must be a constant value which means it cannot depend on other properties or variables. It may although depend on some of the built-in predefined properties like Identity_Identity and Identity_Claims , or built-in methods like DateTime.New() .

Examples (notice the single quotes used to denote string values):

Boolean
DefaultValue="true"
Integer
DefaultValue="99"
Double
DefaultValue="47.34"
Decimal
DefaultValue="3.14m"
String
DefaultValue="'Hello'"
Date
DefaultValue="DateTime.New(2015,09,16)"
Enumeration
DefaultValue="'Red'"
Set
DefaultValue="'Red, Blue, Yellow'"
DefaultValue="Identity_Claims.Fold('', (result, c) => c.Key = 'name' ? c.Value : result)"
List
Not applicable (but properties of the record type can have default values).
External default values can come from URL parameters in the initial request to the selfservice. Values provided should follow the syntax for default values. See the DefaultValue attribute. This should only be enabled for properties where you expect the value to be set by an outside source, e.g. encoded in the link the user clicks. Name of enumeration to show elements from in a set property (this attribute is deprecated - use a "set" type declaration instead).

This element represents minimum and maximum length for a string.

Minimum value. Maximum value.

This element represents minimum and maximum values for a range.

For integers, decimals and doubles, the values must be constant numbers.

For dates, the values are expressions of type date.

Minimum value. Maximum value.

This element represents a regular expression validation rule for strings. The pattern must be a valid regular expression pattern as specified by the .NET Regular Expressions framework: https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expressions .

Regular expression pattern. Message to show when validation fails.

This element represents file extension validation for a document property. The selected file extensions also set the file filter in the system file selection dialog opened when the input button is clicked (if the browser supports the accept html attribute). Without a FileExtensions element, a document property defaults to the ValidFileExtensions attribute in web.config.

A comma separated string of accepted file extensions, e.g. ".doc, .docx, .txt". Custom description which will be displayed below the document input element. A default description which lists the valid extensions is used if InfoText is not set. Toggles whether or not to hide the InfoText content. Default value is "false".

This element represents an expression for calculating visibility of a property.

Visibility expression.

This element represents a set of expressions for calculating visibility of enumeration item groups.

Single item group visibility expression. Default item visibility expression. General visibility expression applied as a lambda function to all items.

This element represents an expression for calculating visibility of an enumeration item group.

Comma separated list of enumeration item values to provide visibility expression for. Visibility expression.

This element represents an expression for the default visibility expression of item in an enumeration.

Visibility expression.

This element represents a lambda expression for calculating the visibility of all items in an enumeration.

Visibility lambda expression.

This element represents the configuration of multiple files for a document property. If left out, it will only be possible to upload a single document for the containing property.

Maximum number of files. If not set, the number of files is unlimited. Custom description which will be displayed below the document input element. A default description which informs that multiple files can be uploaded is used if InfoText is not set. Toggles whether or not to hide the InfoText content. Default value is "false".

This element represents the configuration of the maximum document size for a document property. If left out, documents are only limited by the general MaxUploadSize value of the submission form (See Web ), or the website appsetting.

Maximum file size in KB. Custom description which will be displayed below the document input element. A default description showing the maximum file size is used if InfoText is not set. Toggles whether or not to hide the InfoText content. Default value is "false".

This element represents an expression for calculating the initial value of the containing property.

Condition expression. The Modifier attribute may be used to modify a calculated value. The modifier is a JavaScript expression where the substring {expr} is replaced by the calculated value. This allows for a great deal of flexibility. One example of use is rounding of decimal numbers. The JavaScript module ValueExpr contains some (cBrain specific) helper methods that may be extended with other useful modifiers in the future. The ValueOnError attribute may be used to show an appropriate error text rather than a raw JavaScript error value. This attribute has effect when an arithmetic expression evaluates to the JavaScript values NaN (not a number) or Infinity By default, a calculated value will not overwrite a value written by the user. As an example, this could occur if a user changed the value of a field that was calculated from an expression and then reloaded the page. The system will remember the user's value, but expressions are evaluated on page load, so the user written value could be overwritten. This does not happen by default - the value is only overwritten if the user decides to change a value in a field that is part of the value expression, thereby triggering the set value calculation. To enable this behavior (perhaps in combination with a readonly DataField), set the SetOnLoad attribute to "true". The Condition attribute is an expression that can be used to control when the value element for the property should be active. The value element will only be active when the condition is true. If the condition attribute is not set, the value element will always be active.
Displays a dropdown selection list instead of radio buttons (for enumeration types). Displays a text-input field with auto-complete functionality instead of radio buttons (for enumeration types). Displays a large text-input area for string inputs. Displays a date picker. By default, any date within the next 10 years and last 120 years can be selected. This can be changed by setting a range validation on the property. Displays a list of radio buttons. This is the default display type for enumeration types. Displays a checkbox.

This element represents the layout of the submission form. The layout consists of an optional page navigation panel and then a list of pages.

Top banner page navigation panel. Single page layout (repeatable).

This element represents the layout of the thanks page.

If this element is not defined then one of two thing will happen.

If a view file named 'Thanks_<Name>' exists, where <Name> is the name of the self-service extension, then this view will be used.

Otherwise the default view file named 'DefaultView' is used.

View file layout. The title of the thanks page.

This element means that an existing view file should be used as the thanks page content.

The specificied view can be located in the default view folders 'Views\submission' and 'Views\Shared'. Theming is supported.

The name of the view file which should be used as the main content of the thanks page.

This element represents the layout of a single page.

Validations to be performed on next-page changes. Web actions to be executed automatically. Page title Internal page name. Page visibity expression. CSS class name (constant value - not an expression). If true, a screenshot of this page will be added as an attached document to the submission dossier in F2. If true, the page will not contain the standard text about fields marked with '*' are required. Name of a JavaScript function to call on page loaded when all conditional elements have been evaluated.

This element group includes both structural layout elements as well as data elements such as data fields and lists.

Data field list. This list can contain multiple data fields Data field. Web action. Readonly display field. Readonly list field. Text. Geo-location panel. Document panel for displaying attached documents. Deprecated: Was used with NemID login applet List field. Minimap. Minimap image. Image.

This element group includes the structural layout elements such as grids and panels.

Grid layout. Grid layout generator: Stack panel Table layout. Panel layout container.

This element group includes the simple data elements that can be included in a table cell.

Data field. Web action. Readonly display field. Text.

This element represents a grid layout using rows and columns. It renders a responsive grid layout where the individual cells flow to the next row when the screen width is too small to show all cells in one row.

Grids are designed for structuring the overall layout of a page.

A single row in the grid (repeatable). CSS class name (constant value - not an expression).

This element generates a grid with a single cell and row for each of its elements.

Stack panels are designed to simplify 'simple' grid layouts.

This element represents a single row in a grid layout.

Single cell in the row (repeatable). CSS class name (constant value - not an expression). Row visibity expression.

This element represents a single cell in a grid layout. The grid cell may contain further layout elements.

Cell visibity expression. CSS class name (constant value - not an expression).

This element represents a table layout similar to the <Grid> element but without the responsive flexibility that allows cells to flow around depending on the width of the screen.

Tables are designed to display tabular data and for this reason it imposes a restriction on the allowed content elements inside cells.

It is currently not possible to generate table rows from list data.

Header A Header B
Table header row. Table data rows (repeatable).

CSS class name (constant value - not an expression).

The Bootstrap stylesheet used by default includes a couple of interesting table classes:

  • "table-striped" – add zebra-striping to rows (alternating background colors).
  • "table-dark" – dark table background.
  • "table-bordered" – add borders to all sides of all cells.
  • "table-hover" – add highlighting of hovered row.
  • "table-sm" – show a smaller, more compact, table.

This element represents a table header - a list of table cells that are displayed at the top of the table and functions as column headers.

Single cell in the row (repeatable). CSS class name (constant value - not an expression).

This element represents a single row in a table.

Single cell in the row (repeatable). CSS class name (constant value - not an expression).

This element represents a single element in a table. The table cell may contain simple data elements.

Cell visibity expression. CSS class name (constant value - not an expression).

This element represents a layout panel - a structural layout element that functions as a visual container for a sub-layout and gives it a title.

This is page 1 This is page 2
Navigation link to related page - a feature which is most useful for summary pages that include back-references to previous pages. Panel title. Panel visibity expression. CSS class name (constant value - not an expression).
Data field. Cell visibity expression. CSS class name (constant value - not an expression) for each row. CSS class name (constant value - not an expression) for each cell. CSS class name (constant value - not an expression) for the grid. Defines the layout orientation of the data fields.

This element represents a navigational link to another page.

Reference to related page (by page name). Link title.

This type of element contains hard coded text to display for the end-user.

Any text content inside a text element is output without HTML encoding – making it possible to use HTML formatting tags inside it. The use of HTML requires the input to be XML escaped correctly, either with entity references (such as &lt; for "<") or using CDATA content.

CSS class name (constant value - not an expression). HTML Id of the text element. Visibility expression.

This element represents an interactive map for pin-pointing geographic locations.

CSS class name (constant value - not an expression).

This element represents the list of documents attached to a reply submission form for approval. The panel generates a list of clickable document names, allowing the end-user to view the documents one by one.

Named document to show in panel. CSS class name (constant value - not an expression).

This type of element represents a single named document to show in a document panel.

Name of document to show. The name must match a name used in a Document element in the origin task guide that started the approval process.

This type of element represents an input element for a data field.

Web-action configuration. This generates a button in close proximity to the input element. Autocompleter configuration. DropDown list configuration. Emphasizing configuration. Name of data field to display. A short hint text, placed in the input element before any user input. For instance a sample value or a description of the format. For enumeration properties with DisplayType="DropDownList" , the Placeholder value is used as the default selection (selection with no value). CSS class name (constant value - not an expression). Read-only expression. ReadOnly is not supported for the following property types: ‘bool’, ‘set’, ‘enumeration’, ‘document’ and ‘list’. Name of a JavaScript function to call when auto-complete data has been loaded and all conditional elements have been evaluated. Defines the layout orientation of radio button enums. Overrides the orientation setting in the attribute if defined

This type of element represents a button that, when pressed, issues an HTTP request to some external service. Upon completion of the request the UI will be updated with changes returned from the external service.

Authorization configuration. Web action encoding format Input values to include in the external request. Output fields to update on return from the external request. A text to be displayed on the web action button.

URL to an external web service.

Values from application settings beginning with "SelfServiceVariable." in the web.config file can be merged into the URL.

For instance, the value from ]]> can be merged into the Url string like this: Url="http://$BaseUrl$/externalservice" . The resulting URL will be http://localhost/externalservice .

HTTP method to use when issuing the external request. The default value is GET .

GET is recommended for lookup operations with no side effects whereas POST is recommended for operations that make changes to data.

CSS class name (constant value - not an expression). Name of a JavaScript function to call when web-action data has been loaded and all conditional elements have been evaluated.

This element represents a list of web actions to be executed automatically.

A web action (repeatable). A message shown while the web actions are executing (only relevant for webactions executed on page load).

This element represents a web action to be be executed automatically - either when the page is loaded or when the user navigates to the next page.

The page will be disabled while the web action is executing.

Authorization configuration. Web action encoding format Input values to include in the external request. Output fields to update on return from the external request. Configure how the page web action should handle page reloads. A text to be displayed on the web action button. This will only be shown on errors.

URL to an external web service.

Values from application settings beginning with "SelfServiceVariable." in the web.config file can be merged into the URL.

For instance, the value from ]]> can be merged into the Url string like this: Url="http://$BaseUrl$/externalservice" . The resulting URL will be http://localhost/externalservice .

HTTP method to use when issuing the external request. The default value is GET .

GET is recommended for lookup operations with no side effects whereas POST is recommended for operations that make changes to data.

CSS class name (constant value - not an expression). Name of a JavaScript function to call when web-action data has been loaded and all conditional elements have been evaluated. Configure when to run this webaction (only relevant for page webactions).

Authorization configuration. Autocomplete encoding format Input values to include in the external request. Output fields to update on return from the external request.

URL to an external web service.

Values from application settings beginning with "SelfServiceVariable." in the web.config file can be merged into the URL.

For instance, the value from ]]> can be merged into the Url string like this: Url="http://$BaseUrl$/externalservice" . The resulting URL will be http://localhost/externalservice .

HTTP method to use when issuing the external request. The default value is GET .

GET is recommended for lookup operations with no side effects whereas POST is recommended for operations that make changes to data.

Number of characters required before the external requests start. The default value is 2. Time (in milliseconds) after a change in the input value, before a request should be sent to the external service. 0ms is instant and will send a request each time the user types a character, so a small delay will decrease load on the service. The default value is: 300 (ms).

This element specifies that a text input should be replaced with a dropdown list input with dropdown elements based on the rows from a specific data source.

Name of a list to use as input data source for the dropdown list. Each row in the data source will generate a row in the dropdown list. Can also be an expression. Name of field in data source to use as title for the dropdown list items. Will simply be ItemValue if left undefined. Name of field in data source to use as value for the dropdown list items. List of additional fields to update when a value in the dropdown list is selected.

This element specifies additional output fields to update when selecting an item in a dropdown list.

A single output specification.

This element specifies a single output field to update when selecting an item in a dropdown list. The output destination field name is the text content of this element.

Name of field in datasource from which the output value is read. If Source is not specified then it is assumed that Destination and Source names are the same. Can also be an expression which can reference the data source fields as well as global fields and constants. Important to note is that if the dropdown list is itself inside a list, these list variables are not accessible in this expression. Also noteworthy is that all values are calculated before a choice is made, meaning that complicated expressions could increase loading times for the user. Lastly, because they are calculated beforehand, they do not use the newest data, edited on the current page, into account. (recalculated on each page load)

This type of element represents authorization configuration for external requests.

Enable JWT authorization.

This element represents configuration of JWT authorization for external requests.

With JWT authorization, the system will issue a Javascript Web Token (JWT) for the external service to verify. The JWT will be issued by http://cbrain.com/f2/self-service/ and use the specified value of Receiver for the subject and audience fields in the JWT. The JWT will be signed using the specified value of Secret .

The final JWT is include in the HTTP Authorization header with the scheme BEARER .

Value for audience and subject JWT fields. Secret value to sign JWT with.

This type of element represents a list of input fields to include in external requests. When the request is made, the current value of each of the fields is added as a parameter to the request. Values are either added to the URL (when using HTTP GET ) or in the request body (when using HTTP POST ).

Values are encoded as follows:

  • Strings and numbers are encoded as displayed in the UI.
  • Boolean properties are encoded as True or False .
  • Enumeration values for radio buttons and dropdowns are encoded as the Value string of the enumeration item definition.
  • Set values are encoded as a comma separated string containing the selected Value strings of the enumeration item definition.
  • Dates will always have the format yyyy-mm-dd .

Following properties will always be available, to be used as an input:

  • Builtin_ExtensionId: The name of the process. Same as the .config filename.
  • CurrentLanguage: The users current selected language.
  • CurrentPage: The current page, 0-indexed.
  • If there exists a login, a lot of properties will be available. See the "Login" section for more information.
A single input field reference (repeatable).

This element represents a single input field reference. The element text content specifies the value name to include.

Example: ActualFieldName]]>

Optional name to use for the external value when issuing the external request. DEPRECATED. Use ServiceParameter instead.

This element represents a list of output elements which are fields that will be updated when selecting an auto-complete suggestion - or cleared when the auto-complete input is cleared.

Only parameters defined in Outputs will be used.

An output expected from the external service.

This element represents a list of output elements which are fields that will be updated when performing a webaction.

Because of backwards compatibility, all results will be used, but we recommend using output elements.

WebActions can only set properties (other than lists) not represented on the current site, if the Output is used. Lists can only be used as outputs if they are on the same page as the webaction or if the webaction is a 'PageWebAction' with ExecuteOn='Submit'

An output expected from the external service.

This element represents a single output parameter reference. The element text content specifies the field name to to be updated.

Example: ActualFieldName]]>

Optional name to use for the external value when issuing the external response.

This element represents configuration of emphasizing condition and color for a data field. A field is considered "emphasized" when the associated condition evaluates to true. When emphasized, the field will be highlighted with the specified color.

Emphasize condition expression. Emphasize color.

This element represents a condition expression which can be stated either as an attribute or in the inner text of the element.

Condition expression.

This element represents a color expression that will be used to determine the background color of an emphasized field. If no color is given (by evaluating to an empty string), the default design for Emphasized will be used. Note that the string cannot contain whitespaces. The expression can be stated either as an attribute or in the inner text of the element and must evaluate to a single string.

The calculated color string should be one of the following that are supported in the default stylesheets:

  • Green
  • Pink
  • Yellow
  • Blue
  • Gray
  • Orange
  • Brown
  • Red
  • Purple
  • Zinnwaldite
Condition expression.

This element type represents a display-only version af a data field. A "display-only" version is not the same as a normal version of a data field in read-only mode. Display-only elements are rendered in a way that suits the default "summary page" style.

A property referenced in a display field, should always be edited in a data field on a page prior to the display field, as the display field value is only updated on page changes.

If the end-user should be able to navigate to the editable version of a property (as for instance on a summary page), then use a <Panel> element with navigation to that page.

Name of data field to display. CSS class name (constant value - not an expression). Display title. Default title is taken from the field definition's title value.

This element represents a display-only version of a list field. A "display-only" version is not the same as a normal version of a data field in read-only mode. Display-only elements are rendered in a way that suits the default "summary page" style.

Field to include as display-only (repeatable). Name of data field to display. CSS class name (constant value - not an expression). Display title for the whole list.

Text to be used as title for each record entry. The title text may contain one or more of the following merge fields:

  • $Counter$ to show the current number for the record.
  • $TotalCounter$ to show the total number of records in the list
  • $FilteredCounter$ to show the current number for the record where records hidden using ‘RecordVisible’ are ignored.

The default title is simply "$Counter$".

A boolean expression which determines for each record, if it should be visible.

The expression may refer to “Counter” to get the index of the currently displayed row, making it possible to show, for instance, the last or first few rows. The index of the first row is 1.

Example (first two rows): RecordVisible="Counter LTE 2" .

Example (last two rows): RecordVisible="Counter GT Parent.Count()-2" .

This element represents a single field to display in a display-only list.

Name of field to display. CSS class name (constant value - not an expression). Displayed title for field. Default title is taken from the field definition's title value.

With GET , the request will be issued to the supplied URL with input properties added to the URL, e.g. "Property1=xxx&Property2=yyy&p3=zzz" where xxx , yyy and zzz are values from the submission data.

With POST , the request will be done as an HTTP POST request with the input values encoded as either x-www-form-urlencoded or Json in the request body (depending on the supplied format).

Deprecated: Was used with NemID login applet

This element represents a layout element with UI components for signing the submission.

CSS class name (constant value - not an expression).
Navigate to next page after signature validation. If the signature panel is on the last page, then send the submission. Navigate to next page after signature validation. If the signature panel is on the last page, then DO NOT send the submission. Never navigate to next page after validation.

This element declares layout details for the top banner page navigation panel. It can be inserted into the top level <Layout> element and results in each page having a page overview in the top banner. This overview shows the available pages and hightlights the page the user is currently on and it allows the user to navigate to previous pages.

Pages hidden because of a visibility expression does not show up in the navigation panel. Pages visibility in the navigation panel updates only on page changes, so a change to a property that makes a page visible does make the page visible in the navigation panel before a page change.

Navigation panel orientation. Maximum number of pages to show "in focus" with complete page title. Pages "out of focus" are only represented by their page number. It is important to note that the pages in focus is centered around the current page, meaning a value of 3 results in the current page, plus the ones before and after being focused. The default number of pages in focus is 5 if no value is specified.

This layout element represents a single list field.

An element defining the layout of the properties of the record type. The layout is defined similarly to page layouts, but starts with a Grid or Panel element.

If left out, a default layout is generated, with each property in separate rows. (Note that properties with value elements are not set to readonly in the default layout which allows user input into the field to be overwritten by the automatic value action.)

Configuration of "Add record"-button.

Configuration of "Delete record"-button.

The following merge-values can be used in the help text:

  • $Counter$ to show the current number for the record.
  • $TotalCounter$ to show the total number of records in the list.

Default is "Delete row $Counter$".

Configuration of "Show record"-button.

The following merge-values can be used in the help text:

  • $Counter$ to show the current number for the record.
  • $TotalCounter$ to show the total number of records in the list.

Default is "Show row $Counter$".

Configuration of "Hide record"-button.

The following merge-values can be used in the help text:

  • $Counter$ to show the current number for the record.
  • $TotalCounter$ to show the total number of records in the list.

Default is "Hide row $Counter$".

Configuration of "Show all records"-button. Configuration of "Hide all records"-button. List validation.
Reference to a list-type property (using the property’s name).

Text to be used as title for each record entry. The title text may contain one or more of the following merge fields:

  • $Counter$ to show the current number for the record.
  • $TotalCounter$ to show the total number of records in the list

The default title is simply "$Counter$".

CSS class name (constant value - not an expression).

Boolean for deciding if empty records should be shown in the list, the first time it is seen on a page.

True means that the number of records equal to the minimum range are shown. If there is no minimum range, one record will be shown.

False means that no records are shown, even if the list is required or has a minimum range greater than zero.

If left out, the minimum number of records will be shown. A required list will although have one record as a minimum.

If true, the records in the list will be collapsed when the user returns to the page, unless there is an error. Default: true Name of a JavaScript function to call on list or record loaded when all conditional elements have been evaluated.

This element represents the layout of a single record in a list.

This type of element represents a text-button with displayed text and additional popup text.

Displayed button text. Popup button text.

This type of element represents an image-button with alternate text.

Alternate button text.

This element represents the "Add record"-button in a list. It can be disable to make it impossible to add records.

Disable button.

This element represents the "Delete record"-button in a list. It can be disable to make it impossible to delete records.

Disable button.

This element declares contact details of the organisation behind the submission form. The contact information may be shown on the "Thanks" page shown after submitting a new submission.

Full name of contact person or entity. Department. Address. Postal code. City name. E-mail. Phone number

Sender contact properties is a set of properties that are relevant for getting in contact with the end-user. The properties themselves are defined as usual and then referenced in the ContactProperties element.

The contact details can later on be used to associate the created F2 dossier with a party from the party registry. Users will also be asked if they want to have their contact information remembered when they submit from the website. If they agree, the contact properties will be prefilled for them when they start a new submission.

Along with the set of predefined contact properties (Name, EMail and FollowCaseOnline), it is possible to add any number of additional fields, by referencing the properties to use.

Additional properties to include as sender specific properties (repeatable). Name of property that contains end-user's name. Name of property that contains end-user's e-mail address. Name of (boolean) property that registers the end-user's intent to follow the case' progress online.

Name of an additional property to include as the end-user's contact details.

This type of element represents a list of variable declarations.

Variable declaration (repeatable).

This element represents a single variable declaration.

Initial value expression for variable. The expression may depend on values from other variables. Variable name. Variable type (same as used for Property ). Note that variables can be of type TimeSpan too (unlike properties). Initial value expression for variable. The expression may depend on values from other variables. The title will be displayed if the variable is used in a data-field layout element. If no title is given, the name of the variable will be used as the title.

This element declares the use of geo-positioning of submissions.

Toggles whether or not geo-positioning is required. Initial map zoom level. Minimal zoom level required to mark a position.
This element declares the use of a minimap. This element represents the name of the minimap. This element represents the minimap id. This is used to load the correct Spartial Suite configuration for the minimap. When the minimap is created it is assigned a unique auto generated id. This unique id is stored in the property 'Minimap_{name}_Id' where {name} is replaced with the value of the Minimap Name element. This element contains data for generating images of the current minimap. The presence of this element means that the image will be stored in F2 when the form is submitted. If this element is omitted, an image of this minimap cannot be shown. This element represents a URL template for opening the minimap output later on. The template is merged with the special merge value 'blanketId'. This value contains a unique id, generated for the current minimap. If this URL is defined, the property 'Minimap_{name}_OpenUrl' will be created where {name} is replaced with the value of the Minimap Name element. This generated property will hold the merged content of the url template. This element represents a URL template for committing the minimap to the external minimap database after submission of the form. In essence, committing means that the external database is notified, that the minimap has been submitted and as such no longer changes. The external database may choose to remove non-commited minimaps after a while. If this element is not defined, the minimap will not be committed to the external database. This element represents a list of self-service properties which should be sent to the minimap when it is created. This element represents a list of minimap properties which should be stored in the self-service on certain actions. The actions, which triggers the property storage, depends on the exact minimap solution. An example could be that a geometry is selected. This element represents the configuration needed for generating images of the current minimap. Image title. This title represents the file name with which the image should be saved. URL template for the minimap image. The template is merged with the special merge value 'blanketId'. This value contains a unique id, genered for the current minimap. If this URL is defined, the property 'Minimap_{name}_ImageUrl' will be created where {name} is replaced with the value of the Minimap Name element. This generated property will hold the merged content of the url template. Name of a document property to store the minimap image in. If this element is not defined, the image will be stored in an auto generated property. The auto generated property name is 'Image_{name}' where {name} is replaced with the value of the Minimap Name element. This element represents a list of mappings from minimap fields and self-service properties. A mapping. This element represents a list of mappings from self-service expressions to minimap fields. A mapping. This element represents a mapping between a minimap field and a self-service field. This element represents a self-service property. This element represents a minimap field. This element represents a mapping from a self-service expression to a minimap field. This element represents a self-service expression. This element represents a minimap field. This element represents an image of a given minimap, showing the selection chosen by the user. Name of the minimap for which the image will be shown. Deprecated: Was used with NemID login applet

This element activates signing of submissions. When a Signature element is included, the end-user will be asked to re-enter hers/his login credentials again to acknowledge that the submission will be sent. The signing process does not include any kind of cryptological proofs of acknowledgement.

The actual location of the signature UI component is declared by the <SignaturePanel>

Required identity provider for the signing process.
Vertical stacking of elements. Horizontal stacking of elements. Horizontal stacking of navigation items.

This element declares texts and settings related to the web page for the submission form.

The page title, shown in the browser top and tab. A page description, shown at the top of all pages. The maximum combined upload size of files for this submission. Value in KB. Overrules the general MaxUploadSize app setting in the Self-Service website configuration. Thanks page layout.

This element declares various properties related to the case and dossier creation in F2.

Title of created case. Submission and Model merge fields can be used in the case title. See other chapter for detailed description on how to use merge fields. Title of created dossier. Case, Submission and Model merge fields can be used in the matter title. See other chapter for detailed description on how to use merge fields. Journal plan settings. List of keywords associated with the created case. Additional fields to be stored as case information on the created case. Reference to the party responsible for the created dossier. Deadline for the created dossier expressed as number of days from submission date. Key used to identify a task guide for the created case. Specifies a task guide script to be be executed on the created case when the submission is sent. Access level for the created dossier. List of F2 documents to include. Specifies if the created dossier is to be journalized F2 login information. Specifies the progress code for the case
Access for involved parties. Access for unit. Access for all.

This element declares journal plan settings for the created case.

Journal plan code, e.g. "01.13.29" . Action code (Danish: "Handlingsfacet"), e.g. "G00" Disposal code (Danish: "Kassationskode"), e.g. "B"

This element declares the keyword for the created case.

Keyword reference path, e.g. "Top/Sub/X" . Deprecated. Deprecated.

This element declares a set of field values to be stored as case information on the created case. Each Field entry declares the name and value of the field.

Single field declaration (repeatable).

This element declares a single field to be stored as case information on the created case. Element content will be stored as value of the field.

Name of field to store value in.

This element declares a list of F2 document templates to be instantiated and attached to the created dossier.

Document reference (repeatable).

This element declares a single F2 document template to be instantiated and attached to the created dossier.

Values from the submission can be merged into the document templates to make them relevant to the submission.

Title of the created document. Reference to a template in F2 (using the full template path, e.g. "Standard/Guides/Intro1" ).

This element declares a single party reference. Specifiy party number in element content and optional organisation number in Organization attribute.

Organization party number. Only use this for party references to persons when they have roles in multiple organisations - in that case, use Organization to specify which organisation to select.

This element declares which identity provider to use for authentication of the end-user.

Deprecated: Was used with NemID login applet Validations to be performed on login. Name of chosen identity provider - use the "Id" value from IdentityProviders.config. If true, make sure end-user is completely logged out from external identity providers. Default value is true. If true, the identity provider will be given the expected identity of the end-user (assuming the submission form is used for replies), which it may choose to use for pre-filling the login form. It is recommended to set this value to false, if sensitive data is used as the identity (like for instance the Danish CPR number) as the value may be visible in the end-user's browser history. On the other hand, tt is recommended to always set it to true when logging in using text messages. The default value is false.

This element defines the configuration of a payment provider for self-service submissions that include buyable products.

Name of payment provider to use. The current implementation only supports "QuickPay" and "NetsEasy". Display name of the order summary page, the name is displayed in the page navigation panel if activated. If true, an empty order summary page, stating "No products have been selected", will be inserted if no products are selected.

This element declares a list of buyable products.

A single product definition (repeatable).

This element declare a single buyable product.

Internal name of product (could for instance be a product number). Displayed title of the product. Short description of the product. Product price expression. This defines the total price for the product depending on what choices the end-user has made. Order selection expression. This expression must evaluate to a boolean value that indicates whether or not the product is ordered.

This type of element declares inline and external validators.

External validator declaration (repeatable). Inline validator declaration (repeatable).

This element declares an external validator.

List of properties to include in external validation request. Reaction to failed validation URL reference to external validator. Request format. Authorization configuration. Validator name.

Use JSON formatting for external validation requests. Will not work with GET requests

Use multipart/form-data formatting for external validation requests.

Use JSON formatting for Webaction requests. Will not work for GET requests

Use FormUrlEncoded formatting for for Webaction requests. (default)

This element represents authorization configuration for external validation. Insert shared secret as inner text for simple plain text authorization (not recommended) or use the sub-element JwtAuthorization for secure authorization.

Enable JWT authorization.

This element declares an internal validator.

This attribute defined the name of the validation. The name must be unique, among all validator types, and is used by the validations to define where a given validator should be invoked. This attribute defines the logic of the validator and uses the standard expression framework. The expression may also use the predefined value Builtin_Identity and other values from the chosen identity provider in order to access the identity of the current user (if logged in at all). This attribute references a property used in a DataField on the same page as the validator. The related input will be marked with input-validation-error style if the validation fails. If no For property is given, the error message will still appear. This attribute defines the message to display when the validator is invalidated. The value of properties, variables and Builtin_Identity among other things, can be accessed by wrapping the name in dollarsigns.

This element declares a list of properties to include in external validation requests.

Input declaration (repeatable).

This element declares a single property to include in external validation requests. Specify property name in element and optional external name in Name attribute.

Name of property to include.
Show validation error messages but do not block further actions. Show validation error messages and block further actions.

This element declares references to validations to perform in various situations.

Single validation reference (repeatable).

This element declares a single reference to a specific validation.

Name of validation.

This element declares the languages available for the submission.

A single language declaration (repeatable).

This element declares a single language to be available in the submission.

Language reference, e.g. "da-DK" Language title to display in language selector.

This element describes when to execute a page-webaction.

Execute webaction when the web page is loaded. This is invoked by the browser and supports updating of any global field but only lists on the same page. Execute webaction when user navigates to next page. This is invoked by the webserver while handling the navigation request - and it allows the webaction to update both global fields and lists (not only those on the current page). Data is updated internally before returning the next page content to the browser.

This element describes how the web action should handle retry.

It's important to think about what to expect if the web action fails, depending on how the user reacts.

The retry logic after reload of the page. This setting is relevant after validationerrors, if the user reloads the page or if the user continues a later day. The retry logic after the user arrives at the page, from the previous page, except the first time. This setting is relevant if the web action is based on something on a previous page, and the user goes back and changes the values. The retry logic after the user goes back to this page. This will most likely only happen, if the user has made a mistake, and needs to go back to change it.

This element represents the different ways the web action can handle retries.

The web action is always executed, no matter if the last try failed or not. This is the default value. The web action is executed if the web action has not succeeded yet. If the web action has not succeeded yet, the retry button will be shown. The web action will not be executed, unless the button is pressed. The web action is only executed first time the page is shown. If the web action fails, and the user leaves the page, there will be no option to retry.

This element sets the credentials for logging in to F2. It is optional and, if not set, the default from the server configuration will be used.

The username of the F2 user. The password of the F2 user. Optional organization party number for login when the user has multiple roles in different organizations.
This element represents an external image. An expression of type string. The result is the URL of the image. An expression of type string. If set, the user will be redirected to the calculated URL on click. Visibility expression. CSS class name (constant value - not an expression). Mouseover tooltip of the image. This text will be shown instead of the image, if the image cannot be loaded. Simply include this as an empty element to indicate that this submission form is for replies only. Boolean for deciding if redirect to newest replykey should be active.