Important considerations for configuring advanced UI rules

Well-designed UI rules require some planning. Here are some guidelines to help you construct useful UI rules that do not have unwanted results.

Consider all possible events and negative cases

  • Make sure you handle what happens when the page is loaded, when field values change, when the page is saved, and so on.

  • If you set up a rule to be triggered whenever a field contains a particular value, make sure you handle what happens when the field is changed to a different value. You may need additional rules for that.

Consider field security and dependencies

  • If you set a field as required based on a specific value in another field, you must ensure that you set the field as not required for other possible field values.

  • If you enable only one user to view or edit a field by using the field level security, make sure you don't enable other users to view or edit the field by UI rules.

  • If a field's Display attribute is set to No or the field is set to be invisible by its status dependency, you cannot make it visible on the Web UI by using UI rules.

Pay attention to the following field validations

  • If you configure SQL rules to set values for auto-complete lists, make sure that you only set valid values.

  • PPM uses #@# as a separator. Make sure that:

    • Values used in SQL rules do not contain & or #@#.

    • SQL rules do not contain #@#.

  • The Dependencies field supports the following validations:

    • Text field

    • Auto-complete list

    • Drop-down list

    • Date field (short, medium, and long)

  • The Results field supports the following validations:

    Rule

    Validation

    setFieldRequired1

    setFieldEditable2

    setFieldVisible3

    setFieldStyle

    Text field

    Yes

    Yes

    Yes

    Yes

    Text area

    Yes

    Yes

    Yes

    Yes

    Auto-complete list

    Yes

    Yes

    Yes

    Yes

    Drop-down list

    Yes

    Yes

    Yes

    Yes

    Radio buttons

    Yes

    Yes

    Yes

    Not supported

    Date field

    Yes

    Yes

    Yes

    Yes

    Web address (URL)

    Yes

    Yes

    Yes

    Yes

    Link

    Yes

    Not supported

    Yes

    Not supported

    Password

    Yes

    Yes

    Yes

    Not supported

    Attachment

    Yes

    Not supported

    Yes

    Not supported

    Table component

    Yes

    Not supported

    Not supported

    Not supported

    Staffing profile

    Yes

    Not supported

    Yes

    Not supported

    1. setFieldRequired UI rule does not work for the above validations when the Display attribute in the field property is set to No or the Visible attribute in Status Dependencies is set to No.

    2. setFieldEditable UI rule does not work for the above validations when

    • Display Only attribute in the field property is set to Yes, or
    • Display attribute in the field property is set to No, or
    • Visible attribute in Status Dependencies is set to No, or
    • Editable attribute in Status Dependencies is set to No.

    3. setFieldVisible UI rule does not work for the above validations when the Display attribute in the field property is set to No or the Visible attribute in Status Dependencies is set to No.

Limitations

  • Rules can be executed on the printable version of Request Details, but with the following limitations:

    • Only SQL rules and the setFieldVisible() UI rule will be executed.

    • Only the Apply on page load rule event is supported.

    • The printable version should be opened from the request details page instead of by entering the URL address directly.

  • If you use special commands, for example, ksc_store, in a workflow execution step to change a field value, it does not trigger rules.

  • SQL for Hierarchical Display (tree validation) now supports resolving such static tokens as [SYS.USERNAME] and [SYS.USER_ID]. Other types of tokens, such as Request Details or Context related tokens, are not supported.

  • If a request contains a rule that uses KNTA_MULTI.Find_User_full_names([SYS.USER_ID]) from sys.dual, you cannot save the request, or remove associated entities from the request. . Use KNTA_MULTI.Find_UserNames([SYS.USER_ID]) from sys.dual instead.