Report builder Technical
Custom report settings
The following settings can be configured for the report generator by navigating to Site administration > Reports > Report builder > Custom report settings:

The Custom reports limit restricts the number of custom reports that can be created. If set to zero, there is no limit.
For performance reasons, you may consider disabling Custom reports live editing. This will prevent constant updates of report data while editing report content, such as columns, filters, and conditions.
Both settings can also be specified by adding the following line(s) to the site configuration:
$CFG->customreportslimit = <VALUE>;
$CFG->customreportsliveediting = false;
The following config-only setting lets you limit the maximum number of custom reports for tenants. The value applies to all tenants across your site.
$CFG->tool_tenant_customreportslimit = <VALUE>
Custom report fields
To manage user-defined report builder fields, go to Site administration > Reports > Report builder > Custom report fields.
Custom report fields allow to add extra information to the report details, such asa description or a type. They also support classification when used in tandem with tagging.

Custom report fields function in the same way as any other custom fields in Moodle, for instance, courses.
Data Store
The Workplace data store is a permanent record store used to keep track of course completions and badges awarded.
The data store supports course completions that occur outside Workplace but need to be recorded within it. Any user with the 'tool/datastore:uploadcoursecompletion' capability can upload course completion data, which will be stored in the data store for users belonging to the same tenant. The user upload feature has been enhanced with two new fields to support course completion data:
- coursecompleted: Courses are matched on the short name of the course that has been completed. The course has to exist before the upload is started.
- coursecompleteddate: The date that the course was completed. You need to use the YYYY-MM-DD ISO standard format, which will then be localized during the upload process. If this field is omitted, the current date will be used.
Both variables have to have a numeric postfix to support multiple courses, for example:
username,coursecompleted1,coursecompleteddate1
user1,course1,2021-11-29
user2,course1,2021-01-01
user3,course2
Data in the data store can be reported using the "Course completion from datastore" report source.
Capabilities
The following capabilities are available for handling the report builder and reports:
- block/rbreport:addinstance: Add a new Report block
- block/rbreport:myaddinstance: Add a new Report block to Dashboard
- block/reportchart:addinstance: Add a new Report and chart block
- block/reportchart:myaddinstance: Add a new Report and chart block to Dashboard
- moodle/reportbuilder:configurecustomfields: Configure custom report fields
- moodle/reportbuilder:edit: Edit your own custom reports
- moodle/reportbuilder:editall: Edit all custom reports
- moodle/reportbuilder:scheduleviewas: Schedule reports to be viewed as other users
- moodle/reportbuilder:view: View custom reports
- moodle/reportbuilder:viewall: View all custom reports
- tool/datastore:uploadcoursecompletion: Upload course completion to datastore