Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Iterating

...

Issue Activity 
Status
colourYellow
titleDeprecaTED

Changes to issues are registered in the Issue Activity, but it is not known in advance how many linked issues exist for an issue, you changes are going to be made. You can iterate a section over all the linked issues activities of an issue. This allows you to create a table that dynamically grows according to the number of existing linked issues.

All fields listed here are available on Links[n] because they represent an issue. In addition, there are two new fields at the Links[n] level: 

...

Description

...

Returns the Application Type. The values can be:

Application ValueDescription

JIRA

Link from the same Jira Instance
External JiraLink from the another Jira Instance
ConfluenceLink from a Confluence page
ExternalExternal link

...

activities. The notation is:

Activity FieldsDescription
Title

The title of the issue

SummaryThe summary of the activity
ContentWhen an activity involves a change in the Issue contents, this field displays the new contents
AuthorThe author of the activity
AuthorEmailThe email of the author of the activity
PublishedThe time the issue was published
UpdatedThe time the issue was updated
CategoriesWhen an activity regards an Issue Status change, this field displays the new Issue Status
Code Block
titleExpand to see the sample code
collapsetrue
#{for linksactivityEntries}
   ${LinksActivityEntries[n].AppTypeTitle}
   ${LinksActivityEntries[n].LinkTypeSummary}
   ${LinksActivityEntries[n].KeyContent}
   ${LinksActivityEntries[n].SummaryAuthor}
   ${LinksActivityEntries[n].URLAuthorEmail}
#{end}
  or   #{for <VariableName>=LinksCount${dateformat("dd-MM-yyyy HH:mm:ss"):ActivityEntries[n].Published}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):ActivityEntries[n].Updated}
   ${ActivityEntries[n].Categories}
#{end}
 
or
 
#{for <VariableName>=ActivityEntriesCount}
   Content and Linked Issue Mappings. Example: ${LinksActivityEntries[VariableName].Field}
#{end}

Note:  When the link you are iterating is of AppTypes External Jira or Confluence, the name is obtained using the Summary property.

The documents The documents below demonstrate examples both in Word and Excel template that iterates over linked issues.

Iterating_Issue_LinksActivity.docx

 IteratingIterating_Issue_LinksActivity.xlsx

Iterating Issue

...

Links

Because it is not known in advance how many comments linked issues exist for an issue, you can iterate a section over all the comments on linked issues of an issue. This allows you to create a table that dynamically grows according to the number of existing comments. The notation is:

...

The author of the comment

...

linked issues.

All fields listed here are available on Links[n] because they represent an issue. In addition, there are two new fields at the Links[n] level: 

Field

Description

AppType

Returns the Application Type. The values can be:

Application ValueDescription

JIRA

Link from the same Jira Instance
External JiraLink from the another Jira Instance
ConfluenceLink from a Confluence page
ExternalExternal link
LinkTypeReturns the Link Type.
Code Block
titleExpand to see the sample code
collapsetrue
#{for commentslinks}
   ${CommentsLinks[n].AuthorAppType}
    ${CommentsLinks[n].AuthorFullNameLinkType} 
   ${CommentsLinks[n].BodyKey} 
   ${dateformat("dd-MM-yyyy HH:mm:ss"):CommentsLinks[n].CreatedSummary}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Comments[n].CreatedDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Comments[n].CreatedDateTime}
   ${Comments[n].GroupLevel}
   ${Comments[n].Internal}
#{Links[n].URL}
#{end}
 
or
 
#{for <VariableName>=CommentsCountLinksCount}
   Content and Linked Issue Mappings. Example: ${CommentsLinks[VariableName].Field}
#{end}

...

Note:  When the link you are iterating is of AppTypes External Jira or Confluence, the name is obtained using the Summary property.

The documents below demonstrate examples both in Word and Excel template that iterates over

...

linked issues.

Image Modified Iterating_Issue_

...

Links.docx

Image Modified

...

 Iterating_Issue_

...

Links.xlsx

...

Iterating Issue

...

Comments

