Feature Wiki

Information about planned and released features

Tabs

SOAP method for determination of Learning Progress: getProgressInfo

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

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)
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
  • Progress filter (progress_filter)
One or more filter can be used to aggregate the data by learning status (as specified below). This helps to limit or structure the data as desired.

Table 1: Filter types and LP status id

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.

Document Type Definition file of the returning XML

Example of a returning XML for a call getProgressInfo([sid], 52, 0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<LearningProgressInfo ref_id="52" type="sahs">
<LearningProgressSummary>
<Status type="2" num="1" />
<Status type="1" num="0" />
<Status type="3" num="1" />
<Status type="4" num="0" />
</LearningProgressSummary>
<UserProgress>
<User id="215" status="3">
<Login>b.simpson</Login>
<Firstname>Bart</Firstname>
<Lastname>Simpson</Lastname>
</User>
<User id="216" status="2">
<Login>l.simpson</Login>
<Firstname>Lisa</Firstname>
<Lastname>Simpson</Lastname>
</User>
</UserProgress>
</LearningProgressInfo>
Table 2: Description for returning XML

Element

Attribute

Content

LearningProgressInfo

ref_id: ref_id of the ILIAS object
type: Type of the object (eg. “crs” for course)

LearningProgressSummary,
UserProgress

LearningProgressSummary

Status

Status

type: Learning progress status
num: Number of users with the correspondent LP status

UserProgress

User

User

id: ILIAS user ID
status: Learning progress status

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.

Table 3: Error codes

Code

Error description

Possible reason and resolution

50

Authentication failed

The stated SID is not correct.
Is the login data (client, login, password) correct?
Was the SID transmitted correctly?
Is the session yet active?

52

Invalid filter type given

The given filter type is not in the list of possible filter types.
Possible filter types are 0 to 4. At least one filter type is necessary (see above).

54

Invalid reference id [ref_id] given

The given reference id is not correct.
Check the reference id on your system.

56

Learning progress not available for objects of type [obj_type]

The object with the given reference id does not support learning progress.
Choose an appropriate object.

58

No Permission to access learning progress in this object

User does not have RBAC permissions for the given object.
Check if the user has the permission "Edit Learning Progress" in the corresponding 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]