Storyline (latest version/HTML5) + Moodle + Tincan Launch Plugin - activity id missing in LRS

Sep 20, 2017

Hi everybody, we recently discovered what we believe is a bug in Articulate Storyline, when a Tincan (xAPI) content is played as HTML5.

Long story short with our current setup: Storyline (latest version) + Moodle + Tincan Launch Plugin + LRS (Learning Locker and Grassblade) when a content played as HTML5 the activity id was missing from every statement so all activities were orphaned.

Flash version worked as expected.

In SCORM Cloud the content worked as expected in both versions (HTML and Flash). This was confusing and lead us to believe this was a LRS issue but it turns out it is not.

Thanks to the help from the LL community and support staff and Grassblade's support staff we were able to identify the problem.

Storyline HTML5 content is expecting an activity ID to be passed in the query params, but this is by no means a "standard" way of launching xAPI. Once upon a time, it was one of the ways proposed but there have since been much more comprehensive and secure strategies.

The Moodle tincan plugin (xAPI Launch Link) does not set the activityId on the query string, so any content that expects it on the query string will not work well. Storyline in this case.

The author of the plugin explains more about this at: https://github.com/garemoko/moodle-mod_tincanlaunch/issues/63

I'm pasting a summary below. You'll find why the content worked in SCORM Cloud at the end of the text.

As the Moodle plugin maintainer, I wouldn't make this change myself or even accept it as a Pull Request (without some settings to configure this and have it turned off by default). There's no reason why you can't make the change in your own copy of the plugin though. The reasons I don't want this code in the plugin are:

cmi5 uses 'activityId' instead of 'activity_id' so I wouldn't want to include this code unless there was an additional setting to allow the Moodle course admin to choose which format to use.
the e-learning course shouldn't require an activity id to be passed in order to function. The launch spec says "Partial launch information may also be provided by an LMS in the form of a launch link, which may consist of only endpoint information, or may include learner information but not credentials. In this case, the AP would have to have been configured with or prompt for the necessary information."
It's my opinion that it's bad practice for the LMS to specify the activity id, or at least for the content to use an activity id passed from the LMS. The activity id should be the same wherever the content is launched from. I wouldn't want to include this code unless passing the activity id is configured off by default but can be turned on as an advanced setting.
Note: SCORM Cloud does pass the activity id, but it uses the id specified within the content's own tincan.xml so it's only reflecting the content's own activity id back at it, which is fine. The Moodle plugin does not current support importing packages or reading tincan.xml files so it can't do that.

For anyone having this issue you can workaround this by having the plugin send the activity id via URL.

You have to add the bold text below to the locallib.php file around line 181.

"registration" => $registrationuuid,
"activity_id" => $tincanlaunch->tincanactivityid

More info at: https://github.com/garemoko/moodle-mod_tincanlaunch/issues/63

We hope this info helps and Articulate will fix this bug on an upcoming release.

5 Replies
Lee Kirkland

Andrew Downs the person that is not only the contributor to CMI-5, his name is listed, but is also the Maintainer of the OP's github link. Would probably be one of the best sources of Tincan implementation since he works for Rustici, and helps to maintain several of the most popular xAPI plugins for Moodle. So it sounds like this should be made into a feature request, since flash is sending it properly, so HTML5 should also send the activity ID properly without needing to update the plugin which could conflict with other implementations of xAPI for other content publishing software. SCORM cloud shouldn't be the only content platform that storyline is tested against, since more then a few companies and users do not use SCORM cloud nor have any desire to switch platforms.    

Ren Gomez

Hi Everyone,

We just released another update for Storyline 360 and included a few important fixes and a new feature that you'll see in the release notes here.  
 
The item you'll be interested in is how you can now publish your courses to cmi5! To learn how, take a look at the article below:
Just launch the Articulate 360 desktop app on your computer and click the Update button for Storyline 360. Details here.

This discussion is closed. You can start a new discussion or contact Articulate Support.