August 17, 2023

How to integrate with TE Curriculum

TE Curriculum supports different means of integration, of which some are configured as part of the technical implementation (email and ADFS2 integration), and others are used to import data to kick-off the usage (CSV) or use to build fully automated interfaces using the API with external systems (SRS, HR, RIO, LMS, ...).

Kick-off your project via CSV import

TE Curriculum allows the administrator to import data using csv files. The administrator can use the csv menu item from the administration menu to start the import:

  • Select the type to import
    Selecting the type will immediately show the details of the csv format to be used.
  • Specify the used separator (e.g. ; or ,)
  • Upload the file (drop it on the file-box)
  • Click on save to start the import
    New elements are added, existing elements are changed based on the data imported. Only data offered via the csv is modified, data already defined in TE Curriculum and not provided via the csv will not be changed. This means data will not be deleted automatically and the csv could be used to import both ‘changed persons’ and ‘new persons’. Deletion of persons is not supported, this could be achieved by setting the end-date (logical delete).
Selecting the type in csv import will show the csv layout details

Scroll down to the end of the documentation to get an example with the csv header to use and an example data line.

At the bottom of the csv structure explanation an example header and detail line is provided

The csv import offers support for the following data elements:

  • Activity - The teaching and assessment activities (e.g. Lectures, practicals, written test) offered in the context of a module
  • Advice - Advice given by commissions on studies.
  • Appraisal - The module appraisal (examination) in case of assessment grouping
  • Assessment - The assessment defines how a module is examined.
  • Asset - The resources that can be used in an object.
  • Assignment - Define the assignment of persons for organisation units
  • Cost_division - Cost divisions define how the costs are divided between organisational units.
  • Description - Define descriptive text to an defined object, e.g. study, group, module, ...
  • Field - Define custom field that add data elements to educational objects
  • Faculty - The faculty is a group of university departments concerned with a major division of knowledge.
  • Item - Define custom objects that add complex elements to educational objects
  • Link - Links describe the relation between two objects, e.g. substitution rule, prerequisite, co-requisite, ..
  • Meetings - Define activity sets (meetings) for activities.
  • Method_schema - Define the module method scheme (education) that specifies method grouping and choices.
  • Module - Define module, which is a part of the education structure and defines the basic module information.
  • Module_group - Define (module) groups, which is a part of the education structure and defines the educational components within a study, containing groups and/or modules.
  • Objective - Define objectives (learning goals) assigned to a module, including the relation to assessment and subject
  • Offering - Define offerings, that are the periods an educational object (study, module-group module) is available to students.
  • Organisation - Define the organisational units, used to allocate staff
  • Person  - Define the persons / users that should have access to the system.
  • Qualification - Define the qualifications used for allocating a degree to a program of study.
  • Reference - Define reference table values. The reference table must be available!
  • Relation - Define relations for an defined object, e.g. study, group, module, ...
  • Resource - Define the resources (literature, software) that can be used in an object.
  • Rule - Define rule (container) used to specify when certain requirements are reached, e.g. for graduation.
  • Specification - Define specifications used specifies the generic, year independent structure of an object.
  • Study - Define studies (programs of study), that specifies the offered program and its structure.
  • Subject - Define subjects (learning outcome / skill) assigned to a study or module
  • Task - Define the assigned non-educational tasks to a person assignment
  • Value - The value import can be used to add or modify single attributes and value to a specific object. It can be considered as an additional option to set values on object level besides the standard option to immediately set values when importing the entire object without the effect of changing already defined relationships or other data to that object. In case changes are already made to the field imported, the changes made will be kept.

Report and validate if emails have been send

The integration with the mail server is executed as part of the technical implementation. The administrator script menu offers the function Send test mail to technically test the correct implementation on a production environment to a self-defined receiver email address.

Technically test mail configuration by sending a test mail to a specific email address

The non-production environments will send mails not to the actual email address of a user, but to a single (shared) mailbox to prevent accidentally sending mails to actual users.

If the mail integration is executed and notifications have been defined to be send to the users, the sending of notifications (emails) can be seen via the administrator menu Email.

The report provides an overview of all notifications send, including if they are successfully send. On the top of the page an indication is shown that provides information on the queue used. The queue is used to limit the amount of mails send within time intervals, for instance for integration with office365 that may have limits on mails per minute, hour and/or day.

Overview of all notifications sent

The details of the notification can be inspected by selecting the notification.The subject and body shown contains the notification sent to the recipient, and will follow the recipient's 'language setting'.

Click on the notification to see the details

