By using routing rules, you can change default Ares processes by having the system automatically skip or add steps to the basic Reserves process.
Each time the status of an item is changed by the Ares client, the system 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 item.
You can create routing rules in the Ares Customization Manager under System | General | Routing.
- Click New Record.
- Fill out the following values:
RuleID
Type in a number you want to be assigned with the routing rule.
Each routing rule must have a unique ID.Active
If checked this rule will be active. If unchecked, the rule will be inactive.
Status
The transaction status to which the rule will apply
Match
The query string for the routing rule. This string should only reference
the Courses and Items tables.New Status
The transaction status to which the request will be routed to.
Description
Text that describes what the rule is intended to do.
- Click Save.
General Guidelines
- 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 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 in your process.
- Routing rules can only reference the Items and Courses tables.
- The Routing rule Match value cannot exceed 500 characters.
The Match Value
The Match value in a routing rule is arguably the most important piece of the Routing entry. This value is where you may 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. As stated before, this query string should only reference the Items and Courses tables unless a compound routing rule is used. For the match value:
- Each item, course, and user table value name in the match string must be preceded by an (i.) for the items table, a (c.) for the courses table, or a (u.) for the users table.
- Only single quotation marks ('), not double quotation marks (") may be used in the match string.
- There cannot be any extra characters or spaces 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:
(i.Location like '%alpha%' or i.Location like '%beta%')
(i.CallNumber like ‘%gamma%’ or i.CallNumber like ‘%omega%')
See the examples below for demonstrations on how to correctly write and format the match string. If a match string is not formatted correctly, the routing rule will not work.
Example Routing Rules
In this example, you want to send all item requests received from users in the Psychology department to a special queue called Awaiting Reserves Processing - Psychology when they are received.
For this routing example to work properly, you would also have to create a custom queue named Awaiting Reserves Processing - Psychology.
RuleID |
1 |
---|---|
Active |
True (checked) |
Status |
Awaiting Reserves Processing |
Match |
c.Department = 'Psychology' |
NewStatus |
Awaiting Reserves Processing - Psychology |
Description |
Moves requests from Psychology Dept to Awaiting Processing Psychology. |
In this example, you want all Video requests to go to a special review queue.
For this routing example to work properly, you would also have to create a custom queue named Awaiting Reserves Video Processing.
RuleID |
2 |
---|---|
Active |
True (checked) |
Status |
Awaiting Reserves Processing |
Match |
i.ItemFormat = 'Video' |
NewStatus |
Awaiting Reserves Video Processing |
Description |
Moves all video requests to Awaiting Reserves Video Processing |
In this example, you want to send all requests received from the high-priority faculty members John Doe and Jane Doe to a supervisor review queue.
For this routing example to work properly, you would also have to create a custom queue named Awaiting Supervisor Review.
RuleID |
3 |
---|---|
Active |
True (checked) |
Status |
Awaiting Reserves Processing |
Match |
u.Username IN ('johndoe','janedoe') You could also write the string this way: u.Username = 'johndoe' OR u.Username = 'janedoe' |
NewStatus |
Awaiting Supervisor Review |
Description |
Moves John Doe and Jane Doe requests to Awaiting Supervisor Review |