Matrix Requirements Query Language


You can now make advanced searches for items in Matrix Requirements. You just prefix your search with "mrql:" and you do ... miracles (MRQL) searches.

Matrix Requirements Query Language (MRQL aka Miracle) syntax

The general form looks like a Boolean expression with the classical AND, OR, NOT, parenthesis.

Each term is in the form variable operator value.

The operators can be:

  • = for equal (case sensitive)
  • != for not equal (case sensitive)
  • ~ for "include" (case insensitive)
  • !~ for "doesn't include" (case insensitive)
  • < or > for smaller than or bigger than (only for updated age)

The particular meanings of some variables are:

  • category operator "value" : checks the the category of the item (REQ, SPEC, ...)
  • title operator "value" : checks the the title of the item 
  • outdated = 0|1 : checks that the item is outdated (it's parent has been modified after)
  • updated < | > Nx : checks that the last modification date of an item is lower or higher than a duration. Duration is expressed as integer followed by a letter:
    • y for year
    • m for month
    • w for week
    • d for day
    • H for hour
    • M for minute 
  • uplink | downlink operator category : checks that the item has at least one uplink (or downlink) to category. Also != , ~ and !~
  • label = "value": selects items that have (or don't have if  != is used) this label. The label part must be the internal one as defined in the admin console. 
  • all other variables are matches for a field name. If the field name contains a space the variable must be double-quoted

Examples:

  • mrql:domain ~ "xyz" and category = "TC"
    • matches all item of the category "TC" who has a field "domain" which includes "xyz"
  • mrql:outdated = 1 and category != "XTC"
    • matches all outdated items which are not "XTC" items
  • mrql:"test run result"="af|error|failed"
    • matches all failed tests: Since this field "test run result" is a dropdown, the actual value of the field "af|error|failed" differs from the displayed text "automatic - was 'failed' when last saved"
  • mrql:updated < 3H
    • matches all items modified during the last 3 hours
  • mrql:uplink ~ "REQ" 
    • matchs all items with an uplink in a category containing REQ (MREQ, FREQ, REQ, ...)
  • mrql:updated<1w and category="REQ"

    • requirements updated in last 7 days

Signatures NEW IN 1.11 : 

  • mrql:needSignature = joe
    • Looks for all SIGN items where joe has not signed (joe is the login name)
  • mrql:needSignature = any
    • Looks for all SIGN items where someone still needs to sign
  • mrql:needSignature != joe
    • Looks for all SIGN items where joe has signed or was not supposed to sign
  • mrql:needSignature != any
    • Looks for all SIGN items where all users that were supposed to sign did sign



Searches expressions can be shared between team members, see Search Configuration.