TE Curriculum API

The TE Curriculum API is a REST/JSON based API used to build automated integration. The API provides both read, add, modify and logical deletion of data.

The API is available as a swagger documentation directly from your own system via the url: <your_url>/api/v2/api-docs

To view the documentation a swagger editor can be used, like the online swagger editor

Open the editor and import the URL to the swagger documentation at your system. Be sure that you use a browser tab that is signed in, since the documentation is only available for authorised users.

The API documentation is available and can be visualised with a standard swagger editor/viewer

The services can be tested from the swagger editor.
Another useful tool for testing purposes is Postman. The API can be imported in Postman to generate the defined services and test the different calls to retrieve / post data.

Imported API use to retrieve all defined faculties in a specific year

TE Curriculum OOAPI v5

Next to the standard TE Curriculum REST/JSON API there is also support for the OOAPI v5.

The OOAPI v5 is an open standard, information on the standard is available at the url:

The detailed definition of all services can be found at the url:

TE Curriculum fully supports the OOAPI V5, including the connectivity with eduXchange and RIO via the SURF eduHub.

As with the standard TE Curriculum API the OOAPI v5 can also be tested using Postman.

OOAPI v5 services in Postman used to retrieve data from TE Curriculum

A separate explanation how to implement the OOAPI v5 required elements and structures in AscMe is defined in a separate How to ... guide.

Report and investigate all executed API calls

The administrator menu option Request Log offers an overview of all API service requests (inbound and outbound) with TE Curriculum. It allows to inspect and investigate the working of the interfaces by giving in-depth information on the calls.

The service request overview provides an overview of all API service requests

Using the search and filter options offer various options to pinpoint the requested message information., f.i. select only the service requests that failed.

Filter options are:

  • Action - Select messages that are sent/received via a specific end-point. Depending on the configuration the Actions may vary. As part of the implementation and definition of the integrations the naming will be defined and exchanged with the (system) administrator.
  • Entity - Search for the messages of a specific object (faculty, study, module group, module, person, ...)
  • From - Define the start date from which the messages will be searched.
  • To - Define the end dat till which the messages will be searched.
  • Status - Specify the type of messages to be shown
    - All
    - Success
    - Error
Filter on Error will only show all failed service requests

Clicking on the item in the list will open the detailed information of the service request and the exchanged information.

Service request details, including the technical error message

By clicking on the </>JSON, </>XML button or (raw) link the detailed message information sent and received will be shown.
You can just copy the message to an editor of your choice that will render and display the JSON / XML in a readable structure to investigate either the message sent or the message received.

Report on export processes (publish information after approval)

Exports are outbound service calls that are fired based on reaching the exportable status or an export flagged as 'executed' by the user in case the model is chosen that some of the changes made are transferred manually.

There is a close interaction with the Request log functionality that show the individual service requests executed, and not only the service requests based on reaching the exportable status.

The export overview provides an overview of all outbound API service requests on reaching an exportable status

Using the search and filter options offer various options to pinpoint the requested message information., f.i. select only the service requests that failed.

Filter options are:

  • Search term - Search for a text in the message.
  • Entity - Search for the messages of a specific object (faculty, study, module group, module, person, ...)
  • Status - Specify the type of messages to be shown
    - Completed
    - Failed
    - In progress
    - Waiting for response

Clicking on the item in the list will open the detailed information of the service request and response.
Where the Request Log provides technical status information (HTTP 400, 401, ...), the exports provide the functional error message.

Service request details, including the detailed functional error message

Configure system defined external systems for use in hooks (export)

The integration support the option to retrieve and send data via the interface using hooks.

Multiple systems can be defined to enclose the system configured (ip, authentication, ...) external system, and allow authorised users to select from a list of systems when sending information via scheduled scripts or by ad-hoc execution of a data transfer script.

Overview of the configured external systems

Use the Add to define a new, or click on an already defined rule to configure the external system.

Configure the external systems, to allow selection by users in export tasks

The following options can be used to configure the system:

  • Code - Unique name of the external system, used for display purposes and used as the unique identifier in the system configuration to technically define the external system (IP, authentication, ...)
  • Description - Reason / description of the added system configuration
  • Default - Indicator if this interface is the default,  in which case it will automatically be selected if no receiving system is defined by the user.
  • Exportable - Indicator if this interface is allowed to receive 'finished and approved' data.

Customer unique training

This class is available to receive tailor made for your database set-up. Just fill out the form below and our product expert will get in touch with you to set-up your bespoke class.
I want a bespoke class