Advanced Operator Logic

When creating filters, you can use custom operator logic to form relationships between the individual filters. By default, multiple conditions are related with the AND operator, as are multiple actions. However, by creating custom operator logic, you can also use the OR and NOT operators, as well as parenthetical groupings.

Operator logic statements are evaluated left to right with parenthetical groupings evaluated first. By using advanced operator logic with your filters, you can eliminate extraneous data that may be imported with your data feed or included in your search results.

Custom operator logic

Custom operator logic allows you to use multiple operators and parenthetical groupings to further specify your advanced operator logic.

Note: The OR operator is supported only when you are filtering fields within a single level of a leveled application or in a flat application. If you are filtering fields across different levels and applications, you must use only the AND operator. Ultimately, the results of a search across multiple levels and applications depend on the filters you apply and the relationships the search process builds between the filtered fields.

Important: Custom operator logic must validate before you can save or apply changes to your data filter. If your custom operator logic does not validate, you are prompted with an "Invalid Operator Logic" error message.

Example: Single operator expression

You are importing assets from an external source into the Assets application. You want to import assets from your external file only if they are labeled as being in a production environment or if they are customer impacting.

To set up this process, you define data filters to evaluate both the System Environment and Security Class elements in your external data file for the values you want. Without using operator logic, your conditions are related with the AND operator, and the data feed imports items that are both in a production environment AND have a high security class. By using operator logic with the OR operator, you achieve the result you want: Assets that are in a production environment OR have a high security class are imported into the Assets application.

Single operator expression

Example: Multiple operators with nested parenthetical expressions

You also can use nested parenthetical expressions in your operator logic. Nested parenthetical expressions allow you to combine the results of 2 separate logical conditions, thereby creating an additional logical condition, as shown in the following example.

Advanced operator logic in search

Based on the above criteria, the following table details the result of the operator logic.

(1) System Environment

(2) Security Class

(3) Manufacturer

(4) Operating System

(5) Server Room

Result

Production

Medium

IBM

RHEL 4.0

Denver Facility

Imported

Testing

High

Dell

Windows Server 2003

Denver Facility

Imported

Testing

High

Dell

Windows Server 2003

Chicago Facility

Not Imported

Production

Medium

Dell

CentOS

Denver Facility

Not Imported

The Data Feed Manager evaluates the nested parenthetical expressions first. In the last example in the previous table, since neither 3 or 4 evaluate to "TRUE" in the nested parenthetical expression, the primary parenthetical expression evaluates to "FALSE," and thus the entire logical condition fails and the data is not imported, even though all of the other conditions are met.

Example: Multiple operators with a parenthetical expression

You can use additional operators by incorporating parentheses in your operator logic, as shown in the following example.

Advanced operator logic using parentheical expressions

Based on the above criteria, the following table details the result of the operator logic.

(1) System
Environment

(2) Security Class

(3) Manufacturer

Result

Production

Medium

IBM

Imported

Testing

High

IBM

Imported

Production

High

Dell

Not Imported

Testing

Medium

IBM

Not Imported

The system evaluates the parenthetical expression first. In the last example in the previous table, since neither 1 or 2 evaluate to "TRUE," the entire condition fails even if 3 evaluates to "TRUE".