Because it is not known in advance how many worklogs comments exist for an issue, you can iterate a section over all the worklogs of comments on an issue. This allow allows you to create a table that dynamically grows according to the number of existing worklogscomments. The notation is:

Worklogs
Comments FieldsDescription
Author

The author of the

worklog

comment

AuthorFullNameThe full name of the author of the
worklog
comment
Comment
Body

The comment

of the worklog

body 

Status
colourBlue
titleWiki

CreatedThe
worklog's creation date.
date the comment was posted
CreatedDateThe
worklog's creation date.
date the comment was posted
CreatedDateTimeThe
worklog's creation date.

Date Started

The date the worklog was started

StartDate

The date the worklog was started

StartDateTime

The date the worklog was started

TimeSpentThe time spent in seconds

Time Spent

The time spent in seconds

TimeSpentFormatted

The time spent as displayed on JiraBillableSecondsThe billable seconds (Belongs to Tempo Timesheets plugin)
date the comment was posted
GroupLevelThe group level of the comment
InternalThe comment is internal or public
Code Block
titleExpand to see the sample code
collapsetrue
#{for worklogscomments}
   ${WorklogsComments[n].Author} 
   ${WorklogsComments[n].AuthorFullName} 
    ${WorklogsComments[n].CommentBody} 
   ${dateformat("dd-MM-yyyy HH:mm:ss"):WorklogsComments[n].Created}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):WorklogsComments[n].CreatedDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):WorklogsComments[n].CreatedDateTime}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):WorklogsComments[n].StartDateGroupLevel}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):WorklogsComments[n].Date StartedInternal}
#{end}
 
or
 
${dateformat("dd-MM-yyyy HH:mm:ss"):Worklogs[n].StartDateTime}#{for <VariableName>=CommentsCount}
   Content  ${Worklogs[n].Time Spent}
   ${Worklogs[n].TimeSpent}
   ${Worklogs[n].TimeSpentFormatted} 
   ${Worklogs[n].BillableSeconds}
#{end}
 
or
 
#{for <VariableName>=WorklogsCount}
   Content and Worklog Mappings. Example: ${Worklogs[VariableName].Field}
#{end}

...

and Issue Mappings. Example: ${Comments[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over all the issue comments.

Image Modified Iterating_Issue_

...

Comments.docx

Image Modified Iterating_Issue_

...

Comments.xlsx

...

Iterating Issue

...

All fields listed here are available on Subtasks[n] because they represent an issue.

Worklogs

Because it is not known in advance how many subtasks worklogs exist for an issue, you can iterate a section over all the subtasks worklogs of an issue. This allows allow you to create a table that dynamically grows according to the number of existing subtasksworklogs. The notation is:

Subtasks

Worklogs Fields

Description

Key

Author

The

key

author of the

subtasks

worklog

Summary

AuthorFullName

The

summary

full name of the author of the

subtasks

worklog

AssigneeUserDisplayName

Comment

The

assignee user

comment of the

subtasks

...

worklog

ParentIssueKeyThe issue parent key

Status
colourBlue
title

...

#{for subtasks}
   ${Subtasks[n].Key}
   ${Subtasks[n].Summary}
   ${Subtasks[n].AssigneeUserDisplayName}
   ${Subtasks[n].ParentIssueKey}
#{end}
 
or
 
#{for <VariableName>=SubtasksCount}
   Content and Issue Mappings. Example: ${Subtasks[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue subtasks.

Image Removed Iterating_Issue_Subtasks.docx

Image Removed Iterating_Issue_Subtasks.xlsx

Iterating Issue Components

Because it is not known in advance how many components exist for an issue, you can iterate a section over all the components of an issue. This allows you to create a table that dynamically grows according to the number of existing components. The notation is:

...

titleExpand to see the sample code
collapsetrue

...

Wiki

Created

The worklog's creation date.

CreatedDate

The worklog's creation date.

CreatedDateTime

The worklog's creation date.

Date Started

The date the worklog was started

StartDate

The date the worklog was started

StartDateTime

The date the worklog was started

TimeSpentThe time spent in seconds

Time Spent

The time spent in seconds

TimeSpentFormatted

The time spent as displayed on Jira
BillableSecondsThe billable seconds (Belongs to Tempo Timesheets plugin)
Code Block
titleExpand to see the sample code
collapsetrue
#{for worklogs}
   ${Worklogs[n].Author} 
   ${Worklogs[n].AuthorFullName} 
   ${Worklogs[n].Comment}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Worklogs[n].Created}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Worklogs[n].CreatedDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Worklogs[n].CreatedDateTime}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Worklogs[n].StartDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Worklogs[n].Date Started}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Worklogs[n].StartDateTime} 
   ${Worklogs[n].Time Spent}
   ${Worklogs[n].TimeSpent}
   ${Worklogs[n].TimeSpentFormatted} 
   ${Worklogs[n].BillableSeconds}
