Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 allows frevvo allows you to generate forms automatically based on one or more pre-existing XML schemas. This enables you to quickly create forms that align with your databases, web services, BPM system, and key business applications.

Tip

For practical examples of this approach please refer to Creating a Form Connected to your Database.

In general,  can  frevvo can be created via two different methods:

...

It's very common and easy to create your form by dragging and dropping controls from from frevvo' control s control palette to the form canvas. As you do this automatically frevvo automatically creates an XSD description of your form's controls. You can download this XSD from the Forms and Workflows Home Page. This method is typically used when your forms do not need to integrate with a back end system.

You can mix and match these two approaches of form creation. You can create all the controls in your form from XML schema elements. You can create all the controls in your form from the  palettethe frevvo palette. Or you can create part of the form from schema elements and part from palette controls that have no relation to the elements in your schema.

...

When you upload a schema to frevvo, you can use any and all global elements in the schema. If you want items from the schema that are not global elements, edit the schema and make the items global elements before uploading the schema to frevvo

At a high level, when you work with schemas you do the following:

  • Upload your schema to one of your  projectsfrevvo projects
  • Choose the global elements you want and add them to your form’s Data Sources 
  • Generate form controls from the global elements you added 
  • Modify the controls (if necessary) to suit your form

These steps are discussed in detail below.

Image RemovedImage Added

Form Schema

 automatically frevvo automatically generates an XSD schema representation of your form as you drop controls from the  palette the frevvo palette to the form designer canvas. You can download this XSD by selecting Download Schema from the Action Menu on the Forms and Workflow Homepage. The XSD elements are named after the control names. The types are based on which control you selected from the palette. For example a Quantity control will appear as an xsd:integer. A dropdown will be an xsd:simpleType restriction. Controls with patterns such as the Zip will have an auto-generated type with your pattern. Click "expand Source" for an example.

...

First, you need to generate an xml schema that will be uploaded to to frevvo. See the chapter Creating a Form Connected to your Database for instructions on generating a schema using the  Database the frevvo Database Connector.

Using Your Schema

