The document provides guidance on developing custom reports in Ipro. It discusses why custom reports are useful, the necessary skills and considerations for creating them. It outlines the process for building custom reports, including creating the schema, report, and stored procedure. It also covers adding parameters, defining parameter lists, and inserting the report definition into the database so the report appears in Ipro Reports. The goal is to equip users with the knowledge to build fully customized and parameterized reports accessible from Ipro.
2. Private and Confidential – Copyright 2019
Why use custom reports?
Enhance with
Visualizations
Can be secured or
restricted
Accessible from
Anywhere
Fully Customizable
3. Private and Confidential – Copyright 2019
Do you have what it takes?
SQL Experience
Ipro Schema familiarity
SQL Reporting knowledge
4. Private and Confidential – Copyright 2019
Where do we begin?
•Reports are executed by the Web service
• Basic - Automatically Detected
• Advanced - Manually Defined
•There are two flavors of custom reports
• Charts or Graphs
• Input Parameters
• Permissions
• Custom Formatting
• Report Interface Categorization
•Advanced reports are required for reports that will contain any of the following
5. Private and Confidential – Copyright 2019
Factors to Consider
∙ What is our END GOAL?
∙ What INFORMATION do we need meet the goal?
∙ Who is the AUDIENCE?
∙ Will the report need SECURITY?
∙ Which MODULE will the report be targeting?
∙ What is the SCOPE?
∙ Will INPUT PARAMETERS be required?
6. Private and Confidential – Copyright 2019
Rules of Engagement
The Numbered Circles on the slides indicate the text file with the appropriate code for that step.
Type or copy and paste the Code for your reports located here:
%Desktop%Ipro Tech Show DocumentsCloud WorkshopDay 2 - Wednesday - May 1stGet the Scoop -
Custom Reports
How do we add a report?
Create the
Schema
Create the
Report
Build the
Stored
Procedure
Verify your
Work
8. Private and Confidential – Copyright 2019
1.Launch SQL Management Studio
and connect to CLD-EVLADD001
Click New Query at the top of the
screen (CTRL+N)
1.Type the Query Code into the
‘New Query’ window
Execute the query (F5)
Create the Schema
%Desktop%Ipro Tech Show DocumentsCloud
WorkshopDay 2 - Wednesday - May 1stGet
the Scoop - Custom Reports
USE IproEclipse_Case000001
GO
CREATE SCHEMA UserDefinedReports
GO
Query Code:
9. Private and Confidential – Copyright 2019
Create the Report
1.1. Copy the
query from the
text file at path
below into SSMS
2. Paste the
Query Code
below into the
current query
window
3. Execute the
Query (F5)
SELECT Custodian
,COUNT(Custodian) AS EmailCount
FROM vDocumentFields VDF
INNER JOIN FileTypes FT
ON VDF.NATIVEFILETYPE = FT.FileTypeID
WHERE FileCategoryId BETWEEN 5 AND 8
GROUP BY Custodian
10. Private and Confidential – Copyright 2019
Build the Stored Procedure
Update the Script to a Stored
Procedure and Execute (F5)
CREATE PROCEDURE
UserDefinedReports.CustodianEmailCount
AS
BEGIN
SELECT Custodian
,COUNT(Custodian) AS EmailCount
FROM vDocumentFields VDF
INNER JOIN FileTypes FT ON
VDF.NATIVEFILETYPE = FT.FileTypeID
WHERE FileCategoryId BETWEEN 5 AND 8
GROUP BY Custodian
END
11. Private and Confidential – Copyright 2019
Verify the Report in Ipro Reports
1. Log into Ipro (Chrome)
2. Navigate to Reports > Select Globex Industries v ATLN Energy - Review> Uncategorized
3. Select Custodian Email Count > Run Report
Web Link User Name Password
https://add.iprotech.com administrator@iprotech.com Admin123!
13. Private and Confidential – Copyright 2019
What is a Report Definition?
Format data headers and columns
Allow Input Parameters
Display Charts and Graphs
Report Security
Categorize by product and type in the interface
14. Private and Confidential – Copyright 2019
Dive into Report Definition
INSERT INTO [Reporting].[ReportDefinition]
([Name]
,[ProductId]
,[ReportTypeId]
,[IsCommonReport]
,[ExecutionMetadata]
,[DisplayMetadata]
,[Description]
,[RequiredPermission])
VALUES
('CustodianEmailCount'
,3
,6
,1
,'{"StoredProcedure":"UserDefinedReports.CustodianEmailCount" }'
,'[ { "Header":"Total Number of Emails",
"Charts": [ {"Type":"horizontalBar",
"Caption":"Emails Per Case",
"XAxisField":"Custodian",
"YAxisFields":["EmailCount"] } ] } ]'
,'Total Number of Emails Per Custodian'
,'CustodianEmailCount')
16. Private and Confidential – Copyright 2019
Report Definition: Name
INSERT INTO [Reporting].[ReportDefinition]
([Name]
,[ProductId]
,[ReportTypeId]
,[IsCommonReport]
,[ExecutionMetadata]
,[DisplayMetadata]
,[Description]
,[RequiredPermission])
VALUES
('CustodianEmailCount'
,3
,6
,1
Name: The display name of the
report on the Reports page in
the User Interface.
Consider a standard naming
convention for custom reports to
ensure clarity and consistency.
*Be sure to use a Custom Schema Name for Defined Reports
17. Private and Confidential – Copyright 2019
Report Definition: ProductID
INSERT INTO [Reporting].[ReportDefinition]
([Name]
,[ProductId]
,[ReportTypeId]
,[IsCommonReport]
,[ExecutionMetadata]
,[DisplayMetadata]
,[Description]
,[RequiredPermission])
VALUES
('CustodianEmailCount'
,3
,6
,1
ProductID: Refers to the
product that your report will
be available to
This must be a value from
the Enterprise.Product table
18. Private and Confidential – Copyright 2019
Report Definition: ReportTypeID
INSERT INTO [Reporting].[ReportDefinition]
([Name]
,[ProductId]
,[ReportTypeId]
,[IsCommonReport]
,[ExecutionMetadata]
,[DisplayMetadata]
,[Description]
,[RequiredPermission])
VALUES
('CustodianEmailCount'
,3
,6
,1
ReportTypeId: Reports
are displayed in groups by
the report type in Ipro
Reports.
Report Type Descriptions
can be found in the
Reporting.ReportType
table.
19. Private and Confidential – Copyright 2019
Report Definition: IsCommonReport
INSERT INTO [Reporting].[ReportDefinition]
([Name]
,[ProductId]
,[ReportTypeId]
,[IsCommonReport]
,[ExecutionMetadata]
,[DisplayMetadata]
,[Description]
,[RequiredPermission])
VALUES
('CustodianEmailCount'
,3
,6
,1
IsCommonReport: This
field determines whether
your report is displayed in
the Ipro Reports page even
if it is not detected in the
product database.
Values are 0 or 1
20. Private and Confidential – Copyright 2019
Report Definition: ExecutionMetadata
,'{"StoredProcedure":"UserDefinedReports.CustodianEmailCounts" }'
,'[ { "Header":"Total Number of Emails",
"Charts": [ {"Type":"horizontalBar",
"Caption":"Emails Per Case",
"XAxisField":"Custodian",
"YAxisFields":["EmailCount"] } ] } ]'
,'Total Number of Emails Per Custodian'
,'CustodianEmailCount')
ExecutionMetadata: Contains the valid JavaScript
Object Notation needed by the system to run the
report. This is a complex field, see the Ipro Custom
Report Creation Guide for more details.
21. Private and Confidential – Copyright 2019
Report Definition: DisplayMetadata
,'{"StoredProcedure":"UserDefinedReports.CustodianEmailCounts" }'
,'[ { "Header":"Total Number of Emails",
"Charts": [ {"Type":“horizontalBar",
"Caption":"Emails Per Case",
"XAxisField":"Custodian",
"YAxisFields":["EmailCount"] } ] } ]'
,'Total Number of Emails Per Custodian'
,'CustodianEmailCount')
DisplayMetadata: Contains the valid JavaScript
Object Notation needed by the system to display the
results. This is a complex field, see the Ipro Custom
Report Creation Guide for more details.
22. Private and Confidential – Copyright 2019
Report Definition: Description
,'{"StoredProcedure":“UserDefinedReports.CustodianEmailCounts" }'
,'[ { "Header":"Total Number of Emails",
"Charts": [ {"Type":"horizontalBar",
"Caption":"Emails Per Case",
"XAxisField":"Custodian",
"YAxisFields":["EmailCount"] } ] } ]'
,'Total Number of Emails Per Custodian'
,'CustodianEmailCount')
Description: A brief summary, instructions, or
description of the report; displayed to end-users
23. Private and Confidential – Copyright 2019
Report Definition: RequiredPermission
,'{"StoredProcedure":“UserDefinedReports.CustodianEmailCounts" }'
,'[ { "Header":"Total Number of Emails",
"Charts": [ {"Type":"horizontalBar",
"Caption":"Emails Per Case",
"XAxisField":"Custodian",
"YAxisFields":["EmailCount"] } ] } ]'
,'Total Number of Emails Per Custodian'
,'CustodianEmailCount')
RequiredPermission: The permission object
associated with the report. Linked to the
Permissions.Permission table.
24. Private and Confidential – Copyright 2019
Run and Verify the Report
1. Execute the Script (F5)
2. Log into Ipro (Chrome)
3. Navigate to Reports > Select Globex Industries v ATLN Energy - Review > Quality Control
4. Select Custodian Email Count > Run Report
Web Link User Name Password
https://add.iprotech.com administrator@iprotech.com Admin123!
26. Private and Confidential – Copyright 2019
• Reserved System Schema name
• Stored Procedures detected in an Ipro case database with this schema name will appear in the
Uncategorized Section of Ipro Reports and will not require a report definition.
• Reports designated by a custom schema name will require a report definition.
Ex: [ADDCustomReporting].[CustodianDocTypeCount]
UserDefinedReports Schema
27. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Permissions.Permission
Add the Report to the
Permissions table so that
it appears in the interface
28. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Managing Permissions
30. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Parameter Display Types
* Require an additional field to be specified in
order to work. See details starting on page 13.
** Only used for reports that require a
CaseProductEnvironmentId (CpeId) parameter (IE.
a Case Specific Report)
Text
Number
Checkbox
Date
List*
Multi-Select*
Hidden**
ABC
123
31. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Creating Parameterized Reports
•Add a Parameter
Definition to the Ipro
database
• Add a Parameter
Stored Procedure to
the Case database
•Parameter Stored
Procedure will need to
return two columns:
ID and Name
•The Parameter Stored
Procedure will be
referenced in the
Execution Metadata
of the report
definition
•May require a
secondary stored
procedure that returns
the values of the
parameter
32. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Parameter List Definitions
• Reporting.ParameterListDefinition table contains the
recommended Parameter List options
• Linked to the ExecutionMetadata field in your Report Definition
• Limited support for Custom Parameter list definitions
33. Instead of the report running on emails only, the
Case Administrator would like to pick the file type.
34. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Adding a Parameterized Report
Report
Definition
Parameter
List
Definition
Parameter
List Stored
Procedure
Report
Stored
Procedure
35. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Let’s add a Parameter: File Category
• Add a new Report Definition
with updated execution
metadata
• Specify a parameter list
definition
Example Execution Metadata:
{
'StoredProcedure’:’ADDCustomReporting.CustodianDocTypeCount',
'ParameterInfo': [
{
'Name': 'FileCategoryID',
'DisplayName': 'FileCategory',
'DisplayType': 'list',
'ParameterListName': 'GetFileCategories'
}
]
}
36. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Parameter List Definition
INSERT INTO [Reporting].[ParameterListDefinition]
([Name]
,[StoredProcedure]
,[RequiresCpeId]
,[ProductId]
,[DisplayColumn]
,[ValueColumn])
VALUES
('GetFileCategories'
,'ADDCustomReporting.GetFileCategories'
,0
,3
,'Name'
,'ID'
)
GO
Add a Custom Parameter List
Definition to the existing table.
37. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Parameter List Stored Procedure
CREATE SCHEMA ADDCustomReporting
GO
CREATE PROCEDURE ADDCustomReporting.GetFileCategories
AS
BEGIN
SELECT FileCategoryID AS [ID] ,
FileCategoryName AS [NAME]
FROM FileCategories
END
Create the following Stored Procedure in the IproEclipse_Case000001 Database:
38. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Parameterized Report Stored Procedure
CREATE PROCEDURE ADDCustomReporting.CustodianDocTypeCount
@FileCategoryID int = 0
AS
BEGIN
SELECT Custodian
,COUNT(Custodian) AS FileCount
FROM vDocumentFields VDF INNER JOIN FileTypes FT ON VDF.NATIVEFILETYPE =
FT.FileTypeID
WHERE FileCategoryId = @FileCategoryID
GROUP BY Custodian
END
Create the following Stored Procedure in the IproEclipse_Case000001 Database:
39. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
We’re All Done!
Upload a Preview Image for easy
recognition!
40. Presentation TitlePrivate and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
Private and Confidential – Copyright 2019
We’re All Done!
Gus
Ipro Reporting boasts a customization feature that enables the ability to provide useful, colorful, customized reports to clients and customers.
Ipro custom reports can be enhanced with visualizations.
Custom reports are accessible from anywhere, with the Ipro Solution.
Ipro custom reports can be secured or restricted to specific users or groups.
Gus’s Slide
Schema familiarity
Familiarity with SQL & reporting
Mike
Ipro Custom reports are executed by the Web service.
There are two flavors of custom reports:
Basic - automatically detected
Advanced - manually defined
An advanced report is required for reports that will contain the following:
Charts or graphs
Input parameters
Permissions
Custom formatting
Report categori
Mac
Scope : Multiple case or one and done
Mac
Gus - Story
Gus
Does it execute successfully?
Do you receive any errors?
Mac
Does it execute successfully?
Do you receive an error?
Mac
Mac
Gus
Who knows what a parameter is and can give me an example?
Gus
Gus
Mac
Mac
6 is Quality Control
Gus
Gus
TXT file #4
Mike
Mike
Who knows what a parameter is and can give me an example?
Which ones are most commonly used
Date and List
Mike
Parameterized reports may require a secondary stored procedure that return the values of the desired parameter
A Parameter Definition will need to be added to the Ipro database and the parameter stored procedure added to the case database.
The parameter stored procedure will need to return two columns: ID, Name
There parameter store procedure will be referenced in the Execution Metadata field of the report definition.
Screen shot of the Parameter List definition table – they will be in SQL so just have them open that table to view the options.
Mike