Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 6 Next »


User guide

A new action named Analytics is added to the Export menu in the Issue Navigator.


It exports the current JQL into the Analytics Client console (Saiku Community Edition). Select the Jira Core cube.


This will load the Cube with its Measures and Dimensions:

Expand the Issue dimension and click on the Key to add as Row:

The click on the Issue Count measure. The pivot table will count the issues for each dimension. This is a quite obvius measure: you got 1 issue per key!


We will neasure something more useful now: issue status vs issue type. Revove the key dimension and add the Status as rows and the Type as columns:


In the eaxmple above, there are 8 stories taht are already done. But what are those stories? Click on the Drill action from the top bar and then click on the cell to see its detailed data:

This will bring up a dialog. Expand the Issue dimension and select the Key option:


Click on the OK button:


The issue key for the eight done stories are listed!

Easy no? But what is it happed behind the scene? You have been building a MDX query behind the scene! Click on the Show MDX button:


The MDX performed behind the scne is displayed. Copy it into the mememory for later use:


MDX
WITH
SET [~ROWS] AS
    {[Issue].[Key].[Key].Members}
SELECT
NON EMPTY {[Measures].[M01- Issue count]} ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [JIRA Core]
WHERE CrossJoin({[Type].[Type].[Story]}, {[Status].[Status].[Done]})


The good news are that you can build awesome complex MDX queries in a visual way (with darg and drop) without any knowled about the MDX language!

Actually the cube is volatile and it will be lost if the console is abnadoned. You can save it for later use. Click on the Save button and provide the Demo name for the Catalog (a set of cubes grouped in a Mondrian schema):


Clcik on the Save button to close the dialog. The catalog is now saved in the Jira database!.

Click on the Manage cubes button to list the saved catalogs in Jira:


A new page listing all the saved schemas (catalogs) is displayed. Click on the MDX Console button:



The MDX console is opened. Type the 

SHOW CATALOGS; 

instructions to list all the saved catalogs:


Type:


USE [Demo] ;

to load the cubes in the Demo catalog.

Now, copy&paste the MDX query that you built in previous steps:


The eight closed stories in the JQL are listed! You got the same results than from the Analytics client (Saiku). You have seen the XMLA protocol in action. It is possinle to connect to Jira to list the saved catalos and perfom MDX queires on their cubes. The MDX consle above is an example of a XMLA client tool. But you can use any third party compatible tool. You might want to use the Arquery's XMLConnector for Excel and connect to Jira from Excel to perform analytics.


Close the MDX Console anc clik on the Download link to see the Mondrian's XML schema file:

And open the XML file with some text editor:


Mondrian Schema
<?xml version="1.0" encoding="UTF-8"?><Schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" metamodelVersion="4.0" name="Demo" xsi:noNamespaceSchemaLocation="mondrian4.xsd">
	<PhysicalSchema>

		<Table keyColumn="ID" name="PROJECTS"/>
		<Table keyColumn="USERNAME" name="USERS"/>
		<Table keyColumn="ID" name="ISSUETYPEDEFINITIONS"/>
		
		<Query alias="ISSUESTATUSDEFINITIONS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
