Table of Contents |
---|
Iterating
...
Issue Activity
Status | ||||
---|---|---|---|---|
|
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 Value | Description |
---|---|
JIRA | Link from the same Jira Instance |
External Jira | Link from the another Jira Instance |
Confluence | Link from a Confluence page |
External | External link |
...
activities. The notation is:
Activity Fields | Description |
---|---|
Title | The title of the issue |
Summary | The summary of the activity |
Content | When an activity involves a change in the Issue contents, this field displays the new contents |
Author | The author of the activity |
AuthorEmail | The email of the author of the activity |
Published | The time the issue was published |
Updated | The time the issue was updated |
Categories | When an activity regards an Issue Status change, this field displays the new Issue Status |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for linksactivityEntries} ${LinksActivityEntries[n].AppTypeTitle} ${LinksActivityEntries[n].LinkTypeSummary} ${LinksActivityEntries[n].KeyContent} ${LinksActivityEntries[n].SummaryAuthor} ${LinksActivityEntries[n].URL} #{endAuthorEmail} 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 below demonstrate 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
...
title | Expand to see the sample code |
---|---|
collapse | true |
...
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:
| ||||||||||
LinkType | Returns the Link Type. |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for links} ${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"):CommentsLinks[n].CreatedDate} ${dateformat("dd-MM-yyyy HH:mm:ss"):Comments[n].CreatedDateTime} ${Comments[n].GroupLevel} ${Comments[n].Internal} 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.
...
...
...
...
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:
Comments Fields | Description |
---|---|
Author | The author of the |
comment | |
AuthorFullName | The full name of the author of the |
comment |
Body | The comment |
body
| ||||||||
Created | The |
date the comment was posted | |
CreatedDate | The |
date the comment was posted | |
CreatedDateTime | The |
date |
Date Started
The date the worklog was started
The date the worklog was started
The date the worklog was started
Time Spent
The time spent in seconds
TimeSpentFormatted
the comment was posted | |
GroupLevel | The group level of the comment |
Internal | The comment is internal or public |
Code Block | ||||
---|---|---|---|---|
| ||||
#{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} ${Worklogs[n].Time Spent} ${Worklogs[n].TimeSpent} ${Worklogs[n].TimeSpentFormatted} ${Worklogs[n].BillableSeconds} #{end} or #{for <VariableName>=WorklogsCount} Content and WorklogIssue Mappings. Example: ${WorklogsComments[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over all the issue
...
comments.
...
...
...
Iterating 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:
Worklogs Fields | Description |
---|
Author | The |
author of the |
worklog |
AuthorFullName | The |
full name of the author of the |
worklog |
Comment | The |
comment of the |
worklog |
...
|
...
| |||
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 | ||
TimeSpent | The time spent in seconds | ||
Time Spent | The time spent in seconds | ||
TimeSpentFormatted | The time spent as displayed on Jira | ||
BillableSeconds | The billable seconds (Belongs to Tempo Timesheets plugin) |
Code Block | ||||
---|---|---|---|---|
| ||||
#{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 worklogs.
...
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 subtasks exist for an issue, you can iterate a section over all the subtasks of an issue. This allows you to create a table that dynamically grows according to the number of existing subtasks. The notation is:
Subtasks Fields | Description |
---|---|
Key | The key of the subtasks |
Summary | The summary of the subtasks |
AssigneeUserDisplayName | The assignee user of the subtasks |
ParentIssueKey | The issue parent key |
Code Block | ||||
---|---|---|---|---|
| ||||
#{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.
...
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:
Components Fields | Description |
---|---|
Name | The name of the component |
Description | The description of the component |
Lead | The name of the component lead |
Id | The ID of the component |
ProjectId | The project ID of the component |
AssigneeType | The assignee type of the component |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for components} ${Components[n].Name} ${Components[n].Description} ${Subtasksfullname:Components[n].KeyLead} ${SubtasksComponents[n].SummaryId} ${SubtasksComponents[n].AssigneeUserDisplayNameProjectId} ${SubtasksComponents[n].ParentIssueKeyAssigneeType} #{end} or #{for <VariableName>=SubtasksCountComponentsCount} Content and IssueComponents Mappings. Example: ${SubtasksComponents[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue subtaskscomponents.
Iterating_Issue_SubtasksComponents.docx
Iterating_Issue_SubtasksComponents.xlsx
...
Iterating Issue
...
Status Transitions
Because it is not known in advance how many components Status Transitions exist for an issue, you can iterate a section over all the components Status Transitions of an issue. This allows you to create a table that dynamically grows according to the number of existing componentsstatus transitions. The notation is:
Components Status Transitions Fields | Description |
---|---|
NameAuthor | The name author of the componentstatus transition |
DescriptionCreated | The description of the component |
Lead | The name of the component lead |
Id | The ID of the component |
ProjectId | The project ID of the component |
AssigneeType | The assignee type of the componentdate the status transition was performed |
CreatedDate | The date the status transition was performed |
CreatedDateTime | The date the status transition was performed |
OldStatus | The old status of the status transition |
NewStatus | The new status of the status transition |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for componentsstatusTransitions} ${ComponentsStatusTransitions[n].NameAuthor} ${Componentsdateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitions[n].DescriptionCreated} ${fullname:Components ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitions[n].LeadCreatedDate} ${Componentsdateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitions[n].IdCreatedDateTime} ${ComponentsStatusTransitions[n].ProjectIdOldStatus} ${ComponentsStatusTransitions[n].AssigneeTypeNewStatus} #{end} or #{for <VariableName>=ComponentsCountStatusTransitionsCount} Content and ComponentsStatusTransitions Mappings. Example: ${ComponentsStatusTransitions[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue componentsstatus transitions.
Iterating_Issue_ComponentsStatusTransitions.docx
Iterating_Issue_ComponentsStatusTransitions.xlsx
...
Iterating Issue
...
Attached Images
Because it is not known in advance how many Status Transitions Images can exist for an issue (as an attachment), you can iterate a section over all the Status Transitions 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 status transitionsimages. The notation is:
Attachments Images Fields | Description |
---|---|
ID | The ID of the attached image |
Image | The image of the attached image |
Name | The name of the attached image |
Size | The size of the attached image |
HumanReadableSize | The size of the attached image |
Author | The author (ID) of the |
attached image | |
Created | The date the |
attached image was |
created | |
CreatedDate | The date the |
attached image was |
created | |
CreatedDateTime | The date the |
attached image was |
created |
MimeType | The |
type of the |
attached image |
ThumbnailURL | The |
URL to the thumbnail of the |
image |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for statusTransitions{for images} ${Images[n].Image|maxwidth=150|maxheight=150} ${Images[n].Name} ${Images[n].ID} ${Images[n].Size} ${Images[n].HumanReadableSize} ${StatusTransitionsImages[n].Author} ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitionsImages[n].Created} ${dateformat("dd-MM-yyyy HH:mm:ss"):StatusTransitionsImages[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.
Iterating_Issue_StatusTransitions.docx
Iterating_Issue_StatusTransitions.xlsx
...
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.
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 | ||||
---|---|---|---|---|
| ||||
#{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 Images can attachments exist for in an issue (as an attachment), you can iterate a section over all the attached images of attachments 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 imagesattachments. The notation is:
Attachments |
---|
Fields | Description |
---|---|
ID | The ID of the |
attachment |
Id | The |
ID of the |
attachment | |
Name | The name of the |
attachment |
Author | The |
author of the |
attachment |
AuthorFullName | The |
full name of the |
author |
of the |
attachment | |
Created | The date the |
attachment was created | |
CreatedDate | The date the |
attachment was created | |
CreatedDateTime | The date the |
attachment was created |
Size | The size of the attachment |
HumanReadableSize | The |
formatted size of the |
attachment |
MimeType | The |
type of the |
attachment |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for imagesattachments} ${ImagesAttachments[n].Image|maxwidth=150|maxheight=150ID} ${ImagesAttachments[n].Name} ${ImagesAttachments[n].IDAuthor} ${ImagesAttachments[n].SizeAuthorFullName} ${Images[n].HumanReadableSize} ${Images[n].Author} ${dateformat("dd-MM-yyyy HH:mm:ss"):ImagesAttachments[n].Created} ${dateformat("dd-MM-yyyy HH:mm:ss"):ImagesAttachments[n].CreatedDate} ${dateformat("dd-MM-yyyy HH:mm:ss"):Images"):Attachments[n].CreatedDateTime} ${Attachments[n].CreatedDateTimeSize} ${ImagesAttachments[n].MimeTypeHumanReadableSize} ${ImagesAttachments[n].ThumbnailURLMimeType} ##{end} or #{for <VariableName>=ImagesCountAttachmentsCount} Content and ImagesIssue Mappings. Example: ${ImagesAttachments[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the attached images for each issueissue's attachments.
Iterating_Issue_ImagesAttachments.docx
Iterating_Issue_ImagesAttachments.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. |
...
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 Fields | Description |
---|---|
Name | The name of the label |
Code Block | ||||
---|---|---|---|---|
| ||||
#{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:
...
#{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.
...
Iterating Fix Versions of an Issue
You can iterate over all fix versions to which the issue belong to. The notation is:
Versions Fields | Description |
---|---|
Name | The version name |
Description | The version description |
Start date | Starting date of the version |
Release date | Release date of the version |
Archived | Boolean that indicates if the version is archived or not |
Released | Boolean that indicates if the version is released or not |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for attachmentsFixVersions} ${Attachments[n].ID} ${Attachments[n].Name} ${Attachments[n].Author} ${Attachments[n].AuthorFullName} ${dateformat("dd-MM-yyyy HH:mm:ss"):Attachments ${FixVersions[n].CreatedName} ${FixVersions[n].Description} ${dateformat("dd“dd-MM-yyyy HH:mm:ss"yyyy”):AttachmentsFixVersions[n].CreatedDateStart date} ${dateformat("dd“dd-MM-yyyy HH:mm:ss"yyyy”):AttachmentsFixVersions[n].CreatedDateTime} ${Attachments[n].Size} ${AttachmentsRelease date} ${FixVersions[n].HumanReadableSizeArchived} ${AttachmentsFixVersions[n].MimeTypeReleased} #{end} or #{for <VariableName>=AttachmentsCountFixVersionsCount} Content and Versions Issue Mappings. Example: ${AttachmentsFixVersions[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's attachmentsfix versions.
Iterating_Issue_AttachmentsFixVersions.docx
Iterating_Issue_AttachmentsFixVersions.xlsx
...
Iterating Affected Versions of an Issue
...
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:
...
You can iterate over all affected versions to which the issue belongs to. The notation is:
Versions Fields | Description |
---|---|
Name | The version name |
Description | The version description |
Start date | Starting date of the version |
Release date | Release date of the version |
Archived | Boolean that indicates if the version is archived or not |
Released | Boolean that indicates if the version is released or not |
Code Block | |||||||
---|---|---|---|---|---|---|---|
| #{for labels}
${Labels[n].Name
| ||||||
#{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>=LabelsCountAffectedVersionsCount} Content and Versions Issue Mappings. Example: ${LabelsAffectedVersions[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's labelsaffected versions.
Iterating_Issue_LabelsAffectedVersions.docx
Iterating_Issue_LabelsAffectedVersions.xlsx
...
Iterating
...
Project Versions
...
You can iterate over all fix project versions to which the issue belong belongs to. The notation is:
Project Versions Fields | Description |
---|---|
Name | The version name |
Description | The version description |
Start date | Starting date of the version |
Release date | Release date of the version |
Archived | Boolean that indicates if the version is archived or not |
Released | Boolean that indicates if the version is released or not |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for FixVersionsprojectVersions} ${FixVersionsProjectVersions[n].Name} ${FixVersionsProjectVersions[n].Description} ${dateformat(“dd-MM-yyyy”):FixVersionsProjectVersions[n].Start date} ${dateformat(“dd-MM-yyyy”):FixVersionsProjectVersions[n].Release date} ${FixVersionsProjectVersions[n].Archived} ${FixVersionsProjectVersions[n].Released} #{end} or #{for <VariableName>=FixVersionsProjectVersionsCount} Content and Project Versions Issue Mappings. Example: ${FixVersionsProjectVersions[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's fix versions.
Iterating_Issue_FixVersions.docx
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:
...
Code Block | ||||
---|---|---|---|---|
| ||||
#{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} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's project versions.
Iterating_Issue_ProjectVersions.docx
Iterating_Issue_ProjectVersions.xlsx
...
Iterating Sprints
You can iterate over all sprints to which the issue belongs. The notation is:
Project Versions Fields | Description |
---|---|
Name | The sprint name |
Status | The sprint status |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for sprints} ${Sprints[n].Name} ${Sprints[n].Status} #{end} or #{for <VariableName>=AffectedVersionsSprintsCount} Content and Versions IssueSprints Mappings. Example: ${AffectedVersionsSprints[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's affected project versions.
Iterating_Issue_AffectedVersionsSprints.docx
Iterating_Issue_AffectedVersionsSprints.xlsx
...
Iterating
...
Issue History Entries
You can iterate over all project versions to which the issue belongs toissue's changelogs. The notation is:
Project Versions Fields | Description |
---|---|
NameAuthor | The version name |
Description | The version description |
Start date | Starting date of the version |
Release date | Release date of the version |
Archived | Boolean that indicates if the version is archived or not |
Released | Boolean that indicates if the version is released or notuser who made the change |
Created | Date of the change |
CreatedDate | Date of the change |
CreatedDateTime | Date of the change |
ChangedItemsCount | Number of items changed |
Code Block | ||||
---|---|---|---|---|
| ||||
#{for projectVersions historyEntries} ${HistoryEntries[n].Author} ${HistoryEntries[n].Created} ${ProjectVersionsHistoryEntries[n].NameCreatedDate} ${ProjectVersionsHistoryEntries[n].DescriptionCreatedDateTime} ${dateformat(“dd-MM-yyyy”):ProjectVersionsHistoryEntries[n].Start dateChangedItemsCount} #{for i=HistoryEntries[n].ChangedItemsCount} ${dateformat(“dd-MM-yyyy”):ProjectVersionsHistoryEntries[n].Release dateChangedItems[i].Field} ${ProjectVersionsHistoryEntries[n].ChangedItems[i].ArchivedFrom} ${ProjectVersionsHistoryEntries[n].ReleasedChangedItems[i].To} #{end} #{end} or #{for <VariableName>=ProjectVersionsHistoryEntriesCount} Content and ProjectHistory VersionsEntries Mappings. Example: ${ProjectVersionsHistoryEntries[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's project versionschangelogs.
Iterating_Issue_ProjectVersionsHistories.docx
Iterating_Issue_ProjectVersionsHistories.xlsx
...
Iterating
...
Project Components
You can iterate over all sprints to which the issue belongsproject components. The notation is:
...
Code Block | |||||||
---|---|---|---|---|---|---|---|
| #{for sprints}
${Sprints
| ||||||
#{for ProjectComponents} ${ProjectComponents[n].Name} ${ProjectComponents[n].Description} ${fullname:ProjectComponents[n].Lead} ${ProjectComponents[n].Id} ${ProjectComponents[n].NameProjectId} ${SprintsProjectComponents[n].StatusAssigneeType} #{end} or #{for <VariableName>=SprintsCountProjectComponentsCount} Content and SprintsComponents Mappings. Example: ${SprintsProjectComponents[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's project versionscomponents.
Iterating_Issue_SprintsProjectComponents.docx
Iterating Issue History Entries
You can iterate over all issue's changelogs. The notation is:
...
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 | ||||
---|---|---|---|---|
| ||||
#{for historyEntriesIssuesInEpic} ${HistoryEntries[n].Author} ${HistoryEntries[n].Created} ${HistoryEntries[n].CreatedDate} ${HistoryEntries[n].CreatedDateTime} ${HistoryEntries[n].ChangedItemsCount} #{for i=HistoryEntriesIssuesInEpic[n].ChangedItemsCountKey} ${HistoryEntriesIssuesInEpic[n].ChangedItems[i].FieldSummary} ${HistoryEntriesIssuesInEpic[n].ChangedItems[i].FromDescription} ${HistoryEntriesIssuesInEpic[n].ChangedItems[i].ToEpic Link.Key} #{end} #{end} or #{for <VariableName>=HistoryEntriesCountIssuesInEpicCount} Content and HistoryIssue Entries Mappings. Example: ${HistoryEntriesIssuesInEpic[VariableName].Field} #{end} |
The documents below demonstrate examples both in Word and Excel template that iterates over the issue's changelogsissues in epic.
Iterating_IssueIssues_In_HistoriesEpic.docx
Iterating_Issues_IssueIn_HistoriesEpic.xlsx
...
Iterating JQL Queries
...
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.
...