Feature Wiki
Tabs
SOAP method for determination of Learning Progress: getProgressInfo
Page Overview
[Hide]- 1 Requirements
- 2 Additional Information
- 3 Discussion
- 4 Implementation
- 4.1 Call description
- 4.2 Returning values
- 4.3 Error codes
1 Requirements
The SOAP method could be used to export learning progress (LP) data from a given ILIAS object, that supports LP, to another system to use e.g. for reporting or certificate management.
The following ILIAS objects use learning progress and thus are to be supported by the method:
- Course (crs)
- Learning Module SCORM/AICC (sahs)
- Learning Module ILIAS (lm)
- Learning Module HTML (html)
- Test (tst)
- Exercise (exc)
- Group (grp)
- Folder (fold)
- Session (sess)
2 Additional Information
- Idea / concept: Stanislav Wischniak
- Funding: Fraunhofer ZV
- Maintainer: Stefan Meyer
- Implementation of the feature is done by: Fabian Wolf, leifos
- Tested by / status: Stanislav Wischniak
3 Discussion
JourFixe, ILIAS [jourfixe], August 03, 2015: We highly appreciate this feature and schedule it for 5.1.
JourFixe, ILIAS [jourfixe], August 17, 2015: We would prefer unit tests instead of test cases in testrail. The official test51 could be used as ILIAS installation to test the webservice.
4 Implementation
4.1 Call description
The SOAP method getProgressInfo ( string $sid, integer $ref_id, array $progress_filter ) requires the following parameter:
- Session-ID (sid)
- ILIAS Object Reference (ref_id)
- Progress filter (progress_filter)
ILIAS-Name | Value | Description |
---|---|---|
PROGRESS_FILTER_ALL | 0 | Returns the data on ALL users for the given object. |
PROGRESS_FILTER_IN_PROGRESS | 1 | Returns the data on users with the status “In Progress” for the given object. |
PROGRESS_FILTER_COMPLETED | 2 | Returns the data on users with the status “Completed” for the given object. |
PROGRESS_FILTER_FAILED | 3 | Returns the data on users with the status “Failed” for the given object. |
PROGRESS_FILTER_NOT_ATTEMPTED | 4 | Returns the data on users with the status “Not Attempted” for the given object. |
Example:
The call getProgressInfo($sid, 942, array(1,4)) would return the users with statuses “In Progress” and “Not Attempted” for the object with reference ID 942.
The method respects RBAC due to data security. The account used for Session ID needs to have permission "Edit Learning Progress" to have access to the sensitive LP data.
4.2 Returning values
The return of a method call is a XML string. The XML elements are specified below, see also “user_progress_info.dtd” for further details.
Example of a returning XML for a call getProgressInfo([sid], 52, 0)
1 | <LearningProgressInfo ref_id="52" type="sahs"> |
Element | Attribute | Content |
---|---|---|
LearningProgressInfo | ref_id: ref_id of the ILIAS object | LearningProgressSummary, |
LearningProgressSummary | Status | |
Status | type: Learning progress status | |
UserProgress | User | |
User | id: ILIAS user ID | Login, Firstname, Lastname |
Login | Login of the user | |
Firstname | First name of the user | |
Lastname | Last name of the user |
4.3 Error codes
In case of errors the PHP call SoapFault is used. Below is a list of possible errors and solutions.
Code | Error description | Possible reason and resolution |
---|---|---|
50 | Authentication failed | The stated SID is not correct. |
52 | Invalid filter type given | The given filter type is not in the list of possible filter types. |
54 | Invalid reference id [ref_id] given | The given reference id is not correct. |
56 | Learning progress not available for objects of type [obj_type] | The object with the given reference id does not support learning progress. |
58 | No Permission to access learning progress in this object | User does not have RBAC permissions for the given object. |
60 | Learning progress not enabled in ILIAS | Check if Learning Progress is enabled in Administration. |
Test Cases
The Project Manager has agreed that there is no need for preparing test cases in Testrail for this feature.
To ensure that this feature does not "clogg" the lists I nevertheless set the metadata set to "Test cases available".
Approval
Approved at 2015-08-17 by Stas Wischniak.
Last edited: 2. Jul 2024, 11:47, Wischniak, Stanislav [wischniak]