Skip to main content

Reports & Dashboards

Detailed Summary of ServiceNow Reporting Series by Rohit

This series of videos by Rohit provides a comprehensive guide to ServiceNow reporting, covering various aspects from basic report creation to advanced features. The series aims to address common reporting requirements and issues faced by ServiceNow users and administrators.

Video 1: Introduction to Reporting

This video introduces the reporting series and its objectives, focusing on fundamental reporting concepts in ServiceNow. Rohit outlines the series topics, including dashboards, interactive sessions, reporting colors, database views, and joins. He emphasizes the practical need for reporting in addressing daily requirements for sharing data and insights from ServiceNow.

Key points covered:

  • Purpose of the Series: To provide a comprehensive guide to ServiceNow reporting, addressing common user needs and challenges.
  • Series Topics: Dashboards, interactive sessions, reporting colors, database views, joins, and more.
  • Documentation Website: Rohit directs viewers to his website "snow expert rid" for further documentation on reporting and other ServiceNow topics.
  • Definition of Reporting: Reporting is defined as presenting the current state of records in a graphical representation like tables, charts, and graphs. It focuses on real-time data rather than historical trends.
  • Reporting vs. Performance Analytics (PA): The crucial distinction between reporting and PA is highlighted. Reporting shows the current state of data, while PA tracks and aggregates data over time to show historical trends and performance metrics.
  • Basic Reporting Functions: The video briefly mentions basic report operations like creating, copying, and deleting reports.
  • Navigating the Reports Module: Viewers are guided on how to access the "Reports" module in ServiceNow via the left navigation menu.
  • Viewing Existing Reports: Different categories of reports are explained: "My Reports" (created or shared by the user), "Group Reports" (shared with user's groups), "Global Reports" (system-wide reports), and "All Reports". Quick filters are demonstrated for easy navigation.
  • Customizing Report List View: The personalization icon (gear icon) is explained for adding or removing columns in the report list view, allowing users to customize the displayed information.
  • Creating a Simple Report (Open Incident Count): A step-by-step guide is provided on creating a basic report to count open incidents. This includes:
    • Naming the report.
    • Selecting "Table" as the source type.
    • Choosing the "Incident" table.
    • Applying filters (e.g., "Active is true" or "State is New").
    • Running the report to view results in a list format.
  • Report Types: The video introduces different report types, with a focus on "Single Score" for this example, which displays a numerical count.
  • Aggregation: The concept of aggregation is briefly touched upon, with "Count" being used in the example to count incidents.
  • Saving and Sharing Reports: Users are shown how to save created reports and how to share them with others using the "Sharing" option. Sharing can be configured for everyone, specific roles, groups, or individual users.
  • Deleting and Editing Reports: Instructions are given on how to delete reports and edit report details like description via the info icon.
  • Creating Reports from Lists: A shortcut method for creating reports directly from a list view is demonstrated using right-click options like "Bar Chart" and "Pie Chart" on a column header. This automatically creates a report with pre-defined filters and groupings based on the selected column.

Video 2: Dashboards and Sharing

This video focuses on dashboards and how to utilize them to visualize reports and share them effectively.

Key points covered:

  • Introduction to Dashboards: Dashboards are defined as centralized locations for displaying multiple reports and widgets, providing a holistic view of data.
  • Navigating to Dashboards Module: Users are shown how to access the "Dashboards" module under "Self-Service" in the left navigation.
  • Creating a New Dashboard: The process of creating a new dashboard is explained, including naming the dashboard and saving it.
  • Dashboard Widgets: Widgets are introduced as the building blocks of dashboards, encompassing reports, Performance Analytics, interactive filters, and content blocks.
  • Adding Widgets to Dashboards: Two methods are shown for adding widgets:
    • Using the "+" icon and selecting from "Favorites" or widget categories.
    • Adding reports directly from the report itself using the "Add to Dashboard" option.
  • Rearranging Dashboard Widgets: Users are shown how to rearrange widgets on the dashboard using drag-and-drop functionality after clicking the "+" sign.
  • Editing Reports from Dashboards: The video demonstrates how to directly access and edit a report from a dashboard by clicking the "edit" (gear) icon on the widget.
  • Sharing Dashboards: The process of sharing dashboards is explained, similar to sharing reports. Users can share dashboards with roles, groups, or individual users, granting either "view" or "edit" access. Email notifications can be sent upon sharing.
  • Removing Dashboard Access: Users are shown how to remove access to a dashboard for specific users or groups.
  • Scheduled Reports: The concept of scheduled reports is introduced in more detail. Users can schedule reports to be automatically generated and emailed to recipients on a recurring basis (daily, weekly, monthly). The video explains how to set up a schedule, select a report, define recipients, and configure email settings like subject and format.

Video 3: Pie and Bar Charts in Detail

This video delves deeper into pie and bar chart report types, building upon the previous introduction.

Key points covered:

  • Pie Chart - Open Incident by State: A step-by-step guide on creating a pie chart to visualize open incidents by state is provided. This includes:
    • Creating a new report and naming it.
    • Selecting "Table" as the source and "Incident" as the table.
    • Choosing "Pie Chart" as the report type.
    • Grouping the pie chart by "State".
    • Applying a filter "Active is true".
    • Adjusting the chart style (size) to "Small".
    • Saving the report and adding it to the dashboard.
  • Bar Chart - Open Incident by Assigning: Instructions are provided for creating a bar chart to show open incidents by "Assigned to" user.
    • Creating a new report with "Bar Chart" type.
    • Grouping the bar chart by "Assign to".
    • Keeping the "Active is true" filter.
    • Saving and adding the bar chart to the dashboard.
  • Bar Chart - Open Incident by Groups: Another bar chart example is given, this time grouping incidents by "Assignment Group".
  • Stacked Bar Chart - Open Incident by Groups and Priority: The concept of stacked bar charts is introduced to add another dimension to bar charts.
    • Using "Stack by" field: The "Stack by" field is used to further categorize the bars. In this example, "Priority" is used as the "Stack by" field, stacking bars within each assignment group by priority level.
    • Filtering within Stacked Chart: Users are shown how to interact with a stacked bar chart to filter data by clicking on specific stack segments (e.g., clicking on "Critical" to highlight critical incidents within each assignment group).
  • Group by vs. Stack by: The difference between "Group by" and "Stack by" is explained. "Group by" creates separate bars for each category, while "Stack by" subdivides bars within a "Group by" category.
  • Rearranging Reports on Dashboard: The video reinforces the ability to rearrange reports on the dashboard for better presentation.

Video 4: Trend by Reports

This video focuses on "Trend by" reports, which are used to visualize data trends over time.

Key points covered:

  • Trend by Report Definition: "Trend by" reports are defined as tools to graphically represent data trends over a period.
  • Creating "Number of Incidents Trend by Created" Report: A step-by-step guide is given on creating a trend report to show the number of incidents created over time.
    • Creating a new report and naming it.
    • Selecting "Table" and "Incident" table.
    • Choosing "Trend" as the report type.
    • Setting "Trend by" field to "Created".
    • Running the report to see the trend of incident creation over time.
  • Period Options: The "Period" options (Yearly, Quarterly, Monthly) are explained, allowing users to adjust the granularity of the trend visualization (e.g., showing trends by year, quarter, or month).
  • Group by in Trend Reports (Priority): The video demonstrates how to use "Group by" in trend reports to stack trends by another field, such as "Priority". This allows visualizing the trend of different priority incidents over time.
  • Saving and Adding Trend Report to Dashboard: Users are shown how to save the created trend report and add it to the dashboard.
  • Alternative Trend Report Types: Other report types suitable for trend visualization are mentioned, including "Time Series", "Line", "Spline", and "Step Line", suggesting that these can be used for similar trend analysis with different visual styles.

Video 5: Interactive Filters

This video explains the powerful feature of "Interactive Filters" in ServiceNow reporting.

Key points covered:

  • Interactive Filter Definition: Interactive filters are defined as dynamic controls that allow users to filter all reports on a dashboard simultaneously without modifying the individual reports themselves.
  • Creating an Interactive Filter - Choice Type (State): A detailed guide on creating a choice-list interactive filter for the "State" field on the incident table is provided. This involves:
    • Navigating to "Interactive Filters" module.
    • Creating a "New" interactive filter.
    • Selecting "Choice" as the interactive filter type.
    • Naming the interactive filter.
    • Specifying the "Lookup Table" as "Incident State".
    • Setting the "Table" to "Incident".
    • Setting the "Field" to "State".
    • Saving the interactive filter.
  • Adding Interactive Filter to Dashboard: Users are shown how to add the created interactive filter to a dashboard as a widget.
    • Using the "+" icon and selecting "Interactive Filter" category.
    • Choosing "Choice List" type and then selecting the created interactive filter by name.
  • Resizing and Positioning Interactive Filter: The video demonstrates how to resize and position the interactive filter widget on the dashboard for optimal layout.
  • Connecting Reports to Interactive Filter ("Follow on Interactive Filter"): The crucial step of connecting reports to the interactive filter is explained. For each report widget on the dashboard, users need to edit the widget settings and enable the "Follow on Interactive Filter" option. This ensures that the reports react to selections made in the interactive filter.
  • Single vs. Multiple Input Interactive Filters: The video shows how to modify the interactive filter definition to allow either single or multiple selections. This is controlled by the "Select multiple inputs" checkbox in the interactive filter definition.
  • Interactive Filter on Reference Fields (Assignment Group): The concept of creating interactive filters for reference fields, like "Assignment Group", is introduced.
  • Interactive Filter Reference Step for Reference Fields: For reference field interactive filters, an additional step is explained: creating an "Interactive Filter Reference" record. This record specifies the table and field that the reference filter applies to (e.g., table "Incident", field "Assignment Group"). This is necessary because reference fields can be used in multiple tables.

Video 6: Pivot Reports

This video focuses on "Pivot" reports, which are used to summarize data in a matrix format.

Key points covered:

  • Pivot Report Definition: Pivot reports are defined as reports that summarize data into rows and columns, allowing for cross-tabular analysis.
  • Creating a Pivot Report - "My Team Task": A step-by-step guide is provided on creating a pivot report to summarize team tasks (incidents) by assignee and state.
    • Creating a new report and naming it.
    • Selecting "Table" and "Incident" table.
    • Choosing "Pivot Table" as the report type.
    • Setting "Row" to "Assign to".
    • Setting "Column" to "State".
    • Applying a filter "Assign to is not empty".
    • Running the report to see the pivot table summary.
  • Multi-level Pivot Reports: The video introduces multi-level pivot reports for more granular data breakdown.
  • Creating Multi-level Pivot - "My Team Task": Instructions are given for creating a multi-level pivot report with:
    • Report type "Multi-level Pivot".
    • Configuration:
      • Rows: "Assignment Group" and "Assign to" (nested rows).
      • Columns: "State".
    • Running the multi-level pivot report.
  • Collapsing and Expanding in Multi-level Pivot: The video demonstrates the interactive nature of multi-level pivot reports, showing how users can collapse and expand rows (e.g., assignment groups) to drill down into the data.
  • Saving and Adding Pivot Report to Dashboard: Users are shown how to save the pivot report and add it to the dashboard.

Video 7: Reporting on Catalog Item Variables

This video addresses a common challenge: reporting on variables within catalog items without using database views.

Key points covered:

  • Reporting on Catalog Item Variables Directly: The video emphasizes that reporting on catalog item variables is possible directly from the sc_req_item table, without needing to create database views in most cases.
  • Ordering a Catalog Item with Variables: A demonstration is given of ordering a catalog item with variables to create sample data for reporting.
  • Creating a Report on sc_req_item Table: Users are instructed to create a new report based on the sc_req_item table (Service Catalog Requested Item).
  • Selecting "List" Report Type: For demonstration purposes, a "List" report type is chosen.
  • Filtering Report for Specific Catalog Item: The video shows how to filter the report to focus on a specific catalog item by using a filter condition on the "Item" field (referencing the catalog item name).
  • Adding Variables as Columns: The key technique for reporting on variables is explained:
    • Using "Choose Columns" in the report configuration.
    • Expanding the "Variables" field in the column selector.
    • Selecting the specific catalog item for which variables are needed.
    • Choosing the desired variables from the expanded list and adding them as columns.
    • Running the report to display variable values.
  • Demonstrating Dynamic Update: The video shows how ordering a new catalog item with different variable values automatically updates the report when refreshed, demonstrating the dynamic nature of variable reporting.
  • Removing Variables from Report Columns: Users are shown how to remove variables from the report columns if needed.

Video 8: Report Sources

This video introduces "Report Sources" as a way to standardize and simplify report creation and maintenance.

Key points covered:

  • Report Source Definition: Report sources are defined as reusable containers for pre-defined filters and data sets, ensuring consistency across multiple reports.
  • Creating a Report Source - "Working Incident": A step-by-step guide is provided on creating a report source named "Working Incident" that defines what constitutes a "working incident" based on state. This involves:
    • Navigating to "Report Sources" module.
    • Creating a "New" report source.
    • Naming the report source (e.g., "Working Incident").
    • Setting the "Table" to "Incident".
    • Defining filters (e.g., "State is New or In Progress or On Hold") to define "working incidents".
    • Saving the report source.
  • Using Report Source in a Report: Users are shown how to use a report source when creating a new report.
    • Changing "Source Type" to "Data Source" instead of "Table".
    • Selecting the created report source (e.g., "Working Incident").
  • Benefits of Report Sources: The advantages of using report sources are highlighted:
    • Consistency: Ensures all reports using the same source have consistent data filtering.
    • Central Filter Management: Filters are defined and managed in one place (the report source), making updates easier.
    • Reusability: Report sources can be reused across multiple reports, reducing redundancy and simplifying report creation.
  • Adding Additional Filters on Top of Report Source: The video explains that users can still add additional filters to a report on top of the filters already defined in the report source, providing flexibility.

Videos 9 & 10: Metrics and Database Views

These videos cover two advanced reporting features: "Metrics" for performance measurement and "Database Views" for joining data from multiple tables.

Key points covered:

  • Metrics Definition: Metrics are defined as tools for tracking and measuring performance and efficiency of processes and tasks within ServiceNow.
  • Use Case: Meantime to Resolution (Problem Assignment Duration): A practical use case is presented: measuring the duration for which a problem record is assigned to different users.
  • Creating a Metrics Definition - "Assigned to Duration": A step-by-step guide is provided on creating a metrics definition to track changes in the "Assign to" field on the problem table and calculate the duration of each assignment. This involves:
    • Navigating to "Metrics Definition" module.
    • Creating a "New" metrics definition.
    • Setting the "Table" to "Problem".
    • Setting the "Field" to "Assign to".
    • Selecting "Field value duration" as the "Type".
    • Saving the metrics definition.
  • Metrics Instance Creation: The video explains that metrics instances are automatically created whenever the tracked field (in this case, "Assign to") changes on a record.
  • Metrics Instance Table (metric_instance): The metric_instance table is introduced as the table that stores metrics data. It contains information like:
    • Start time, End time, Duration of each assignment segment.
    • Value of the field at the time of change (e.g., the user assigned).
    • Definition of the metric.
    • ID (sys_id) of the tracked record (e.g., problem sys_id).
  • Demonstrating Metrics Instance Creation: The video walks through an example of assigning and re-assigning a problem record to different users, showing how metrics instances are created for each assignment segment and how duration is calculated.
  • Reporting on Metrics Instance Table: Users are shown how to create reports directly on the metric_instance table to analyze metrics data.
    • Table: metric_instance.
    • Filter: Definition is "Assigned to Duration".
  • Pivot Report on Metrics Instance: A pivot report example is created to summarize assignment durations.
    • Rows: ID (problem sys_id).
    • Columns: Value (assigned user).
    • Aggregation: Sum on Duration.
  • Limitations of Reporting Directly on Metrics Instance: The video points out a limitation: directly reporting on metric_instance does not easily allow dot-walking to related fields from the original tracked table (e.g., problem fields like "Configuration Item").
  • Database View Introduction: Database views are introduced as a solution to overcome this limitation by merging data from two or more tables into a virtual table for reporting.
  • Creating Database View - "Problem Metrics": A step-by-step guide is provided on creating a database view named "Problem Metrics" to join the problem and metric_instance tables. This involves:
    • Navigating to "Database Views" module.
    • Creating a "New" database view.
    • Naming the database view (e.g., "Problem Metrics").
    • Adding View Tables:
      • Table 1: problem (prefix prb).
      • Table 2: metric_instance (prefix mtr).
    • Defining Where Clause for Joining: The crucial "Where Clause" is set to mtr_ID = prb_sys_id to link metrics instances to their corresponding problem records based on sys_id.
  • Trying out Database View: Users are shown how to "Try It" on the database view to preview the joined data.
  • Reporting on Database View (u_problem_metrics): The video demonstrates creating a report based on the newly created database view (u_problem_metrics).
  • Pivot Report on Database View: The previous pivot report is recreated using the database view, now allowing access to fields from both problem and metric_instance tables.
    • Rows: prb_number (problem number from problem table).
    • Columns: mtr_value (assigned user from metric_instance table).
    • Aggregation: Sum on mtr_duration (duration from metric_instance table).
    • Adding prb_cmdb_ci to Report: Crucially, the video demonstrates adding the prb_cmdb_ci field (Configuration Item from the problem table) to the report, which was not possible when reporting directly on metric_instance.
  • Benefits of Database View: The key benefit of database views is highlighted: enabling dot-walking to related fields from joined tables, allowing for richer and more comprehensive reporting.

Video 11: Value Formatting

This video focuses on "Value Formatting" options within ServiceNow reports, allowing customization of how report values are displayed.

Key points covered:

  • Value Formatting Definition: Value formatting is defined as a feature to customize the display of report values, making them more user-friendly and tailored to specific needs.
  • Duration Value Formatting: The video uses a "Single Score" report type with "Sum" aggregation on the "Duration" field (from the Incident table) to demonstrate duration formatting.
  • Duration Formatting Options: The following duration formatting options are explained and demonstrated:
    • Minimum Duration Limit: Allows setting the minimum unit to display (e.g., minutes, hours, seconds), truncating lower units.
    • Rounding: Offers various rounding methods (Up, Down, Half Up, Half Down, Half Even) to control how duration values are rounded.
    • Format: Provides different format styles for displaying duration (e.g., "DHM" for Days, Hours, Minutes).
    • Convert to Hours: Allows converting the entire duration to hours.
  • Number Value Formatting: The video switches to a "Single Score" report type with "Sum" aggregation on "Total Cost" (from the Software License table) to demonstrate number formatting.
  • Number Formatting Options: The following number formatting options are explained and demonstrated:
    • Decimal Places: Controls the number of decimal places displayed. Setting to "0" removes decimals, effectively rounding to integers.
    • Rounding (with Zero Decimal Places): When decimal places are set to zero, various rounding methods (Ceiling, Floor, Round Half Even, etc.) become applicable to control how values are rounded to integers.

Video 12: Reporting Colors

This video explores options for customizing colors in ServiceNow reports, specifically for pie and bar charts.

Key points covered:

  • Reporting Color Customization: The video focuses on customizing colors in pie and bar chart reports for visual appeal and data clarity.
  • Color Options: Three main color customization options are presented:
    • Color Palette: Uses pre-defined color palettes (like "Default UI4"), which are system-wide and customizable in the "Chart Color Schema" module. Changes to a palette affect all reports using that palette.
    • Chart Color (if defined): Uses table-specific and element-specific color definitions set in the "Chart Color" module. These definitions are applied to reports on the same table and element that use this setting.
    • Several Colors: Allows defining hexadecimal color codes directly within the report style settings, providing report-specific color customization with localized impact.
  • Color Palette (Default UI4): The "Default UI4" color palette is explained as a function-like collection of colors. Customizing this palette in the "Chart Color Schema" module affects all reports using it.
  • Chart Color (if defined): The "Chart Color" module is introduced, where users can define colors for specific tables and elements (fields). The video shows how to navigate to "Chart Color" and view existing definitions for the "incident" table and "priority" element. Changes here impact all reports using this setting for the same table and element.
  • Several Colors: The "Several Colors" option is demonstrated as a way to apply custom hexadecimal color codes directly to a report. This provides report-level color control without affecting other reports.

Video 13: Drill Down Reports

This video explains "Drill Down Reports", enabling interactive data exploration within reports.

Key points covered:

  • Drill Down Report Definition: Drill down reports are defined as interactive reports that allow users to click on data points (e.g., pie chart slices, bar chart segments) to "drill down" and view more detailed or related reports.
  • Creating a Pie Chart Report - Priority: The video starts with creating a basic pie chart report grouped by "Priority" as the base report for adding drill-down functionality.
  • Adding Drill Down to Report: The process of adding a drill down report is explained:
    • Right-clicking on a section of the report (e.g., a pie chart slice).
    • Selecting "Add Drill Down" from the context menu.
  • Defining Drill Down Report: Users are shown how to define the drill down report, including:
    • Drill Down Name (e.g., "State").
    • Report Type (e.g., "Bar Chart").
    • Grouping Field (e.g., "Assignment Group").
    • Saving the drill down report.
  • Demonstrating Drill Down Functionality: The video demonstrates how clicking on a slice of the pie chart (e.g., "Critical Priority") then triggers the drill down report (bar chart grouped by "Assignment Group" for critical incidents only).
  • Creating Multiple Levels of Drill Down: The video briefly mentions that multiple levels of drill down reports can be created, allowing for hierarchical data exploration.

Video 14: Adding Reports to Forms and Service Portal

This video demonstrates how to embed reports directly into ServiceNow forms and Service Portal pages.

Key points covered:

  • Adding Reports to Forms: The process of embedding reports within ServiceNow forms is explained:
    • Right-clicking on the form header and selecting "Configure" -> "Form Layout".
    • Searching for "Chart" in the "Fields" list.
    • Adding the "Chart" element to the desired section of the form layout.
    • Saving the form layout.
    • Configuring the Chart Widget: After adding the chart element to the form layout, users need to configure the chart widget by clicking "Configure Chart" in the form section.
    • Selecting the Report Name: In the chart configuration, users select the specific report they want to embed.
    • Adjusting Height and Passing Parameters: Options for adjusting the chart height and passing field values as parameters to the report are mentioned.
    • Saving the chart configuration.
  • Adding Reports to Service Portal: The steps for embedding reports into Service Portal pages are shown:
    • Navigating to the Service Portal page where the report should be embedded.
    • Using Ctrl+Right-click on the page and selecting "Page Designer".
    • Adding the "Report" widget from the widget palette to the desired location on the page.
    • Configuring the Report Widget: Clicking the "options" (pencil) icon on the report widget.
    • Selecting the Report Name: In the widget configuration, users select the report to display.
    • Saving the page designer changes.

Video 15: Scheduled Reports, Report Statistics, and ACLs

This final video in the series covers three important reporting-related features: scheduled reports, report statistics, and report ACLs.

Key points covered:

  • Scheduled Reports: This section expands on the earlier introduction to scheduled reports, emphasizing their value for automated report distribution.
    • Scheduling Reports for Automated Email Delivery: Scheduled reports allow users to receive reports directly in their email inbox on a recurring schedule, eliminating the need to log in to ServiceNow to view them. This is particularly useful for managers and executives who need regular data summaries.
    • Scheduling Options: Users are reminded of the scheduling options: daily, weekly, monthly, periodically.
    • Recipient Definition: Recipients can be defined as individual users, groups, or email lists.
    • Email Customization: Email subject, body, and report format (PDF, landscape, auto-resize) can be customized.
    • Benefit of Scheduled Reports: Scheduled reports provide proactive data delivery, enabling users to stay informed without actively pulling reports from ServiceNow.
  • Report Statistics: The "Report Statistics" module is introduced as a tool for monitoring report performance.
    • Accessing Report Statistics: The module is located under "Report Administration" -> "Report Statistics".
    • Information Provided by Report Statistics: The module provides insights into report usage and performance, including:
      • Execution Count: How many times a report has been run.
      • Average Execution Time: The average time it takes for a report to run.
      • Last Execution Time: The time of the most recent report execution.
      • Recent Run Time: The execution time of the most recent run.
    • Use Cases for Report Statistics: Report statistics are useful for identifying slow-running reports, understanding report usage patterns, and troubleshooting performance issues.
  • Report ACLs (Access Control Lists): Report ACLs are introduced as a way to control access to reports at the table level.
    • Accessing ACL Module: The ACL module is located under "System Security" -> "ACL".
    • Operation: report_view: Report ACLs use the report_view operation to control who can view reports on a specific table.
    • Rule Definition: Report ACL rules define the roles or conditions required for a user to view reports on a table.
    • Example ACL Rule for Incident Table: An example ACL rule for the incident table is shown, granting report_view access to users with the itil role or the sn_incident_read role.
    • Purpose of Report ACLs: Report ACLs provide granular control over who can report on specific data, ensuring data security and compliance.

This detailed summary captures the key information and step-by-step instructions provided in Rohit's ServiceNow reporting series, offering a valuable resource for learning and implementing various reporting techniques in ServiceNow.