Here is how Reporting plug-in works:

  • Each macro contains a part of a report configuration, so at first, the Table View Macro enumerates all its body macros to find one Reporting Jira/Confluence Data Provider and one to many Reporting Items.
  • After that a set of item fields, needed in all Reporting Items is defined. That is done to minimize the amount of data transfers and processing.
  • Then the table view iterates through each Reporting Item macro to define all the headers. If the Reporting Item header content is a formula, it is calculated.
  • Then the table view iterates through every item, returned by the data provider and for each item iterates through each Reporting Item to define the value for the table cell. In most cases, item body is a formula, so it is calculated.
  • Then the table view iterates through each Reporting Item macro to define all the footers. If the Reporting Item footer content is a formula, it is calculated.
  • All these data enclosed into appropriate HTML code and sent as a result of macro work.