Here you will find everything you need to know about "Building block-based".

  • Block-based
  • Form dynamics & logic
  • Repetitions & tables

To the feature overview



Form components can be made available centrally, versioned and exchanged between form collections.

All AFS functions at a glance

Form dynamics & logic

Form dynamics and logic such as showing and hiding elements, validations, calculations or interfaces to third-party systems can be implemented by people without programming knowledge.
Over 80 supplied "parameterizable" extenders allow this to be configured easily and clearly (see appendix: List of parameterizable extenders). The following functions can be implemented with extenders:


See "3. Validation - errors, warnings, information and success"

Dynamic flow

The flow of AFS forms can be configured dynamically. Depending on user input, the role of the user or control data from the backend systems, the...

  • control the display of form pages, blocks and fields,
  • block individual input fields,
  • offer the appropriate form completion,
  • select the correct print document,
  • send emails to dynamically determined recipients,
  • enable the e-payment function,
  • enable an electronic signature

and many other processes and functions can be triggered.

Management of inserts

See "9. Insert management"

Functions for identification

See "10. Identification"

Field filling

Fields in AFS forms can be pre-filled. Freely definable "default values" and prompts (e.g. "Please select...") are available for this purpose. Entries that have already been entered can also be transferred to subsequent fields.
In addition to generated field values such as unique IDs, data from specialist systems can also be used for pre-population. Further details can be found in section "20. Connection to backend systems".


All numerical and calendar form entries can be used for calculations. For this purpose, fields are defined as source and target variables and linked in mathematical formulas using SpEL (Spring Expression Language). SpEL allows arithmetic (e.g. plus/minus), relational (e.g. greater than/less than), logical (e.g. and/or), conditional (ternary or Elvis) and regular expressions.
Furthermore, rounding functions and random number generation are available. The date calculation can also take specific public holidays into account when determining working days. The calculations and evaluations are triggered via a button or automatically (AJAX).

Date and time functions

In AFS forms, a configurable "date picker" is available for date entries. On the server side, the current system date and time can be used for comparisons. Date and time functions enable various checks such as the calculation of a time difference (e.g. input date/time to system date/time) or actuality (e.g. input date/time in the future?). Furthermore, weekends and public holidays can be blocked or certain days can be highlighted in color to simplify usability. Entries can be used for calculations and "split" by second, minute, hour, day, month, year.

Temporal validity of forms

With AFS, it is possible to control the availability of a form over time. This allows you to define the period during which a form can be called up and which URLs should be called up outside of this period. This allows forms to be activated and made available only at certain times.

Generating print documents

See "12. Document generation"

Sending emails and documents


Communication with the aforms inbox

A group of extenders is used for communication with the aforms inbox. On the one hand, they enable the saving and loading of application data from the aforms inbox in order to use the content of applications that have already been sent for pre-filling and comparisons in the current form. On the other hand, these extenders provide write and read functions for metadata. Metadata stores additional information such as the processing or approval status of an application.
In addition, extenders can be used to process applications directly in the aforms inbox (e.g. to complete them).

External references

AFS forms can reference inputs from other forms and use them for validations and flow control, similar to external references in MS Excel sheets.

Scripting Extender

Sometimes the configuration of an extender is only the second best way for programmers to achieve their goal. People with programming skills can achieve the same results faster in just a few lines of code.AFS offers the option of programming form logic using Groovy scripts. In contrast to existing extenders, the developer is completely free to design the business logic. Unlike when programming additional JAVA classes for AFS, the form server does not have to be recompiled and delivered.

The scripting extender enables the definition of input and output fields, variables, script input or reference to an external script file as well as access to the entire form object.

All AFS functions at a glance

Repetitions & tables

AFS offers repeatable form elements for entering a number of similar data records, such as people in a household or booking lines in an expense report. AFS form blocks can be added and deleted dynamically. Tables are a particularly structured way of displaying repeatable elements.

In the table view, repeated blocks are listed as rows in a table. The field labels become column headings. Table rows can be added and deleted dynamically. Row contents can be specified as unchangeable or fillable. The values of the individual table cells can be calculated and copied. It is even possible to relate values from different tables in a form to each other.AFS table contents can be imported from CSV files. This function is particularly suitable for importing mass data that the user already has in electronic form. AFS tables have a scrolling mechanism (paging) so that even large amounts of data can be conveniently displayed.

The number of columns that can be displayed in the browser window is limited. AFS tables therefore offer the option of always displaying important fields and showing additional details. For this purpose, a selection is made as to which fields of the stored block are already to be positioned in the table row and which fields only become visible in expanded mode.