select ID, NAME from ISSUESTATUSDEFINITIONS
union
select -1, 'No Status' from dual
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUEPRIORITYDEFINITIONS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
select ID, NAME from ISSUEPRIORITYDEFINITIONS
union
select -1, 'No Priority' from dual
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUERESOLUTIONDEFINITIONS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
select ID, NAME from ISSUERESOLUTIONDEFINITIONS
union
select -1, 'Unresolved' from dual
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="LABELS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT i.ID, ilb.label
FROM ISSUES i
INNER JOIN ISSUELABELS  ilb ON ilb.ISSUEID = i.ID
WHERE i.jql='project = "Sample Scrum Project"'
UNION SELECT -1, 'No label' as "LABEL" FROM dual

]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="PROJECTVERSIONS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT PROJECTID, ID, NAME, CASE ARCHIVED WHEN 0 THEN 'No Archived' WHEN 1 THEN 'Archived' END as "ARCHIVED", CASE RELEASED WHEN 0 THEN 'No Released' WHEN 1 THEN 'Released' END as "RELEASED"
FROM PROJECTVERSIONS
UNION
select -1, -1, 'No Version', 'No Archived', 'No Released'
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="PROJECTCOMPONENTS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT pcs.PROJECTID, pcs.ID, pcs.NAME, IFNULL(pcs.LEAD, 'No Lead') as "LEAD"
FROM PROJECTS p
INNER JOIN PROJECTCOMPONENTS pcs ON pcs.PROJECTID = p.ID
UNION
SELECT -1, -1, 'No Component', 'No Lead' FROM dual
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="TIMEBYDAY">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
select * from aux.timebyday
where startdate='2017-11-16' and enddate='2017-12-14'
union
select -1, null, null, '', '-1', -1, -1, -1,  -1, '-1' , null, null from dual
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="TIMEBYDAYVERSION">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT *, convert(THEYEAR, VARCHAR) as "YEAR", convert(DAYOFMONTH, VARCHAR) as "DAY"
FROM AUX.TIMEBYDAY
where startdate='2017-12-07' and enddate='2017-12-21'
union
select -1, null, null, '', 'No Month', 0, -1, -1,  -1, 'No Quarter', null, null, 'No Year', 'No Day' from dual
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUES" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT i.id, i.key, i.summary, i.assignee, i.reporter, i.projectid, i.typeid, nvl(i.priorityid, -1) as "PRIORITYID", i.statusid,
date2long(cast(i.created as date)) as "CREATED",  date2long(cast(i.updated as date)) as "UPDATED",
nvl2(i.due, date2long(cast(i.due as date)), -1) as "DUE", nvl2(i.resolved, date2long(cast(i.resolved as date)), -1) as "RESOLVED",
nvl(i.resolutionid, -1) as "RESOLUTIONID", nvl(i.originalestimate, 0) as "ESTIMATED", nvl(i.timespent, 0) as "TIMESPENT", nvl(i.remainingestimate, 0) AS "REMAINING"
,-1 as "VERSIONID", 'No Relation' as "RELATION", -1 as "START", -1 as "RELEASED"
, -1 as "PROJECTCOMPONENTID"
, 'No Label' as "LABEL"
, 'No User' as "AUTHOR", -1 as "CREATEDWORKLOG", -1 as "STARTWORKLOG"
, -1 as "FROMVALUE", -1 as "TOVALUE", -1 as "CREATEDCHANGED", 'No User' as "USERNAME"
FROM issues i
WHERE i.jql='project = "Sample Scrum Project"'
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUESTATUSCHANGES">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
select i.id, c.USERNAME, date2long(cast(c.created as date)) as "CREATEDCHANGED", c.FROMVALUE, c.TOVALUE, c.INTERVAL,  
c.FROMSTRING, c.TOSTRING, i.projectid, i.typeid
, i.key, i.summary, i.assignee, i.reporter, nvl(i.priorityid, -1) as "PRIORITYID", i.statusid,
date2long(cast(i.created as date)) as "CREATED",  date2long(cast(i.updated as date)) as "UPDATED",
nvl2(i.due, date2long(cast(i.due as date)), -1) as "DUE", nvl2(i.resolved, date2long(cast(i.resolved as date)), -1) as "RESOLVED",
nvl(i.resolutionid, -1) as "RESOLUTIONID"
,-1 as "VERSIONID", 'No Relation' as "RELATION", -1 as "START", -1 as "RELEASED"
, -1 as "PROJECTCOMPONENTID"
, 'No Label' as "LABEL"
, 'No User' as "AUTHOR", -1 as "CREATEDWORKLOG", -1 as "STARTWORKLOG"
from issues i inner join issuechanges c on c.issueid = i.id
where c.field='status' and i.jql='project = "Sample Scrum Project"'
UNION
select i.id,  i.reporter as "USERNAME", date2long(cast(i.created as date)) as "CREATEDCHANGED", i.statusid as "FROMVALUE", 
-1 as "TOVALUE", datediff('MILLISECOND', i.created, now()) as "INTERVAL", 
s.name as "FROMSTRING", '<Current>' as "TOSTRING", i.projectid, i.typeid
, i.key, i.summary, i.assignee, i.reporter, nvl(i.priorityid, -1) as "PRIORITYID", i.statusid,
date2long(cast(i.created as date)) as "CREATED",  date2long(cast(i.updated as date)) as "UPDATED",
nvl2(i.due, date2long(cast(i.due as date)), -1) as "DUE", nvl2(i.resolved, date2long(cast(i.resolved as date)), -1) as "RESOLVED",
nvl(i.resolutionid, -1) as "RESOLUTIONID"
,-1 as "VERSIONID", 'No Relation' as "RELATION", -1 as "START", -1 as "RELEASED"
, -1 as "PROJECTCOMPONENTID"
, 'No Label' as "LABEL"
, 'No User' as "AUTHOR", -1 as "CREATEDWORKLOG", -1 as "STARTWORKLOG"
from issues i inner join issuestatusdefinitions s on s.id = i.statusid
where i.jql='project = "Sample Scrum Project"'
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUEWORKLOGS">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
select i.id, i.key, i.projectid, i.typeid, w.author, date2long(cast(w.created as date)) as "CREATEDWORKLOG", w.timespent, date2long(cast(w.start as date)) as "STARTWORKLOG"
, i.summary, i.assignee, i.reporter, nvl(i.priorityid, -1) as "PRIORITYID", i.statusid,
date2long(cast(i.created as date)) as "CREATED",  date2long(cast(i.updated as date)) as "UPDATED",
nvl2(i.due, date2long(cast(i.due as date)), -1) as "DUE", nvl2(i.resolved, date2long(cast(i.resolved as date)), -1) as "RESOLVED",
nvl(i.resolutionid, -1) as "RESOLUTIONID"
,-1 as "VERSIONID", 'No Relation' as "RELATION", -1 as "START", -1 as "RELEASED"
, -1 as "PROJECTCOMPONENTID"
, 'No Label' as "LABEL"
, -1 as "FROMVALUE", -1 as "TOVALUE", -1 as "CREATEDCHANGED", 'No User' as "USERNAME"
from issues i
inner join issueworklogs w on w.issueid = i.id
where i.jql='project = "Sample Scrum Project"'
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUEVERSION" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT i.ID, IFNULL(iv.VERSIONID, -1) as "VERSIONID", i.KEY, i.PROJECTID, IFNULL(iv.RELATION, 'No Relation') as "RELATION"
, nvl2(pv.START, date2long(cast(pv.START as date)), -1) as "START",
nvl2(pv.RELEASE, date2long(cast(pv.RELEASE as date)), -1) as "RELEASED"
, i.summary, i.assignee, i.reporter, i.typeid, nvl(i.priorityid, -1) as "PRIORITYID", i.statusid,
date2long(cast(i.created as date)) as "CREATED",  date2long(cast(i.updated as date)) as "UPDATED",
nvl2(i.due, date2long(cast(i.due as date)), -1) as "DUE", nvl2(i.resolved, date2long(cast(i.resolved as date)), -1) as "RESOLVED",
nvl(i.resolutionid, -1) as "RESOLUTIONID"
, -1 as "PROJECTCOMPONENTID"
, 'No Label' as "LABEL"
, 'No User' as "AUTHOR", -1 as "CREATEDWORKLOG", -1 as "STARTWORKLOG"
, -1 as "FROMVALUE", -1 as "TOVALUE", -1 as "CREATEDCHANGED", 'No User' as "USERNAME"
FROM ISSUES i
LEFT JOIN ISSUEVERSIONS iv ON iv.ISSUEID = i.ID
LEFT JOIN PROJECTVERSIONS pv on pv.ID = iv.VERSIONID
WHERE i.jql='project = "Sample Scrum Project"'
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUECOMPONENTS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT i.ID, i.KEY, i.PROJECTID, IFNULL(ic.PROJECTCOMPONENTID, -1) as "PROJECTCOMPONENTID"
, i.summary, i.assignee, i.reporter, i.typeid, nvl(i.priorityid, -1) as "PRIORITYID", i.statusid,
date2long(cast(i.created as date)) as "CREATED",  date2long(cast(i.updated as date)) as "UPDATED",
nvl2(i.due, date2long(cast(i.due as date)), -1) as "DUE", nvl2(i.resolved, date2long(cast(i.resolved as date)), -1) as "RESOLVED",
nvl(i.resolutionid, -1) as "RESOLUTIONID"
,-1 as "VERSIONID", 'No Relation' as "RELATION", -1 as "START", -1 as "RELEASED"
, 'No Label' as "LABEL"
, 'No User' as "AUTHOR", -1 as "CREATEDWORKLOG", -1 as "STARTWORKLOG"
, -1 as "FROMVALUE", -1 as "TOVALUE", -1 as "CREATEDCHANGED", 'No User' as "USERNAME"
FROM ISSUES i
LEFT OUTER JOIN ISSUECOMPONENTS ic ON ic.ISSUEID = i.ID
WHERE i.jql='project = "Sample Scrum Project"'
]]>
				</SQL>
			</ExpressionView>
		</Query>

		<Query alias="ISSUELABELS" keyColumn="ID">
			<ExpressionView>
				<SQL dialect="generic">
