QPR ProcessAnalyzer Expression Query Examples

From QPR ProcessAnalyzer Wiki
Revision as of 08:57, 28 November 2017 by Ollvihe (talk | contribs) (Created page with " <pre> { "Root": "Events", "Dimensions": [ { "Name": "Color", "Expression": "Color" }, { "Name": "Category", "Expression": "Category" } ], "Values": [...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
{
	"Root": "Events",
	"Dimensions": [
		{
			"Name": "Color",
			"Expression": "Color"
		},
		{
			"Name": "Category",
			"Expression": "Category"
		}
	],
	"Values": [
		{
			"Name": "Count",
			"Expression": "Count(_)" 
		},
		{
			"Name": "Cases",
			"Expression": "StringJoin(\",\", _.Case.Name)" 
		},
		{
			"Name": "DistinctCases",
			"Expression": "StringJoin(\",\", Distinct(_.Case.Name))" 
		}
	],
	"Ordering": [ 
		{
			"Name": "Color",
			"Direction": "Ascending"
		},
		{
			"Name": "Category",
			"Direction": "Ascending"
		}
	]
}

For case attributes:

{
	"Root": "Cases",
	"Dimensions": [
		{
			"Name": "Color",
			"Expression": "Color"
		},
		{
			"Name": "Category",
			"Expression": "Category"
		}
	],
	"Values": [
		{
			"Name": "Count",
			"Expression": "Count(_)" 
		},
		{
			"Name": "Cases",
			"Expression": "StringJoin(\",\", _.Name)" 
		}
	],
	"Ordering": [ 
		{
			"Name": "Color",
			"Direction": "Ascending"
		},
		{
			"Name": "Category",
			"Direction": "Ascending"
		}
	]
}

1 dimension selected:

{
	"Root": "Cases",
	"Expressions": [
		{
			"Expression": "Color",
			"Values": ["Red"]
		}
	]
}

2 dimensions selected:

{
	"Root": "Cases",
	"Expressions": [
		{
			"Expression": "Color",
			"Values": ["Red"]
		},
		{
			"Expression": "Category",
			"Values": [2]
		}
	]
}

3 Grams

{
	"Root": "Cases",
	"Dimensions": [
		{
			"Name": "CaseId",
			"Expression": "Name"
		}
	],
	"Values": [
		{
			"Expression": "
Flatten(
	_
	.Array(
		StringJoin(\"->\", 
			Array(\"0\", 
				GetAt(0, Events).Type.Name, 
				If(
					Count(Events) > 1, 
					GetAt(1, Events).Type.Name, 
					\"0\"
				)
			)
		),
		StringJoin(\"->\", 
			Events.Where(!IsNull(NextInCase))
			.Array(Type.Name, 
				NextInCase.Type.Name, 
				If(
					!IsNull(NextInCase.NextInCase), 
					NextInCase.NextInCase.Type.Name, 
					\"0\"
				)
			)
		)
	)
).Where(_ != \"\")
",
			"DimensionOrderExpression": "OrderByValue(_)",
			"Type": "Pivot"
		}
	],
	"Ordering": [ 
		{
			"Name": "CaseId",
			"Direction": "Ascending"
		}
	]
}

Duration

{
	"Root": "Cases",
	"Dimensions": [
		{
			"Name": "TotalHours",
			"Expression": "Duration.TotalHours.Round(0)"
		}
	],
	"Values": [
		{
			"Name": "Count",
			"Expression": "Count(_)" 
		}
	],
	"Ordering": [ 
		{
			"Name": "TotalHours",
			"Direction": "Ascending"
		}
	]
}

Monthly Average Case Duration

{ "Root": "Cases", "Dimensions": [{ "Name": "Start Month", "Expression": "StartTime.Month" }], "Values": [{ "Name": "Average Case Duration in Days", "Expression": "Round(Average(_.Duration.TotalSeconds) / 3600, 0)" }], "Ordering": [{ "Name": "Start Month", "Direction": "Ascending" }]}

Event type ordering

{
	"Root": "Cases",
	"Dimensions": [
		{
			"Name": "CaseId",
			"Expression": "Name"
		}
	],
	"Values": [
		{
			"Expression": "
Flatten(
	_
	.Events
	.For(\"i\", IndexInCase + 1, i < Count(Case.Events), i + 1, 
		StringJoin(
			\">\", 
			Array(
				Type.Name, 
				GetAt(i, Case.Events).Type.Name
			)
		)
	)
)
",
			"DimensionOrderExpression": "OrderByValue(_)",
			"Type": "Pivot"
		}
	],
	"Ordering": [ 
		{
			"Name": "CaseId",
			"Direction": "Ascending"
		}
	]
}

Event type trend

{
	"Root": "EventTypes",
	"Dimensions": [
		{
			"Name": "Name",
			"Expression": "Name"
		}
	],
	"Values": [
		{
			"Name": "Visible Count",
			"Expression": "GetAt(0, _.Count)" 
		},
		{
			"NameExpression": "",
			"Name": "DateGroupDim",
			"ValueDimensionExpression": "TimeRange(DateTime(2012, 1, 1, 12), DateTime(2012, 1, 1, 13), TimeSpan(0, 0, 10))",
			"SelectionExpression": "_.Events.Where(TimeStamp.Round(TimeSpan(0, 0, 10)) == DateGroupDim)",
			"Expression": "GetAt(0, Count(Selection))",
			"Type": "Dynamic"
		}
	],
	"Ordering": [ 
		{
			"Name": "Name",
			"Direction": "Ascending"
		}
	]
}

Repeats

{
	"Root": "Cases",
	"Dimensions": [
		{
			"Name": "CaseId",
			"Expression": "Name"
		}
	],
	"Values": [
		{
			"Expression": "
Flatten(
	_
	.FindRepeats(Events.Type.Name)
	.Repeat(
		Count(GetAt(1, _)) - 1, 
		StringJoin(\"->\", GetAt(0, _))
	)
)
",
			"DimensionOrderExpression": "OrderByValue(_)",
			"Type": "Pivot"
		}
	],
	"Ordering": [ 
		{
			"Name": "CaseId",
			"Direction": "Ascending"
		}
	]
}