Form Builder and Form Runner
Orbeon Form Builder is a visual form designer which allows you to build and deploy forms in minutes right from your web browser.
Orbeon Form Runner is the Orbeon Forms runtime environment which usually runs forms created with Form Builder. Form Runner manages form definitions and form data, handles search, validation, and takes care of the plumbing necessary to capture, save, import and export form data.
- Orbeon Forms is the name for the whole forms solution developed by Orbeon.
- Form Runner and Form Builder are components part of the Orbeon Forms solution.
Specific requirements will depend on how much load Orbeon Forms needs to handle, but as a starting point:
- We recommend you have enough memory on the server to be able to comfortably allocate at least 4 GB to the JVM.
- As of 2019, we recommend you use a server with a modern Intel Xeon or Core i5/i7/i9 CPU with a Geekbench 5 single-core score of at least 800.
- We strongly recommend you avoid servers with older AMD CPUs (prior to the Ryzen line), as they have significantly slower single-core performance, which isn't fit for running Orbeon Forms.
- Similarly, we strongly recommend you avoid servers with older Sparc CPUs.
Our testing using real forms used by customers in production show that Orbeon Forms can sustain, on a laptop-grade 2013 4-core i7 CPU, 400 concurrent active users filling out a field every 10 seconds, or 40 requests per second. This means that if you have a forms with 75 fields filled by users on average, with 1/3 load during a given day, Orbeon Forms can support 40*3600*24/3/75 ~= 15,000 form submissions per day, per processor.
We don't recommend you deploy Orbeon Forms on a server less powerful than the aforementioned 2013 4-core i7 CPU. This means that the server has to run on a recent i7 or Xeon processors (not AMD processors), and on Geekbench have a score of more than 3,000 on single-core and 12,000 on multi-core.
If you're looking to run Orbeon Forms in the cloud, make sure to pick a configuration that matches the above requirement. For instance, the table below provides a summary of Amazon's AWS offering, with EC2 pricing. On EC2, we recommend you start with a c4.2xlarge.
We are committed to accessibility: we make sustained effort to ensure that Orbeon Forms complies with Section 508, the W3C WCAG, and the Disability Discrimination Act (DDA). As part of this effort, we consider any instance of noncompliance with one of the aforementioned standards as a bug.
Also, throughout the years, a number of customers have conducted accessibility audits for Orbeon Forms, and we work closely with those customers to solve possible compliance issues.
Say you've created a form, deployed it, and would like to take users to the
/newpage for that form, but would like to pass along some information to the form (let's call that piece of information "token"), and have that token saved with the data, so you can then find back the data based on the token.
- 1.You can do this by passing the token to the form:
- On the URL, as a request parameter, if the token doesn't need to be private;
- As a request header, set in a reverse proxy, if the token needs to remain private, and shouldn't be exposed to users.
- 2.In the form, add a hidden field to store the value of the token. You do this in Form Builder: create a section, which you can name "Internal" for your own reference, and in the Section Settings dialog, under Visibility put
false(), so the section is never visible to end users. In that section add a text field, name it
token, and in the field Control Settings, in Formulas, set its Initial Value to:
- 3.When users enter data in the form and save it, the value of the token will be saved with the data, just as if the field was visible to users, and they had entered the value of the token.
Orbeon Forms doesn't support filling forms offline. Forms created with Orbeon Forms are filled through a browser, whether on a mobile device or laptop/desktop, and users need to have a connection to the server to load the form, fill out the form, and submit the form.
Note however that the server on which Orbeon Forms runs doesn't itself need to be connected to the Internet, so some situations can be handled by deploying Orbeon Forms close to the end users. For instance, if you have users who need to fill out forms with measurements on a boat in an Arctic expedition, then you could have Orbeon Forms deployed on that server, and users will be able to access the local server, even without an Internet connection.
Make sure your Java virtual machine (JVM) is configured with enough heap, as the default is sometimes too low.
This is the
-Xmxoption of Java. Set it to at least 500 MB of heap for local testing (e.g.
-Xmx=500m), and more for production.
No, for multiple reasons:
- Forms designed with Form Builder assume some standard components provided by Form Runner, like sections and grids.
- A lot of the functionality of the form is handled by the Form Runner runtime, including: saving and retrieving data from a database, autosave, permissions, services and actions, and more. The form itself mainly contains the data model, controls, and descriptions of actions and services.
This said, Form Builder forms are probably one XSLT transformation away from being runnable within some other XForms processors.
Form Builder produces XHTML+XForms files as output, but it follows a number of convention when creating forms. It is only able to read forms that follow those conventions, which means that in general, you can't just import your existing forms into Form Builder.
The API has a number of implementations. The default implementation is the embedded eXist XML database, but you can also use relational or your own implementation of the API.
There is no built-in integration with CMS or workflow engines. However you can integrate with systems in a few ways:
- If the form has not been published, simply open the form in Form Builder and make your changes.
- The same goes if the form has been published and no data has yet been entered.
- If the form has been published and data has been entered and your changes modify the structure of the data, you might have to manually migrate the existing data.
NOTE: Running Form Builder also requires
Regular web technologies:
- Noscript mode: HTML and CSS [UNTIL Orbeon Forms 2017.2]
Form Runner by default stores data in XML into eXist and relational databases. This does not require creating new tables, as we use generic tables.
No. A persistence layer implementation consists a few REST services that you implement. You simply tell Orbeon Forms, in a configuration file (
properties-local.xml), what the URL of the service is.
You can implement them within Orbeon (for example using XML pipelines (XPL), or with any technology you like (Java, Ruby, PHP, you name it). In all cases, you won't need to modify Orbeon Forms beyond configuration properties.
Yes, you can save a form definition and get back to it later.
No. But you can use third-party tools to analyze the data.
Simply data validation that occurs as you type in a form and/or navigate between form fields.
This is as opposed to validation that occurs only when you press a "submit" or "save" button.
One benefit of as-you-type validation is that it allows the user to detect errors faster.
You can't just put the files produced by Form Builder or the HTML produced by the Form Runner runtime on a web site. The main reason is that forms produced by Form Builder need the server-side Form Runner runtime to function.
If you have installed the Form Runner runtime on a server, then you can run Form Runner alongside your other web pages or applications. Please note that Form Runner requires a Java servlet container.
Not reliably, sorry.
No, this is not supported, sorry. Forms created with Form Builder require Form Runner to run. Form Runner is enabled only for forms published with Form Builder.
- 2.For changes that you can't do with CSS and that require modifications to the HTML sent by Orbeon Forms to browser, you can change the Form Runner XBL and XSLT stylesheets. But this is hard work and we discourage it.