Skip to main content

Developing with OutSystems


Is it possible to create complex forms with OutSystems?

Yes. Organizations that adopt OutSystems can leverage great layout and styling features, conditional display and incremental disclosure constructs, and form ​validations to develop complex forms. Customers have used these features to develop:

  • Replicas of extensive paper-based forms

  • Huge healthcare, insurance or legal data entry interfaces with a multitude of fields

  • Elaborate validation and display rules that are based on complex business logic


Layout and styling

Separating a complex form into multiple sections with consistent input sizes and perfect alignment is never an easy task. OutSystems has great features to help ease this process:

  • A built-in grid system allows developers to easily align elements in a page and size them proportionately.

  • A complete UI framework with powerful constructs helps you with structure, content, data and controls. Splitting the page in 3 or more columns is now easy. Beautiful panels, collapsible sections, slick alert boxes, info balloons and touch-ready controls enable the creation of complex forms that can be displayed in any device.

  • The CSS editor gives developers full control over how to style the pages and controls.

  • A visual styles editor panel within the IDE allows changes to the most common CSS properties.

This graphics shows an example of a complex form:

Conditional display and incremental disclosure

A complex form may have certain sections displayed incrementally as the user provides specific input. Other forms may have different sections or fields that are only displayed to certain user roles. OutSystems makes these scenarios easy to handle:

  • Role-based security and simple constructs check a user's role at the UI or business logic level.

  • The visible property of UI elements allows control of their rendering.

  • A visual IF construct renders its true or false branch upon evaluation of a Boolean expression.

  • Built-in AJAX capabilities enable reload, refresh and removal of the form without reloading the entire page by means of the built-in AJAX capabilities

  • Constructs enable UI control events such has triggering server side actions when a combo box value is selected, a check box is selected or a text input changes.

This is an example of how a part of the page is rendered, depending on a condition:

Form validations

OutSystems enables client-side and server-side validations of form data.

Client-side validations

On the client side, mandatory field and data type mismatch validations can be enabled without any coding.

More complex client-side validations such as a password complexity widget or social security number (SSN) validation can be achieved with simple JavaScript snippets. These snippets can be easily woven into and integrated with UI controls with the JavaScript editor.

Server-side validations

Modern browsers allow tampering with a page's HTML and JavaScript very easily. Server-side validation is key to ensuring forms data is clean and sound—before it hits any back-end systems.

The server-side events to validate, manipulate or save data can take full advantage of all OutSystems constructs to perform such actions. Queries, web service calls, text manipulation functions, mathematical functions, data formatting and conversion are just a few of the most commonly used constructs to validate forms data.

Controls have a built-in error message property that can be used to automatically display the validation messages on the screen.

This example shows an error message displayed on screen:


This example shows form validation logic: