Are Equal – Action Description

Are Equal action is intended to compare values in two different fields. For example, it can check whether the current user is the supervisor of the user who requested a leave and consequently when the user is supervisor, the system will allow him to approve the request.

Expected Value Intended for entering an expected value.
Actual Value Intended for the definition of the field from which the real value should be obtained. Both fields can be edited by inserting SQL commands using SQL# prefix. For the better arranged entering, click the ... button right to the text field itself. If you click it, the larger text window will be opened where you can easily add your commands.
Not Equal Message Text which will be displayed when the entered values are not identical.

System variables can be used in fields during actions creating. For more information, go to System Variables Available in Actions.

Depending on the Completion Level adjustment from the previous step, condition fulfillment will be mandatory (Cannot Ignore for selected user groups) and until the condition is fulfilled, the transition will not be available to the user. In the case of the less strict control variant (Can Ignore) a notification will be displayed to the user that the expected and real values are not identical and whether or not he wishes to continue to the next workflow status.

If you wish to save the currently defined action for future use in another leave workflow type, you can do it via the button Template-> Export. If you have already defined and exported an action of the Are Equal type from earlier workflow editing, you can reuse it via the menu Template->Import. More information about the import and export of workflow actions can be found in the chapter: Import and Export of Workflow Action Definitions.

Example – Check Whether or Not the Current User Is the Supervisor

This control is usual in most approval workflows – e.g. request for bonus or leave.

Expected Value

Expected value, in our case it is possible to use a vicarious character that is returned by the identifier of the currently logged user:

$CURRENT_USER[ItemID]

Actual Value

Value that contains the inspected object. In our case it is the identifier of the direct supervisor of a user requesting a vacation (we divided the code by empty lines for better lucidity, but they cannot be used in the inserted code!)

SQL#SELECT Supervisor.ItemID
FROM Users Supervisor INNER JOIN Relations ON Relations.ItemGUID1 = Supervisor.ItemID
INNER JOIN Users U2 ON U2.ItemID = Relations.ItemGUID2
INNER JOIN Relations rVacUser ON rVacUser.ItemGUID1=U2.ItemID
INNER JOIN Vacation ON Vacation.ItemID = rVacUser.ItemGUID2
WHERE Relations.RelationType LIKE 'SUPERVISOR' AND Relations.Direction = 2
AND rVacUser.RelationType='VACATION' AND Vacation.ItemID = '$CURRENT_ITEM[ItemID]'

Not Equal Message

Is displayed when a condition hasn't been fulfilled and the values are not identical. For example a message for everyone who is not the direct supervisor. You can write here any text or use a system message as in our case: "Current user is not the supervisor."

Example – Check Whether Company Is Related to Deal

This control is specified for a deal but can be used (modified) for a project.

Expected Value

Expected value, in our case it is possible to use only value 1:

1

Actual Value

The value that contains the inspected object. In our case, we check whether there is Customer selectd on the Deal item:

SQL#SELECT CASE WHEN $Customer_RELATION_ITEM[FileAs] IS NULL THEN 0 ELSE 1 END

Not Equal Message

It is displayed when a condition finds out value 0 (relation to a company does not exist) instead of value 1 (relation exists). You can write here any text, for example: "There is no relation to a company on this deal."