Difference between revisions of "Reports"

From Hornbill
Jump to navigation Jump to search
Line 1: Line 1:
__NOTOC__[[Main Page|Home]] > [[Administration]] > [[Reporting]] > Reports
+
<div style="border:1px solid #90C0FF; background:#D0E0FF; width:99%; padding:4px; margin-bottom:10px;">
==Introduction==
+
__NOTOC__
Reports are used to collect specific data for your reporting needs. The reports in Hornbill are point in time, meaning that the data is accurate at the point when the report is run. There are various different options with reports which will be explored in more detail in the following sections.
+
{| style="width:100%"
<br>
+
|[[Main Page|Home]] > [[Administration]] > [[Service Manager Administration |Service Manager]] > Reports
<br>
+
|style="text-align:right;"|[[:Category:Service Manager Administration|Index]]
[[File:reports.png |900px|Hornbill Reports]]
+
|}
 +
</div>
 +
{|style="width: 100%"
 +
|- valign="top"
 +
|style="width:73%"|
 +
== Introduction ==
 +
Reports are used to collect specific data for your reporting needs. The reports in Hornbill are point in time, meaning that the data is accurate at the point when the report is run. There are various different options with reports which will be explored in more detail below.
 +
|style="width:5%"|
 +
|
 +
|style="width:22%; border-style: solid; border-width: 1px; border-color:#e6e6e6; background-color:#f2f2f2;"|
 +
== Related Articles ==
 +
:* [[Report Types]]
 +
:* [[Report_Scheduling|Report Scheduling]]
 +
:* [[Document Manager]]
 +
|}
 +
 
 +
Reports can be created in various formats and can be scheduled for distribution to documents in Document Manager.
 +
 
 +
===Report Types===
 +
 
 +
Reports can be created based on Entities, Measures or by using the SQL Schema Designer.
 +
 
 +
===Output Options===
 +
 
 +
Reports are output by default in '''PDF''' format.  Optionally you can choose to output the report in the following formats
 +
 
 +
* CSV
 +
* XLS
 +
* XLSX
 +
 
 +
When creating reports, the max row limit is set by default on instances to 1000, this can be increased to a maximum of 25000 rows using the following setting:
 +
 
 +
api.xmlmc.queryExec.maxResultsAllowed
 +
 
 +
The only exception to this is for the creation of PDF reports output, this is limited to the following max outputs:
  
 +
* reporting.display.maxcolumns = 20
  
<div class="mw-collapsible mw-collapsed" data-collapsetext="Show Less" data-expandtext="Read More" style="width:900px">
+
* reporting.display.maxrows=5000
==Reporting Types==
 
<div class="mw-collapsible-content">
 
:* SQL Schema Designer
 
::Building a report using the Hornbill SQL Schema Designer allows you to gather data using the well known SQL syntax. This option is best for users who have experience with SQL methods. The following options are available:
 
::* Tables. The database tables that you wish to report on. For all requests, the table h_itsm_requests stores the bulk of the data. In this section it is also possible to join tables together so that you can include data friendly names in your report such as the priority name of a request.
 
::* Select Columns. The columns from each table that you wish to include in your report.
 
::* Filtering. Any filtering that you wish to apply to your report. This is essentially the 'WHERE' clause in a traditional SQL statement.
 
::* Counting, Grouping & Sorting. Any grouping or sorting that you wish to apply to your report. For example if you are building a report about incidents that have a priority of either P1, P2, or P3 you may want to group the results by priority.
 
::* Data Preview. Allows you to preview the results of the report that you have written before saving.
 
<br>
 
:* An Entity
 
::Building a report using an entity allows you to gather data based on the Hornbill entity relationships. This option is best for users that are not so comfortable in using traditional SQL methods to retrieve data.
 
<br>
 
:* A Measure
 
::Building a report using a measure allows you to base your report on data that has been collected from a measure. For more information, please see the documentation on [[Measures|measures]].
 
</div>
 
</div>
 
