QPR ProcessAnalyzer Expression Examples: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 1: Line 1:
Get a list of all the Starter flows in a model
List of all the Starter flows in a model from filterId=1:
<pre>
<pre>
RemoveLeaves(EventLogById(1).Flows:From.Where(IsNull(_)))
RemoveLeaves(EventLogById(1).Flows:From.Where(IsNull(_)))
Line 14: Line 14:
</pre>
</pre>


All case attribute values within the model grouped by case attribute types.
All case attribute values within the model grouped by case attribute types:
<pre>
<pre>
Let("cases", EventLogById(1).Cases, EventLogById(1).CaseAttributes:(Let("attribute", _, cases.Attribute(attribute))))
Let("cases", EventLogById(1).Cases, EventLogById(1).CaseAttributes:(Let("attribute", _, cases.Attribute(attribute))))
</pre>
</pre>


All event attribute values within the model grouped by event attribute types.
All event attribute values within the model grouped by event attribute types:
<pre>
<pre>
Let("events", EventLogById(1).Events, EventLogById(1).EventAttributes:(Let("attribute", _, events.Attribute(attribute))))
Let("events", EventLogById(1).Events, EventLogById(1).EventAttributes:(Let("attribute", _, events.Attribute(attribute))))

Revision as of 21:55, 28 November 2017

List of all the Starter flows in a model from filterId=1:

RemoveLeaves(EventLogById(1).Flows:From.Where(IsNull(_)))

Go through the model recursively using the flows:

RemoveLeaves(EventLogById(1).Flows:From.Where(IsNull(_))).To.OutgoingFlows.To.OutgoingFlows.To

Traverse the model using events:

RemoveLeaves(EventLogById(1).Flows:From.Where(IsNull(_))).FlowOccurrences.To.NextInCase.NextInCase.NextInCase

All case attribute values within the model grouped by case attribute types:

Let("cases", EventLogById(1).Cases, EventLogById(1).CaseAttributes:(Let("attribute", _, cases.Attribute(attribute))))

All event attribute values within the model grouped by event attribute types:

Let("events", EventLogById(1).Events, EventLogById(1).EventAttributes:(Let("attribute", _, events.Attribute(attribute))))

Define new user defined functions:

Def("First", "a", GetAt(0, a));
Def("Second", "a", GetAt(1, a));

Array(First(a), Second(a))
Def("x", "a", Distinct(RecurseLeaves(OrderBy(EventLogById(a).Cases.Events, Type.Name), Type.Name)))

Function definition that uses itself, i.e. recursive functions:

Def("Fib", "a", If(a < 2, 1, Fib(a - 1) + Fib(a - 2)));
For("i", 0, i < 10, i + 1, Fib(i));
Models.StringJoin(":", [Id, Name])
Models.[Id, Name]