More about HTML rules

Referencing other rules and static files

Your HTML rule can include HTML text and JSP tags or directives. It can reference other HTML, style sheets and scripts that are defined in rules of these types:

  • HTML Fragment rules
  • Text file rules
  • Controls

These rule types support the HTML rule type. None by itself defines an entire user interface display. Rules of these types can be included, referenced, or linked into your HTML rule. HTML rules are the only user interface rules that run directly from an activity. Also, HTML rules are the only user interface rules for which class inheritance applies:

  • Use the <pega:include> JSP tag to incorporate HTML fragments, and other HTML rules, into your main HTML rule. The HTML fragment may also reference Web server files, extracted from a binary file rule or text file rule.
  • Use the <pega:reference > JSP tag to incorporate property values.

At runtime, the system processes HTML rules in the context of a user's current clipboard (a source of values for properties). It interprets directives and retrieves clipboard values to create HTML for the server to send to the browser using either the HTTP or HTTPS protocol. This is known as stream processing.

Preview button

After you save the form, click Preview toolbar or type the equivalent keyboard shortcut CTRL+ALT+P to view an approximate runtime rendering of the HTML rule.

Note: Using the Preview function may cause the system to create a clipboard page and initialize properties on that page. This may in turn cause declarative processing to be executed. Use caution before implementing any on-change declarative processing that updates a database.

Using the Tracer

To trace the start and end of HTML rule executions:

  1. Access the Tracer.
  2. Click Settings to open the Tracer Settings panel.
  3. Under the Rule Types to Trace section, select the Stream Rules check box.

Where HTML rules are referenced

After you complete and save an HTML rule, you can cause the system to evaluate and display it in any of several ways:

  • In a section or harness.
  • In a flow action.
  • In an activity step using the Show-HTML method. Identify the HTML rule as the first parameter.
  • From a Submit button in another HTML rule that defines a form, using the following syntax for a stream defined on the current primary page (which must be a named, top-level page) or defined in the @baseclass class:
<INPUT TYPE="submit" NAME="pyStream=myStream">
  • From a Submit button in another HTML rule that defines a form, using this syntax for a stream defined on a page other than the current primary page:
<INPUT TYPE="submit" NAME="pyStream=myStream       &pyPrimaryPageName="otherPrimaryPage">
  • You can use the same specification in a URL directive to define an anchor that selects this processing. If the stream is based on the current primary page, include the PRIMARY keyword option in the URL directive.

Click Actions > View Java to view the generated Java of a rule. You can use the Java code to debug your application or to examine how rules are implemented.

Parent class

Through directed inheritance, the immediate parent class of the Rule-Obj-HTML class (and of several other classes containing HTML text) is the Rule-Stream class, not the Rule-Obj- class.


If your application rulesets contain HTML rules, run the Rule Security Analyzer before locking a ruleset version to look for possible security issues.