<![CDATA[
SELECT i.ID, i.KEY, i.PROJECTID, IFNULL(ilb.LABEL, 'No Label') as "LABEL"
, i.summary, i.assignee, i.reporter, i.typeid, nvl(i.priorityid, -1) as "PRIORITYID", i.statusid,
date2long(cast(i.created as date)) as "CREATED",  date2long(cast(i.updated as date)) as "UPDATED",
nvl2(i.due, date2long(cast(i.due as date)), -1) as "DUE", nvl2(i.resolved, date2long(cast(i.resolved as date)), -1) as "RESOLVED",
nvl(i.resolutionid, -1) as "RESOLUTIONID"
,-1 as "VERSIONID", 'No Relation' as "RELATION", -1 as "START", -1 as "RELEASED"
, -1 as "PROJECTCOMPONENTID"
, 'No User' as "AUTHOR", -1 as "CREATEDWORKLOG", -1 as "STARTWORKLOG"
, -1 as "FROMVALUE", -1 as "TOVALUE", -1 as "CREATEDCHANGED", 'No User' as "USERNAME"
FROM ISSUES i
LEFT OUTER JOIN ISSUELABELS  ilb ON ilb.ISSUEID = i.ID
WHERE i.jql='project = "Sample Scrum Project"'
]]>
				</SQL>
			</ExpressionView>
		</Query>
	</PhysicalSchema>

	<Dimension key="Day" name="Time" table="TIMEBYDAY" type="TIME">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="THEYEAR" levelType="TimeYears" name="Year"/>
			<Attribute hasHierarchy="false" levelType="TimeQuarters" name="Quarter" nameColumn="QUARTER">
				<Key>
					<Column name="THEYEAR"/>
					<Column name="QUARTER"/>
				</Key>
			</Attribute>
			<Attribute hasHierarchy="false" levelType="TimeMonths" name="Month" nameColumn="THEMONTH" orderByColumn="MONTHOFYEAR">
				<Key>
					<Column name="THEYEAR"/>
					<Column name="MONTHOFYEAR"/>
				</Key>
			</Attribute>
			<Attribute hasHierarchy="false" keyColumn="TIMEID" levelType="TimeDays" name="Day" nameColumn="DAYOFMONTH" orderByColumn="DAYOFMONTH"/>
		</Attributes>

		<Hierarchies>
			<Hierarchy allLevelName="(All Dates)" name="Time">
				<Level attribute="Year"/>
				<Level attribute="Quarter"/>
				<Level attribute="Month"/>
				<Level attribute="Day"/>
			</Hierarchy>
		</Hierarchies>
	</Dimension>

	<Dimension key="User" name="User" table="USERS">
		<Attributes>
			<Attribute hierarchyAllLevelName="(All Users)" keyColumn="USERNAME" name="User"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Project" table="PROJECTS">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="ID" name="ID"/>
			<Attribute caption="NAME" hasHierarchy="false" keyColumn="NAME" name="Name"/>
			<Attribute caption="Project" hierarchyAllLevelName="(All Projects)" keyColumn="KEY" name="Key">
				<Property attribute="Name"/>
			</Attribute>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Type" table="ISSUETYPEDEFINITIONS">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="ID" name="ID" visible="false"/>
			<Attribute hierarchyAllLevelName="(All Types)" keyColumn="NAME" name="Type"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Status" table="ISSUESTATUSDEFINITIONS">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="ID" name="ID" visible="false"/>
			<Attribute hierarchyAllLevelName="(All Statuses)" keyColumn="NAME" name="Status"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Priority" table="ISSUEPRIORITYDEFINITIONS">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="ID" name="ID" visible="false"/>
			<Attribute hierarchyAllLevelName="(All Priorities)" keyColumn="NAME" name="Priority"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Issue" table="ISSUES">
		<Attributes>
			<Attribute datatype="Integer" hasHierarchy="false" keyColumn="ID" name="ID"/>
			<Attribute datatype="String" hasHierarchy="false" keyColumn="SUMMARY" name="Summary"/>
			<Attribute datatype="String" hierarchyAllLevelName="(All Issues)" keyColumn="KEY" name="Key">
				<Property attribute="Summary"/>
			</Attribute>
			<Attribute hierarchyAllLevelName="(All Affects/Fixes)" keyColumn="RELATION" name="Affect/Fix"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Resolution" table="ISSUERESOLUTIONDEFINITIONS">
		<Attributes>
			<Attribute caption="Resolution" hierarchyAllLevelName="(All Resolutions)" keyColumn="ID" name="ID" nameColumn="NAME"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Version" table="PROJECTVERSIONS">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="ID" name="ID"/>
			<Attribute hierarchyAllLevelName="(All Archived)" keyColumn="ARCHIVED" name="Archived"/>
			<Attribute hierarchyAllLevelName="(All Released)" keyColumn="RELEASED" name="Released"/>
			<Attribute hierarchyAllLevelName="(All Names)" keyColumn="NAME" name="Name"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Component" table="PROJECTCOMPONENTS">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="ID" name="ID"/>
			<Attribute hierarchyAllLevelName="(All Names)" keyColumn="NAME" name="Name"/>
			<Attribute hierarchyAllLevelName="(All Leaders" keyColumn="LEAD" name="Lead"/>
		</Attributes>
	</Dimension>

	<Dimension key="ID" name="Label" table="LABELS">
		<Attributes>
			<Attribute datatype="Integer" hasHierarchy="false" keyColumn="ID" name="ID"/>
			<Attribute datatype="String" hierarchyAllLevelName="(All Labels)" keyColumn="LABEL" name="Label"/>
		</Attributes>
	</Dimension>

	<Dimension key="Day" name="TimeVersion" table="TIMEBYDAYVERSION" type="TIME">
		<Attributes>
			<Attribute hasHierarchy="false" keyColumn="YEAR" levelType="TimeYears" name="Year"/>
			<Attribute hasHierarchy="false" levelType="TimeQuarters" name="Quarter" nameColumn="QUARTER">
				<Key>
					<Column name="YEAR"/>
					<Column name="QUARTER"/>
				</Key>
			</Attribute>
			<Attribute hasHierarchy="false" levelType="TimeMonths" name="Month" nameColumn="THEMONTH" orderByColumn="MONTHOFYEAR">
				<Key>
					<Column name="YEAR"/>
					<Column name="MONTHOFYEAR"/>
				</Key>
			</Attribute>

			<Attribute hasHierarchy="false" keyColumn="TIMEID" levelType="TimeDays" name="Day" nameColumn="DAY" orderByColumn="DAY"/>
		</Attributes>

		<Hierarchies>
			<Hierarchy allLevelName="(All Dates)" name="Time">
				<Level attribute="Year"/>
				<Level attribute="Quarter"/>
				<Level attribute="Month"/>
				<Level attribute="Day"/>
			</Hierarchy>
		</Hierarchies>
	</Dimension>

	<Cube name="JIRA Core">
		<Dimensions>
			<!-- ISSUES -->
			<Dimension source="Issue"/>
			<Dimension source="Project"/>
			<Dimension source="Type"/>
			<Dimension source="Status"/>
			<Dimension source="Priority"/>
			<Dimension source="Resolution"/>
			<Dimension name="Updated" source="Time"/>
			<Dimension name="Created" source="Time"/>
			<Dimension name="Due" source="Time"/>
			<Dimension name="Resolved" source="Time"/>
			<Dimension name="Assignee" source="User"/>
			<Dimension name="Reporter" source="User"/>
			
			<!-- VERSIONS -->
			<Dimension source="Version"/>
			<Dimension name="Start Date Version" source="TimeVersion"/>
			<Dimension name="Release Date Version" source="TimeVersion"/>
			
			<!-- COMPONENTS -->
			<Dimension source="Component"/>
			
			<!-- LABELS -->
			<Dimension source="Label"/>
			
			<!-- WORKLOGS -->
			<Dimension name="Worker" source="User"/>
			<Dimension name="Start Worklog" source="Time"/>
			
			<!-- TRANSITIONS -->
			<Dimension name="From" source="Status"/>
			<Dimension name="To" source="Status"/>
			<Dimension name="Performed on" source="Time"/>
			<Dimension name="Performed by" source="User"/>
			
		</Dimensions>
		<MeasureGroups>
			<MeasureGroup table="ISSUES">
				<Measures>
					<Measure aggregator="distinct-count" column="ID" name="M01- Issue count"/>
					<Measure aggregator="sum" column="ESTIMATED" name="M02- Estimated Time">
						<CellFormatter className="expert.marketplace.jira.mondrian.formatter.JIRAWorkFormatter"/>
					</Measure>
					<Measure aggregator="sum" column="REMAINING" name="M03- Remainig Time">
						<CellFormatter className="expert.marketplace.jira.mondrian.formatter.JIRAWorkFormatter"/>
					</Measure>
					<Measure aggregator="sum" column="TIMESPENT" name="M04- Logged Time">
						<CellFormatter className="expert.marketplace.jira.mondrian.formatter.JIRAWorkFormatter"/>
					</Measure>
				</Measures>
				<DimensionLinks>
				
					<!-- ISSUES -->
					<ForeignKeyLink dimension="Project" foreignKeyColumn="PROJECTID"/>
					<ForeignKeyLink dimension="Type" foreignKeyColumn="TYPEID"/>
					<ForeignKeyLink dimension="Status" foreignKeyColumn="STATUSID"/>
					<ForeignKeyLink dimension="Priority" foreignKeyColumn="PRIORITYID"/>
					<ForeignKeyLink dimension="Issue" foreignKeyColumn="ID"/>
					<ForeignKeyLink dimension="Created" foreignKeyColumn="CREATED"/>
					<ForeignKeyLink dimension="Updated" foreignKeyColumn="UPDATED"/>
					<ForeignKeyLink dimension="Due" foreignKeyColumn="DUE"/>
					<ForeignKeyLink dimension="Resolved" foreignKeyColumn="RESOLVED"/>
					<ForeignKeyLink dimension="Assignee" foreignKeyColumn="ASSIGNEE"/>
					<ForeignKeyLink dimension="Reporter" foreignKeyColumn="REPORTER"/>
					<ForeignKeyLink dimension="Resolution" foreignKeyColumn="RESOLUTIONID"/>
					
					<!-- VERSIONS -->
					<ForeignKeyLink dimension="Version" foreignKeyColumn="VERSIONID"/>
					<ForeignKeyLink dimension="Start Date Version" foreignKeyColumn="START"/>
					<ForeignKeyLink dimension="Release Date Version" foreignKeyColumn="RELEASED"/>
					
					<!-- COMPONENTS -->
					<ForeignKeyLink dimension="Component" foreignKeyColumn="PROJECTCOMPONENTID"/>
					
					<!-- LABELS -->
					<ForeignKeyLink dimension="Label" foreignKeyColumn="ID"/>
					
					<!-- WORKLOGS -->
					<ForeignKeyLink dimension="Worker" foreignKeyColumn="AUTHOR"/>
					<ForeignKeyLink dimension="Start Worklog" foreignKeyColumn="STARTWORKLOG"/>
					
					<!-- TRANSITIONS -->
					<ForeignKeyLink dimension="From" foreignKeyColumn="FROMVALUE"/>
					<ForeignKeyLink dimension="To" foreignKeyColumn="TOVALUE"/>
					<ForeignKeyLink dimension="Performed on" foreignKeyColumn="CREATEDCHANGED"/>
					<ForeignKeyLink dimension="Performed by" foreignKeyColumn="USERNAME"/>
					
				</DimensionLinks>
			</MeasureGroup>
			
			<MeasureGroup table="ISSUEVERSION">
				<Measures>
					<Measure aggregator="distinct-count" column="VERSIONID" name="M05- Count Versions in Issue"/>
					<Measure aggregator="distinct-count" column="ID" name="M06- Count Issues in Version"/>
				</Measures>
				<DimensionLinks>
					
					<!-- ISSUES -->
					<ForeignKeyLink dimension="Project" foreignKeyColumn="PROJECTID"/>
					<ForeignKeyLink dimension="Type" foreignKeyColumn="TYPEID"/>
					<ForeignKeyLink dimension="Status" foreignKeyColumn="STATUSID"/>
					<ForeignKeyLink dimension="Priority" foreignKeyColumn="PRIORITYID"/>
					<ForeignKeyLink dimension="Issue" foreignKeyColumn="ID"/>
					<ForeignKeyLink dimension="Created" foreignKeyColumn="CREATED"/>
					<ForeignKeyLink dimension="Updated" foreignKeyColumn="UPDATED"/>
					<ForeignKeyLink dimension="Due" foreignKeyColumn="DUE"/>
					<ForeignKeyLink dimension="Resolved" foreignKeyColumn="RESOLVED"/>
					<ForeignKeyLink dimension="Assignee" foreignKeyColumn="ASSIGNEE"/>
					<ForeignKeyLink dimension="Reporter" foreignKeyColumn="REPORTER"/>
					<ForeignKeyLink dimension="Resolution" foreignKeyColumn="RESOLUTIONID"/>
					
					<!-- VERSIONS -->
					<ForeignKeyLink dimension="Version" foreignKeyColumn="VERSIONID"/>
					<ForeignKeyLink dimension="Start Date Version" foreignKeyColumn="START"/>
					<ForeignKeyLink dimension="Release Date Version" foreignKeyColumn="RELEASED"/>
					
					<!-- COMPONENTS -->
					<ForeignKeyLink dimension="Component" foreignKeyColumn="PROJECTCOMPONENTID"/>
					
					<!-- LABELS -->
					<ForeignKeyLink dimension="Label" foreignKeyColumn="ID"/>
					
					<!-- WORKLOGS -->
					<ForeignKeyLink dimension="Worker" foreignKeyColumn="AUTHOR"/>
					<ForeignKeyLink dimension="Start Worklog" foreignKeyColumn="STARTWORKLOG"/>
					
					<!-- TRANSITIONS -->
					<ForeignKeyLink dimension="From" foreignKeyColumn="FROMVALUE"/>
					<ForeignKeyLink dimension="To" foreignKeyColumn="TOVALUE"/>
					<ForeignKeyLink dimension="Performed on" foreignKeyColumn="CREATEDCHANGED"/>
					<ForeignKeyLink dimension="Performed by" foreignKeyColumn="USERNAME"/>					
					
				</DimensionLinks>
			</MeasureGroup>
			
			<MeasureGroup table="ISSUECOMPONENTS">
				<Measures>
					<Measure aggregator="distinct-count" column="ID" name="M07- Count Issues in Component"/>
					<Measure aggregator="distinct-count" column="PROJECTCOMPONENTID" name="M08- Count Components in Issue"/>
				</Measures>
				<DimensionLinks>
				
					<!-- ISSUES -->
					<ForeignKeyLink dimension="Project" foreignKeyColumn="PROJECTID"/>
					<ForeignKeyLink dimension="Type" foreignKeyColumn="TYPEID"/>
					<ForeignKeyLink dimension="Status" foreignKeyColumn="STATUSID"/>
					<ForeignKeyLink dimension="Priority" foreignKeyColumn="PRIORITYID"/>
					<ForeignKeyLink dimension="Issue" foreignKeyColumn="ID"/>
					<ForeignKeyLink dimension="Created" foreignKeyColumn="CREATED"/>
					<ForeignKeyLink dimension="Updated" foreignKeyColumn="UPDATED"/>
					<ForeignKeyLink dimension="Due" foreignKeyColumn="DUE"/>
					<ForeignKeyLink dimension="Resolved" foreignKeyColumn="RESOLVED"/>
					<ForeignKeyLink dimension="Assignee" foreignKeyColumn="ASSIGNEE"/>
					<ForeignKeyLink dimension="Reporter" foreignKeyColumn="REPORTER"/>
					<ForeignKeyLink dimension="Resolution" foreignKeyColumn="RESOLUTIONID"/>
					
					<!-- VERSIONS -->
					<ForeignKeyLink dimension="Version" foreignKeyColumn="VERSIONID"/>
					<ForeignKeyLink dimension="Start Date Version" foreignKeyColumn="START"/>
					<ForeignKeyLink dimension="Release Date Version" foreignKeyColumn="RELEASED"/>

					<!-- COMPONENTS -->
					<ForeignKeyLink dimension="Component" foreignKeyColumn="PROJECTCOMPONENTID"/>
				
					<!-- LABELS -->
					<ForeignKeyLink dimension="Label" foreignKeyColumn="ID"/>
					
					<!-- WORKLOGS -->
					<ForeignKeyLink dimension="Worker" foreignKeyColumn="AUTHOR"/>
					<ForeignKeyLink dimension="Start Worklog" foreignKeyColumn="STARTWORKLOG"/>

					<!-- TRANSITIONS -->
					<ForeignKeyLink dimension="From" foreignKeyColumn="FROMVALUE"/>
					<ForeignKeyLink dimension="To" foreignKeyColumn="TOVALUE"/>
					<ForeignKeyLink dimension="Performed on" foreignKeyColumn="CREATEDCHANGED"/>
					<ForeignKeyLink dimension="Performed by" foreignKeyColumn="USERNAME"/>
										
				</DimensionLinks>
			</MeasureGroup>
			
			<MeasureGroup table="ISSUELABELS">
				<Measures>
					<Measure aggregator="distinct-count" column="ID" name="M09- Count Issues with Labels"/>
					<Measure aggregator="distinct-count" column="LABEL" name="M10- Count Labels in Issue"/>
				</Measures>
				<DimensionLinks>
				
					<!-- ISSUES -->
					<ForeignKeyLink dimension="Project" foreignKeyColumn="PROJECTID"/>
					<ForeignKeyLink dimension="Type" foreignKeyColumn="TYPEID"/>
					<ForeignKeyLink dimension="Status" foreignKeyColumn="STATUSID"/>
					<ForeignKeyLink dimension="Priority" foreignKeyColumn="PRIORITYID"/>
					<ForeignKeyLink dimension="Issue" foreignKeyColumn="ID"/>
					<ForeignKeyLink dimension="Created" foreignKeyColumn="CREATED"/>
					<ForeignKeyLink dimension="Updated" foreignKeyColumn="UPDATED"/>
					<ForeignKeyLink dimension="Due" foreignKeyColumn="DUE"/>
					<ForeignKeyLink dimension="Resolved" foreignKeyColumn="RESOLVED"/>
					<ForeignKeyLink dimension="Assignee" foreignKeyColumn="ASSIGNEE"/>
					<ForeignKeyLink dimension="Reporter" foreignKeyColumn="REPORTER"/>
					<ForeignKeyLink dimension="Resolution" foreignKeyColumn="RESOLUTIONID"/>
					
					<!-- VERSIONS -->
					<ForeignKeyLink dimension="Version" foreignKeyColumn="VERSIONID"/>
					<ForeignKeyLink dimension="Start Date Version" foreignKeyColumn="START"/>
					<ForeignKeyLink dimension="Release Date Version" foreignKeyColumn="RELEASED"/>
					
					<!-- COMPONENTS -->
					<ForeignKeyLink dimension="Component" foreignKeyColumn="PROJECTCOMPONENTID"/>
					
					<!-- LABELS -->
					<ForeignKeyLink dimension="Label" foreignKeyColumn="ID"/>
					
					<!-- WORKLOGS -->
					<ForeignKeyLink dimension="Worker" foreignKeyColumn="AUTHOR"/>
					<ForeignKeyLink dimension="Start Worklog" foreignKeyColumn="STARTWORKLOG"/>

					<!-- TRANSITIONS -->
					<ForeignKeyLink dimension="From" foreignKeyColumn="FROMVALUE"/>
					<ForeignKeyLink dimension="To" foreignKeyColumn="TOVALUE"/>
					<ForeignKeyLink dimension="Performed on" foreignKeyColumn="CREATEDCHANGED"/>
					<ForeignKeyLink dimension="Performed by" foreignKeyColumn="USERNAME"/>
										
				</DimensionLinks>
			</MeasureGroup>

			<MeasureGroup table="ISSUEWORKLOGS">
				<Measures>
					<Measure aggregator="distinct-count" column="ID" name="M11- Worklogs count"/>
					<Measure aggregator="sum" column="TIMESPENT" name="M12- Time Spent Worklog">
						<CellFormatter className="expert.marketplace.jira.mondrian.formatter.JIRAWorkFormatter"/>
					</Measure>
				</Measures>
				<DimensionLinks>
				
					<!-- ISSUES -->
					<ForeignKeyLink dimension="Project" foreignKeyColumn="PROJECTID"/>
					<ForeignKeyLink dimension="Type" foreignKeyColumn="TYPEID"/>
					<ForeignKeyLink dimension="Status" foreignKeyColumn="STATUSID"/>
					<ForeignKeyLink dimension="Priority" foreignKeyColumn="PRIORITYID"/>
					<ForeignKeyLink dimension="Issue" foreignKeyColumn="ID"/>
					<ForeignKeyLink dimension="Updated" foreignKeyColumn="UPDATED"/>
					<ForeignKeyLink dimension="Due" foreignKeyColumn="DUE"/>
					<ForeignKeyLink dimension="Resolved" foreignKeyColumn="RESOLVED"/>
					<ForeignKeyLink dimension="Assignee" foreignKeyColumn="ASSIGNEE"/>
					<ForeignKeyLink dimension="Reporter" foreignKeyColumn="REPORTER"/>
					<ForeignKeyLink dimension="Resolution" foreignKeyColumn="RESOLUTIONID"/>

					<!-- VERSIONS -->
					<ForeignKeyLink dimension="Version" foreignKeyColumn="VERSIONID"/>
					<ForeignKeyLink dimension="Start Date Version" foreignKeyColumn="START"/>
					<ForeignKeyLink dimension="Release Date Version" foreignKeyColumn="RELEASED"/>
					
					<!-- COMPONENTS -->
					<ForeignKeyLink dimension="Component" foreignKeyColumn="PROJECTCOMPONENTID"/>
					
					<!-- LABELS -->
					<ForeignKeyLink dimension="Label" foreignKeyColumn="ID"/>					

					<!-- WORKLOGS -->
					<ForeignKeyLink dimension="Worker" foreignKeyColumn="AUTHOR"/>
					<ForeignKeyLink dimension="Created" foreignKeyColumn="CREATEDWORKLOG"/>
					<ForeignKeyLink dimension="Start Worklog" foreignKeyColumn="STARTWORKLOG"/>				

					<!-- TRANSITIONS -->
					<ForeignKeyLink dimension="From" foreignKeyColumn="FROMVALUE"/>
					<ForeignKeyLink dimension="To" foreignKeyColumn="TOVALUE"/>
					<ForeignKeyLink dimension="Performed on" foreignKeyColumn="CREATEDCHANGED"/>
					<ForeignKeyLink dimension="Performed by" foreignKeyColumn="USERNAME"/>
										
				</DimensionLinks>
			</MeasureGroup>

			<MeasureGroup table="ISSUESTATUSCHANGES">
				<Measures>
					<Measure aggregator="distinct-count" column="ID" name="M13- Count Issues in Status"/>
					<Measure aggregator="sum" column="INTERVAL" name="M14- Interval">
						<CellFormatter className="expert.marketplace.jira.mondrian.formatter.JIRATimeFormatter"/>
					</Measure>
				</Measures>
				<DimensionLinks>
				
					<!-- ISSUES -->
					<ForeignKeyLink dimension="Project" foreignKeyColumn="PROJECTID"/>
					<ForeignKeyLink dimension="Type" foreignKeyColumn="TYPEID"/>
					<ForeignKeyLink dimension="Status" foreignKeyColumn="STATUSID"/>
					<ForeignKeyLink dimension="Priority" foreignKeyColumn="PRIORITYID"/>
					<ForeignKeyLink dimension="Issue" foreignKeyColumn="ID"/>
					<ForeignKeyLink dimension="Created" foreignKeyColumn="CREATED"/>
					<ForeignKeyLink dimension="Updated" foreignKeyColumn="UPDATED"/>
					<ForeignKeyLink dimension="Due" foreignKeyColumn="DUE"/>
					<ForeignKeyLink dimension="Resolved" foreignKeyColumn="RESOLVED"/>
					<ForeignKeyLink dimension="Assignee" foreignKeyColumn="ASSIGNEE"/>
					<ForeignKeyLink dimension="Reporter" foreignKeyColumn="REPORTER"/>
					<ForeignKeyLink dimension="Resolution" foreignKeyColumn="RESOLUTIONID"/>
					
					<!-- VERSIONS -->
					<ForeignKeyLink dimension="Version" foreignKeyColumn="VERSIONID"/>
					<ForeignKeyLink dimension="Start Date Version" foreignKeyColumn="START"/>
					<ForeignKeyLink dimension="Release Date Version" foreignKeyColumn="RELEASED"/>
					
					<!-- COMPONENTS -->
					<ForeignKeyLink dimension="Component" foreignKeyColumn="PROJECTCOMPONENTID"/>
					
					<!-- LABELS -->
					<ForeignKeyLink dimension="Label" foreignKeyColumn="ID"/>
					
					<!-- WORKLOGS -->
					<ForeignKeyLink dimension="Worker" foreignKeyColumn="AUTHOR"/>
					<ForeignKeyLink dimension="Start Worklog" foreignKeyColumn="STARTWORKLOG"/>						

					<!-- TRANSITIONS -->				
					<ForeignKeyLink dimension="From" foreignKeyColumn="FROMVALUE"/>
					<ForeignKeyLink dimension="To" foreignKeyColumn="TOVALUE"/>
					<ForeignKeyLink dimension="Performed on" foreignKeyColumn="CREATEDCHANGED"/>
					<ForeignKeyLink dimension="Performed by" foreignKeyColumn="USERNAME"/>

				</DimensionLinks>
			</MeasureGroup>
		</MeasureGroups>
	</Cube>
</Schema>





  • No labels