<div class="mw-collapsible mw-collapsed" data-collapsetext="Show Less" data-expandtext="Read More" style="width:900px">
 
  
====Building A New Report - SQL Schema Designer====
+
If either of these limits are exceeded when trying to generate a PDF output, the PDF generation will fail and an entry in the log will explain why.  
<div class="mw-collapsible-content">
 
When building a new report using the Hornbill SQL Schema Designer, the first thing that you need to do is to select the option from the landing page of a new report configuration, but before you can do that, you need to create a new report:
 
:* Click the button '+ Create New Report'
 
<br>
 
[[File:newReport1.png |1000px|Create a new report]]
 
<br>
 
<br>
 
:* Give the new report a name and then an optional description once it has been created
 
<br>
 
[[File:newReportSQLDescription.png |1000px|Name & Description]]
 
<br>
 
<br>
 
:* Specify a report output type. For this particular report, selecting 'Single list of data' will be sufficient.
 
<br>
 
[[File:newReportSQLOutputType.png |1000px|Report Output Type]]
 
<br>
 
<br>
 
:* Select the 'SQL Schema Designer' option from the 'Report Using' menu
 
<br>
 
[[File:newReportSQL1.png |1000px|SQL Schema Designer]]
 
<br>
 
<br>
 
:* The category field is used for applying one or more categories to your report. This feature is still being developed and is not yet complete.
 
<br>
 
[[File:newReportSQLCategory.png |1000px|Report Category]]
 
<br>
 
<br>
 
:* Set the report status to 'Available for use'. The Report Status field is used to indicate whether or not the report is active.
 
<br>
 
[[File:newReportSQLStatus.png |1000px|Report Status]]
 
<br>
 
<br>
 
:* Now that we have defined the basic options for a report, we can start specifying the data that the report will collect:
 
<br>
 
[[File:newReportSQL2.png |1000px|New Report Configuration]]
 
<br>
 
<br>
 
  
===Building A New Report - SQL Schema Designer - Data Collection===
+
Generation of CSV, XLS, XLSX adhere to the maximum row limit you have set on your instance under the following system setting: api.xmlmc.queryExec.maxResultsAllowed
  
<br>
+
===Schedule===
[[File:newReportSQLDataCollection.png |1200px|Data Collection Options]]
 
<br>
 
  
:* Tables. The first thing to do here is to define at least one table for data collection. Tables can be joined based on user defined criteria which allows you to bring in the data you need from other tables to make your report more complete. To add a table, select it from the list of tables and then click on the 'Add Table' button.
+
As well as running reports manually, you can also schedule the reports to run and be distributed on definable intervals
<br>
 
[[File:newReportSQLDataCollectionTables.png |1000px|Data Collection - Tables]]
 
<br>
 
<br>
 
:* Joining Tables. To join a table, first select it from the table list and click on the 'Add Table' button. Next, whilst you have the new table selected, click on the '+' icon in the Join Criteria window.
 
<br>
 
[[File:newReportSQLDataCollectionTablesJoin.png |1000px|Data Collection - Joining Tables]]
 
<br>
 
<br>
 
This will give you the option to specify your join criteria. You can of course choose the type of join that you wish to make by selecting one of the options from the 'Join' menu. The options, other than the standard join are LEFT JOIN and RIGHT JOIN.
 
<br>
 
<br>
 
[[File:newReportSQLDataCollectionTablesJoin2.png |200px|Data Collection - Joining Tables]]  [[File:newReportSQLDataCollectionTablesJoin3.png |700px|Data Collection - Joining Tables]]
 
<br>
 
<br>
 
For the purpose of this example report, here is the join criteria when joining the h_itsm_requests table with the h_itsm_priority table: (The table h_itsm_requests holds the primary key of h_itsm_priority as a foreign key)
 
<br>
 
[[File:newReportSQLDataCollectionTablesJoin4.png |1000px|Data Collection - Joining Tables]]
 
<br>
 
<br>
 