#{end}
 
or
 
#{for <VariableName>=WorklogsCount}
   Content and Worklog Mappings. Example: ${Worklogs[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue componentsworklogs.

Iterating_Issue_ComponentsWorklogs.docx

Iterating_Issue_ComponentsWorklogs.xlsx

...

Iterating Issue

...

Subtasks

All fields listed here are available on Subtasks[n] because they represent an issue.

Because it is not known in advance how many Status Transitions subtasks exist for an issue, you can iterate a section over all the Status Transitions subtasks of an issue. This allows you to create a table that dynamically grows according to the number of existing status transitionssubtasks. The notation is:

...

Status Transitions
Subtasks FieldsDescription
Author
KeyThe
author
key of the
status transition
subtasks
Created
SummaryThe
date the status transition was performedCreatedDateThe date the status transition was performedCreatedDateTimeThe date the status transition was performedOldStatusThe old status of the status transitionNewStatusThe new status of the status transition

...

summary of the subtasks
AssigneeUserDisplayNameThe assignee user of the subtasks
ParentIssueKeyThe issue parent key
Code Block
titleExpand to see the sample code
collapsetrue
#{for statusTransitionssubtasks}
   ${StatusTransitionsSubtasks[n].AuthorKey}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitionsSubtasks[n].CreatedSummary}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitionsSubtasks[n].CreatedDateAssigneeUserDisplayName}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitions[n].CreatedDateTime}
   ${StatusTransitions[n].OldStatus}
   ${StatusTransitions[n].NewStatus}
Subtasks[n].ParentIssueKey}
#{end}
 
or
 

