Prefilling data
In Valtimo, forms can be prefilled with data from a case or from other external sources. This page describes how
Value resolvers
Available since Valtimo 11.0.0
Value resolvers provide a framework to retrieve and/or store data in several sources like process variables (pv:
), documents (doc:
), and more.
Custom value resolvers can be created for external sources.
Supported value resolvers
Case JSON data
Resolves values from the JSON content of the JsonSchemaDocument
doc:
Json path to a field
doc:person.firstName
Case columns
Resolves values from the database columns of the JsonSchemaDocument
case:
database column name in camel case
case:assigneeFullName
Process variables
Resolves values form the Camunda BPMN process variables
pv:
Process variable name
pv:lastName
ZGW value resolvers
Valtimo contains additional value resolvers for ZGW services:
zaak
(Zaken API)zaakstatus
(Zaken API & Catalogi API)zaakobject
(Zaken API)
Zaken API zaak
Resolves values from the Zaken API zaak response
zaak:
Name of the field from the zaak response
zaak:identificatie
Zaken API zaakstatus
Resolves values from the Zaken API zaakstatus response
zaakstatus:
Name of the field from the zaak statustypen response
zaakstatus:omschrijvingGeneriek
Zaken API zaakobject
Resolves values form the Zaken API zaakobject
zaakobject:
The object type and a reference to a property
zaakobject:profile:/person/firstName
More information can be found here
Custom properties
sourceKey
Value resolvers can be used to prefill a form with external data by adding the custom property sourceKey
:

The following prefixes are supported by default:
doc
(Document)pv
(Process variable)
targetKey
Value resolvers can also be used to handle submitted form values using the custom property targetKey
. If the custom property targetKey
is added, it will store submitted values to the reference provided in the targetKey
:

If a sourceKey
is provided, it will store submitted values using the reference provided in the sourceKey
. Unless there is a targetKey
provided. Then the targetKey
takes priority.
External data types
This table lists which types of data can be referred to from a form field, and which prefix to use.
The data in the document of a case.
The 'zaakeigenschappen' stored for the zaak in the Zaken API. Not to be confused with the properties of a zaak.
Process variables stored for any process instance that is linked to the case
The properties of a zaak in the Zaken API
The properties of 'zaakstatus' linked to a zaak in the Zaken API
The properties of 'zaakobjecten'. Objects linked to a zaak in the Zaken API
Case data
By default, when creating fields in a form the data will be retrieved from and stored in the case. The property of the case that is used depends on the 'Property Name' field on the 'API' tab of the field settings.
This behaviour has been deprecated as of version 11.0.0
and will be removed in the future. Please use value resolvers instead.
In the example below a document definition is defined with the firstName
property. A form field is created that corresponds to this property to allow data to be loaded and saved.
Document definition:
{
"$id": "example.schema",
"type": "object",
"title": "Example",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"firstName": {
"type": "string",
"description": "First name"
}
}
}
Field configuration:

It is also possible to load properties from an object within the document. In the example below the document definition contains an object 'person', that has a 'firstName' property. This property can be accessed by using person.firstName
as the field property name.
Document definition:
{
"$id": "example.schema",
"type": "object",
"title": "Example",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"person": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "First name"
}
}
}
}
}
Field configuration:

External data
This behaviour has been deprecated as of version 11.0.0
and will be removed in the future. Please use value resolvers instead.
In some cases there is other data related to the case, but not part of the document that needs to be displayed in a form. The form module allows for FormFieldDataResolver
to fetch data by using expressions as property name in forms. On loading the form the data is automatically preloaded. The expression generally looks like <prefix>:<field-expression>
where the prefix indicates which FormFieldDataResolver
is used. The <field-expression>
in this expression gives the resolver information on what data to load. For example, when using the expression openzaak:firstName
for a field, the OpenZaakFormFieldDataResolver
is used to access the zaakeigenschappen in the Zaken API and get the firstName
property.
Even though technically a FormFieldDataResolver
is not used, the prefix pv
is available to access the process variables in functionally the same way. For example, the expression pv:age
would try to get the 'age' variable from the process variables.
A list of FormFieldDataResolvers
that are available on the forms reference page.
A description on how to create a new FormFieldDataResolver
is available on the creating form data resolver page
Disabling prefill
Available since Valtimo 10.5.0
In some cases it is desirable to be able to disable a form input prefill. For example, an upload input might result in duplicate files when prefilled.
Prefilling can be disabled for specific input fields by configuring a prefill
property in the JSON of the form definition as follows:
{
"display": "form",
"components": [
{
"key": "firstName",
"type": "textfield",
"input": true,
"prefill": false
}
]
}
In contrast to Disabled fields, setting this property to false will still save the result in the document.
Disabled fields
Disabled form fields are prefilled and saved by default. This behaviour deviates from the web-standard where disabled elements are not included in the submit body.
This behaviour can be changed by setting a toggle in application.yml
:
valtimo:
form:
ignoreDisabledFields: true
When set to true, disabled fields will no longer be prefilled or saved. The default value is false.
Last updated