Searching is one of the most powerful features of teamfocus, and is at the core of many features.

For example Filters are really just saved searches. However, apart from just the search component, there are other some parts that control how your Filter looks.

You can sort and group data by any field that you’ve defined (or any of a number of system fields).

Enter a basic search term, such as payroll, and teamfocus will search all fields, on all tasks in your Team, to show matches.

This is the simplest of all searches, and is great for searching for Task references (counter fields) to quickly bring up the Task you need.

Perform an advanced search by specifying which field you want to search in. For example, description:usb will find any task with ‘USB’ in the description.

All fields defined on your workflow are searchable in this way.

Depending on the field type, you can also search on special words. Searches such as worker:me are great for User List fields. The ‘me’ is converted to whoever is currently logged in, to automatically show your tasks.

Leran more about Field Types reading our dedicated Online Help.

We also have some system fields, such as when a Task was created, when it was last moved (transitioned from one step to another), and what color it is in the metrics system.

Example
Search for created:”2013/01/18″ will show jobs created on 18th January 2013.

teamfocus uses year/month/day to cut down on cross region confusion, but the system also handles localized formats.

Example
Search for step:active will show you all jobs at the active step (even if you have an active step in multiple workflows).

 

Combine multiple items in a search to get exactly what you want.

For example, to see just your own Tasks, entering worker:me in the search box is appropriate. This will however show all your Tasks, including those that are completed and cancelled.

The easy fix for this is worker:me step:active, to control which step the Tasks should always be at.

By default, all search terms are required. In the example above, we ask for worker:me (all my Tasks) *AND* step:active (tasks at the active step). You therefore only get Tasks that match both parts.

This is the same as typing worker:me and step:active in the search box.

If want to view all Tasks that have yourself as the worker, OR all Tasks that are tagged urgent, you could perform this search:

worker:me or tag:urgent

Of course, this revives the original problem of showing you all your Tasks, completed or not, So a new search is required:

(worker:me step:active) or tag:urgent

This displays all your active Tasks, and includes all the Tasks that are tagged with urgent.

You could also perform a search on worker:bob to show every task that matches ‘bob’ in the workers’ email address.

These examples assume you have steps called active. You can mix and match your fields, system fields, parentheses, and AND/OR combinations to control exactly which Tasks you see.

Here’s an example of a search we use in one of our software development groups:

worker:me (step:active OR step:”Code Review”) sortby:pri sortby:”job id” groupby:step

This shows my Tasks that are:

* active, and waiting for me to work on them (step:active) or,

* waiting for our next review meeting (step:”Code Review”)

* sortby and groupby are included to change the way the tasks display in the list

 

sortby is a keyword that is used to control the order of tasks displayed in the search (or view) results. This is used in conjunction with a field name such as sortby:Priority In this instance, the results will be sorted by priority.

System fields can also be used, so that (for example) adding sortby:lastedited will sort by the date and time the task was last edited.

It’s possible to include multiple sortby keywords in a single search; they will simply sub-sort any Tasks.

For example, you can use sortby:Priority sortby:”job id” , which will make all Tasks sort firstly by priority and then, for Tasks that have the same priority, by “job id”. you can also replace sortby with sortbydesc to do a descending sort.

groupby is similar to sorting (and takes precedence over sorting). It separates the tasks in the group with a heading for each value.

For example, groupby:worker will make a heading for each worker, then list all tasks with that worker below the heading.

We’ve found that groupby:step is quite useful, as it allows us to easily tell at a glance which step all tasks are at.

Below is a list of system fields, and some of the options you have within each one.

 

Keyword Type Description Examples
editedby user The user who has edited the task editedby:bob
editedby:me
editdate date When a task was edited edited:lastmonth
edited:today
edited:”2013/01/16″
created date When a task was created created:lastmonth
created:today
created:”2013/01/16″
createdby user Which user created this task createdby:bob
createdby:me
tag text Tasks that have a particular tag tag:urgent
tag:”Needs work”
workflow text Tasks that are in a particular workflow. workflow:”To Do”
step text The step the task is currently at step:active
lastedited date Description lastedited:lastmonth
lastedited:today
lastedited:”2013/01/16″
moved date Description moved:lastmonth
moved:today
moved:”2013/01/16″
timer | timers on If the task has an active timer on it
for more information on timers, see timer fields
timers:on
color | colour text Searching based on the color of the metric on a task color:green
color:amber
color:red
attachments yes If the task has an attachment attachments:yes
checkbox checkbox If the checkbox is checked qualitycheck:on
-qualitycheck:on

 

Date fields can have special options such as:

  • Today, Yesterday, Tomorrow
  • Thisweek, Lastweek, Nextweek
  • Thismonth, Lastmonth, Nextmonth
  • thisyear, lastyear, nextyear

User fields are generally text, and can match a name, a part of a name, or the special keyword “me” to mean the logged in user’s tasks.

The special cases for attachments and timers show you Tasks with attachments, or timers being used on those tasks.

 

Disambiguation

If you have a field name the same as a system field name, eg created or workflow in a search you can prefix the field name with an @ to ensure the correct one is used.

eg. If you search for workflow:acme and you have a field called workflow, it will search using yours. if you search for @workflow:acme it will always use the teamfocus workflow field.

Negative searching

Negative searching can be achieved with a – in front of the field name.Eg, -step:complete shows all tasks not at the complete step. or -worker:* shows all tasks that don’t have a worker set.

 

Some search examples we have used

Active tasks with timers
This is an easy one to see what people are working on
 -(step:Complete or step:Cancelled) timers:on
Unallocated tasks at active step step:active -worker:*
Meeting agenda/minutes.
This shows all active tasks and those closed in the last few weeks
NB: we have a step tag on all ‘incomplete’ steps so the tag:incomplete finds all incomplete steps (and therefore tasks)
workflow:development and (tag:incomplete or (step:complete and (moved:thisweek or moved:lastweek))) sortby:”Priority” sortby:”Customer Ref”  sortby:”Job Id” groupby:step
My overdue tasks (based on metrics) worker:me groupby:step sortby:”task ID” -color:green
All overdue tasks (based on metrics and due field) * groupby:step sortby:”task ID” (due:<today or color:red or color:amber) -step:complete
Recently created tasks created:thisweek or created:lastweek
Recent tasks I have created (created:thisweek or created:lastweek) createdby:me
Active and waiting tasks for me worker:me (step:active or step:waiting) grouby:step