Dev Space

Customize & extend the power of Alteryx. SDKs, APIs, custom tools, and more!
Don't forget to submit your entry for the Excellence Awards by October 30! | Need more information about the program? Check out the blog here

Jira Iterative Macro Connector

Highlighted
7 - Meteor

Hello All,

 

Public Gallery Link: https://gallery.alteryx.com/#!app/Jira-Iterative-Macro-Connector/5cf81b8a0462d712c8e75001

 

After a few requests, I have finally decided to post some information on the Jira Iterative Macro Connector. Hopefully this short document helps to clarify.

 

Special Note and Thank you: This work was an "add-on" from @Coxta45 original "Jira Connector" and is an improvement (to me) based on some needs and limitations of a single API call.

 

Please refer here for detailed documentation to the Original Jira Connector:

https://community.alteryx.com/t5/Dev-Space/JIRA-Connector/td-p/51562

What is different from the original Jira Connector and the Jira Iterative Macro Connector?

Jira ConnectorJira Iterative Macro Connector
Single API CallMultiple (Iteartive) API Calling
Subject to server data limitsWill iterate beyond Server limits
Macro Dialogue InterfaceText Based Interface (file)

 

Why the need for Iterations?

 

We use Jira for Digital Manage for Daily Improvement (MDI) boards and Scrum boards, and the limitations of Canned Dashboards and complexity of EasyBI called for a need to extract all the data on a board and pull it into Tableau.

Due to Jira server limitations from local site admins, I was only able to pull 100 records from a given Jira Project at a time.  Having Jira projects that contained thousands of records, I had a need to iterate beyond the server limitations.  The iterations verify max records and iterate on a single API call until the max records for a project are received.

What input do I need to use the Macro?

The table below (also attached) outlines the following:

 

  1. First Row depicts the header row
  2. Second Row depicts the actual information you need to supply
  3. Third Row depicts an explanation of the information you need to supply

forQueryissuesmaxstart_withuserIteratorfieldsprojectapipassSite Base
all{"jql":"project = 16301","startAt":0,"maxResults":1000,"fields":[],"expand":["names"]}all1000example@domain.com0all<projectID>/rest/api/latest/search?jql&startAt&maxResults&validateQuery&fields&expand<API TOKEN>https://example.jira.com
(all issues, all issues assigned to me, etc. - just do all)(you can change this to reflect the other base parameters in the input file.  its just a base input set for the extraction, it will update as you iterate)(all issues, improvements, bugs, etc. - probably do all and filter later)(max number of results, will overwrite maxResults)(starting position, start at 0 to pull everything. Large numbers pull less data)(use your email, or rather the email that has an API token tied to it)(leave at 0, I think this is unused now with some changes but I don’t want to touch this)(same as before, probably leave at all unless you want a truncated data set)( id of desired project as is in data, e.g. 16301 which will be referenced in the JQL query)(this is the desired api the whole thing is built around)(must be a Jira Admin and generate this from your Jira site)

(your jira domain)

 

Initial Workflow Setup

 

Please refer to the screenshot and steps below to help with initial workflow setup when using the Iterative macro.

SDB40_0-1595013596502.png

 

  1. Step 1 - update the file in this post with the appropriate information or add a manual text based input containing the information
  2. Step 2 - hook up a browse to the iterative side
    1. This is mostly unused if setup correctly, but is required for iterative macros
    2. Can be useful if you need to debug the iterative side of the macro as it will show you outputs of the iterations which feed into the inputs of the next iteration
  3. Step 3 - the output data stream which you can build any data transformations as you see fit
    1. I personally did some data cleanup here as I intentionally export the kitchen sink and then trim it down later