Feature Wiki

Information about planned and released features

Tabs

Reset Tracking Data of Course Objects via SOAP

1 Description

1.1 Objectives

In ILIAS Courses, tracking data of users are to be deleted automatically via the database. The access is via a web service. The learning status at course level is generated from tracking data of learning objects.
 
At Fraunhofer are two "types" set of courses:
  • Courses consist of a SCORM 1.2 learning module.
  • Courses consist of two learning objects, a SCORM 1.2 learning module and an ILIAS test. The test is only available after processing the SCORM module.

1.2 Solution

  • Enclosure of existing ILIAS deletion routines as WebService (SOAP)
  • Only data from SCORM 1.2 and tests are deleted.

1.3 Technical Implementation

This description and example of a request is a draft. Please refer to the chapter "Implementation" for a final version of description and request example.

There are the following basic variations of SOAP interface:
  1. Delivery from a course with one user
  2. Delivery from a course with multiple users
  3. Delivery from multiple courses with one user
  4. Delivery from multiple courses with multiple users
Option 4 is recommended as implementation proposal. The ideal would be a transfer of ILIAS object IDs (for both courses as well as users) as JSCON-ENCODED string. Note: object IDs are not to be confused with the reference IDs.
 
The request might be:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:ilUserAdministration">
<soapenv:Header/>
<soapenv:Body>
<urn:deletelearningprogress soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sid xsi:type="xsd:string">0gfco4n0m911vjvtt34qsnoc31::default</sid>
<courses xsi:type="xsd:string">{"174":[1,2,3],"175":[4,5,6]}</courses>
</urn:deletelearningprogress>
</soapenv:Body>
</soapenv:Envelope>
 
Parameters:
ILIAS SID
Ccourse / user information
If error cases an exception or a SoapFault is thrown. If successful, a boolean TRUE will return. More detailed output might occur as a JSCON-encoded string or XML.

1.4 Risks

Integration into the ILIAS trunk requires the consent of the community and is likely to consider other deletion processes. In addition to SCORM 1.2 and ILIAS tests, any items with user data should be considered. This generic solution requires greater conceptual considerations and is not included in the contract.

2 Status

3 Additional Information

4 Discussion

JF 22 Feb 2012: The concept is not generic. Adressing courses and selecting scorm/tests within the courses would e.g. not allow to adress single tests. Please contact the maintainer of the SOAP interface (Stefan), if you would like to work out a generic solution that could be included in the trunk.

SM 31. Mar 2012: we discussed a new webservice method which offers the possiblity to delete the progress for selected objects and users. In the first implementation only the personal data in scorm and test objects is deletable.

JF 2 Apr 2012: To make the feature and its tackled object types clearer, the SOAP call should make a positive object type list mandatory. If the client selects object types which are not supported yet (e.g. exercises), an error should be returned. SCORM related deletions should both affect 1.2 and 2004 data.
 
We schedule the feature for 4.3.

5 Implementation

5.1 Call description

The SOAP method deleteProgress($sid, $ref_ids, $usr_ids, $type_filter, $progress_filter) requires the following parameters:
 
Session-ID (sid)
An ILIAS Session Id, that you get when logging in using SOAP method login(client,username, password))

ILIAS Object Reference (ref_id)
The ILIAS reference ID of the object with the desired LP data (SCORM 1.2, SCORM 2004 and Test are being supported)
At least one ref_id is required, several ref_id's are possible (see example below).
A ref_id of a parent object (e.g. course or category) is also possible.

User ID's (usr_id)
The ILIAS interal ID of a user (visible in user management or user excel export in ILIAS 5.0 and later).
At least one usr_id is required, several usr_id's are possible (see example below).

Type filter (type_filter)
To indicate type of ILIAS object where you want the data to be delete. "sahs" for SCORM 1.2 or SCORM 2004 or "tst" for Test.
Usefull when using a ref_id of parent object.
At least one type_filter is required, two filters are possible, if required (see example below).

Progress filter (progress_filter)
One or more filter can be used to distinguish the data by learning status (as specified below in table 1).

Table 1: Values and description for Progress filter

ILIAS-Name

Value

Description

PROGRESS_FILTER_ALL

0

Deletes the data on ALL users for the given object.

PROGRESS_FILTER_IN_PROGRESS

1

Deletes the data on users with the status “In Progress” for the given object.

PROGRESS_FILTER_COMPLETED

2

Deletes the data on users with the status “Completed” for the given object.

PROGRESS_FILTER_FAILED

3

Deletes the data on users with the status “Failed” for the given object.

PROGRESS_FILTER_NOT_ATTEMPTED

4

Deletes the data on users with the status “Not Attempted” for the given object.

Example request:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:ilUserAdministration" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<urn:deleteProgress soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sid xsi:type="xsd:string">[sid]::[client]</sid>
<ref_ids xsi:type="SOAP-ENC:intArray" soapenc:arrayType="xsd:int[3]">
<item xsi:type="xsd:int">53</item>
<item xsi:type="xsd:int">55</item>
<item xsi:type="xsd:int">58</item>
</ref_ids>
<usr_ids xsi:type="SOAP-ENC:intArray" soapenc:arrayType="xsd:int[1]">
<item xsi:type="xsd:int">205</item>
</usr_ids>
<type_filter xsi:type="SOAP-ENC:stringArray" soapenc:arrayType="xsd:string[2]">
<item xsi:type="xsd:string">sahs</item>
<item xsi:type="xsd:string">tst</item>
</type_filter>
<progress_filter xsi:type="SOAP-ENC::intArray" soapenc:arrayType="xsd:int[1]">
<item xsi:type="xsd:int">3</item>
</progress_filter>
</urn:deleteProgress>
</soapenv:Body>
</soapenv:Envelope>

The given request would delete progress data in objects with ref_id 53 (SCORM 1.2), 55 (SCORM 2004) and 58 (Test) for the user with user id 205 and progress "failed".

5.2 Returning values

The response is "true" (s. example below) if the request was successful or an error otherwise.

1
2
3
4
5
6
7
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:deleteProgressResponse xmlns:ns1="urn:ilUserAdministration">
<status xsi:type="xsd:boolean">true</status>
</ns1:deleteProgressResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

5.3 Access check

The method respects RBAC due to data security. The account used for determination of Session ID needs to have permission "Edit Settings" for the respective object to be able to delete the data.

Last edited: 17. Apr 2025, 15:06, Kunkel, Matthias [mkunkel]