When specifying join options, we can join tables based on static values, user prompted values, custom criteria, or as we have done here, against table column values [[File:newReportSQLDataCollectionTablesJoin5.png |150px|Data Collection - Joining Table Options]]
 
<br>
 
<br>
 
:* Select Columns. Now that we have chosen our tables that we will base our example report on, it's time to choose some columns. All columns for tables that have been specified or joined will are available for selection:
 
<br>
 
[[File:newReportSQLDataCollectionSelectColumns1.png |1000px|Data Collection - Selecting Columns]]
 
<br>
 
<br>
 
Select or remove columns using the buttons between the two windows:
 
<br>
 
[[File:newReportSQLDataCollectionSelectColumns2.png |1000px|Data Collection - Selecting Columns]]
 
<br>
 
<br>
 
:* Filtering. Now that we have chosen our tables and our columns, it's time to apply a filter. This is essentially the same as specifying a WHERE clause in SQL syntax. As we want this report to be about incidents only, we will specify that here, as well as the requirement that the request must have been reopened at least once. We will also include a filter which will allow the user to select dates from and to so that this report can be run against any time period. First click the '+' button within the 'Filter' window and enter the following criteria:
 
<br>
 
[[File:newReportSQLDataCollectionFiltering1.png |1000px|Data Collection - Filtering - Incidents only]]
 
<br>
 
<br>
 
Click on the '+' button again and enter the following additional criteria to make sure that we only include incidents that have been reopened at least once:
 
<br>
 
[[File:newReportSQLDataCollectionFiltering2.png |1000px|Data Collection - Reopened Incidents]]
 
<br>
 
<br>
 
Click on the '+' button again and enter the following additional criteria:
 
<br>
 
[[File:newReportSQLDataCollectionFiltering3.png |1000px|Data Collection - Date Pickers]]
 
<br>
 
<br>
 
:* Counting, Grouping & Sorting. Let's group the data based on priority:
 
<br>
 
[[File:newReportSQLDataCollectionCounting1.png |1000px|Data Collection - Group by Priority]]
 
<br>
 
<br>
 
:* Data Preview. Click on the data preview tab and enter 'from' and 'to' dates:
 
<br>
 
[[File:newReportSQLDataCollectionDataPreview1.png |500px|Data Collection - Data Preview]]
 
<br>
 
<br>
 
The query is run and the resulting data is shown:
 
<br>
 
[[File:newReportSQLDataCollectionDataPreview2.png |1000px|Data Collection - Data Preview Results]]
 
<br>
 
<br>
 
</div>
 
</div>
 
====Building A New Report - An Entity====
 
  
====Building A New Report - A Measure====
+
[[Category:Service Manager]][[Category:Administration]]

Revision as of 09:33, 16 March 2018

Home > Administration > Service Manager > Reports Index

Introduction

Reports are used to collect specific data for your reporting needs. The reports in Hornbill are point in time, meaning that the data is accurate at the point when the report is run. There are various different options with reports which will be explored in more detail below.

Related Articles

Reports can be created in various formats and can be scheduled for distribution to documents in Document Manager.

Report Types

Reports can be created based on Entities, Measures or by using the SQL Schema Designer.

Output Options

Reports are output by default in PDF format. Optionally you can choose to output the report in the following formats

  • CSV
  • XLS
  • XLSX

When creating reports, the max row limit is set by default on instances to 1000, this can be increased to a maximum of 25000 rows using the following setting:

api.xmlmc.queryExec.maxResultsAllowed

The only exception to this is for the creation of PDF reports output, this is limited to the following max outputs:

  • reporting.display.maxcolumns = 20
  • reporting.display.maxrows=5000

If either of these limits are exceeded when trying to generate a PDF output, the PDF generation will fail and an entry in the log will explain why.

Generation of CSV, XLS, XLSX adhere to the maximum row limit you have set on your instance under the following system setting: api.xmlmc.queryExec.maxResultsAllowed

Schedule

As well as running reports manually, you can also schedule the reports to run and be distributed on definable intervals