Dynamic Lookup Filter

Definition

Description

Dynamically set, lookup, increment, and clear values in an array list.
If event matches Condition, create an array element with the contents of FieldName as its index, and Expression as its value. Clear the array element after TimeInterval.
If event matches Condition, lookup the value of the array element with the contents of FieldName as its index, and assign its value to FieldName.
If event matches Condition, increment the value of the array element with FieldName as its index name, and assign its new value to FieldName.
If event matches Condition, clear the value of array element with FieldName as its index name.

 

 

Comments

Only perform one of the [Create, Lookup, Increment, Clear] action, whichever Condition is satisfied first.

Please note that empty Condition always evaluates to true.

An empty or non-existent index FieldName is an empty string "", and which is a value array index name.

An empty or non-existent Expression has the value of an empty string "", which is a legal value assigned to the array element.

When setting a FieldName to the value of an array element, create the FieldName if it does not already exist in the event, or overwrite its value if it already exists.

When attempting to increment a non-numeric string value by 1, its value will be 1.

If a non-existent array element is incremented, create it, and set its value to 1.

If a non-existent array element is looked up, the event will not be modified.

When adding or incrementing an array element that already exists, its expiration timer is reset.

 

Example

<filter objectId="Case1-Test" type="DynamicArrayLookUpFilter">
	<parameter autoSetDescription="false" comments="Add comments for Condition..." description="app=case1" type="Condition">
		<negatePrimaryCondition>false</negatePrimaryCondition>
		<conditionRelation>All</conditionRelation>
		<conditionSpec>
			<negate>false</negate>
			<fieldName>ev:app</fieldName>
			<operator>eq</operator>
			<valueType>string</valueType>
			<value>case1</value>
		</conditionSpec>
	</parameter>
	<parameter type="FieldName">ev:msg</parameter>
	<parameter autoSetDescription="true" comments="Add comments for Expression..." description="2" type="Expression">
		<type>String</type>
		<formatString>2</formatString>
	</parameter>
	<parameter type="TimeInterval">
		<time>5</time>
		<units>sec</units>
	</parameter>
	<parameter autoSetDescription="false" comments="Add comments for Condition..." description="app = case2" type="Condition">
		<negatePrimaryCondition>false</negatePrimaryCondition>
		<conditionRelation>All</conditionRelation>
		<conditionSpec>
			<negate>false</negate>
			<fieldName>ev:app</fieldName>
			<operator>eq</operator>
			<valueType>string</valueType>
			<value>case2</value>
		</conditionSpec>
	</parameter>
	<parameter type="FieldName">ev:msg</parameter>
	<parameter type="FieldName">result</parameter>
	<parameter autoSetDescription="false" comments="Add comments for Condition..." description="app = case3" type="Condition">
		<negatePrimaryCondition>false</negatePrimaryCondition>
		<conditionRelation>All</conditionRelation>
		<conditionSpec>
			<negate>false</negate>
			<fieldName>ev:app</fieldName>
			<operator>eq</operator>
			<valueType>string</valueType>
			<value>case3</value>
		</conditionSpec>
	</parameter>
	<parameter type="FieldName">ev:msg</parameter>
	<parameter type="FieldName">result</parameter>
	<parameter autoSetDescription="false" comments="Add comments for Condition..." description="app = case4" type="Condition">
		<negatePrimaryCondition>false</negatePrimaryCondition>
		<conditionRelation>All</conditionRelation>
		<conditionSpec>
			<negate>false</negate>
			<fieldName>ev:app</fieldName>
			<operator>eq</operator>
			<valueType>string</valueType>
			<value>case4</value>
		</conditionSpec>
	</parameter>
	<parameter type="FieldName">ev:msg</parameter>
</filter>