cmi5 State Doc when stateId is "status"

Sep 23, 2020

Hello!

I'm developing an in-house CMS to use with a set of Storyline presentations, and I am missing some information from Articulate. Storyline sends not one but two GET requests to "[endpoint]/state" when cmi5 content is launched. The first statement has "stateId=LMS.LaunchData" which is required by cmi5, but the second statement has "stateId=status." I have a hunch that this second statement is a construct used only in Articulate products, as I cannot find ANY documentation on the cmi5 or xAPI specifications on GitHub that detail the response expected from this second statement. If somebody could point me in the right direction, that would be great.

4 Replies
Jose Tansengco

Hi Jonas, 

In Stuart's case, we recommended that they reached out to Rustici Software support for additional assistance, since the 'scormdriver.js' file that you see in the published output of courses is something that was provided to us by Rustici, and not something we built ourselves. 

If you have any questions about the scormdriver.js file, Rustici Software will be in a better position to address them. You can also reach out to our support team if you need any help troubleshooting LMS related issues. 

Jonas Gretzer

Hi,

We have resolved this in our LMS now, since the CMI5 definition is an extension of the xapi-spec, the state-endpoint definitions can be found here: https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Communication.md#stateres

Basically the cmi5-elearning requests a resource for stateId=status, and on first launch this is expected to not be found(which means the server should return a 404 Not found). The elearning will later send POST or PUT requests to the state-endpoint to register values. The state-endpoint acts as an arbitrary data store, so storyline/articulate will typically store things such as status, cumulative_time, generic_data and bookmark.