These primitives can be combined to form complex expressions. The selection-expression, which is specified as part of these primitives, has a generic syntax that is not dependent on the actual primitive. Each primitive defines a set of properties that can be used in the expression. For example, the
activity() primitive defines a
type property that can be used to filer out activities based on their type. The evaluation of the expression results in the selection of a set of join points.
"type" is an ID that uniquely identifies a particular type of activity. To get the ID of a particular activity, refer to the table available in
Appendix A, ActivityTypes. The rest of this section describes the algorithm for building these IDs. This is useful to know since there are activities that do not get shipped out of the box with TIBCO ActiveMatrix BusinessWorks and therefore they are not mentioned in
Appendix A, ActivityTypes.
the resource-type-suffix is given by the sequence of the characters that appear after the last "." character in the
<pd:resourceType> element, which is serialized as part of every activity's configuration. To find the
resource-type-suffix for a specific activity, the user has to open a process definition that contains that activity and check the
<pd:resourceType> element that is serialized as part of its configuration.
This example shows that the resource-type-suffix of the File Read Activity is "
FileReadActivity". This means that this activity's type is "
bw.FileReadActivity" in Point cut query language.
"kind" is used to filter out activities based on their flavors. There are three flavors of activities, each one identified with a specific ID:
Since these properties are defined for the activity() primitive, they can only be used in the context of this primitive.
"kind" is used to filter out processes based on their flavors. There are two flavors of processes, each one identified with a specific ID:
Like the properties defined for the activity() primitive, the properties defined for the
process() primitive can only be used in the context of this primitive.
This primitive is used for filtering out projects based on their name. This can be useful in organizations where all aspects are developed, packaged, and deployed together.
This primitive is used for filtering out engines based on their names. Similar to project() primitive, this primitive can be useful in organizations where all aspects are developed, packaged, and deployed together.
In order to provide more flexibility and to simplify the writing of point cut expressions, the query language supports wildcards (
"*") in property values. These can be used either to specify the entire property value (for example,
name="*" ) or to specify a part of it (for example,
name = "JMS*").
This means that activity (Name = "foo") evaluates the same as activity (
name = "foo"). However, activity (
name = "foo") does not evaluate the same as activity (
name = "Foo").
EQUAL Comparison operator “=” (EQUAL) can be used while comparing property values. For details, refer to
Examples of Point Cuts Defined Using Query Language.
NOT EQUAL Comparison operator “!=” (NOT EQUAL) can be used while comparing property values. For details, refer to step 8 in the
Examples of Point Cuts Defined Using Query Language.