Storyline 3 JSON output missing parent and grouping IDs

Dec 05, 2017

We have been using Storyline 2 packages in our LMS for about a year with no problems (published with the TinCanAPI). We've recently upgraded to Storyline 3 but the JSON it's outputting from the Storyline 3 packages doesn't contain the parent ID or grouping IDs. According to the JSON example here https://articulate.com/support/article/Implementing-Tin-Can-API-to-Support-Articulate-Content#sample-metadata that data should still be there.

This is the context -> context Activities section of the statement JSON we are seeing:

{"parent":[{"id":"http:\/\/\/6kjG8IdDLBa","objectType":"Activity"}],"grouping":[{"id":"http:\/\/","objectType":"Activity"}]}
{"registration":"dcf5810c-a8f1-4faa-ab19-17b5865564ae","contextActivities":{"parent":[{"id":"http:\/\/\/6kjG8IdDLBa","objectType":"Activity"}],"grouping":[{"id":"http:\/\/","objectType":"Activity"}]}}

The IDs are empty. Is there something that needs to be configured differently in Storyline 3?

 

11 Replies
Mark Hanna

I'm working with Bryan on this project, Bryan is handling content, whilst I am developing functionality to go along with it, and we're tag teaming this issue together. What we are expecting is the overall course id Identifer, in the "grouping" parameter of the context -> contextActivities part of the statement....at least that's what is documented on your instructions we linked to, and what SL2 provided.

I can see the raw JSON that the package sends to the LRS, both in the browser console, and in the LRS, so there is no questions that the JSON being sent to the LRS is just different.

We have built functionality to have a tab where users can see their answers that came into the LRS, but since there is nowhere in the answered statement having the value of the activity id of the course activity type, we cannot fetch the answers and display them in the list, as we could in SL2.

In SL2 that value for the grouping property was the course activity id, in SL2 and SL3 we are this value came from the 'Identifier' field value when you publish the learning content into a Tin Can API compatible .zip file

Now the XML file manifest, tincan.xml, that is contained in the published zip file, shows this value, and the ids for all the objectives, modules, and cmi.interactions, exactly the same as in SL2.....So we know that same data is getting in the same places, at least in the manifest xml...

When I look at the tincan.xml manifest file, the Identifier is clearly there for the activity of type http://adlnet.gove/expapi/activities/course

 

Ashley Terwilliger-Pollard

Hi Bryan, 

Thanks for reaching out, I was looking into this again, and in my initial testing, it seems to work in Storyline 3 Update 5. 

I did look at the original file you shared with our Support team and noted that it didn't have a results slide included. The results slide will be what is tracked to the LMS to send along question data and scores. Let me know if I'm misunderstanding your setup, and I'll continue testing too! 

Chris Morbitzer

We are experiencing this in Storyline 360. I narrowed it down to the generated JS file bootstrapper.min.js, by finding this line of code:

null!=o.activity_id&&(y=o.activity_id.replace(/\/$/,""))

and replacing it with this:

null!=o.activity_id?(y=o.activity_id.replace(/\/$/,"")):(y+=t)

where "y" was the placeholder "http://" and "t" was the course ID.

Doing a find and replace every time we generate HTML5 output is obviously not an ideal solution. Hopefully this helps your engineers fix the problem.

Leslie McKerchie

Hello Chris and welcome to E-Learning Heroes. 😊

I appreciate you popping in to share what you are experiencing as well. The issue in this conversation was specific to SL3, so I'd like one of our support engineers to take a closer look.

I've opened up a support case on your behalf so that you can work with our team directly and privately. You should be hearing from someone soon via email.