Building Custom Reports
Overview
In this chapter, we explore the Workday object model including business objects, data sources, and fields. You will learn common terminology used in reporting and how to determine the appropriate primary business object and data source for a report. Lastly, we will cover how to create a custom report using the Advanced report type and add fields from the primary and related business objects.
Objectives
By the end of this chapter, you should be able to:
- Define common reporting terminology.
- Identify and describe the fields, related business objects, data sources, and reports for a business object.
- Identify and describe the delivered data sources.
- Use contextual reporting to view report fields and values.
- Create a custom report using the Advanced report type.
- Add fields from the primary and related business objects to a custom report.
Reporting Overview
Workday Reporting Overview
Workday reporting overview
Reports in Workday have an easy-to-use, consumer-friendly interface with the functional user in mind. Reports exist as built-in features in the application, which allow users to act on the report output directly from the user interface. Reports in Workday leverage your security configuration, allowing you to access real-time, relevant data.
You can build custom reports using the Report Writer tool. You can embed reports in your business process transactions to provide relevant data for decision-making at the time of decision. You can also enable reports as worklets and display them on dashboards. In addition, you can use scorecards to display a snapshot of important metrics for a specific organization for a particular period. These metrics are sometimes called Key Performance Indicators, or KPIs.
The Workday reporting ecosystem supports many features:
- You can use reports in outbound integrations (Reporting-as-a-Service).
- Mobile devices can access reports.
- Workday allows you to associate layouts with your custom reports, which it uses to generate PDF files. In Workday, these designs are business form layouts. You can define a business form layout using the Report Designer tool in Workday Studio.
- You can use Prism Analytics to analyze data from both Workday and external sources.
- Workday helps you automate your Excel processing and formatting when exporting a Workday custom report. Excel templates reduce the time and effort needed to deliver Excel workbooks based on Workday custom reports. This is especially valuable in cases where you export a report on a regular basis and then reformat the data in Excel. This feature supports any macros, calculations, and formatting defined in the associated workbook template.
Workday Standard Reports
Workday delivers standard reports that are available for all customers. If necessary, you can copy many of the Workday-delivered reports to create a custom report and modify it as needed.
You can use the
Workday Standard Reports
report to view Workday-delivered reports.The report displays the following columns:
Column | Description |
|---|---|
Category | The category for the standard report. |
Report | This contains the Related Actions you can take on the standard report. |
Name | Name of the standard report. |
Description | Description of what displays in the report. |
Type | The type of report, either XpressO or Report Writer.
Workday creates XpressO reports using a proprietary programming tool that provides special capabilities for building reports. You cannot copy or modify these reports using the Report Writer tool.
Workday creates delivered Report Writer reports using the same Report Writer tool that is available to you. You can make a copy of a Report Writer report, change it any way you want, and then save it. |
Schedulable | Indicates if you can schedule a report. |
Domain | Shows the name of the domain that secures the report. Users must have access to one of the security domains to run the report. |
Security Note
:- TheWorkday Standard Reportsreport shows all standard reports and categories, even if you do not have security permissions to access the menu category or the report.
- You must have access to the Custom Report Administration security domain to run theWorkday Standard Reportsreport.
Copying a Standard Report
There are two ways to copy a standard report:
- From the standard report's Related Actions, select Standard Report > Copy.
- Use theCopy Standard Report to Custom Reporttask.
Note:
- You can only copy Report Writer reports, not XpressO reports.
- You cannot copy reports with deprecated data sources and fields.
Security Note
:- By default, the system does not share custom reports with other users. This means only the owner can access and run the report.
- You must have access to the Custom Report Creation security domain to copy a standard report and create a custom report.
Modifying Report Columns
Columns grid navigation
You can edit a report and modify the fields that display as columns in the report via the Columns tab.
- Use the + and - icons to add or remove a row.
- Use the up and down arrows to reorder the rows.
- Select the field you want to display.
- Optionally, override the field name displayed on the report.
- Select from a variety of numeric formats (masks).
- Select options for how the data should display.
All Custom Reports
You can use the
All Custom Reports
report to view all custom reports in the tenant. You can leverage these custom reports as a starting point for new custom reports.
Building Custom Reports
Reporting Terminology
To use Report Writer, you must understand the terminology involved, especially when it comes to business objects and data sources.
Workday stores your data in business objects, similar to database tables or worksheets in Excel. Just as a database table or worksheet has columns and rows, a Workday business object has fields and instances.
The report data source provides a view into the primary business object (PBO). This object gives you access to class report fields (CRFs) as well as links to related business objects (RBOs).
Term | Definition |
|---|---|
Primary Business Object | The main business object for the report. It holds the data that displays in your report. The primary business object determines what fields are initially available to include in the report. |
Related Business Object | Objects that have an association with the primary business object. These can have a 1:1 or 1:M relationship with the primary business object. A field on the primary business object links the two business objects together. |
Report Data Source | Workday delivers data sources for some business objects. You can think of the data source as the 'view' or 'starting filter' for reporting on the given primary business object. |
Class Report Fields | When working with Workday custom reports, you can select available fields (depending on your security). These fields can be Workday-delivered fields, calculated fields, or custom fields. |
Instances | Instances of a business object in Workday are like rows in a table or spreadsheet. Each instance represents a unique occurrence of that type of object, such as a given organization or worker. |
Report Data Sources
Workday defines and delivers the data sources in the system. Workday delivers zero, one, or multiple data sources for each business object. The report data source is the view or selection of instances of a given primary business object; this is essentially the starting data for your report.
With the exception of composite reports, you must select a single report data source when creating a report. This determines the primary business object for the report. The report displays one row for each instance of the primary business object.
For example, let's say you create a report with All Active Employees as the report data source. The primary business object for the report then is Employee. The report shows one row for each instance of Employee. Notice that Alain DuBois only appears once in the table. His dependents display as "sub-rows" and appear as a group under the Dependents heading.
Example of a report using the All Active Employees data source
If you create a report with All Dependents as the report data source, then the primary business object is Dependent. The report shows one row for each instance of Dependent. Notice that Alain DuBois appears twice in the table (once for each dependent).
Example of a report using the All Dependents data source
Both data sources let you access the same information, but the information displays differently. You need to understand how users want to view, sort, and filter the data in order to pick the best report data source for the report.
Each data source has an association with a primary business object, and has its own security. The defined access for a data source controls whether a user can create or run a custom report that uses that data source. Each data source has a list of permitted security groups. You must have access to a permitted security group to run the report or create a report using the data source. In addition, you can only share a report with users who have access to the report's data source.
There are two types of data sources:
- Standard
- Indexed
Standard Data Sources
Most data sources in Workday are standard data sources. A given Workday business object can have several standard data sources associated with it, each representing a different filter or selection into instances of that object. Think of the data source as a starting filter. Choose the data source that returns the smallest dataset that still includes all needed data. This is more efficient than using a data source that returns a larger dataset and applying filters to only display a subset of the data.
A data source can contain all instances of the primary business object (e.g., All Workers), or it can have built-in, Workday-defined filtering logic (e.g., All Active and Terminated Workers). If the data source has built-in filtering, the filter comparison value is either built into the data source (e.g., All Active Employees) or displays as a user prompt. In the prompt, the user enters the comparison value when running the report (e.g., Employees by Organization).
The following example shows different standard data sources for the Worker and Employee business objects. The All Workers data source returns all active, terminated, and future workers. The All Active and Terminated Workers data source returns active and terminated workers, but not future workers. The All Active Employees data source returns active employees, but not contingent, terminated, or future workers. For optimal performance, choose the data source that returns the smallest dataset that contains all needed data. If you only want to report on active employees, then choose the All Active Employees data source for a more efficient report.
An example of how different data sources return different numbers of instances
Class Report Fields
Each business object has many Class Report Fields (CRFs). When creating custom reports, you can display, sort, filter, and create prompts for Workday-delivered fields, calculated fields, and custom fields.
Class Report Fields (CRFs) can be simple types or object types. Simple types are not actionable and appear as black text. Object types are actionable and appear as blue text. System security controls access to class report fields.
A field type icon accompanies each Class Report Field (CRF).
Icon | Definition |
|---|---|
| Text - Represents a simple text field, such as First Name. |
| Numeric - Represents a numeric field, such as Employee Count. |
| Currency - Represents a currency field, such as Base Pay. |
| Date - Represents a date field, such as Hire Date. |
| Boolean - Represents a true/false field, such as Active Status. |
| Single instance - Represents a one-to-one (1:1) relationship between two objects. For example, one employee can have one pay group association. |
| Multi-instance - Represents a one-to-many (1:M) relationship between two objects. For example, one worker can have multiple dependents. |
| Self-referencing instance : A reference back to itself. For example, a self-referencing instance of a worker identifies the worker and allows you to drill into the details and access related actions. |
Determining the Primary Business Object and Data Source
To determine the primary business object and data source when creating a custom report, there are several questions to consider:
- Which business objects contain the fields needed in the report?
- If there are multiple business objects:
- Are these business objects related?
- Which should be the primary business object?
- Which should be the related business object?
- Which field links the two business objects together?
- Which data source should I use?
Business Object Details Report
The
Business Object Details
report can help you understand and navigate the Workday object model. Knowing how business objects relate to each other and which data sources are available is invaluable when building reports. We recommend starting with this report first to get an idea of what objects you might use in your custom report. You can also use this report to get a list of data sources.When you run this report, it will first prompt you to select which business object you want to view details for. Then, the report displays up to four tabs: Fields, Related Business Objects, Data Sources, and Reports. If the business object does not contain data for one of these tabs, the system hides the tab.
Fields Tab
The Fields tab in the image below shows all available delivered, calculated, and custom fields for the business object. You can filter by a column in the report to narrow down which fields display. For example, you might filter the Field Source field to only show calculated fields.
Related Business Objects Tab
The Related Business Objects tab shows information about the relationships between this business object and other business objects. The tab displays two sections of information. On the left side, it displays the list of business objects that this business object links to. On the right side, it displays the list of business objects that link to this business object.
Note
: Depending on your browser width, the Links to Related Business Objects grid may appear above the Links from Related Business Objects grid, instead of side by side.You can select the number in the Number of Links column to check which fields link the business objects together. In the following example, there are three fields that link from the Expense Report business object to the Employee business object.
Data Sources Tab
The Data Sources tab displays available data sources for the business object. You can view more general data sources as well as more specific data sources.
Note
: If the Data Sources tab does not display, then there are no delivered data sources for the business object. This means you cannot use the business object as the primary business object for a report. Consider using a related business object to access the data you need.
Reports Tab
The Reports tab displays reports in the tenant (both standard and custom) that use the given business object. You can use these reports as a reference when writing reports for this business object.
You can select the Reports Displaying Business Object at Second-Level button to display the reports that include this business object as a related object.
Data Sources Report
Another useful research report is the
Data Sources
report, as shown in the image below. This report helps you understand:- Whether a data source is standard or indexed.
- If the data source includes built-in prompts.
- Permitted security groups for the data source.
You can filter the report by category to narrow down the data sources.
Report Fields Report
Use the
Report Fields
report to investigate:- What fields exist on a business object.
- What business objects are anchored to a certain field.
- Aspects of a report field including type, description, RBO, built-in prompts, and so on.
Upon running the report, you are prompted for Report Field and Business Object. Both prompts are optional.
Designing a Custom Report
There are several questions to consider when designing a custom report before building it:
- Where is the data I need?
- What view of the data do I need?
- What fields should display?
- How should the data group or sort?
- How should I filter the data?
- How should the output display?
- Who is this report for? Who should I share the report with?
- Is there an existing report that I can use as a starting point?
You can use the
Crea
te Custom Report
task to create a custom report. When creating a report, you must specify the Report Name, Report Type, and Data Source. You can also select the Temporary Report and Enable as Web Service options, which we explore later in this chapter.Reminder
: A user's access to data sources drives data source selection for the report.Note
: Selecting the data source determines the primary business object for the report. Once you define the primary business object for a report, you can only change the report's data source to another data source on the same primary business object. You cannot change the primary business object for a report.Report Name
You should establish a naming convention as a best practice to make your reports easy to find.
Report Types
Workday Report Writer provides several report types for creating custom reports and custom analytic solutions. You use the advanced and matrix report types most commonly.
Report Type | Definition |
|---|---|
Simple
| Simple reports provide straightforward design options for the occasional user to create reports quickly and easily with limited options. You can display, sort, and filter data from a primary business object. These reports are not shareable. |
Advanced
| Advanced reports allow you to display data from the primary and related business objects. These reports are shareable. You can sort and filter the data, show groupings, and display sub- and grand totals. You can also add charts and enable the report as a worklet or web service. |
Matrix
| Matrix reports allow you to group data, summarize the metrics for each grouping, and drill into the summarizations for further analysis. In addition, matrix reports also provide for filtering, charts, worklets, and report sharing. |
Composite
| Composite reports enable you to combine data from multiple data sources into a single report by using advanced or matrix subreports. |
Search
| Search reports display search results based on facet-filter selection values. |
nBox
| nBox reports count data and display the results in a two-dimensional matrix. |
Trending
| Trending reports enable you to report on and analyze trends in worker data, such as headcount and attrition over a period of time. |
Transposed
| Transposed reports interchange the rows and corresponding columns on the report, allowing you to create reports that enable side-by-side comparisons. |
Data Sources
When creating a custom report, the most important decision is selecting your data source. The data source drives the primary business object and view of the data. Data sources provide the starting filter for your report. You can search for data sources by name, category, business object, or a combination of category and business object.
Workday defines and delivers one or more data sources for most business objects.
Temporary Report
When you create a report, you can select the Temporary Report checkbox to designate it as temporary. When you mark a report as temporary, it has a defined period of time before it expires and becomes eligible for deletion in the tenant. By default, a temporary report expires after seven days. For reports that are not the Simple report type, you can change the expiration information on the Advanced tab.
Use the
Delete Temporary Report Definitions
task to delete temporary reports in a tenant that have expired and are eligible for deletion. You can schedule this task to run once, or on a daily, weekly, or monthly recurrence. This process permanently purges expired reports from your Workday tenant.Security Note
: You must have access to the Custom Report Administration security domain to schedule reports for deletion.Note
: If you create a custom report and then cancel the report, or if your session times out, your report is saved as a temporary report. Delete the report or change the report options so it is no longer a temporary report.You may not want to give all report writers the ability to create permanent reports that consume system resources indefinitely. Therefore, Workday enables you to restrict specific Report Writer users so that they only have the ability to create temporary report definitions. Report administrators can still access these temporary reports to mark them as permanent or change the expiration dates as needed.
Security Note
: Users associated with security groups configured for the Ability to Create Only Temporary Reports security domain are limited to just temporary reports. This access can support ad hoc reporting needs and can help separate groups of report writers in the tenant.Web Service Enabled
Selecting the Enable as Web Service checkbox allows the custom report to be used in an outbound integration (Reporting-as-a-Service (RaaS)), and makes the report available to the Business Intelligence Reporting Tool (BIRT) and PRISM Analytics. You can configure additional web services options on the Advanced tab.
Custom Report Tabs
When creating a custom report using the Advanced Report type, configure the report using these tabs:
Option | Description |
|---|---|
Columns | Select the fields to include on the report and specify their sequence. The Columns grid contains one row for each column. In each row, define the business object, field, column heading overrides, and options for how the field should display. Security Note : You can only add fields that you have access to. |
Sort | Control the order to present and group data. This tab applies sorting for data on the primary business object and subsorting for data on related business objects. You can also specify options for displaying subtotals, grand totals, and outlines. Advanced reports sort data based on a unique ID for efficiency. In other report types, if you do not specify sorting or grouping criteria, sorting is based on the first (left-most) column associated with the primary business object. |
Filter | Add conditions to filter the primary business object. |
Subfilter | Add conditions to filter the related business objects. You can add subfilters for multiple related business objects. |
Prompts | Specify prompt-related data about your report, including populating undefined prompt values. You can set default values for prompts, so users do not have to enter values when running a report. You can also hide prompts that have default values, so that they do not appear to users at run time. |
Output | Override the default output options, including output type, worklet options, and help text. By default, a custom report renders as a table. You can change this to display the report as a chart, chart and table, or gauge. By default, the system does not enable custom reports for use as worklets, but you can change this setting. |
Share | Share the report with other users or groups. By default, only the report owner can view a custom report. You can only share a report with users who have access to the report data source. Sharing a report allows other users to run and copy the report. |
Advanced | Define additional report options. Some include enabling save parameters, enabling a report as a web service, enabling a report for Worksheets, or changing the expiration information for temporary reports. |
Adding Fields from Related Business Objects
You already know how to add fields from the primary business object. Depending on the report type, you can also add fields from related business objects. On the Columns tab, you specify the business object and field for the related data. A given custom report definition can include fields from more than one related business object. Additionally, you can select a field that links the PBO and RBO together.
In the following example, the Dependents field links a report using the Worker PBO to the Dependent RBO. This allows you to pull fields from the RBO into your report as well.
Adding fields from related business objects
Note
: When building a report using the Advanced report type, you can only access fields from related business objects that are one level deep. To access fields from RBOs that are more than one level deep, you need to create a calculated field.Filters and Prompts
Filtering
The Filter tab allows you to filter the primary business object. A filter consists of one or more filter conditions. Define each condition in a row of the filter grid. You can filter on any field from the primary business object or Global business object (global fields). Filter fields do not need to display on the report output.
Components of the Filter on Instances grid
These are the options available when defining a filter:
Option | Description |
|---|---|
And/Or | Enables you to specify how multiple filter conditions should evaluate. Selecting And indicates that each business object instance must satisfy all conditions in your filter criteria to display in the report. Select Or to indicate that each business object instance must satisfy at least one of the conditions to display in the report. |
Parentheses | Some report types, like Advanced, allow you to use any combination of And and Or conditions within a filter. You can use parentheses to group conditions together and control the condition evaluation sequence. |
Field | Specifies the field to evaluate. |
Operator | Specifies the logical operator in the filter condition. The available choices depend on the field type. |
Comparison Type | Specifies how the system should compare the field. The options are:
|
Comparison Value | Specifies the value to compare to the Field value, or the user-selected prompt value. The ability to enable this field and available choices depends on the Field type, the Operator, and the Comparison Type. |
Performance Considerations
Select a data source that filters unnecessary data from the report. After the data source determines the data pool, you can apply filter criteria to further narrow the results. Keep in mind that filters can impact the runtime of a report. Both the number of filters and the order of filters can slow a report down. Whenever possible, use a data source with a built-in filter.
Place filters that exclude the greatest number of instances from the report at the top of the filter grid. This ensures that the system filters on progressively smaller amounts of instances as it runs through the ordered filters.
Lastly, remember to use indexed fields for your report's filters when using an indexed data source. Using nonindexed fields as filters on an indexed report causes your report to not run in indexed mode.
Subfiltering
In addition to filtering data from the primary business object, you can also filter data from related business objects. As shown in the image below, on the Subfilter tab, you can specify fields from a related business object to use in filter conditions for the related data. Related business objects and fields in subfilters do not need to display on the report output.
Filter Logic
It is important to understand how your report filter and subfilter interact. For a given instance of your primary business object, the subfilter logic executes first, then the filter logic.
For example, consider a report where Worker is the primary business object and Expense Report is the related business object:
- For a worker on the Worker primary business object, the subfilter refers to the Expense Report related business object to check if the worker has corresponding expense reports.
- If the worker has corresponding expense reports, the subfilter applies the "Amount > 1000" logic and returns expense reports that meet the criteria.
- Next, the process moves back to the primary business object.
- The filter determines if the worker lives in London and returns workers that meet the criteria.
- Note that workers who live in London but do not have expense reports will also display on the report.
Note
: If you include the condition " RBO not empty" in the filter, the system filters out instances of the primary business object that do not have related data.
Prompting
You can use prompts in your filters and subfilters instead of hardcoding filter values. Prompts provide more flexibility because users can specify the criteria for the report each time it runs.
Using Prompts in Filters and Subfilters
You can use the Filter and Subfilter tabs to control which fields should prompt the user for a value at runtime. When defining a filter or subfilter condition, there are two comparison types that you can use to prompt the user for a value.
Comparison Type | Description |
|---|---|
Prompt the user for a value | Workday uses the entered prompt value to filter the report. If this prompt value is blank, the report filters by a blank value. |
Prompt the user for a value and ignore the filter condition if the value is blank | With this option, if the prompt value is blank, the report ignores the filter condition. |
Configuring Prompts
You can configure the prompt settings on the Prompts tab. The Instructions field lets you specify information to display on the user prompt.
Some fields in Workday come with built-in prompts that automatically appear on your report if you add the field to your report definition. On the Prompts tab, select the Populate Undefined Prompt Defaults to automatically add any undefined prompts to the Prompt Defaults grid.
The Display Prompt Values in Subtitle checkbox lets you show or hide the prompt values at the top of the report output. In the Prompt Defaults grid, you can use the Do Not Include in Subtitle setting to exclude specific prompt values from displaying in the subtitle.
You can specify options and default values for your prompt fields in the Prompt Defaults grid.
These are the options available when defining prompt defaults:
Option | Description |
|---|---|
Field | Specifies the field for which you want to enter prompt data. |
Prompt Qualifier | If you define a data range or a dataset prompt for this field, you must choose the Prompt Qualifier to identify which prompt you want to override. |
Label for Prompt | Overrides the label for this prompt when you run the report. |
Default Type | Determines the default values to use when the report runs. The options are:
|
Default Value | This specifies one or more default values or the field to use to determine the default prompt. This function goes with the Specify default value and Determine default value at runtime options. |
Required | Requires the user to enter a prompt field value. The field cannot be blank when the report runs. |
Do Not Prompt at Runtime | Suppresses the display of the prompt for this field. The system uses any default values automatically, skipping any interaction for the prompt for this field. |
Do Not Include in Subtitle | Suppresses the display of the prompt values from the final report output. Any values the user selects from prompts appear below the report title (above the detail data) by default when the report runs. |
Where Can Prompts Come From?
In addition to defining them in filters and subfilters, prompts can come from other places in the system. You can set the defaults for these prompts on the Prompts tab.
Location | Example |
|---|---|
Data Source | The Employees by Organization data source has these built-in prompts: Include Managers, Include Subordinate Organizations, and Organization. |
Data Source Filter | The Journal Lines for Company data source filter has nine built-in prompts, including Company, Year, and Period. |
Field | The Expense Report Total Amount in Reporting Currency field has a built-in prompt for Reporting Currency. |
Calculated Field | You can create a calculated field using the Prompt for Value function. |
Prompt Set | You can create a prompt set to group prompt field values. A prompt set allows you to enter the prompt field value once and then the system feeds the one value to the multiple uses of the field. An example is when a report group or a composite report contains multiple reports all prompting on the same field. |
Note
: Use a data source with built-in prompts when possible, rather than manually creating filters and prompts on a more generic data source. This results in a more efficient report.Reports as a Service (RaaS)
Reports as a Service (RaaS) is an alternative to using Workday SOAP or REST web services. RaaS makes a custom report available via a web service call. Because it is a web service call, you can access report data through URLs, which you can use in:
- Integrations between Workday and external endpoints. Example: Payroll or benefits providers.
- Workday Extend applications.
- External reporting tools to access Workday data. Example: Microsoft Excel.
Chapter Summary
Key Takeaways:
- The RDS determines which PBO the report uses.
- You can add fields from the PBO and the RBOs to the advanced type report.
- Class report fields can be simple types or object types.
Resources:
- Business Object Details report
- Data Sources report
- Contextual reporting