| # Configure Trigger Conditions (datrg1110m000) Use this session to enter one or more conditions for a trigger. You can define multiple separate conditions that are connected via a logical 'And' or via a logical 'Or'. Refer to the online field help for more information. Conditions defined for a trigger will only check the top level component. This session is a modal dialog. When you leave this session and return to the Triggers (datrg1100m000) session, the trigger program is regenerated automatically, if the action settings were changed. Example The following example shows a setup for three triggers. Triggers:
Trigger | Description | Path for Program | Condition Template
quotation | New quotation created in ERP | e:\Trigger\Objects | Dialog
customer | Customer is made inactive | e:\Trigger\Objects | Dialog
order | Order status changed | e:\Trigger\Objects | Dialog
Conditions for 'quotation' trigger:
Seq. Nr. | And / Or | Type | Comp. | Attribute | Operator | Value | Becomes
10 |  | Class |  |  | = | Quotation |
20 | And | Event |  |  | = | Create |
30 | And | Attribute | Quotation | Status | = | Entered | No
Note that the condition on Class is only needed if the same trigger can receive events from multiple different classes. Conditions for 'customer' trigger:
Seq. Nr. | And / Or | Type | Comp. | Attribute | Operator | Value | Becomes
10 |  | Attribute | Customer | Status | <> | Active | Yes
20 | Or | Event |  |  | = | Delete | No
30 | And | Attribute | Customer | Status | = | Active | No
Conditions for 'order' trigger:
Seq. Nr. | And / Or | Type | Comp. | Attribute | Operator | Value | Becomes
10 |  | Attribute | Order | Status | Changed |  |
Related topics Triggering Sequence Number A number to indicate the sequence in which: the conditions must be evaluated. the conditions are displayed If two conditions have the same sequence number, the evaluation sequence is equal to the sequence in which the user entered or saved the conditions. And/Or The Boolean operator that indicates how a condition is linked to the previous one: 'Or' (the entire trigger condition is met if one of the conditions is met), or 'And' (the entire trigger condition is met if all conditions are met). This field is unused for the first condition. Note that no parentheses () are available for defining conditions. So, a condition such as: `eventtype is 'create' and (status = 2 or status = 3)` must be defined as: `eventtype is 'create' and status = 2 or event type = 'create' and status = 3.` Condition Type A condition can check either the event type, the class or an attribute value. Therefore the condition types are : Attribute Value Event Type Class If you choose a value other than 'Attribute Value', the attribute is irrelevant and cannot be filled. You only need Conditions on class or event type if the same trigger is invoked for events on multiple classes or event types. Attribute The name of the attribute to be checked. Operator The comparison operator that is used for the class, event type or attribute. Available operators are Equal (=) Not Equal (<>) Less Than (<) Less Than or Equal To (<=) Greater Than (>) Greater Than or Equal To (>=) Changed. You can use this operator to test whether the value of an attribute differs from the previous value. Notes regarding the 'Changed' operator: In case of a create or delete event all attributes are 'changed'. In case of change events however, some attributes may have changed while others are not 'changed'. You can only select the 'Changed' operator if the condition type is 'Attribute Value'. If you select the 'Changed' operator, you cannot enter a value for the attribute. Value The value that must be checked. If the condition type is 'Event Type', the value must be 'create', 'change', 'delete' or another event type that can be input for the trigger. If the condition type is 'Class' the value must be a class that can be used in a trigger. In other cases the value is an attribute value that must be checked. Data Type The type of the attribute used in the condition. Enter "Number" if the attribute to be checked contains a numeric value (either with or without decimals). Enter "String" if the attribute to be checked contains a string. Note You can only edit this field when the condition type is "Attribute Value" and the operator is unequal to "Changed". In all other cases the data type is irrelevant Notes on numbers and strings The following examples show how numbers are handled differently from strings. Conditions on string values: If myAttribute contains "hello", condition myAttribute = "0" is not met If myAttribute contains "", condition myAttribute = "0" is not met If myAttribute contains "1234", condition myAttribute = " 1234" is not met If myAttribute contains "456", condition myAttribute > "12345" is met The same conditions on numeric values: If myAttribute contains "hello", condition myAttribute = "0" is met (because the 'value' of "hello" is 0) If myAttribute contains "", condition myAttribute = "0" is met If myAttribute contains "1234", condition myAttribute = " 1234" is met (because both values are equal) If myAttribute contains "456", condition myAttribute > "12345" is not met (because 456 is less than 12345) For strings, leading spaces are relevant, but trailing spaces in the Value field are not taken into account. So a condition myAttribute = " 1234 " is regarded as: myAttribute = " 1234". Notes on specific data types Enumerate descriptions are strings, enumerate values are numbers. Date and time numbers are numbers, formatted dates are strings. Note that if the date format is DDMMYYYY, for example, a comparison condition using '<', '<=, '>' or '>=' will not be useful. Either use another date format (such as YYYYMMDD) in that case, or program the condition in an Attached Script. For numbers having decimals, use a '.' as the decimal sign. Numbers in exponential format are handled as numbers. Text numbers are numbers. Complex data types (such XML sub-trees containing text contents) cannot be handled in a condition. Becomes This field indicates when a condition is met: Becomes = No: the condition is met if either the old or the new attribute value meets the condition Becomes = Yes: the condition is met only if the old value does not meet the condition but the new value does. For detailed information, refer to The 'becomes' setting |