How to integrate with TE Curriculum
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64cb563e1c086523b7a7edf5_Product%3DCurriculum.png)
- In this lesson:
- 1Kick-off your project via CSV import
- 2Report and validate if emails have been send
- 3TE Curriculum API
- 4TE Curriculum OOAPI v5
- 5Report and investigate all executed API calls
- 6Report on export processes (publish information after approval)
- 7Configure system defined external systems for use in hooks (export)
- 8
- 9
- 10
- 11
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).
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d355dda8d2cbc9620e43aa_Screenshot%202023-08-09%20at%2010.58.05.png)
Scroll down to the end of the documentation to get an example with the csv header to use and an example data line.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d3562ad76a24fd0f58bb9f_Screenshot%202023-08-09%20at%2010.58.15.png)
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d35840d76a24fd0f5b510f_Screenshot%202023-08-09%20at%2011.11.13.png)
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d3594434cca03f2581e80c_Screenshot%202023-08-09%20at%2011.15.05.png)
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'.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d3594b2e50ffc249b5c7d1_Screenshot%202023-08-09%20at%2011.15.26.png)
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 https://editor.swagger.io
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d35ea5ad11a1e0119b31b5_Screenshot%202023-08-09%20at%2011.36.15.png)
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d36193bd06b9d6d79445d5_Screenshot%202023-08-09%20at%2011.51.04.png)
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: https://openonderwijsapi.nl/#/
The detailed definition of all services can be found at the url: https://openonderwijsapi.nl/specification/v5/docs.html
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d3624daa314f220c141fe8_Screenshot%202023-08-09%20at%2011.54.09.png)
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d38bd817f434c4730971c7_Screenshot%202023-08-09%20at%2014.46.41.png)
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
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d38be8231f1fccca163593_Screenshot%202023-08-09%20at%2014.49.25.png)
Clicking on the item in the list will open the detailed information of the service request and the exchanged information.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d38bf2fb1522ec915aa241_Screenshot%202023-08-09%20at%2014.49.37.png)
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d396fb6dcfc7085ae24a6f_Screenshot%202023-08-09%20at%2015.35.26.png)
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d39821ee07bdb96ec0e1f5_Screenshot%202023-08-09%20at%2015.43.46.png)
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.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d0f69af4a075e45e3283e9_Screenshot%202020-06-01%20at%2011.23.02.png)
Use the Add to define a new, or click on an already defined rule to configure the external system.
![](https://cdn.prod.website-files.com/6262657cb68f4978d6d20e73/64d0f6a284076095f5f0320d_Screenshot%202020-06-01%20at%2011.22.53.png)
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.