How to Generate a HESA Report in XML Format
A. Installation Guide
- Install the RIO Education Reporting Engine (Generic) package.
- Deploy the Custom Metadata related to HESA:
- rio_edrept__Export_Data_Field
- rio_edrept__Export_File_Configs
- rio_edrept__Export_File_Section
- rio_edrept__Export_File_Type
- rio_edrept__Export_File_Standard
(Note: There are approximately 1,080 items in total to be deployed for HESA reporting.)
B. Data Mapping for HESA Elements
- Navigate to: Setup → Custom Code → Custom Metadata Types → Export File Types
- Create or update the HESA element mappings.
- Example: Create an Export File Type with the name HESA.
- Use Export File Sections to group and define the elements in the Export File Configs.
- Use Export File Configs to define the mapping between HESA elements and RIO - Object Name and Field Name:
Considerations:
- Some values can be derived directly from existing RIO objects/fields.
- Some fields may require custom logic to auto-calculate their values.
- Certain fields can be defaulted to a fixed value.
- Some fields require user input (usually ad-hoc or exceptional cases).
For more information on setting up Reporting Metadata, please refer to this article.
C. Reporting Configuration
- Assign the “REDU HESA Permission Group” permission set group to all users who will generate the HESA report.
-
Reporting Queries - Create the reporting queries needed for your HESA Elements. Example as below:
-
HESA_Student (object: Contact)
-
Object query for Enrollment records within the reporting period:
hed__Program_Enrollments__r WHERE ((hed__Start_Date__c >= {!from} AND hed__Start_Date__c <= {!to}) OR (hed__End_Date__c >= {!from} AND hed__End_Date__c <= {!to}) OR (hed__Start_Date__c < {!from} AND hed__End_Date__c > {!to}) OR (hed__End_Date__c = null AND rio_ed__Program_Status__c = 'Current'))
-
Export query to retrieve Student records:
Select Id From Contact Where rio_ed__Faculty_Member__c = FALSE
-
Object query for Enrollment records within the reporting period:
-
HESA_Course (object: Account)
-
Export query to retrieve Academic Program record:
Select Id From Account Where RecordType.Name = ‘Academic Program’
-
Export query to retrieve Academic Program record:
-
HESA_Venue (object: Account)
-
Export query to retrieve Location records that belong to a specific university:
Select Id From Account Where RecordType.Name = 'Location' And Parent.Name = 'ABC University'
-
Export query to retrieve Location records that belong to a specific university:
-
HESA_Student (object: Contact)
For more information on the data query for each element, please refer to this article. This article also explains how to define dynamic values in your queries.
-
Reporting Exports - Create an Export record specifying:
- Educational Institution
- Reporting Year
- From / To dates (this is referring to the export data date range)
-
Status:
- Queued
- In Progress
- Completed
- Failed
For more information on exporting report and status monitoring, please refer to this article.
Recommendation:
- Create separate Export records for each reporting year.
- This is to prevent the XML files previously generated from being deleted and regenerated when the Status is changed back to Queued.
For more information on setting up reporting export, please refer to this article.
Additional Information
HESA Data Dictionary:
https://www.hesa.ac.uk/collection/23056/datadictionarylist?fieldtype=collected
Overview:
https://help.rioeducation.com/en_US/experience-rio-in-action/hesa-reporting

