Oracle Fusion Applications support client-side and server-side validation. A page may contain a combination of these two types of validation:
- Client-side validation occurs in the browser with no round-trip required to the server. This allows for fast, performance-optimized validation. ADF provides a set of client-side validators and converters that fall into this category, and product teams can define others. Generally, this kind of validation is not suitable for interfield, page-level submissions and is not used for the validation of more complex business rules.
- Server-side validation requires a round-trip from the browser to the server with business logic on the middle-tier using business rules to validate any submitted data. This is slower than client-side validation but allows for more complex processing of business rules, is generally more secure, and allows page design to be independent of any logic code.
With the exception of the ADF validators and converters that act when users enter data, all validation requires an explicit user action to act, such as canceling, closing, or navigating from a page or tab. These actions post data to the server.
 |
| Figure 2. Component-level message |
Follow these guidelines for tables:
- Show error and warning messages on editable fields using only a note window. A message list of editable components with messages includes links to the components.
- Rows may be programmatically marked with an icon in the row header indicating an error if teams can determine how to do so (figure 4). Work with your application development team.
- Individual fields should be validated the same way as form fields. Teams can convert entity level exceptions (that is, business rule dependencies) to attribute-level exceptions where possible.
- For entity-level exceptions converted to attribute-level exceptions, tell users which fields have the error by naming the fields in the message text (figure 5). The application team can decide which field to show the converted exception on.
|
 |
| Figure 4. Optional table row indicators with an editable field error |
 |
| Figure 5. Optional entity-level exception editable fields in a table row with optional table row header indicators |
|
Follow these guidelines for page navigation:
- Navigating between pages should validate all editable fields on the current page, as if a final save or submit action was committed, before users can navigate to another page. Where component validation is not possible, name the fields that have an error or warning in the message text.
- Do not allow navigation to continue until all errors have been fixed on the current page.
- Use warnings each time users change data on the page.
- If there is a risk of losing data when navigating or closing a page, then use the ApplCore and ADF page-level warning dialog box with a question and action buttons to enable users to understand the consequences and confirm their navigation intention. If you must use your own message, see the Save Model Guideline.
- For confirmation messages used when navigating between pages, show the message on the destination page, so that the navigation is not blocked. For more information, see the Create in a Form pattern.
|
 |
| Figure 6. Icons on tabs |
 |
| Figure 7. Icons on train stops |
|
Follow these guidelines for composite components:
- For master-detail components, use an approach similar to that used with tabs. Validate each field as it is completed.
- If the master field is the cause of the validation failure, use the same approach used for editable fields (figure 8).
- If validation occurs on hidden details, place the icon before the master field and display validation messages on the editable fields when the master field is selected (figure 9).
|
 |
| Figure 8. Error on a master object |
 |
| Figure 9. Error on a detail object |
|