Before you can use global elements from a schema in a form, you must upload the schema XSD file into one of your  projectsfrevvo projects. To upload a schema:

  1. From the Projects page, click the name of the project with the forms that will use the schema.
  2. Click Schemas from the left-hand menu.
  3. From the Schemas page, click the Add icon.
    Image RemovedImage Added
  4. On the Upload Schema Page, type a meaningful name for your schema and provide a description. (These are optional but highly recommended.) The Name and Description are each limited to 255 characters.
  5. Click Browse, locate the schema XSD file or zipfile with multiple related XSDs on disk.
  6. If there are multiple global elements in the zipfile(s) specify exact name (relative to the top level directory separated by the '/' character of the XSD file containing the root schema.
  7. Click Upload.

If your schema is valid, its name now will appear on the Schemas page. You can sort the Schemas list alpahbetically alphabetically (A-Z or Z-A). If you tried to upload an invalid schema,   will frevvo will not allow the upload and display an error message.

...

Note

If you add a data source (XSD) to your form/workflow that has the root element name "form" that  uses that frevvo uses by default for the palette control XSD, you will see an application error. To resolve, edit the form or workflow "Element Name" property and change it from the default "form" to whatever you want to call it.

...

  1. Open the form in the Forms Designer (by clicking the form name from the Form and Workflows Homepage).
  2. In the Data Sources area on the left side of the Forms Designer, click New from XSD icon.
  3. You’ll see all available schemas; click the plus sign to expand the schema folders and display the global elements from each.
  4. Click the  icon next to each global element you want. If the element is a complex type, you will see the parent element only, but the child elements will be added automatically to your form’s Data Sources. You may add as many elements as you like.

Image RemovedImage Added

After you close the page, you’ll see in the Data Sources area each element you chose. (We added the Address Book and Policy Information global elements in this example.) For each element you added to your form’s Data Sources,  will frevvo will generate an XML instance document that you will see in the Submissions repository each time users submit your form, even if you do not end up generating a control from the element. Therefore, if you add an element to your form but later determine you don’t need to generate a control from it, make sure to delete the element from the form’s Data Sources.

Image RemovedImage Added

Adding multiple data sources from the same namespace will cause a clash in your form. And in fact  will , frevvo will assist you by preventing you from making this mistake. A warning message is displayed in the Add Data Source panel when you click plus.

...

Similarly, multiple XSD files composing a single logical namespace is not supported. Instead, merge all XSD files for the same namespace into a single XSD file and then upload into into frevvo.

Generating Controls from Schema Elements

...

The controls are added above the currently selected control. The only exception is if the control is part of a repeating group and the currently selected control is not one in that group.  must  frevvo must add controls in a repeating group to the same location on the form as the others from that same group. So it will ignore your selection. 

...

Schema elements that specify element restrictions will automatically be displayed as selection controls. It will display as a dropdown if there are four or more valid choices and a radio button if there are fewer than four valid values. You can change the display type between radio and dropdown and checkbox using the Display As DisplayAs property.

Xsd:boolean types will automatically be displayed as a boolean checkbox. If checked, the value will be 'true' and if unchecked it will be 'false' if the element is required and no value if optional. You can set the label of the true and false options via the Labels property. However, only the 1st option which maps to the 'true' choice will be displayed. If you add more then 2 labels the extra labels will be auto removed. If you set only a single label a 2d label of 'false' will be auto-added for you.   

Show Controls from Data Source

To locate the controls on the designer canvas that come from one of the data sources added to the form, click the  icon. This will highlight the associated controls.

Image RemovedImage Added

Modifying Controls Generated from Schema Elements

...

  • Make changes to the controls in the Forms Designer 
  • Make changes to the schema, and then update the schema in  by frevvo by uploading the revised schema

...

  • Change the control Name — although this does not change the underlying XSD element name.
  • Create rules that rely on the controls. 
  • Set default value for the controls.
  • Rearrange the location of controls in your form. This includes moving sections into tabs or panels. As noted above, in addition to the normal drag and drop restrictions, you may not drag any control into or out of a repeat control generated from a schema element. 
  • Modify the control’s Display As DisplayAs property to change how the control looks on the form. The Display As DisplayAs property appears only for controls created from schema elements and appears instead of the Control Type property that you see for controls you have dragged in from the palette.   
  • Change the control’s label. You’ll see the new label name in the Submissions Repository Data Tab and in Excel if you download the submission results. However, the Submissions XML document for the schema will reflect the original element name.

...

You can see an element’s XSD type by clicking the control in your form and hovering over the Properties area of the Forms Designer--the XSD type and the global element to which it is bound will be displayed as a tooltip. See Display As DisplayAs below. The only way to change the validation for a control generated from a schema element is to revise the schema and update the schema in  with frevvo with the new version. The same is true for other changes you wish to make that you cannot accomplish in the Forms Designer.

...

You may also need a control to allow multi-select options. Like dropdowns dropdown and radios radio controls described above, the control you generate from the initial schema will be formatted as a text control.   You can make the control a checkbox by changing the control’s Display As property to Checkbox and changing the actual schema type to xsd:list as shown below:

...

Once the Color Choice control is formatted as a checkbox, a labels property will display in the properties settings tab for this control. Enter your checkbox options here.
Image RemovedImage Added

Limitations

Tip

Currently, it is not possible to list the options directly in the schema or to have a checkbox option containing a space. So a label of "dark blue" will appear in the database as "dark_blue".

...

Here is a screenshot of a schema before and after adding the annotation.

Image RemovedImage Added

Message Control

...

Since the schema says the element is unbounded, the control you generate initially will be a repeat control.  You’ll see the the repeat icon in the Forms Designer and if you don’t make any changes, users will see the + sign that comes with repeat controls.

Image RemovedImage Added

In this case, change the schema to indicate you only want to work with one customer at a time, as shown below.     

...

Code Block
<xsd:element minOccurs="0" name="Home Phone" type="phoneType"/>

Now the  form the frevvo form will only accept valid phone numbers. If you enter an invalid phone the form will flag the field as invalid.

...

This will change the control's appearance but will not affect how the control validates data. If you need to modify the control's validation behavior, you must update the schema Updating a Schema.

To see the control's underlying data type and the global element to which it is bound,  you can hover over the property tab. The expanded Data Source shown in the image below, displays the XSD path stated in the hover - the control named giftidea, is part of a complex type control named address, which is bound to the global element, addressBook. The underlying data type for the giftidea control, which was changed to display as a dropdown, will remain xs:string. 

Image RemovedImage Added

If you change the Display As value to one of the select control types: radio, dropdown or checkbox, a new property called Labels becomes visible. By adding strings into the labels property you can restrict the values allowed to be entered into this control when users use your form. When the form is submitted the value will be equivalent to the selected option label.

...

If your database column allows NULL then the XSD schema generated by the  database the frevvo database connector will set minOccurs='0' for this control. When this control is used in your form the field will not be required. To make this field required you have to edit the XSD to set minOccurs='1' which makes the XSD schema more restrictive then your database schema.

...

There are times when you have several fields that you want hidden and then only want to make visible depending on the value entered into another field. Thus only when the fields are visible do you want them to be required. Currently hidden required fields are still required and prevent the form from being submitted. Automatically making hidden fields not-required may be added in a future release of .

Imagine a form asks asking if a student speaks Spanish. If the answer is yes you want to make additional fields visible and required. But when the student doesn't speak Spanish the controls should remain hidden and not be required. Here is a solution for this use case:

...

  1. Drag/Drop a Section control from the  palette frevvo palette into the form
  2. Uncheck the visible and required properties on the section control
  3. Drag all of the from XSD controls that need to be required only when visible into the section control
  4. Add a form.load rule that sets <section>.required=false. It is not enough to set the required checkbox in the section's properties panel. It must also be done in a form.load rule
  5. Add a 2nd rule that sets <section>.required=true when you make the fields visible, with an else clause to hide the fields that clears all values from those hidden controls AND sets <section>.required=false

...

Section


Column


Code Block
languagejavascript
if (form.load) {
  SpanishOnly.required = false;
}



Column

Image RemovedImage Added


Here is an example show/hide rule where name and age are required fields only for Spanish speaking students.

Section


Column


Code Block
languagejavascript
if (spanish.value == 'yes') {
  SpanishOnly.required = true;
  SpanishOnly.visible = true;
}
else {
  // Must clear values in hidden fields
  // Must be done BEFORE setting <section>.required=false
  name.value = null;
  age.value = null;
  SpanishOnly.required = false;
  SpanishOnly.visible = false;
}



Column

Image RemovedImage Added



Warning

Do NOT add required palette controls into an optional schema section. The from schema section tries to validate controls inside it as if they are inside an optional section, but because the controls are from palette they are not bound to the same schema. Validation will not work as expected. If these controls are needed, update the xsd to add the controls directly to the schema. Refer to Customizing the XMLSchema for examples of common xsd customizations.

Elements with a Nillable Attribute

fully frevvo fully supports nillable element attributes in schema. In previous versions, a required field (minOccurs = 1 or greater) in a form generated from schema, HAD to have a value for the form to be submitted. The control was considered required, ie. the control would display a yellow background color. Nillable attributes override the fact that the field is required and, if present and set to true, required controls will now be considered optional.  When you submit a form and do NOT have a value in a minOccurs > 0 nillable field, the XML document  document generated by  will contain frevvo will contain an EMPTY element like this <control name xsi:nil="true"/>.

...

  • Elements that contain both nillable=true and minOccurs=0, will NOT be generated in the  xml frevvo xml document.
  • Elements that are required, minOccurs > 0, and nillable = true will be treated as an optional element. This means that the UI will generate an optional control for this element instead of a required one.
  • When the value is not specified in use mode,  will  frevvo will generate the element with xsi:nil=true. Ex: <control name xsi:nil="true"/>     

...

The XML document generated by  when frevvo when the form is submitted looks like this: Notice the xsi:nil="true" for all controls where minOccurs > 0 AND nillable=true and the user did not enter a value into the form.

...

If you add an element with enumerations from schema to your form, any dynamic options must conform to the schema.  For example, you can create a drop down dropdown from a schema that restricts values to say red, green, blue and in a rule set the options to Mr, Mrs, and Ms. In the form if you choose one of the values from the dropdown (Mr) you will get an Invalid value message since it's not part of the original schema.

...

If you need to make changes beyond those allowed in the Forms Designer, make the changes in your XSD file and replace the old schema in your  project frevvo project with the new one. 

To update a schema:

...

Forms and Workflows that are impacted by the schema update will have a gray error icon in the Form/Workflow's list. Compatibility will only be checked for the top-level elements (i.e. DocumentTypes) used in a form/workflow. If a top-level element is not used, then the form/workflow will not be incompatible.

...

When schema update is done, any controls that are no longer valid to that schema are "detached" and fall into the default from scratch schema.  marks  frevvo marks them in error (yellow background) with the message "Control is unbound in form but in a from-schema repeat. You must remove this control." to give the designer a visual cue that some investigation is necessary. See Adjusting Your Form after Schema Updates.

...

Warning

Update schema will fail if you change the 'global element name' of your schema. You will see  this error:

This scenario is not supported by frevvo. Changing the global element name changes the schema and cannot be used to replace the previous schema.

...

The list above is not exhaustive. Generally speaking, the more extensive your schema changes are, the higher the likelihood that you will have to delete the original controls and generate new ones.  (Obviously Of course, if your schema has changed drastically, you may want to consider creating entirely new forms instead of trying to edit the old ones.) 

Some minor schema changes  handles frevvo handles automatically and does not require you to replace the control in the form. For example:

...

For example, Let's say you create a form and a workflow that uses that form as a step from an Address Book schema. The form created from this schema contains Title, Last Name, Address2, Zip code, Home Phone, and Gift Idea fields among others. You make these updates to the schema and then update it as described above.

...

When you edit the form/workflow step, after updating the schema, warnings and instructions will show for any controls that have become unbound etc. Notice the Number of Members in Family field has been added to the Data Source and now can be added to the form/workflow.
Image RemovedImage Added

Although we do not recommend leaving unbounded controls in your form, you are not explicitly prevented from doing so.  If you save your form with unbounded controls, data submitted in these controls will be included in the default XML Submission document for the form itself as opposed to being captured in the XML document for the schema.

...

One exception is repeating elements. If you edit your schema and delete elements from within a repeating complex type,  will frevvo will automatically remove those deleted elements from your form. This is because a from schema repeating complex type is not allowed to contain any controls from the palette. Once the deleted elements automatically become unbound from the schema  automatically frevvo automatically deletes them from the form.

Also, repeating elements added to the form from the Data Source that are repeating elements are automatically added into the associated repeat control(s) if any already exist on your form. While all non-repeating controls are simply added to the top of the form when added from the Data Source.

Tip

Searching submissions using a Repeat control from schema Data Sources is not supported.

Deleting Unused Data Source Elements

...

However, keep in mind that a separate XML document is created for each global element you've added to your form, so if you  you don't need a global element, delete it from the form's Data Sources. Do this by clicking the icon next to the element's name. As the illustration below shows, you cannot delete child elements of a global element; you must delete the entire parent. If you have created controls for any child element, do not delete the global (parent) element.  

Image RemovedImage Added

Deleting a Schema

If you upload a schema you do not need, you can delete it. Choose Schemas from the left-hand menu and click the  icon next to the name of the schema you wish to delete. (If you are working in the Forms Designer, you must finish or cancel your form to access frevvo's left-hand menu.)

If you choose to do this, be certain that none of your forms rely on elements from this schema. Any forms that use elements from the deleted elements will be adversely affected, so  will so frevvo will prevent you from deleting any schemas that are currently in use. You will see this message that list all the forms/workflows that are using the schema. 

Image RemovedImage Added

If you still need to delete the schema, edit each form/workflow listed in the warning message and remove it from the form/workflow data source. Then go back to the Schemas tab and delete the schema.

...

Schema validation error messages are long and complex. Some common schema validation errors have been translated into messages that give the user a hint about why the value is invalid. You may see these errors if you enter a value does not match a required pattern, a value exceeds the maximum length or is less than the minimum length specified in the schema.

Image RemovedImage Added

Unsupported Types

...