Our new Appfire Documentation Space is now live!

Take a look here! If you have any questions please email support@appfire.com

Use cases for custom fields

This section has use cases which help you understand the usage of the Calculated fields provided by JMCF.

On this page:

Calculated (scripted) Date custom field type

A Calculated (scripted) Date custom field type represents a java.util.Date calculated from a Groovy script.

Sample use cases:

Calculate and display the Sprint end date in the statistics

  • Create a Calculated (scripted) Date custom field type, Sprint End Date, from the Custom fields administration page.

  • Click on Configure

  • Click on Edit Groovy Formula and write the following formula in the editor

    for (Object sprint : issue.get("Sprint")) { if (sprint.isActive()) return sprint.getEndDate().toDate(); }

     

  • Click on “Save”

  • Add this field in the statistics gadgets

Calculated (scripted) Date/Time custom field type

A Calculated (scripted) Date/Time custom field type represents a java.util.Date and is displayed as date+time.

Sample use cases:

 Calculate and display the probable date of resolution (excluding weekends) for an issue based on its Priority

  • Create a Calculated (scripted) Date/Time custom field type, Probable resolution, from the Custom fields administration page.

  • Click on Configure

  • Click on Edit Groovy Formula and write the following formula in the editor

  • Date date(Date from, int nod){ Calendar c1 = GregorianCalendar.getInstance(); c1.setTime(from); int weeks = nod/5; int remDays = nod%5; //Adding whole weeks c1.add(Calendar.WEEK_OF_YEAR, weeks); //Run a loop and check each day to skip a weekend for(int i=1;i<=remDays;i++){ c1.add(Calendar.DAY_OF_MONTH, 1); if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) c1.add(Calendar.DAY_OF_MONTH, 1); if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) c1.add(Calendar.DAY_OF_MONTH, 1); } //Skip ending weekend if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) c1.add(Calendar.DAY_OF_MONTH, 1); if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) c1.add(Calendar.DAY_OF_MONTH, 1); //move to 0:00 c1.clearTime(); return c1.getTime(); } def from = issue.get("created") switch (issue.getAsString("priority")) { case "Highest" || "High" : return date(issue.get("created"),2); case "Medium" : return date(issue.get("created"),4); case "Low" || "Lowest" : return date(issue.get("created"),5); default : return date(issue.get("created"),5); }

     

  • Click on Save.

  • Click on Edit Date Format and select DATE_TIME_PICKER.

  • Click on Save.

Calculate and display the Sprint end date as a relative date in the Issue Navigator.

  • Create a Calculated (scripted) Date/Time custom field type, Sprint end date from the Custom fields administration page.

  • Click on Configure

  • Click on Edit Groovy Formula and write the following formula in the editor

    for (Object sprint : issue.get("Sprint")) { if (sprint.isActive()) return sprint.getEndDate().toDate(); }
  • Click on Save.

  • Click on Edit Date Column Format and select RELATIVE.

  • Click on Save.

Calculated (scripted) Duration custom field type

A Calculated (scripted) Duration custom field type represents a duration and is displayed either as a duration string or as a number in a Long format representing the number of seconds.

Sample use cases:

 Calculate and display how many days an issue has been open

  • Create a Calculated (scripted) Duration custom field type, Open since, from the Custom fields administration page.

  • Click on Configure

  • Click on Edit Groovy formula and write the following formula.

  • Click on Save.

 Calculate the duration the field has been Flagged

  • Create a Calculated (scripted) Duration custom field type, Flagged since, from the Custom fields administration page.

  • Click on Configure

  • Click on Edit Groovy formula and write the following formula.

  • Click on Save.

 Calculate and display the number of days from issue creation to resolution in a custom field

 Calculate and display the difference between the current Due date and the last Due date.

 Calculate and display the Total Original Estimate of all the Stories associated to the Epic.

 Calculate and display the Remaining Estimate of all the Stories associated to the Epic.

Calculated (scripted) Multi-select custom field type

A Calculated (scripted) Multi-select custom field type represents a collection of Options and is displayed as a String representing the option values.

Sample use cases:

  Calculate and display the access to be provided to the user in a custom field based on the project role the user belongs to.

Calculated (scripted) Multi-user custom field type

Calculated (scripted) Multi-user custom field type represents a collection of users and is displayed as a String representing the user display names

Sample use cases:

 Calculate and display the assignees of the sub-tasks on the parent issue.

Calculated (scripted) Number custom field type

Calculated (scripted) Number custom field type represents a number and is displayed in Double format. 

Sample use cases:

Calculate the sum of two number field and round off the result

 Calculate and display the number of Stories associated to the Epic.

 Calculate and display the number of unresolved issues blocking the current issue.

 Calculate and display the number of times "Expected Delivery Date" has been modified.

 Calculate and display the number of issues linked to the current issue with link type "Interface" and the Affects Version/s "Platform".

Calculated (scripted) Single-select custom field type

Calculated (scripted) Single-select custom field type represents an Option and is displayed as a String representing an Option value.

Sample use cases:

 Calculate and display the company name with logo based on the value provided in the text field holding the URL of the company

Calculated (scripted) Single-user custom field type

Calculated (scripted) Single-user custom field type represents an ApplicationUser and is displayed as a String representing the display name of the user.

Sample use cases:

 Calculate and display the user who last commented on the issue

 Calculate and display the user who last modified the issue

Calculated (scripted) Text/Html custom field type

Calculated (scripted) Text/Html custom field displays text calculated using a Groovy script and supporting HTML formatting.

Sample use cases:

 Calculate and display the last comment, its author, and timestamp in a text field.

 Calculate and display the current issues' linked issues with "is blocked by" link type and are not in Resolved or Closed status.

 Calculate and display all the previous due dates as comma-separated list with dates in YYYY-MM-DD format.

 Calculate and display estimated hours for each day, using not more than 8 hours per day, until the due date.

 Calculate and display the location of the Assignee of the issue from the User properties

 Calculate and display all the comments of a specific user.

 Calculate and display the Project category of the issue's project

 Flag the issue on the issue view screen if the has been flagged.

Calculated (scripted) Wiki Text custom field type

Calculated (scripted) Wiki custom field displays text calculated using a Groovy script and optionally supporting wiki-style formatting.

Sample use cases:

 Calculate and display the last comment, its author, and timestamp in a text field without escaping the formatting .

Last Field Value Change Author custom field type

A Last Field Value change Author custom field type that represents the author of the last modification made to a field and is displayed as a String representing the display name of the user.

Sample use cases:

 Calculate and display the author who has last added this issue to a Sprint

Last Field Value Change Date/Time custom field type

Last Field Value Change Date/Time custom field type represents a java.util.Date and is displayed as date+time.

Sample use cases:

 Calculate and display the last time the issue was Flagged.

Parent Status custom field type

A Parent status calculated custom field type represents the status of the issue's parent issue, if any, and is displayed as a String representing the status name.

Sample use cases:

 Calculate and display the status of the parent issue and the name of the user to whom the issue is assigned.

Status entered by user custom field type

A Status entered by user custom field type represents a user who last (or first) moved the issue to the specified status and is displayed as a String representing the user display name.

Sample use cases:

 Calculate and display the author name and the email address of the user who first Approved the issue

Status entered on date/time custom field type

A Status entered on Date/Time custom field type represents a date+time the issue has been last (or first) moved to the specified status and is displayed as date+time.

Sample use cases:

 Calculate and display the date/time an issue entered the Approval status for the first time

Time in status custom field type

Calculated Time in status custom field type represents a duration and is displayed either as a duration String or as a number in a Long format representing the number of seconds.

Sample use cases:

 Calculate and display the time spent in the Pull request status

 Calculate and display the total resolution time for a ticket in an error banner if the time spent is more than 3 days

 Calculate and display the time spent in current status

Transition Caller custom field type

Transition Caller custom field type returns the user who first/last executed a specific workflow transition and is displayed as a String representing the display name of the user.

Sample use cases:

 Calculate and display the author who last fixed the issue

 Calculate and display the author who has resolved the issue across different workflows with different transitions.

 Calculate and display the creator of the issue along with his/her username.

Transition Callers custom field type

Transition Callers custom field type returns the users who triggered a specific workflow transition and is displayed as a String representing the display names of the users.

Sample use cases:

 Calculate and display the authors who approved the ticket

 Calculate and display the authors who have Reviewed and Approved the ticket

Transition Count custom field type

Transition Count custom field represents the number of times a specified workflow transition(s) was executed and is displayed as a number in Double format.

Sample use cases:

 Calculate and count the number of times an issue fix has been rejected

 Calculate the number of revisions done on a story before moving into development.

Transition Date/Time custom field type

Transition Date/Time custom field type represents a java.util.Date and is displayed as date+time. 

Sample use cases:

 Calculate and display the date/time as a relative time when the issue has been last approved.

 Calculate and display the "Fix date" when an issue is moved to Fixed/Checked-in status for the first time