Organization Entities
The organization entities listed can be referred to. One of these must be used as the starting point of every query.
The significance of specifying each of these organizational elements is set out in the following sections.
Organization
For example:
organization(name="EasyAs")
This expression returns all the resources allocated to any Position which is allocated to any Organization Unit within the Organization named EasyAs.
Orgunit (organization unit)
For example:
orgunit(name="Support-SWI")
This expression returns all the resources allocated to all the Positions within the organization unit named Support-SWI.
By default Organization Units are not treated recursively. That is, an expression specifying an organization unit does not return positions in a sub-unit of that organization unit. See Navigating the Organization Model with RQL Queries for more details.
Position
For example:
position(name="Manager")
This expression would return all the resources in a Position named Manager.
You can also locate resources based on their type in the organization model schema, for example:
position(type="UnitManager" or name="Manager")
This expression would return all the resources in an position which is an instance of the position type named UnitManager, or is a Position called Manager.
Capability
For example:
capability(name="JavaProgrammer")
This expression includes all the resources that:
- Have the capability named JavaProgrammerNote: RQL only makes use of capabilities that are assigned to Resources.
Capabilities may be assigned to Positions and Groups in the organization model. These represent "entry criteria" - that is, only resources with that capability should be assigned to that group or position. However, this is not enforced. Capabilities assigned to Resources indicate that the person represented by that Resource does actually have the capability in question.
Capabilities may be further refined by using a qualifier, as described for Privilege .
Privilege
For example:
privilege(name="signoff" qualifier>10000)
All the resources allocated to a Position with:
- the privilege signoff with a qualifier value greater than 10000, or
- belonging to an Organization Unit with the privilege signoff with qualifier value greater than 10000.
An expression can also specify the privilege without specifying a qualifier. For example:
privilege(name="signoff")
This would return all the resources allocated to a Position or an Organization Unit with the privilege signoff, regardless of any qualifier.
Group
For example:
group(name="Health&Safety")
This expression returns all the resources in a group named Health&Safety.
Groups can operate recursively - that is, groups can contain groups. So this expression would also include all resources belonging to all sub-groups. This can be overridden - see Navigating the Organization Model with RQL Queries.
Resource
For example:
resource(name="Clint Hill")
This expression returns all the resources with the name Clint Hill.
Unlike the other entities listed, Resources refer directly to actual users as defined in LDAP. When selecting resources you can start with a particular resource by referencing its name, for example:
resource(name="Clint Hill").position(name="abc").orgunit(type="efg").privilege(name="signoff" qualifier > 10000)
This expression returns all Resources that belong to an OrgUnit of type "efg" in which Clint Hill holds the position named "abc", and in which he holds the "signoff" privilege, qualified for a value of greater than 10000.
You can also query attributes from the LDAP database that have been passed to BPM, for example:
resource(attribute.phone="+44(0)1793*" and attribute.language="*Spanish*")
This returns the resources with a Swindon dialing code (+44 (0)1793) on their phone attribute and whose language attribute includes the text Spanish.