Routing rules are logic statements in Aeon that can be used to automatically move requests from one status to another if the logic statement that applies is true. The rules are set up in the Routing table, located in the Aeon Customization Manager under the Routing tab. When using routing rules, the staff user does not need to take any action. Aeon will automatically move requests based on the criteria configured in the routing rule. The staff does not even have to be aware that the rules have been set up.
The process of automatically routing transactions to other statuses in Aeon using the Routing table and routing rules is referred to as System Routing. System Routing is one of the most powerful functions of the Aeon system. By using the Routing table, you can change the default Aeon processes by having the system automatically skip or add steps to the basic Special Collections fulfillment process. This article covers various System Routing options that may be set up as a part of customizing your Aeon workflow.
Enabling Routing | Creating Routing Rules | Editing Routing Rules | Deleting Routing Rules | General Guidelines for Creating Routing Rules | Creating Match Strings | Example Routing Rule
Enabling Routing
Routing must first be turned on before the system will apply any of the routing rules to transactions during processing. This is done in the Aeon Customization Manager. To turn on routing:
- Open the Aeon Customization Manager.
- Navigate to System | Routing.
- Select the RoutingOn key.
- Set the value to Yes.
- Click the Save button.
- Routing is now enabled.
Creating Routing Rules
You can create routing rules in the Routing table located in the Aeon Customization Manager under the Routing tab:
- Open the Aeon Customization Manager.
- Click the Routing tab on this screen to open the Routing table.
- Click the New button. This opens the New Route edit box at the bottom of the table.
-
Complete the following fields:
Status Select the transaction status/queue to which the rule will apply from the dropdown menu. Once configured, the routing rule will only apply to requests that enter the status selected in this setting. This value may be any legitimate Aeon status, including any existing custom queues.
The queue type (Transaction or Photoduplication) is displayed for each status/queue in the Status dropdown menu. Once a status is selected, the values that appear in the New Status dropdown will be limited to the statuses within that queue type.
Match String Enter the query string specifying the conditions that must be matched by a request before the rule will be applied. See further explanation below in Creating Match Strings.
New Status Enter the new transaction status/queue to which the request will be routed. This value may be any legitimate Aeon status, including any existing custom queues. Description Enter text that describes what the rule is intended to do. - Click the Save button to save your entry.
- The new routing rule appears in the Routing table:
Editing Routing Rules
- Open the Aeon Customization Manager.
- Click the Routing tab on this screen to open the Routing table.
- Click on an existing rule in the Routing table to bring up the Edit Route edit box at the bottom of the table.
- Make your changes to the rule's configuration settings.
- Click the Save button to save your changes.
Deleting Routing Rules
- Open the Aeon Customization Manager.
- Click the Routing tab on this screen to open the Routing table.
- Click on the entry in the Routing table for the routing rule that should be deleted.
- Click the Delete button.
- The selected routing rule is instantly and automatically deleted.
General Guidelines for Creating Routing Rules
- Routing rules should be created so that no two routing rules apply to the same transaction at the same time. This means that the Status and Match String values, taken together, should be unique for each rule in the table.
- Routing rules should be created so that they are unique to your process tracking. In other words, the same rule should not apply to the same transaction multiple times during the course of standard processing. Routing rules should be created to be unique to a specific step of your process.
- The routing rule Match String value allows an unlimited number of characters to support more complex automated workflow functions. Prior to v5.1, this limit was 500 characters.
- Routing rules can only be created using statuses within the same queue type (i.e., requests in Transaction-type statuses can only be routed to other Transaction-type statuses, and requests in Photoduplication-type statuses can only be routed to other Photoduplication-type statuses).
-
Routing rules should only reference fields in the Transactions, Users, Queues, and ReadingRoomHistory database tables.
Transaction and User custom fields can also be used in routing rules. See Unlimited Custom Fields for configuration information.For a complete list of the fields in each database table, see Aeon Database Tables.
Creating Match Strings
The Match String value is arguably the most important piece of the routing rule. Each time the status of a transaction is changed by the Aeon Desktop Client, the system also runs a query to cycle through any rules that exist in the Routing table and determine if any active routing rules should be applied to that transaction.
The match string is where you set the conditions that distinguish one routing rule from another. These conditions, coupled with the other conditions specified in a routing rule, determine which transactions are impacted by the rule and which are not.
For assistance configuring the logic in the match string, contact Atlas Support at 757-467-7872 or (800) 567-7401 or send an email to support@atlas-sys.com.
Guidelines for the Match String:
-
Each Aeon field value name used in the match string must be preceded by a (u.) for the Users table, a (t.) for the Transactions table, a (q.) for the Queues table, or (rrh.) for the ReadingRoomHistory table. Routing rules should only reference fields from these database tables.
Transaction and User custom fields can also be used in routing rules. See Unlimited Custom Fields for configuration information. - If you are using OR clauses in your match string, it's a good practice to surround them with parentheses. For additional guidance, see Using Or Clauses in the Match String.
- Only single quotation marks ('), not double quotation marks ("), should be used in the match string. For additional guidance, see Using Quotation Marks in Aeon Routing Rules.
- Special formatting is required within the match string if performing a mathematical comparison on an Aeon field holding a potentially non-numeric value. For additional guidance, see Using Potentially Non-Numeric Aeon Field Values in Match String Comparisons.
- There cannot be any extra characters or spaces in the match string.
Using Or Clauses in the Match String
If you are using OR clauses in your match string, it's a good practice to surround them with parentheses. For example:
(t.Location like '%alpha%' or t.Location like '%beta%')
(t.CallNumber like ‘%gamma%’ or t.CallNumber like ‘%omega%’)
Using Quotation Marks in Aeon Routing Rules
In accordance with current SQL query standards, Aeon does not support the use of double quotation marks (") in routing rule match strings. Any quotation marks used in existing routing rule match strings should be replaced with single quotation marks (') as shown in the following example:
-
Old routing rule match string that uses double quotation marks:
t.DocumentType = "PDF" AND u.Department = "Art"
-
New routing rule match string after changing double quotation marks to single quotation marks:
t.DocumentType = 'PDF' AND u.Department = 'Art'
Formatting Requirements for Quotation Marks Used in Field Values
If a routing rule is matching against a value that contains a single quotation mark/apostrophe in the value string (e.g., u.LastName = "D'Angelo"), the double quotation marks should be replaced with single quotation marks and the existing single quotation mark should be replaced with two single quotation marks as shown in the following example:
-
Old routing rule match string that uses double quotation marks:
u.Department = 'Art' AND u.LastName = "D'Angelo"
-
New routing rule match string after changing double quotation marks to single quotation marks and adding a second single quotation mark to the u.LastName value:
u.Department = 'Art' AND u.LastName = 'D''Angelo'
Using Potentially Non-Numeric Aeon Field Values in Match String Comparisons
When creating routing rules, it is important to consider the data type of the Aeon field(s) used in match string comparisons. Certain Aeon fields are configured in the database to hold both numeric and non-numeric values. If your routing rule match string attempts to use a mathematical operator (e.g., greater than (>), less than (<), etc.) to compare the value in one of these fields to a numeric value, Aeon will throw an error when attempting to process the routing rule against any requests containing a non-numeric value in the field.
For example, the ItemDate field in the Transactions database table is a nvarchar(50) field, which means that it can store both numeric and non-numeric values up to 50 characters in length. If a routing rule match string is configured to perform a mathematical comparison using the ItemDate field (e.g., t.ItemDate > 2020), an error will occur when Aeon uses the rule to process a request with a non-numeric value (e.g., December 2020) in the field.
Formatting the Match String to Handle Non-Numeric Field Values in Comparisons
To avoid these errors, the match string should be rewritten using the TRY_CAST SQL function to first check that the data in the specified Aeon field is a numeric value that can be used in the mathematical comparison. For example, the routing rule match string condition t.ItemDate > 2020 in the example above should be rewritten as follows:
TRY_CAST(t.ItemDate AS INT) > 2020
The TRY_CAST function will first check to ensure the data in the ItemDate field is an integer value that can be used in the comparison. If the data in the ItemDate field is non-numeric and cannot be converted to an integer for the comparison, it will not cause an error but will simply exclude that request from being considered a match for the routing rule.
Example Routing Rule
The following example routing rule will send all item requests received from Faculty users to a special queue called Awaiting Faculty Request Processing when they are received.
Sample Rule: Moving Items from Faculty to Awaiting Faculty Request Processing
This rule can be configured by creating a new entry in the Aeon Customization Manager's Routing table using the following values:
Field Name |
Entry |
---|---|
Status |
Awaiting Request Processing |
Match String |
u.Status = 'Faculty' The (u.) preceding the Status field in the match string indicates that the field is from the Users database table. See Creating Match Strings above for more information on formatting requirements for Aeon fields used in the match string value.
|
New Status |
Awaiting Faculty Request Processing |
Description |
Moves faculty requests to a separate queue. |