Can't read Viewed pages with Dokeos

Nov 04, 2013


With module made with Articulate 13, Dokeos can't read the suspend_data content as page viewed.

It used to be posted like this : viewed=1,6|lastviewedslide=6|

But with Articulate 13, it looks like : 1z6403050on1001211f010110111101211000

Any solution? By the way, Dokeos is not supporting Scorm 2004. 



10 Replies
Ashley Terwilliger-Pollard

Hi Andre and welcome to Heroes!

Articulate Studio '13 compresses suspend data to avoid exceeding data limits imposed by some learning management systems. As a result, the suspend_data string in an LMS debug log isn't human-readable. That is, you won't be able to decipher it as you can see in that example. I'm not familiar with the Dokeos platform, but have you checked in with the Dokeos LMS team already to see what they were able to determine? 

Nelson Diaz

Having recently upgraded to Articulate Studio '13, I had to figure out a way to get the viewed slides/last slide viewed data from the compressed suspend data to lock/unlock tabs on several embedded flash files.  I'm sure there is a nicer/better/cleaner way to get this data, but if you're interested, here is the script in AS3.  I haven't tested it thoroughly, but so far it seems to be working on our LMS.

import flash.external.ExternalInterface;
var getData="parent.SCORM_GetDataChunk");
var susDta = String(getData);
var patrn1:RegExp = /1+[0-9a-fA-F]+110+/gi;
var getDta:Array = susDta.match(patrn1);
var toStr:String = getDta.toString();
var patrn2:RegExp = /110/gi;
var vwdArr:Array = toStr.split(patrn2);
for (var i=0; i
vwdArr[i] = vwdArr[i].substr(1,2);
vwdArr[i] = parseInt(vwdArr[i],16);
vwdArr[i] = vwdArr[i]+1;
var remLas:String = vwdArr.pop();
var remDup:Array = vwdArr.filter(function(noDup:*, Dupl:int, vwdArr:Array):Boolean {
return vwdArr.indexOf(noDup) == Dupl;
var vwdSld = "Viewed Slides: "+remDup;
var lasSld = "Last Slide Viewed: "+vwdArr[vwdArr.length-1];

Ryan Walker

I also need to get the last slide viewed from the suspend_data.  Nelson's code sample suggests it's possible to do this.  However, I don't know Action Script.  I would need to do it in javascript or PHP. 

It looks to me like at the heart of Nelson's script are some regular expressions that divide the string into various parts, but I'm not sure I could translate the code.  Can anyone explain in English what's happening in that code... more specifically than I have?

I find it odd that this (seemingly) isn't documented anywhere.  Don't people writing web apps want to know how far someone has progressed through an SCO?

Thank you

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