Applications and Questionnaires Design Best Practices

Follow these best practices to create consistent, user-friendly applications and questionnaires.

For more design best practices, see Design Best Practices.

Questions to consider when planning an application

  • Should the application be placed in production immediately, or should it remain in development until its structure has been formally approved?
  • Is there any need to assign and track tasks associated with the application content records?
  • Would the use of multiple data levels make information stored within the application easier to use and organize?
  • Should notification emails be used to alert users of new and updated records within the application?
  • Which users should be granted ownership rights to the application?
  • Which users should be able to create global reports in the application to share with other application users?
  • Is there a need to change the default language for the application?

After you have made these decisions, you can frame the basic structure of an application, add the appropriate fields, configure the application layout, designate the items that display in the Navigation Menu, and create sub-forms, among many other application options.

Changing Core Applications Suggestions

  • Avoid structural changes to core applications as level changes can impact future upgrades.

  • Avoid group specific changes within shared applications as it could impact the group also using that application.

  • Avoid major changes to the Findings application as it can affect Findings generation in Questionnaires.

  • Remove fields from core applications by deactivating them and rename them with a ZZ prefix to avoid losing those fields for future reference.

Questions on a questionnaire

  • Limit questions on a questionnaire to fewer than 50.

  • Select and change default fields for the following options:

    • New Record (or Add New)

    • Records (or Display All)

    • Reports

    • Schedule

    • Search Records (or Advanced Search)

  • Use quick filters as follows.

    • Limit the number of filters to 3 - 5.

    • Confirm logical selection of fields are included for display.

Components

  • Fewer than 500 fields on layout
  • Fewer than 10 root tabs and 20 child tabs
  • Fewer than 100 data-driven events (and fewer than 25 ACL events)
  • Fewer than 10 record permissions fields (fewer than 7 rules-based record permissions
  • Fewer than 20 cross-reference fields per application, and fewer than 500 total references per record
  • Limit the number of displayed rich text controls
  • Limit the use of outside scrips (such as JavaScript) in custom objects
  • Fewer than 300 questions on a questionnaire. If you need more than 300, split questions into multiple tabs or questionnaires

Core modules

  • Where possible, avoid structural changes to core applications.

  • Be aware that level changes can impact upgrades and packaging.

  • Avoid many group-specific changes within shared modules

    • This can lead to conflict among other groups that need to use the same module

  • Avoid major changes to the Findings application

    • Changes could adversely affect Findings generation

  • If you need to remove fields from core applications for your design, follow these suggestions:

    • Deactivate the field (instead of deleting it) until development is nearing completion and you have confirmed the field is no longer necessary.

    • If the application is a shared application, perform due diligence to ensure that no other applications rely on the field to be deleted

    • Rename the field with a zzz- prefix.

Creating new core applications

  • Modules are considered Core when they are flagged appropriately in the database

    • To change module status to "Core" run the following SQL query in the database:

      1Update tblModule set system = '1' where guid = '[ENTER MODULE GUID HERE]'

  • Prior to having an updated license key, the licensed objects in the database can be manually updated so they appear appropriately during development

  • As part of the development process, if there are new licensed objects (Workspaces, Dashboards, Solutions, Applications, Questionnaires), an update/new license will be necessary.

    • To update licensed object run the following SQL query in the database:

      1insert into tblLicensedObject values (1, NULL, '[ENTER MODULE GUID HERE]',3,'2025-01-01',getdate(),2)