#{for <VariableName>=StatusTransitionsCountSubtasksCount}
   Content and StatusTransitionsIssue Mappings. Example: ${StatusTransitionsSubtasks[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue status transitionssubtasks.

Iterating_Issue_StatusTransitionsSubtasks.docx

Iterating_Issue_StatusTransitionsSubtasks.xlsx

...

Iterating Issue

...

Components

Because it is not known in advance how many Images can components exist for an issue (as an attachment), you can iterate a section over all the attached images components of an issue to get some metadata about them. This allows you to create a table that dynamically grows according to the number of existing imagescomponents. The notation is:

Attachments Images
Components FieldsDescription
ID
NameThe
ID
name of the
attached image
component
Image
DescriptionThe
image
description of the
attached image
component
Name
LeadThe name of the
attached image
component lead
Size
IdThe
size
ID of the
attached image
component
HumanReadableSize
ProjectIdThe
size
project ID of the
attached image
component
Author
AssigneeTypeThe
author (ID)
assignee type of the
attached image
component
CreatedThe date the attached image was createdCreatedDateThe date the attached image was createdCreatedDateTimeThe date the attached image was createdMimeTypeThe type of the attached imageThumbnailURLThe URL to the thumbnail of the image
#{for images
Code Block
titleExpand to see the sample code
collapsetrue
Code Block
titleExpand to see the sample code
collapsetrue
#{for components}
   ${ImagesComponents[n].Image|maxwidth=150|maxheight=150Name}
   ${ImagesComponents[n].NameDescription}
   ${Imagesfullname:Components[n].IDLead}
   ${ImagesComponents[n].SizeId}
   ${ImagesComponents[n].HumanReadableSizeProjectId}
   ${ImagesComponents[n].AuthorAssigneeType}
#{end}

 ${dateformat("dd-MM-yyyy HH:mm:ss"):Images[n].Created#{for <VariableName>=ComponentsCount}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Images[n].CreatedDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Images[n].CreatedDateTime}
   ${Images[n].MimeType}
   ${Images[n].ThumbnailURL}
 #{end}
 
or
 
#{for <VariableName>=ImagesCount}
   Content and Images Mappings. Example: ${Images[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue status transitions.

Image Removed Iterating_Issue_Images.docx

Image Removed Iterating_Issue_Images.xlsx

Info

You can iterate over ${Images[n].Image} in Excel on Xporter version 5.4.0 and above.

Info

Xporter will automatically read the EXIF orientation property of an image and rotate it to its correct orientation. You can turn this off by adding this property to your template.

Since Xporter 5.5.0, you can use the mappings width and height to define the exact width and height of the printed image.

Code Block
titleExpand to see the sample code
collapsetrue
#{for images}
   ${Images[n].Image|width=150|height=150}
 #{end}

These values are in pixels and if you only define one of them the image will be rescaled.

Info

Note that, if you use both maxWidth and width mappings, only the max value will be read. The same behavior happens with height and maxHeight.

Iterating Issue Attachments

Because it is not known in advance how many attachments exist in an issue, you can iterate a section over all the attachments of an issue. This allows you to create a table that dynamically grows according to the number of existing attachments. The notation is:

...

Content and Components Mappings. Example: ${Components[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue components.

Image Added Iterating_Issue_Components.docx

Image Added Iterating_Issue_Components.xlsx

...

Iterating Issue Status Transitions

Because it is not known in advance how many Status Transitions exist for an issue, you can iterate a section over all the Status Transitions of an issue. This allows you to create a table that dynamically grows according to the number of existing status transitions. The notation is:

Status Transitions FieldsDescription
AuthorThe author of the status transition
CreatedThe date the status transition was performed
CreatedDateThe date the status transition was performed
CreatedDateTimeThe date the status transition was performed
OldStatusThe old status of the status transition
NewStatusThe new status of the status transition
Code Block
titleExpand to see the sample code
collapsetrue
#{for statusTransitions}
   ${StatusTransitions[n].Author}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitions[n].Created}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitions[n].CreatedDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitions[n].CreatedDateTime}
   ${StatusTransitions[n].OldStatus}
   ${StatusTransitions[n].NewStatus}
#{end}
 
or
 
#{for <VariableName>=StatusTransitionsCount}
   Content and StatusTransitions Mappings. Example: ${StatusTransitions[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue status transitions.

Image Added Iterating_Issue_StatusTransitions.docx

Image Added Iterating_Issue_StatusTransitions.xlsx

...

Iterating Issue Attached Images

Because it is not known in advance how many Images can exist for an issue (as an attachment), you can iterate a section over all the attached images of an issue to get some metadata about them. This allows you to create a table that dynamically grows according to the number of existing images. The notation is:

Attachments Images FieldsDescription
IDThe ID of the attached image
ImageThe image of the attached image
NameThe name of the attached image
SizeThe size of the attached image
HumanReadableSizeThe size of the attached image
AuthorThe author (ID) of the attached image
CreatedThe date the attached image was created
CreatedDateThe date the attached image was created
CreatedDateTimeThe date the attached image was created
MimeTypeThe type of the attached image
ThumbnailURLThe URL to the thumbnail of the image
Code Block
titleExpand to see the sample code
collapsetrue
#{for images}
   ${Images[n].Image|maxwidth=150|maxheight=150}
   ${Images[n].Name}
   ${Images[n].ID}
   ${Images[n].Size}
   ${Images[n].HumanReadableSize}
   ${Images[n].Author}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Images[n].Created}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Images[n].CreatedDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Images[n].CreatedDateTime}
   ${Images[n].MimeType}
   ${Images[n].ThumbnailURL}
 #{end}
 
or
 
#{for <VariableName>=ImagesCount}
   Content and Images Mappings. Example: ${Images[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the attached images for each issue.

Image Added Iterating_Issue_Images.docx

Image Added Iterating_Issue_Images.xlsx


Info

Xporter will automatically read the EXIF orientation property of an image and rotate it to its correct orientation. You can turn this off by adding this property to your template.

You can use the mappings width and height to define the exact width and height of the printed image.

Code Block
titleExpand to see the sample code
collapsetrue
#{for images}
   ${Images[n].Image|width=150|height=150}
 #{end}

These values are in pixels and if you only define one of them the image will be rescaled.

Info

Note that, if you use both maxWidth and width mappings, only the max value will be read. The same behavior happens with height and maxHeight.

...

Iterating Issue Attachments

Because it is not known in advance how many attachments exist in an issue, you can iterate a section over all the attachments of an issue. This allows you to create a table that dynamically grows according to the number of existing attachments. The notation is:

Attachments FieldsDescription
IDThe ID of the attachment
IdThe ID of the attachment
NameThe name of the attachment
AuthorThe author of the attachment
AuthorFullNameThe full name of the author of the attachment
CreatedThe date the attachment was created
CreatedDateThe date the attachment was created
CreatedDateTimeThe date the attachment was created
SizeThe size of the attachment
HumanReadableSizeThe formatted size of the attachment
MimeTypeThe type of the attachment
Code Block
titleExpand to see the sample code
collapsetrue
#{for attachments}
   ${Attachments[n].ID}
   ${Attachments[n].Name}
   ${Attachments[n].Author}
   ${Attachments[n].AuthorFullName}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Attachments[n].Created}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Attachments[n].CreatedDate}
   ${dateformat("dd-MM-yyyy HH:mm:ss"):Attachments[n].CreatedDateTime}
   ${Attachments[n].Size}
   ${Attachments[n].HumanReadableSize}
   ${Attachments[n].MimeType}
#{end}
 
or
 
#{for <VariableName>=AttachmentsCount}
   Content and Issue Mappings. Example: ${Attachments[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue's attachments.

Image Added Iterating_Issue_Attachments.docx

Image Added Iterating_Issue_Attachments.xlsx

...

Iterating Issue Labels

Because it is not known in advance how many labels exist in an issue, you can iterate a section over all the labels of an issue. The notation is:

Attachments FieldsDescription
NameThe name of the label
Code Block
titleExpand to see the sample code
collapsetrue
#{for labels}
   ${Labels[n].Name}
#{end}
 
or
 
#{for <VariableName>=LabelsCount}
   Content and Versions Issue Mappings. Example: ${Labels[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue's labels.

Image Added Iterating_Issue_Labels.docx

Image Added Iterating_Issue_Labels.xlsx

...

Iterating Fix Versions of an Issue

You can iterate over all fix versions to which the issue belong to. The notation is:

Versions FieldsDescription
NameThe version name
DescriptionThe version description
Start dateStarting date of the version
Release dateRelease date of the version
ArchivedBoolean that indicates if the version is archived or not
ReleasedBoolean that indicates if the version is released or not
Code Block
titleExpand to see the sample code
collapsetrue
#{for FixVersions}
	${FixVersions[n].Name}
	${FixVersions[n].Description}
	${dateformat(“dd-MM-yyyy”):FixVersions[n].Start date}
	${dateformat(“dd-MM-yyyy”):FixVersions[n].Release date}
	${FixVersions[n].Archived}
	${FixVersions[n].Released}
#{end}

or

#{for <VariableName>=FixVersionsCount}
   Content and Versions Issue Mappings. Example: ${FixVersions[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue's fix versions.

Image Added Iterating_Issue_FixVersions.docx

Image Added Iterating_Issue_FixVersions.xlsx

...

Iterating Affected Versions of an Issue

You can iterate over all affected versions to which the issue belongs to. The notation is:

Versions FieldsDescription
NameThe version name
DescriptionThe version description
Start dateStarting date of the version
Release dateRelease date of the version
ArchivedBoolean that indicates if the version is archived or not
ReleasedBoolean that indicates if the version is released or not
Code Block
titleExpand to see the sample code
collapsetrue
#{for AffectedVersions}
	${AffectedVersions[n].Name}
	${AffectedVersions[n].Description}
	${dateformat(“dd-MM-yyyy”):AffectedVersions[n].Start date}
	${dateformat(“dd-MM-yyyy”):AffectedVersions[n].Release date}
	${AffectedVersions[n].Archived}
	${AffectedVersions[n].Released}
#{end}

or

#{for <VariableName>=AffectedVersionsCount}
   Content and Versions Issue Mappings. Example: ${AffectedVersions[VariableName].Field}
#{end}

The documents below demonstrate examples both in Word and Excel template that iterates over the issue's affected versions.

Image Added Iterating_Issue_AffectedVersions.docx

Image Added Iterating_Issue_AffectedVersions.xlsx

...

Iterating Project Versions

You can iterate over all project versions to which the issue belongs to. The notation is:

Project Versions FieldsDescription
NameThe version name
DescriptionThe version description
Start dateStarting date of the version
Release dateRelease date of the version
ArchivedBoolean that indicates if the version is archived or not
ReleasedBoolean that indicates if the version is released or not
Code Block
titleExpand to see the sample smaple code
collapsetrue
#{for attachmentsprojectVersions}
   	${AttachmentsProjectVersions[n].ID}
   ${Attachments[n].Name}
   	${AttachmentsProjectVersions[n].AuthorDescription}
   	${Attachments[n].AuthorFullName}
   ${dateformat("dd“dd-MM-yyyy HH:mm:ss"yyyy”):AttachmentsProjectVersions[n].CreatedStart date}
   	${Attachmentsdateformat(“dd-MM-yyyy”):ProjectVersions[n].SizeRelease date}
   	${AttachmentsProjectVersions[n].HumanReadableSizeArchived}
   	${AttachmentsProjectVersions[n].MimeTypeReleased}
#{end}
 
or
 
#{for <VariableName>=AttachmentsCountProjectVersionsCount}
   Content and Project IssueVersions Mappings. Example: ${AttachmentsProjectVersions[VariableName].Field}
#{end}

The image below demonstrates an example of a Word template that iterates over attachments.

Image Removed

or

Image Removed

...

The documents below demonstrate examples both in Word and Excel template that iterates over

...

the issue's project versions.

...

or

Image Removed

Iterating Issue Labels

Because it is not known in advance how many labels exist in an issue, you can iterate a section over all the labels of an issueImage Added Iterating_Issue_ProjectVersions.docx

Image Added Iterating_Issue_ProjectVersions.xlsx

...

Iterating Sprints

You can iterate over all sprints to which the issue belongs. The notation is:

Attachments Project Versions FieldsDescription
NameThe name of the label

...

sprint name
StatusThe sprint status
Code Block
titleExpand to see the smaple code
collapsetrue
#{for labelssprints}
   	${Sprints[n].Name}
	${LabelsSprints[n].NameStatus}
#{end}


or


#{for <VariableName>=LabelsCountSprintsCount}
   Content and Sprints Mappings. Example: ${LabelsSprints[VariableName].NameField}
#{end}

The image below demonstrates an example of a Word template that iterates over labels.

Image Removed

or

Image Removed

The image below demonstrates an example of an The documents below demonstrate examples both in Word and Excel template that iterates over labelsthe issue's project versions.

Image Removed

or

Image Removed

...

Image Added Iterating_Issue_Sprints.docx

Image Added Iterating_Issue_Sprints.xlsx

...

Iterating Issue History Entries

You can iterate over all fix versions to which the issue belong toissue's changelogs. The notation is:

Boolean that indicates if the version is released or not
Project Versions FieldsDescription
NameAuthorThe version name
DescriptionThe version description
Start dateStarting date of the version
Release dateRelease date of the version
ArchivedBoolean that indicates if the version is archived or not
Releaseduser who made the change
CreatedDate of the change
CreatedDateDate of the change
CreatedDateTimeDate of the change
ChangedItemsCountNumber of items changed
Code Block
titleExpand to see the smaple code
collapsetrue
#{for FixVersionshistoryEntries}
	${FixVersionsHistoryEntries[n].NameAuthor}
	${FixVersionsHistoryEntries[n].DescriptionCreated}
	${dateformat(“dd-MM-yyyy”):FixVersionsHistoryEntries[n].Start dateCreatedDate}
	${HistoryEntries[n].CreatedDateTime}
	${dateformat(“dd-MM-yyyy”):FixVersionsHistoryEntries[n].ChangedItemsCount}
	#{for i=HistoryEntries[n].ChangedItemsCount}
		${HistoryEntries[n].Release dateChangedItems[i].Field}
		${FixVersionsHistoryEntries[n].ChangedItems[i].ArchivedFrom}
		${FixVersionsHistoryEntries[n].ReleasedChangedItems[i].To}
	#{end}
#{end}

or

#{for <VariableName>=FixVersionsHistoryEntriesCount}
   Content and VersionsHistory IssueEntries Mappings. Example: ${FixVersionsHistoryEntries[VariableName].Field}
#{end}

The image below demonstrates an example of a Word template that iterates over fix versions that an issue belongs to.

Image Removed

or

Image Removed

The image below demonstrates an example of an Excel template that iterates over an fix versions that an issue belongs to.

Image Removed

or

Image Removed

Iterating Affected Versions of an Issue

You can iterate over all affected versions to which the issue belong to. The notation is:

...

The documents below demonstrate examples both in Word and Excel template that iterates over the issue's changelogs.

Image Added Iterating_Issue_Histories.docx

Image Added Iterating_Issue_Histories.xlsx

...

Iterating Project Components

You can iterate over all project components. The notation is:

Code Block
titleExpand to see the sample code
collapsetrue
#{for AffectedVersionsProjectComponents}
 	  ${AffectedVersionsProjectComponents[n].Name}
	   ${AffectedVersionsProjectComponents[n].Description}
   	${dateformat(“dd-MM-yyyy”):AffectedVersionsfullname:ProjectComponents[n].Start date}
	${dateformat(“dd-MM-yyyy”):AffectedVersionsLead}
   ${ProjectComponents[n].Release date}
	Id}
   ${AffectedVersionsProjectComponents[n].ArchivedProjectId}
	   ${AffectedVersionsProjectComponents[n].ReleasedAssigneeType}
#{end}

or

#{for <VariableName>=AffectedVersionsProjectComponentsCount}
   Content and VersionsComponents Issue Mappings. Example: ${AffectedVersionsProjectComponents[VariableName].Field}
#{end}

The image below demonstrates an example of a Word template that iterates over affected versions that an issue belongs to.

Image Removed

or

Image Removed

The image below demonstrates an example of an The documents below demonstrate examples both in Word and Excel template that iterates over an affected versions that an issue belongs to.

Image Removed

or

Image Removed

Iterating Project Versions

You can iterate over all project versions to which the issue belong to. The notation is:

...

the project components.

Image Added Iterating_Issue_ProjectComponents.docx

Image Added Iterating_Issue_ProjectComponents.xlsx

...

Iterating Issues In Epic

All fields listed here are available on IssuesInEpic[n] because they represent an issue.

Because it is not known in advance how many issues exist for an epic, you can iterate a section over all the issues of an epic issue. This allows you to create a table that dynamically grows according to the number of existing issues. The notation is:

Code Block
titleExpand to see the smaple sample code
collapsetrue
#{for projectVersionsIssuesInEpic}
 	  ${ProjectVersionsIssuesInEpic[n].NameKey}
 	  ${ProjectVersionsIssuesInEpic[n].DescriptionSummary}
	   ${dateformat(“dd-MM-yyyy”):ProjectVersionsIssuesInEpic[n].StartDescription}
date} 	${dateformat(“dd-MM-yyyy”):ProjectVersions[n].Release date} 	${ProjectVersionsIssuesInEpic[n].Archived}
	${ProjectVersions[n].ReleasedEpic Link.Key}
#{end}
 
or
 
#{for <VariableName>=ProjectVersionsIssuesInEpicCount}
   Content and ProjectIssue Versions Mappings. Example: ${ProjectVersionsIssuesInEpic[VariableName].Field}
#{end}

The image below demonstrates an example of a Word The documents below demonstrate examples both in Word and Excel template that iterates over project versions that an issue belongs to.

Image Removed

or

Image Removed

The image below demonstrates an example of an Excel template that iterates over project versions that an issue belongs to.

Image Removed

or

Image Removed

the issues in epic.

Image Added Iterating_Issues_In_Epic.docx

Image Added Iterating_Issues_In_Epic.xlsx

...

Iterating JQL Queries

You can iterate issues that are the result of a JQL Query. The syntax is similar to the other iterations, but there is clause parameter that will receive the JQL Query. A few examples are provided below.

...

titleExpand to see the sample code
collapsetrue

...

clause parameter that will receive the JQL Query. A few examples are provided below.

Code Block
titleExpand to see the sample code
collapsetrue
a simple example iterating the details of issues linkedfrom witha thespecified current IssueProject:
 
#{for mi=JQLIssuesCount|clause=issuekey inproject linkedIssues (${Links[j].Key})}
= DEMO}
  Linked Issue ${JQLIssues[mi].SummaryKey}
 has  ${JQLIssues[mi].LinksCountSummary} links
#{end} 
 
or ana alsomore advanced example iterating the details of the Parent issue from the current Subtask:
 
#{for i=JQLIssuesCount|clause=issuekey = ${ParentIssueKey}}
	${JQLIssues[i].Key}
	${JQLIssues[i].Id}
	${JQLIssues[i].Description}
#{end}

The

...

Image Removed

For a working example of this functionality, check the template Sample Iterations in the Template Store.

The image below demonstrates an example of an Excel template that iterates over issue subtasks.

Image Removed
 documents below demonstrate examples both in Word and Excel template with JQL examples.

Image Added JQL.docx

Image Added JQL.xlsx

Info

You can also use a Filter Name or a Filter Id as a clause. For more info, check [http://confluence.xpand-addons.com/display/public/XPORTER/JQL]

...

Code Block
titleExpand to see the sample code
collapsetrue
#{for <VariableName>=<LinksCount|SubtasksCount|CommentsCount|WorklogsCount>|filter=%{<Javascript>}}
   Content here
#{end}
  • VariableName is the name of the variable to use as the iteration index.
  • LinksCount|SubtasksCount|CommentsCount  indicates over which type of entities you want to iterate.

  • Filter indicates the filter to be applied in the iteration.

Notice that as the filter is evaluated as a JavaScript expression, which provides flexibility in the definition of the conditions. You can use and (&&), or (||) and other logical operators supported by the JavaScript language.

It is also possible to format fields inside iteration filters. For more information on formatters, see Iterations.

The image below demonstrates an example of a template that iterates over issue links and comments with filters being applied.

Links Bugs with High Priority:

Image Removed

Nested Iterations:

Image Removed

...

  • : is the name of the variable to use as the iteration index.
  • LinksCount|SubtasksCount|CommentsCount: indicates over which type of entities you want to iterate.

  • Filter: indicates the filter to be applied in the iteration.

Notice that the filter is evaluated as a JavaScript expression, which provides flexibility in the definition of the conditions. You can use and (&&), or (||) and other logical operators supported by the JavaScript language.

It is also possible to format fields inside iteration filters. For more information on formatters, see Iterations.

The document below demonstrates an example of a template that iterates over issue links and comments with filters being applied.

Links_with_Filter_and_HighPriority.docx

...

Nested Iterations

You can have multiple levels of iterations inside other iterations. This can be useful if you want to iterate the comments of each linked issue or the attached images for each subtask.

Code Block
titleExpand to see the sample code
collapsetrue
#{for <VariableName1>=LinksCount}
  	#{for <VariableName2>=Iteration[n].Count}
		Content here	
	#{end}
#{end}

The document below demonstrates multiple scenarios where nested iterations can be useful.

Nested_iterations.docx

...

Iterating in the same line of the document

...

Info
titleSorting Criteria

asc and desc can be defined in order to define how do you want to sort your data. The default value is asc.



Info

Status
colourBlue
titleWiki
indicates that the field supports wiki format. More about here.