Reports

Users of Cloud Installations, or On-Premise Installations with the Advanced Reporting option, have access to Process Director's Reports component, a sophisticated report generation utility. The report generator itself is fully documented in the Reports Reference Guide.

The purpose of this section of the Implementer's Guide is to cover only how the report generator integrates into Process Director. Please refer to the Reports Reference Guide for detailed instructions on how to use the report generation utility to design and create reports.

Creating a report #

Creating a report in Process Director is as easy as creating any other object. From the Content List, navigate to the folder where you'd like to create the report. Once you have done so, select Report from the Create New… dropdown located in the upper right portion of the screen.

The Create Report screen will appear. In this screen, enter the name of the new report, then select the report type you wish to create.

You have three choices of report type: Dashboard, Multi-page, and Portlet.

Once you have selected the desired Report Type, click the OK button to create the report, and display the report properties.

Report Configuration #

There are three tabs for configuring a report, the Properties, Data Sources, and Variables tabs.

Properties Tab

Data Sources Tab

The Data Sources Tab allows you to specify how and what information you send to the Report Designer.

Knowledge Views: You can import data from a previously constructed Knowledge View in Process Director. It makes visually displaying your already constructed reportable information extremely easy.

Data Sources: This is the preferred way to retrieve data for reporting purposes. Using a Data Source that has specific tables and views selected and then editing the SQL SELECT statements would help produce the fastest possible reports.

Database Views: This Datasource will display not only the default views included in Process Director, but also the views that you can create in Process Director, based on forms.

Variables Tab #

Process Director sends variables to the reporting engine automatically, including current user information, the name and description of the report, etc. You may also create custom variables and send them to the reporting engine.

Please see the Report Variables topic for more information about using Variables for the Advanced Reporting Component.

To add a variable to the report, click the Add Variable button.

Variables have the following configuration options:

Selecting Report Data #

The reporting component can use three different types of data to compose reports: Knowledge Views, Data Sources, and Database Views. The fields contained in all of the report data sources you choose from the options screen will be available inside the report component when you design the report.

Once you have chosen the data you want to incorporate into your report, click the Update button to save your selections.

The Report Designer #

Once you have selected the data sources you wish to use in your report, you can open the report designer by clicking the Design Report button on the options screen.

Inside the report designer, the data sources you've selected will be tied to the Data Band control, and will also be displayed in the Dictionary tab of the report designer's options panel, located on the right side of the report designer screen.

Again, for detailed information on designing reports, refer to the Reports Reference Guide.

Included Views #

We have included multiple pre-constructed Views for use with the reporting and they could also be used in your Knowledge Views. A detailed description of each View is presented in the following topics in the Database Guide:

bpProcess

bpProcessTask

bpProcessTaskUser

bpUser

bpTaskList

Common Report Field Data Types

  • Varchar: variable length character string using the ANSI character set.
  • Nvarchar: variable length character string using Unicode UCS-2. This allows for multi-lingual information to be stored in character strings
  • Nvarchar (max): an nvarchar that can reach up to 231-1 bytes ( ≈ 2.15 gigabytes).

The Globally Unique Identifier (GUID)

The Process Director database uniquely identifies every object by assigning it a special identifier known as a Globally Unique Identifier (GUID) as the ID of the object. A GUID is a 128 bit, 36 character varchar value. It is a series of hexadecimal numbers that are created using algorithms that ensure uniqueness. The GUID is generally represented in the format:

aa213c6f-a8aa-454f-a04d-30b56fd2e493

What you really need to know about the GUID is that, if you are linking tables together, it is what you should use.

If you search for all Process Instances of the type called “Capital Expenditure Process”, you may get any number of instances of different processes back, just because they are all named “Capital Expenditure Process.” The displayed name isn't unique. But if you search for the “Capital Expenditure Process” instances using the Timeline Instance ID of 00000109-0000-0010-8000-00AA006D2EA4, you are sure to only get that specific Timeline instance.

You can find the ID of a Process Director object by looking at the object definition's properties. For instance, in a Process Timeline, the ID is displayed in the Options section of the Process Timeline definition's Properties tab. It is displayed as the PRID property, as shown below.

Datetime

Datetime fields in SQL Server are displayed like this: 2007-10-28 22:11:19.7030000. How you display them while creating a report is up to you. You can just use the date or the time, or just the minutes if you wanted to.

Nullable vs non-Nullable fields

NULL = “Unknown” or “No value.” There are many fields in a database that don't have values, and some of those have never had values. Some were inserted into the table with the value of “no value” (NULL). What you need to know about null is that null isn't the same as a blank field. If a field is null and you filter out the “blank” fields… you aren't filtering out fields where the value is NULL. Because if you have an SQL statement and you say:

SELECT * FROM tableName WHERE fieldName <> '';

You aren't filtering out fields where fieldName is NULL. Because NULL isn't the same as ‘’ (a zero length string). Instead, use something like this:

SELECT * FROM tableName WHERE fieldName <> '' AND fieldName IS NOT NULL;

You can see here that this is for a string value or character field, as I am using the character field delimiter ‘ (single quote).

The thing you need to know about NULL is how important they are to datetime fields. Dates that appear blank are NULL. There is no such thing as a blank datetime field, that field doesn’t exist. So your filtering of date fields (and other nullable fields) is going to use the IS NULL and IS NOT NULL switches in SQL.

SELECT * FROM bpProcessTaskUser WHERE StartTime IS NOT NULL AND EndTime IS NOT NULL AND UserUID <> '' AND UserUID IS NOT NULL;

That statement will return all of the tasks that were assigned to a user and completed, as they have both a StartTime, an EndTime and an assigned UserUID.

Video Example: Creating a Quick Report #