SCORM FAQ: Difference between revisions
Dan Marsden (talk | contribs) (→Common Solutions: moved Joannes item about Courselab) |
Dan Marsden (talk | contribs) (→Supported Versions: tidy up scorm 2004 support statement slightly.) |
||
(27 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
{{SCORM}} | {{SCORM}} | ||
==What is SCORM?== | ==What is SCORM?== | ||
SCORM was developed as a result of collaboration in the public and private sectors. The President of the United States, Bill Clinton issued an Executive Order that created an agency (ADL) to oversee the standard for developing and distributing online learning. All Federal agencies are mandated to use programs that meet those standards. SCORM is one result of that order. | |||
SCORM was developed as a result of collaboration in the public and private sectors. The President of the United States, Bill Clinton issued an Executive Order that created an agency (ADL) to oversee the standard for developing and distributing online learning. | |||
There's a really simple "What is SCORM" introduction here: http://moodle.org/mod/forum/discuss.php?d=3757#p18828 | There's a really simple "What is SCORM" introduction here: http://moodle.org/mod/forum/discuss.php?d=3757#p18828 | ||
A slightly more detailed introduction here: http://www.rusticisoftware.com/resources/whatisscorm/What%20Is%20SCORM.ht | A slightly more detailed introduction here: http://www.rusticisoftware.com/resources/whatisscorm/What%20Is%20SCORM.ht | ||
==Should I make my Moodle courses as SCORM or use Moodle's features?== | ==Should I make my Moodle courses as SCORM or use Moodle's features?== | ||
It depends how you intend to use it. If you are planning on exporting and using in another LMS then SCORM would make this easier. If you want something shiny, then a SCORM package can fit the bill. However, reporting and grading work better in Moodle and for many educators the standard features do the job perfectly and do not require learning a new program. There is a useful form post discussing the pros and cons of SCORM in Moodle here: http://moodle.org/mod/forum/discuss.php?d=200242 | It depends how you intend to use it. If you are planning on exporting and using in another LMS then SCORM would make this easier. If you want something shiny, then a SCORM package can fit the bill. However, reporting and grading work better in Moodle and for many educators the standard features do the job perfectly and do not require learning a new program. There is a useful form post discussing the pros and cons of SCORM in Moodle here: http://moodle.org/mod/forum/discuss.php?d=200242 | ||
==SCORM Information== | ==SCORM Information== | ||
Advanced Distributed Learning (ADL) is the organization that wrote the SCORM standard. You can download documentation and samples form ADL's Web site. Documentation for SCORM 1.2 in several languages is available [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2%2fDocumentation%20Suite%20(SCORM%201.2)&FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} here]. | |||
Philip Hutchison provides an AS3 and JavaScript wrapper, as well as a sample package: | |||
Philip Hutchison provides an AS3 and JavaScript wrapper, as well as a sample package: | |||
http://pipwerks.com/downloads/ | http://pipwerks.com/downloads/ | ||
==SCORM Package Contents== | ==SCORM Package Contents== | ||
A SCORM package must contains in the root of zip a file named imsmanifest.xml which defines SCORM course structure, resource location and many other things. Other files used in the package, such as HTML files, XML files, multimedia files, and JavaScript for the SCORM API must be listed in this file. The LMS parses the manifest, and provides the files listed there to the content package during runtime. | A SCORM package must contains in the root of zip a file named imsmanifest.xml which defines SCORM course structure, resource location and many other things. Other files used in the package, such as HTML files, XML files, multimedia files, and JavaScript for the SCORM API must be listed in this file. The LMS parses the manifest, and provides the files listed there to the content package during runtime. | ||
==AICC Package Contents== | ==AICC Package Contents== | ||
An AICC package is defined by several files (from 4 to 7) with defined extensions as follows: | An AICC package is defined by several files (from 4 to 7) with defined extensions as follows: | ||
* CRS - Course Description file (mandatory) | * CRS - Course Description file (mandatory) | ||
* AU - Assignable Unit file (mandatory) | * AU - Assignable Unit file (mandatory) | ||
Line 33: | Line 24: | ||
* PRE - Prerequisites file (optional) | * PRE - Prerequisites file (optional) | ||
* CMP - Completition Requirements file (optional) | * CMP - Completition Requirements file (optional) | ||
==Basic Troubleshooting== | ==Basic Troubleshooting== | ||
* Make sure you are running Moodle 2.1 or higher, a large number of SCORM related bugs are present in previous versions. | * Make sure you are running Moodle 2.1 or higher, a large number of SCORM related bugs are present in previous versions. | ||
*Make sure you (and your users) have JavaScript enabled. SCORM requires JavaScript. | |||
* Make sure your SCORM object is SCORM compliant - check it in an external SCORM player like [https://docs.moodle.org/en/Tools_for_creating_SCORM_content#Reload Reload] to see if it works there. | * Make sure your SCORM object is SCORM compliant - check it in an external SCORM player like [https://docs.moodle.org/en/Tools_for_creating_SCORM_content#Reload Reload] to see if it works there. | ||
* Upload a copy of your SCORM object to a [http://en.wikipedia.org/wiki/File_hosting_service File Hosting Service] and post a message asking for help in the forums, linking to your SCORM object explaining exactly what you expect to happen, and what is happening instead. | * Upload a copy of your SCORM object to a [http://en.wikipedia.org/wiki/File_hosting_service File Hosting Service] and post a message asking for help in the forums, linking to your SCORM object explaining exactly what you expect to happen, and what is happening instead. | ||
* Read Dan Marsden's blog post [http://danmarsden.com/blog/2012/08/08/scorm-doesnt-work-in-moodle here] (Maintainer of SCORM Module in Moodle) | * Read Dan Marsden's blog post [http://danmarsden.com/blog/2012/08/08/scorm-doesnt-work-in-moodle here] (Maintainer of SCORM Module in Moodle) | ||
==Does Moodle Generate SCORM Content?== | ==Does Moodle Generate SCORM Content?== | ||
Moodle '''does not''' generate scorm content. Moodle presents the content in SCORM packages to learners, and saves data from learner interactions with the SCORM package. | Moodle '''does not''' generate scorm content. Moodle presents the content in SCORM packages to learners, and saves data from learner interactions with the SCORM package. | ||
==Can I add a password for access to my SCORM package?== | |||
No, although there is a tracker request for this: MDL-46403 As a workaround you could add your SCORM package using the single activity course format - see [[Course formats]] - and add an enrolment key to the course. | |||
==Supported Versions== | ==Supported Versions== | ||
* SCORM 1.2 is supported in Moodle 2.1(or higher) and passes all the tests in the ADL Conformance test suite 1.2.7 for SCORM 1.2. The best place for information on SCORM 1.2 conformance is the [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Previous%20Versions/SCORM%201.2/Conformance%20Test%20Suite%20(SCORM%201.2)/SCORM_1.2_ConformanceReq.pdf SCORM Comformance Requirements documentation (PDF 3.4MB)]. | * SCORM 1.2 is supported in Moodle 2.1(or higher) and passes all the tests in the ADL Conformance test suite 1.2.7 for SCORM 1.2. The best place for information on SCORM 1.2 conformance is the [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Previous%20Versions/SCORM%201.2/Conformance%20Test%20Suite%20(SCORM%201.2)/SCORM_1.2_ConformanceReq.pdf SCORM Comformance Requirements documentation (PDF 3.4MB)]. | ||
* SCORM 2004 is not | * SCORM 2004 is not supported in Moodle - parts of the basic SCORM 2004 API were implemented and some SCORM 2004 packages may appear to work, however development on native SCORM 2004 support in Moodle [https://moodle.org/mod/forum/discuss.php?d=227906 has stopped] and bugs reported against SCORM 2004 in the Moodle Tracker are closed as won't fix. If you require a fully certified SCORM 2004 Player in Moodle, [https://rusticisoftware.com Rustici Software] have a [https://moodle.org/plugins/mod_scormcloud Moodle plugin] which connects to their commercial [https://rusticisoftware.com/products/scorm-cloud SCORM Cloud] service turning Moodle into a fully compliant SCORM 2004 LMS. | ||
* AICC objects are supported in Moodle 2.1 and higher. | * AICC objects are supported in Moodle 2.1 and higher. | ||
* | * Tin Can is supported with a number of 3rd party plugins such as [https://moodle.org/plugins/logstore_xapi logstore xAPI] (allows reporting logging data to an external LRS) and [https://moodle.org/plugins/mod_tincanlaunch mod_tincanlaunch] (allows launching tin can content packages within Moodle. | ||
==Asking for Help in the SCORM Forum== | ==Asking for Help in the SCORM Forum== | ||
When trying to engage the community to help with a problem you are facing, you will get a better response if you follow a few simple guidelines: | When trying to engage the community to help with a problem you are facing, you will get a better response if you follow a few simple guidelines: | ||
* Always start your report with '''version information''' - preferably the information displayed on the Admin -> Environment panel | * Always start your report with '''version information''' - preferably the information displayed on the Admin -> Environment panel e.g. http://localhost/moodle/admin/environment.php where http://localhost/moodle is your particular prefix. With this it will be clear how you are running your Moodle instance, on what platform, and at which version. This will quickly expose issues where a simple upgrade will solve your problem. | ||
* Be prepared to '''provide the SCORM package''' that illustrates your problem - if you don't then it will be very difficult for anyone offering assistance to recreate your situation - a real barrier to help. | * Be prepared to '''provide the SCORM package''' that illustrates your problem - if you don't then it will be very difficult for anyone offering assistance to recreate your situation - a real barrier to help. | ||
* '''Screenshots''' are very helpful. Provide a screenshot of all error messages, and any instance where something seems to go wrong in the interface. | * '''Screenshots''' are very helpful. Provide a screenshot of all error messages, and any instance where something seems to go wrong in the interface. | ||
Line 67: | Line 52: | ||
* Run your problematic SCORM package through '''API debugging''' (see below) and include the text of that API log with your post. That way we can see right away if the right function calls are not taking place. | * Run your problematic SCORM package through '''API debugging''' (see below) and include the text of that API log with your post. That way we can see right away if the right function calls are not taking place. | ||
* If you're using a content development suite which publishes to SCORM, such as Articulate, Captivate, Lectora, LessonBuilder, Udutu, or some other product, then include that in your post. Every authoring software has its ticks, and if you've run into one, it's likely that someone else has also dealt with it, and will recognize it. However, please keep in mind that '''this is a place to get help with Moodle issues, not help with your SCORM package authoring suite'''. | * If you're using a content development suite which publishes to SCORM, such as Articulate, Captivate, Lectora, LessonBuilder, Udutu, or some other product, then include that in your post. Every authoring software has its ticks, and if you've run into one, it's likely that someone else has also dealt with it, and will recognize it. However, please keep in mind that '''this is a place to get help with Moodle issues, not help with your SCORM package authoring suite'''. | ||
==Debugging == | ==Debugging == | ||
# Debugging settings are located at Settings > Site Administration > Plugins > Activities > Scorm. | # Debugging settings are located at Settings > Site Administration > Plugins > Activities > Scorm. | ||
# Check the checkbox for '''Activate API debug...''' | # Check the checkbox for '''Activate API debug...''' | ||
# Set the api mask. You can use the mask to enable debugging under certain conditions. For example, if you are logged in using the admin user (username admin) you can set the api mask to: <cite>admin.*</cite> | # Set the api mask. You can use the mask to enable debugging under certain conditions. For example, if you are logged in using the admin user (username admin) you can set the api mask to: <cite>admin.*</cite> Users not logged in as admin will not see the debugging log. The "Default" api mask is <cite>.*</cite> | ||
==What does the debugging log mean?== | ==What does the debugging log mean?== | ||
The SCO commonly sends the following communications through the API: | The SCO commonly sends the following communications through the API: | ||
* '''LMSInitialize();''' opens the connection between the SCO and Moodle | * '''LMSInitialize();''' opens the connection between the SCO and Moodle | ||
* '''LMSGetValue( 'valuename' );''' gets a value from Moodle | * '''LMSGetValue( 'valuename' );''' gets a value from Moodle | ||
Line 83: | Line 63: | ||
* '''LMSCommit();''' saves values sent to Moodle via LMSSetValue() and should be called after every LMSSetValue() | * '''LMSCommit();''' saves values sent to Moodle via LMSSetValue() and should be called after every LMSSetValue() | ||
* '''LMSFinish()''' saves values sent to Moodle and closes the connection between the SCO And Moodle | * '''LMSFinish()''' saves values sent to Moodle and closes the connection between the SCO And Moodle | ||
Red lines in the debugging log means there was an error in the communication through the API. | Red lines in the debugging log means there was an error in the communication through the API. | ||
Line 89: | Line 68: | ||
Click through the entire SCORM package. Then access the scorm report for your attempt, and compare the saved values in the debugging log with Moodle's report of the attempt. If the values set in the debug log do not match the values saved to Moodle, then there may be a problem with Moodle. Otherwise it's likely to be an issue with the SCO or the SCORM activity settings not giving you the functionality you need. | Click through the entire SCORM package. Then access the scorm report for your attempt, and compare the saved values in the debugging log with Moodle's report of the attempt. If the values set in the debug log do not match the values saved to Moodle, then there may be a problem with Moodle. Otherwise it's likely to be an issue with the SCO or the SCORM activity settings not giving you the functionality you need. | ||
== SCORM Privacy == | |||
Typically a SCORM package is stand-alone and does not communicate externally so all the data is stored within your system, however there are some cases where a SCORM package may interact with an external system that you should be aware of. | |||
The SCORM standard allows SCORM packages to request the users name and id (Moodle passes the username or id depending on settings) - in most cases this is only used within the display of the SCORM package and is not passed to an external system, however there are 2 cases below where this might occur. | |||
# AICC HACP - This is a type of content package that is hosted externally to your LMS - This method is disabled by default in Moodle but if enabled, allows a teacher to add an AICC HACP content package to a course using the SCORM plugin. Usually these are commercial off-the-shelf content packages that you would be paying a subscription license for. AICC settings in Moodle allow you to choose if the username or user->id field is sent in the external request and like mentioned above, it can also request the users full-name. In this case it is likely that the externally hosted AICC package may store user data. | |||
# SCORM packages can be developed and created by anyone and the SCORM content author can include any javascript/tracking codes they want. If you're familiar with things like Google analytics tracking codes - something quite similar could be implemented within the SCORM package by the SCORM author - this will all be done in the users browser session, so you should be able to see any external communication in the browser console while watching network traffic, and as the SCORM package can access the username and fullname of the user accessing the package, it's possible that embedded tracking code within the package could send this information to an external site. | |||
==SCORM and the Gradebook== | ==SCORM and the Gradebook== | ||
Please see [https://docs.moodle.org/en/SCORM_FAQ#My_SCORM_Module_doesn.27t_function_properly FAQ:My SCORM Module doesn't function properly] and | Please see [https://docs.moodle.org/en/SCORM_FAQ#My_SCORM_Module_doesn.27t_function_properly FAQ:My SCORM Module doesn't function properly] and [https://docs.moodle.org/en/SCORM_FAQ#Handling_of_Multiple_Attempts FAQ:Handling of Multiple Attempts] | ||
Some SCORM packages report both cmi.core.lesson_status and cmi.core.score.raw. Others report only cmi.core.lesson_status, or only cmi.core.score.raw. The '''Grading Method''' setting for SCORM objects is meant to account for that. | Some SCORM packages report both cmi.core.lesson_status and cmi.core.score.raw. Others report only cmi.core.lesson_status, or only cmi.core.score.raw. The '''Grading Method''' setting for SCORM objects is meant to account for that. | ||
If you have the '''Grading Method''' set to '''Highest grade''', '''Average grade''', or '''Sum grade''', and your learning object does not report a score, only, cmi.core.lesson_status, then there will be no numerical score to pass to the gradebook. | If you have the '''Grading Method''' set to '''Highest grade''', '''Average grade''', or '''Sum grade''', and your learning object does not report a score, only, cmi.core.lesson_status, then there will be no numerical score to pass to the gradebook. | ||
Line 103: | Line 90: | ||
If you do not know what your SCOs are reporting to the LMS, then run them through to completion with debugging on. | If you do not know what your SCOs are reporting to the LMS, then run them through to completion with debugging on. | ||
Much of the way SCORM objects are graded is controlled inside the SCORM Authoring process before it is packaged for use in an LMS like Moodle - make sure all your grading settings are set correctly. | Much of the way SCORM objects are graded is controlled inside the SCORM Authoring process before it is packaged for use in an LMS like Moodle - make sure all your grading settings are set correctly. | ||
==SCORM Administration Options== | ==SCORM Administration Options== | ||
See [[SCORM settings]] | See [[SCORM settings]] | ||
==Common Solutions== | ==Common Solutions== | ||
===Difficulty Displaying a SCORM Package=== | ===Difficulty Displaying a SCORM Package=== | ||
If you have difficulty displaying a SCORM, try loading the SCORM in [http://www.reload.ac.uk Reload] and re-saving it, then save the folder as a .zip package and try again. | If you have difficulty displaying a SCORM, try loading the SCORM in [http://www.reload.ac.uk Reload] and re-saving it, then save the folder as a .zip package and try again. | ||
===Character Display Errors=== | ===Character Display Errors=== | ||
When you notice there is a problem displaying characters correctly, it could be a misconfiguration of your server. Make sure that both httpd.conf (when using Apache) and php.ini are set to DefaultCharacterset = utf8 or switch the sending of a default character set off. | When you notice there is a problem displaying characters correctly, it could be a misconfiguration of your server. Make sure that both httpd.conf (when using Apache) and php.ini are set to DefaultCharacterset = utf8 or switch the sending of a default character set off. | ||
===slash arguments warning when I add/update SCORM objects in my course=== | ===slash arguments warning when I add/update SCORM objects in my course=== | ||
Some web servers don't support a function called '''slash arguments''' and so Moodle allows you to turn it off, but SCORM packages require '''slash arguments''' to be enabled on the web server in order to work properly. | |||
See [[Using slash arguments]] for more details. | |||
===SCORM doesn't work on Godaddy Host=== | ===SCORM doesn't work on Godaddy Host=== | ||
Godaddy hosts give a 404 file not found error - this is because by default they do not allow slash arguments which SCORM requires. The best way to test this is to visit http://yourmoodlesite/admin/tool/health/index.php - but the fix involves adding a php.ini or php5.ini file with the following text: | Godaddy hosts give a 404 file not found error - this is because by default they do not allow slash arguments which SCORM requires. The best way to test this is to visit http://yourmoodlesite/admin/tool/health/index.php - but the fix involves adding a php.ini or php5.ini file with the following text: | ||
AcceptPathInfo | AcceptPathInfo | ||
cgi.fix_pathinfo=1 | cgi.fix_pathinfo=1 | ||
===My Flash-Based Content Loads, then Stalls=== | ===My Flash-Based Content Loads, then Stalls=== | ||
This issue is most commonly associated with zlib compression. Classic presentation is that the base HTML file and SWF are loaded into the SCORM player, but the SWF is not able to load any audio or video assets, and therefore stalls. You can watch the loading of SWFs and assets using Chrome's Developer Tools or other. | This issue is most commonly associated with zlib compression. Classic presentation is that the base HTML file and SWF are loaded into the SCORM player, but the SWF is not able to load any audio or video assets, and therefore stalls. You can watch the loading of SWFs and assets using Chrome's Developer Tools or other. | ||
Check your site's zlib compression settings as an admin by loading up the Server > phpinfo page. zlib compression is not a Moodle setting but a server setting, so you'll need a server admin to disable it. Be sure to Purge All Caches, and clear browser caches, before confirming the change. | Check your site's zlib compression settings as an admin by loading up the Server > phpinfo page. zlib compression is not a Moodle setting but a server setting, so you'll need a server admin to disable it. Be sure to Purge All Caches, and clear browser caches, before confirming the change. | ||
===Zlib warning when I add/update SCORM objects in my course=== | ===Zlib warning when I add/update SCORM objects in my course=== | ||
Zlib is a php compression setting made in a websites PHP configuration - unfortunately some browsers don't handle this well (especially Internet Explorer 6) Some webhosts enable this setting, but it will likely cause issues for your users when they attempt to view/use the SCORM object. You will need to contact your server administrator to turn this off. The setting to change in php configuration is "zlib.output_compression" | Zlib is a php compression setting made in a websites PHP configuration - unfortunately some browsers don't handle this well (especially Internet Explorer 6) Some webhosts enable this setting, but it will likely cause issues for your users when they attempt to view/use the SCORM object. You will need to contact your server administrator to turn this off. The setting to change in php configuration is "zlib.output_compression" | ||
===Incorrect file package - missing imsmanifest.xml or AICC structure=== | ===Incorrect file package - missing imsmanifest.xml or AICC structure=== | ||
This means that Moodle cannot find a file called imsmanifest.xml inside the SCORM object. Reasons for this could be: | This means that Moodle cannot find a file called imsmanifest.xml inside the SCORM object. Reasons for this could be: | ||
Line 139: | Line 118: | ||
* The SCORM authoring tool Articulate sometimes fails to create the imsmanifest.xml -Try exporting the package again and see if the manifest is generated. | * The SCORM authoring tool Articulate sometimes fails to create the imsmanifest.xml -Try exporting the package again and see if the manifest is generated. | ||
* The SCORM authoring tool Articulate Presenter will publish packages where the imsmanifest.xml file is in the correct place, but there are several lines of white space in the manifest file if you do not fill out the Reporting and Tracking Options in Articulate Presenter for Keywords and LMS Description. Moodle will give a "Manifest not found" error when encountering this. To fix this problem select the Reporting and Tracking Options in the Articulate Presenter publish dialog and fill in the LMS Description and Keywords. | * The SCORM authoring tool Articulate Presenter will publish packages where the imsmanifest.xml file is in the correct place, but there are several lines of white space in the manifest file if you do not fill out the Reporting and Tracking Options in Articulate Presenter for Keywords and LMS Description. Moodle will give a "Manifest not found" error when encountering this. To fix this problem select the Reporting and Tracking Options in the Articulate Presenter publish dialog and fill in the LMS Description and Keywords. | ||
===File not found error=== | ===File not found error=== | ||
You have this error if the scorm package is created in moodle, and the scorm menu loads, but inside of the viewing area for the scorm content, you get a page with a 404 file not found error, usually showing the current Moodle theme. | You have this error if the scorm package is created in moodle, and the scorm menu loads, but inside of the viewing area for the scorm content, you get a page with a 404 file not found error, usually showing the current Moodle theme. | ||
Line 148: | Line 126: | ||
<code xml> | <code xml> | ||
<organizations default="TOC1"> | <organizations default="TOC1"> | ||
<organization identifier="TOC1"> | <organization identifier="TOC1"> | ||
Line 172: | Line 149: | ||
</resources> | </resources> | ||
</manifest> | </manifest> | ||
</code> | </code> | ||
Line 178: | Line 157: | ||
What you need to do now is go to the directory containing imsmanifest.xml, and check that all of those listed files are available at the correct path from imsmanfiest.xml, as listed in imsmanifest.xml. If any one of those files is missing (especially the html file or the swf), or if the paths in imsmanifest.xml are incorrect, then it's very likely that the scorm object won't be able to load at all. | What you need to do now is go to the directory containing imsmanifest.xml, and check that all of those listed files are available at the correct path from imsmanfiest.xml, as listed in imsmanifest.xml. If any one of those files is missing (especially the html file or the swf), or if the paths in imsmanifest.xml are incorrect, then it's very likely that the scorm object won't be able to load at all. | ||
Sometimes the files aren't missing, but are simply misnamed in the manifest, or placed in the wrong directory. You can fix this by moving the files to the correct places, or updating their names so that the imsmanifest and the actual file names match up. In the case of a misnamed file, change the manifest rather than the actual file names, since | Sometimes the files aren't missing, but are simply misnamed in the manifest, or placed in the wrong directory. You can fix this by moving the files to the correct places, or updating their names so that the imsmanifest and the actual file names match up. In the case of a misnamed file, change the manifest rather than the actual file names, since the files also reference one another in other places! | ||
===Unzip issues=== | ===Unzip issues=== | ||
If you get a blank page after filling in the title, description, and selecting a large SCORM file, it's likely you haven't installed the PHP-zip lib which is required for Moodle 2.x for more info see [[admin/environment/ | If you get a blank page after filling in the title, description, and selecting a large SCORM file, it's likely you haven't installed the PHP-zip lib which is required for Moodle 2.x for more info see [[admin/environment/php extension/zip]] | ||
===Clear an Attempt=== | ===Clear an Attempt=== | ||
To clear attempts by a student: | To clear attempts by a student: | ||
# Go to the SCORM activity and select the link "View reports for x users" | # Go to the SCORM activity and select the link "View reports for x users" | ||
# Select the attempt or attempts you want to clear using the checkbox | # Select the attempt or attempts you want to clear using the checkbox | ||
# Select Delete in the drop-down box at the bottom of the page | # Select Delete in the drop-down box at the bottom of the page | ||
===Handling of Multiple Attempts=== | ===Handling of Multiple Attempts=== | ||
SCORM is designed to allow a learner to exit and return at a later date to the same point they left from. This means that each time they enter the SCORM they are using the same single attempt. Some SCORM packages are intelligent about handling re-entry, many are not. What this means is that if the learner re-enters an existing attempt, if the SCORM content does not have internal logic to avoid overwriting cmi.core.lesson_status and cmi.core.score.raw, they can be overwritten by a lower score, confusing the learner. | SCORM is designed to allow a learner to exit and return at a later date to the same point they left from. This means that each time they enter the SCORM they are using the same single attempt. Some SCORM packages are intelligent about handling re-entry, many are not. What this means is that if the learner re-enters an existing attempt, if the SCORM content does not have internal logic to avoid overwriting cmi.core.lesson_status and cmi.core.score.raw, they can be overwritten by a lower score, confusing the learner. | ||
Line 205: | Line 180: | ||
:This is a setting that can be used to force a SCORM package to report a 'completed' cmi.core.lesson_status if it doesn't currently set the value. | :This is a setting that can be used to force a SCORM package to report a 'completed' cmi.core.lesson_status if it doesn't currently set the value. | ||
* Force new attempt | * Force new attempt | ||
:This hides the '''Start new attempt''' checkbox and will force a new attempt if the previous attempt has cmi.core.lesson_status value to | :This hides the '''Start new attempt''' checkbox and will force a new attempt if the previous attempt has cmi.core.lesson_status value to 'completed', 'passed' or 'failed' (disabling "review mode")- this setting can also be used to make sure a new attempt is generated when the 'Student skip content structure page' setting is used. | ||
* Lock after final attempt | * Lock after final attempt | ||
:This prevents access to the SCORM after the total number of attempts have been used - if this is not set the learner can re-enter their last attempt and potentially change/overwrite their score each time depending on how the SCORM package supports multiple re-entries. | :This prevents access to the SCORM after the total number of attempts have been used - if this is not set the learner can re-enter their last attempt (in review mode) and potentially change/overwrite their score each time depending on how the SCORM package supports multiple re-entries. | ||
===Reducing Load Time with Captivate=== | ===Reducing Load Time with Captivate=== | ||
* Modify the percent that must be downloaded before the content starts to play. In Captivate 4, there's a setting in: Preferences / Project / Start and End / Preload. Reduce that to 50%. | * Modify the percent that must be downloaded before the content starts to play. In Captivate 4, there's a setting in: Preferences / Project / Start and End / Preload. Reduce that to 50%. | ||
* If you use audio in your Cp file (as background or element attachment), try to put a gap of 0,1 second at the beginning of each element including audio on your slides. If you don't do that, Cp merge all the audio files in one big audio file it need to download before playing the project. This problem have been report many times from the Cp community. | * If you use audio in your Cp file (as background or element attachment), try to put a gap of 0,1 second at the beginning of each element including audio on your slides. If you don't do that, Cp merge all the audio files in one big audio file it need to download before playing the project. This problem have been report many times from the Cp community. | ||
===Moodle changes cmi.core.lesson_status from "completed" or "passed" to "failed"=== | |||
Many SCORM authorware suites generate a masteryscore node in the imsmanifest.xml by default. This node is not necessary to the XML file. But when it is there, the SCORM standard designates specific behaviour with regard to the value set there. | |||
This can also be controlled in Moodle using the setting "Mastery score overrides status" If this setting is enabled and a mastery score is provided within your package, when LMSFinish is called and a raw score has been set, if the raw score is lower than the mastery score, the lesson status will be overridden and set to "failed" | |||
Here's what is in the scorm standard, on page 35 of 155 in SCORM_1.2_ConformanceReq.pdf, numbered page 2-19 ([http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2%2fDocumentation%20Suite%20%28SCORM%201%2e2%29&FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&View=%7b4D6DFFDE%2d3CFC%2d4DD9%2dA21A%2d4B687728824A%7d SCORM Version 1.2 Conformance Requirements Version 1.2]): | Here's what is in the scorm standard, on page 35 of 155 in SCORM_1.2_ConformanceReq.pdf, numbered page 2-19 ([http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2%2fDocumentation%20Suite%20%28SCORM%201%2e2%29&FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&View=%7b4D6DFFDE%2d3CFC%2d4DD9%2dA21A%2d4B687728824A%7d SCORM Version 1.2 Conformance Requirements Version 1.2]): | ||
Line 224: | Line 199: | ||
</ul> | </ul> | ||
</blockquote> | </blockquote> | ||
This can result in some functionality you don't intend. You can fix the problem by removing the mastery score node from your imsmanifest.xml file. You | This can result in some functionality you don't intend. You can fix the problem by removing the mastery score node from your imsmanifest.xml file or by adjusting the Moodle setting "Mastery score overrides status". You may also want to find out what options you have, within your authorware suite, for the writing of that node into the manifest file, and change your authoring process accordingly. | ||
The Rustici SCORM Cloud default operating behaviour for masteryscore is different from Moodle's default operating behaviour - you can see a little bit of the history around the way Rustici handle this here: http://scorm.com/blog/2010/09/anatomy-of-scorm-minutiae-mistake/ | |||
===Player Look 'n Feel=== | ===Player Look 'n Feel=== | ||
You should be able to adjust height and width settings for the SCORM player window '''so long as''' your theme is based on/not too much of an aberration from one of the standard themes which ship with Moodle 2. | You should be able to adjust height and width settings for the SCORM player window '''so long as''' your theme is based on/not too much of an aberration from one of the standard themes which ship with Moodle 2. | ||
Line 232: | Line 208: | ||
'''Why can't I just change it locally?''' You can change height and width per individual SCORM package, and you can set defaults for these local height and width values ( [[SCORM Admin Options]] ). Other things, such as colors, shading, borders, backgrounds, are controlled by CSS, just like everything else on the site. | '''Why can't I just change it locally?''' You can change height and width per individual SCORM package, and you can set defaults for these local height and width values ( [[SCORM Admin Options]] ). Other things, such as colors, shading, borders, backgrounds, are controlled by CSS, just like everything else on the site. | ||
=== Courselab 2.4 === | |||
If you receive a " found more than one record!" error when trying to run your SCORM 1.2 package check the imsmanifest.xml file of your SCORM package and ensure that the values for <organization identifier> and <item identifier> are unique. To change the <organization identifier>, in Courselab, go to File > Course Runtime Settings. The dialog says 'Course identification in LMS' but changing the Identifier field is what sets the <organization identifier>. (see MDL-38060 for more information) | |||
=== SCORM results deleted after package update === | |||
When uploading a SCORM package over a previous one, if the item identifier in the manifest file is different to the one being overwritten then the tracking data for that SCORM package in Moodle is deleted. | |||
=== | Ensure the item identifier is the same for the new SCORM resource | ||
===Problems with responsiveness=== | |||
Sometimes SCORMs fail on responsiveness or the ability to scroll on mobile devices | |||
*Moodle uses iFrames for deploying SCORM. https://community.adaptlearning.org/mod/forum/discuss.php?d=180#p863 | |||
*There can be some problems with this as they are not responsive in iOS https://community.adaptlearning.org/mod/forum/discuss.php?d=1446#p6687 | |||
*There are some potential work arounds. | |||
#Totara has a new window. #https://community.adaptlearning.org/mod/forum/discuss.php?d=851#p3968 | |||
#This comment https://community.adaptlearning.org/mod/forum/discuss.php?d=787#p3661 | |||
#Solutions for Adapt: https://github.com/adaptlearning/adapt_framework/issues/210 | |||
*The tracker: | |||
#https://tracker.moodle.org/browse/MDL-47500 problems with pages. | |||
#https://tracker.moodle.org/browse/MDL-46563 | |||
#https://tracker.moodle.org/browse/MDL-50401 | |||
*Why iFrames fail with iOS, one person's view: https://community.adaptlearning.org/mod/forum/discuss.php?d=926#p4714 | |||
This seems to be a problem that lies between the browsers (e.g. faults in iOS) the creation of the SCORM package and the LMS (in this case the iFrames in Moodle). | |||
One quite comprehensive idea for a work around is here: https://community.adaptlearning.org/mod/forum/discuss.php?d=180 but there is really no evidence at the moment of a nicer solution. | |||
==See also== | ==See also== | ||
* [http://danmarsden.com/blog/2012/08/08/scorm-doesnt-work-in-moodle SCORM doesn't work] blog post from developer Dan Marsden | * [http://danmarsden.com/blog/2012/08/08/scorm-doesnt-work-in-moodle SCORM doesn't work] blog post from developer Dan Marsden | ||
* [http://danmarsden.com/blog/2009/05/23/scorm-2004-in-moodle/ SCORM 2004 in Moodle] blog post from developer Dan Marsden | * [http://danmarsden.com/blog/2009/05/23/scorm-2004-in-moodle/ SCORM 2004 in Moodle] blog post from developer Dan Marsden | ||
* [https:// | * [https://moodle.org/mod/forum/discuss.php?d=276324 Identifiers to change with updated SCORM module] | ||
Forum discussions: | |||
*[http://moodle.org/mod/forum/discuss.php?d=3757 Simple introduction to SCORM] | *[http://moodle.org/mod/forum/discuss.php?d=3757 Simple introduction to SCORM] | ||
*[http://moodle.org/mod/forum/discuss.php?d=207964 Updating an Object] | *[http://moodle.org/mod/forum/discuss.php?d=207964 Updating an Object] | ||
==Any further questions?== | |||
Please post in the [http://moodle.org/mod/forum/view.php?id=1951 SCORM forum] on moodle.org. | |||
[[Category:FAQ]] | [[Category:FAQ]] | ||
[[de:Lernpaket FAQ]] | [[de:Lernpaket FAQ]] | ||
[[es:SCORM FAQ]] | |||
[[fr:FAQ SCORM]] |
Latest revision as of 22:25, 16 April 2024
What is SCORM?
SCORM was developed as a result of collaboration in the public and private sectors. The President of the United States, Bill Clinton issued an Executive Order that created an agency (ADL) to oversee the standard for developing and distributing online learning. All Federal agencies are mandated to use programs that meet those standards. SCORM is one result of that order.
There's a really simple "What is SCORM" introduction here: http://moodle.org/mod/forum/discuss.php?d=3757#p18828
A slightly more detailed introduction here: http://www.rusticisoftware.com/resources/whatisscorm/What%20Is%20SCORM.ht
Should I make my Moodle courses as SCORM or use Moodle's features?
It depends how you intend to use it. If you are planning on exporting and using in another LMS then SCORM would make this easier. If you want something shiny, then a SCORM package can fit the bill. However, reporting and grading work better in Moodle and for many educators the standard features do the job perfectly and do not require learning a new program. There is a useful form post discussing the pros and cons of SCORM in Moodle here: http://moodle.org/mod/forum/discuss.php?d=200242
SCORM Information
Advanced Distributed Learning (ADL) is the organization that wrote the SCORM standard. You can download documentation and samples form ADL's Web site. Documentation for SCORM 1.2 in several languages is available here.
Philip Hutchison provides an AS3 and JavaScript wrapper, as well as a sample package: http://pipwerks.com/downloads/
SCORM Package Contents
A SCORM package must contains in the root of zip a file named imsmanifest.xml which defines SCORM course structure, resource location and many other things. Other files used in the package, such as HTML files, XML files, multimedia files, and JavaScript for the SCORM API must be listed in this file. The LMS parses the manifest, and provides the files listed there to the content package during runtime.
AICC Package Contents
An AICC package is defined by several files (from 4 to 7) with defined extensions as follows:
- CRS - Course Description file (mandatory)
- AU - Assignable Unit file (mandatory)
- DES - Descriptor file (mandatory)
- CST - Course Structure file (mandatory)
- ORE - Objective Relationship file (optional)
- PRE - Prerequisites file (optional)
- CMP - Completition Requirements file (optional)
Basic Troubleshooting
- Make sure you are running Moodle 2.1 or higher, a large number of SCORM related bugs are present in previous versions.
- Make sure you (and your users) have JavaScript enabled. SCORM requires JavaScript.
- Make sure your SCORM object is SCORM compliant - check it in an external SCORM player like Reload to see if it works there.
- Upload a copy of your SCORM object to a File Hosting Service and post a message asking for help in the forums, linking to your SCORM object explaining exactly what you expect to happen, and what is happening instead.
- Read Dan Marsden's blog post here (Maintainer of SCORM Module in Moodle)
Does Moodle Generate SCORM Content?
Moodle does not generate scorm content. Moodle presents the content in SCORM packages to learners, and saves data from learner interactions with the SCORM package.
Can I add a password for access to my SCORM package?
No, although there is a tracker request for this: MDL-46403 As a workaround you could add your SCORM package using the single activity course format - see Course formats - and add an enrolment key to the course.
Supported Versions
- SCORM 1.2 is supported in Moodle 2.1(or higher) and passes all the tests in the ADL Conformance test suite 1.2.7 for SCORM 1.2. The best place for information on SCORM 1.2 conformance is the SCORM Comformance Requirements documentation (PDF 3.4MB).
- SCORM 2004 is not supported in Moodle - parts of the basic SCORM 2004 API were implemented and some SCORM 2004 packages may appear to work, however development on native SCORM 2004 support in Moodle has stopped and bugs reported against SCORM 2004 in the Moodle Tracker are closed as won't fix. If you require a fully certified SCORM 2004 Player in Moodle, Rustici Software have a Moodle plugin which connects to their commercial SCORM Cloud service turning Moodle into a fully compliant SCORM 2004 LMS.
- AICC objects are supported in Moodle 2.1 and higher.
- Tin Can is supported with a number of 3rd party plugins such as logstore xAPI (allows reporting logging data to an external LRS) and mod_tincanlaunch (allows launching tin can content packages within Moodle.
Asking for Help in the SCORM Forum
When trying to engage the community to help with a problem you are facing, you will get a better response if you follow a few simple guidelines:
- Always start your report with version information - preferably the information displayed on the Admin -> Environment panel e.g. http://localhost/moodle/admin/environment.php where http://localhost/moodle is your particular prefix. With this it will be clear how you are running your Moodle instance, on what platform, and at which version. This will quickly expose issues where a simple upgrade will solve your problem.
- Be prepared to provide the SCORM package that illustrates your problem - if you don't then it will be very difficult for anyone offering assistance to recreate your situation - a real barrier to help.
- Screenshots are very helpful. Provide a screenshot of all error messages, and any instance where something seems to go wrong in the interface.
- Nonstandard themes can introduce SCORM issues. Be sure to tell us what theme you're using.
- If you have admin privileges, and have access to a localhost install or other place where real-time users won't be disturbed, be sure to turn on debugging. Navigate to Site Administration > Development > Debugging and set Debug messages: Developer and Display debug messages: Yes. Access the SCORM content. If there are errors printed to the page, include them in your forum post.
- Use Chrome's JavaScript Console or Firebug's JavaScript console to check that there are no JavaScript errors on the page when the content loads.
- Run your problematic SCORM package through API debugging (see below) and include the text of that API log with your post. That way we can see right away if the right function calls are not taking place.
- If you're using a content development suite which publishes to SCORM, such as Articulate, Captivate, Lectora, LessonBuilder, Udutu, or some other product, then include that in your post. Every authoring software has its ticks, and if you've run into one, it's likely that someone else has also dealt with it, and will recognize it. However, please keep in mind that this is a place to get help with Moodle issues, not help with your SCORM package authoring suite.
Debugging
- Debugging settings are located at Settings > Site Administration > Plugins > Activities > Scorm.
- Check the checkbox for Activate API debug...
- Set the api mask. You can use the mask to enable debugging under certain conditions. For example, if you are logged in using the admin user (username admin) you can set the api mask to: admin.* Users not logged in as admin will not see the debugging log. The "Default" api mask is .*
What does the debugging log mean?
The SCO commonly sends the following communications through the API:
- LMSInitialize(); opens the connection between the SCO and Moodle
- LMSGetValue( 'valuename' ); gets a value from Moodle
- LMSSetValue( 'valuename' , 'value' ); sends a value to Moodle
- LMSCommit(); saves values sent to Moodle via LMSSetValue() and should be called after every LMSSetValue()
- LMSFinish() saves values sent to Moodle and closes the connection between the SCO And Moodle
Red lines in the debugging log means there was an error in the communication through the API.
If LMSInitialize() fails, returns an error, then no subsequent values sent to Moodle will be saved.
Click through the entire SCORM package. Then access the scorm report for your attempt, and compare the saved values in the debugging log with Moodle's report of the attempt. If the values set in the debug log do not match the values saved to Moodle, then there may be a problem with Moodle. Otherwise it's likely to be an issue with the SCO or the SCORM activity settings not giving you the functionality you need.
SCORM Privacy
Typically a SCORM package is stand-alone and does not communicate externally so all the data is stored within your system, however there are some cases where a SCORM package may interact with an external system that you should be aware of.
The SCORM standard allows SCORM packages to request the users name and id (Moodle passes the username or id depending on settings) - in most cases this is only used within the display of the SCORM package and is not passed to an external system, however there are 2 cases below where this might occur.
- AICC HACP - This is a type of content package that is hosted externally to your LMS - This method is disabled by default in Moodle but if enabled, allows a teacher to add an AICC HACP content package to a course using the SCORM plugin. Usually these are commercial off-the-shelf content packages that you would be paying a subscription license for. AICC settings in Moodle allow you to choose if the username or user->id field is sent in the external request and like mentioned above, it can also request the users full-name. In this case it is likely that the externally hosted AICC package may store user data.
- SCORM packages can be developed and created by anyone and the SCORM content author can include any javascript/tracking codes they want. If you're familiar with things like Google analytics tracking codes - something quite similar could be implemented within the SCORM package by the SCORM author - this will all be done in the users browser session, so you should be able to see any external communication in the browser console while watching network traffic, and as the SCORM package can access the username and fullname of the user accessing the package, it's possible that embedded tracking code within the package could send this information to an external site.
SCORM and the Gradebook
Please see FAQ:My SCORM Module doesn't function properly and FAQ:Handling of Multiple Attempts
Some SCORM packages report both cmi.core.lesson_status and cmi.core.score.raw. Others report only cmi.core.lesson_status, or only cmi.core.score.raw. The Grading Method setting for SCORM objects is meant to account for that.
If you have the Grading Method set to Highest grade, Average grade, or Sum grade, and your learning object does not report a score, only, cmi.core.lesson_status, then there will be no numerical score to pass to the gradebook.
If your SCOs do not report cmi.core.score.raw, then the best Grading Method setting is Learning Objects. This reports either a 1 or a 0 as a score for each learning object. The gradebook value for that SCORM activity is the percent of scos in the package for which learners got a 1.
On the other hand, if your SCOs do not report a lesson_status, then select one of the score-based Grading Method options, such as Highest grade, Average grade, or Sum grade, and not Learning Objects.
If you do not know what your SCOs are reporting to the LMS, then run them through to completion with debugging on.
Much of the way SCORM objects are graded is controlled inside the SCORM Authoring process before it is packaged for use in an LMS like Moodle - make sure all your grading settings are set correctly.
SCORM Administration Options
See SCORM settings
Common Solutions
Difficulty Displaying a SCORM Package
If you have difficulty displaying a SCORM, try loading the SCORM in Reload and re-saving it, then save the folder as a .zip package and try again.
Character Display Errors
When you notice there is a problem displaying characters correctly, it could be a misconfiguration of your server. Make sure that both httpd.conf (when using Apache) and php.ini are set to DefaultCharacterset = utf8 or switch the sending of a default character set off.
slash arguments warning when I add/update SCORM objects in my course
Some web servers don't support a function called slash arguments and so Moodle allows you to turn it off, but SCORM packages require slash arguments to be enabled on the web server in order to work properly.
See Using slash arguments for more details.
SCORM doesn't work on Godaddy Host
Godaddy hosts give a 404 file not found error - this is because by default they do not allow slash arguments which SCORM requires. The best way to test this is to visit http://yourmoodlesite/admin/tool/health/index.php - but the fix involves adding a php.ini or php5.ini file with the following text:
AcceptPathInfo cgi.fix_pathinfo=1
My Flash-Based Content Loads, then Stalls
This issue is most commonly associated with zlib compression. Classic presentation is that the base HTML file and SWF are loaded into the SCORM player, but the SWF is not able to load any audio or video assets, and therefore stalls. You can watch the loading of SWFs and assets using Chrome's Developer Tools or other.
Check your site's zlib compression settings as an admin by loading up the Server > phpinfo page. zlib compression is not a Moodle setting but a server setting, so you'll need a server admin to disable it. Be sure to Purge All Caches, and clear browser caches, before confirming the change.
Zlib warning when I add/update SCORM objects in my course
Zlib is a php compression setting made in a websites PHP configuration - unfortunately some browsers don't handle this well (especially Internet Explorer 6) Some webhosts enable this setting, but it will likely cause issues for your users when they attempt to view/use the SCORM object. You will need to contact your server administrator to turn this off. The setting to change in php configuration is "zlib.output_compression"
Incorrect file package - missing imsmanifest.xml or AICC structure
This means that Moodle cannot find a file called imsmanifest.xml inside the SCORM object. Reasons for this could be:
- imsmanifest.xml needs to be immediately inside the scorm directory, NOT inside a directory inside of that. So if the zipped scorm package is package.zip, the unzipped package directory should contain immediately inside of it the imsmanifest.xml. This is a common mistake and normally occurs when a SCORM author creates a package themselves and then selects that folder to compress. This places the content folder inside of another folder, The imsmanifest.xml is there, but it is 2 directories deep. To avoid this problem when zipping scorm content into a package, go INSIDE of the exported scorm folder, select all files inside, and compress them while all are selected. The resultant compressed directory has the imsmanifest.xml file in the first directory, immediately available to the moodle scorm loading process.
- when using linux based systems the filename imsmanifest.xml must be all in lowercase not IMSmanifest.xml or Imsmanifest.XML
- The SCORM authoring tool Articulate sometimes fails to create the imsmanifest.xml -Try exporting the package again and see if the manifest is generated.
- The SCORM authoring tool Articulate Presenter will publish packages where the imsmanifest.xml file is in the correct place, but there are several lines of white space in the manifest file if you do not fill out the Reporting and Tracking Options in Articulate Presenter for Keywords and LMS Description. Moodle will give a "Manifest not found" error when encountering this. To fix this problem select the Reporting and Tracking Options in the Articulate Presenter publish dialog and fill in the LMS Description and Keywords.
File not found error
You have this error if the scorm package is created in moodle, and the scorm menu loads, but inside of the viewing area for the scorm content, you get a page with a 404 file not found error, usually showing the current Moodle theme.
What this means is that one of the files listed in the imsmanifest.xml is not in the scorm package or not in the correct directory.
Download and unzip the package, open up imsmanifest.xml. At the bottom of the xml file, below any metadata, you'll find a place where organizations and resources for those organizations are designated:
<organizations default="TOC1">
<organization identifier="TOC1">
<title>SCORM Test</title>
<item identifier="I_SCO0" identifierref="SCO0">
<title>Library Quiz</title>
<adlcp:masteryscore>0</adlcp:masteryscore>
</item>
</organization>
</organizations>
<resources>
<resource identifier="SCO0" type="webcontent" adlcp:scormtype="sco" href="scorm.html">
<file href="scorm.html"/>
<dependency identifierref="ALLRESOURCES" />
</resource>
<resource identifier="ALLRESOURCES" type="webcontent" adlcp:scormtype="asset">
<file href="scorm.html" />
<file href="scorm.js" />
<file href="swfobject.js" />
<file href="scorm.swf" />
<file href="scormwrapper.js" />
</resource>
</resources>
</manifest>
In this xml, we have a single organization, and in that organization is a single resource, a single sco. There are 5 files necessary for that resource to work correctly. The scorm.html file is loaded first. It loads 3 external js files and a swf.
What you need to do now is go to the directory containing imsmanifest.xml, and check that all of those listed files are available at the correct path from imsmanfiest.xml, as listed in imsmanifest.xml. If any one of those files is missing (especially the html file or the swf), or if the paths in imsmanifest.xml are incorrect, then it's very likely that the scorm object won't be able to load at all.
Sometimes the files aren't missing, but are simply misnamed in the manifest, or placed in the wrong directory. You can fix this by moving the files to the correct places, or updating their names so that the imsmanifest and the actual file names match up. In the case of a misnamed file, change the manifest rather than the actual file names, since the files also reference one another in other places!
Unzip issues
If you get a blank page after filling in the title, description, and selecting a large SCORM file, it's likely you haven't installed the PHP-zip lib which is required for Moodle 2.x for more info see admin/environment/php extension/zip
Clear an Attempt
To clear attempts by a student:
- Go to the SCORM activity and select the link "View reports for x users"
- Select the attempt or attempts you want to clear using the checkbox
- Select Delete in the drop-down box at the bottom of the page
Handling of Multiple Attempts
SCORM is designed to allow a learner to exit and return at a later date to the same point they left from. This means that each time they enter the SCORM they are using the same single attempt. Some SCORM packages are intelligent about handling re-entry, many are not. What this means is that if the learner re-enters an existing attempt, if the SCORM content does not have internal logic to avoid overwriting cmi.core.lesson_status and cmi.core.score.raw, they can be overwritten by a lower score, confusing the learner.
When a SCORM sets the cmi.core.lesson_status value to 'completed', 'passed' or 'failed' then Moodle allows the user to create a new attempt by adding a Start new attempt checkbox to the entry page. If cmi.core.lesson_status is set to 'incomplete', 'browsed' or 'notattempted' the learner can only re-enter the existing attempt. If you are using the setting 'Student skip content structure page', this checkbox will never be shown to the user.
Moodle provides a range of settings to allow this to be controlled, some of these settings are hidden by default as advanced options.
- Number of attempts
- This allows the teacher to set how many SCORM attempts the learner may create - this is not how many times a learner can re-enter a SCORM attempt.
- Attempts grading
- This allows the teacher to set how multiple SCORM attempts(not re-entries) are graded. It is important to note that a 'failed' cmi.core_lesson_status allows a new attempt to be generated but the attempts grading setting "last completed attempt" only includes 'completed' and 'passed' values in it's calculations.
- Display attempt status
- This displays a users SCORM attempts and how their final grade is calculated on the SCORM entry page and the My Moodle page for the learner.
- Force completed
- This is a setting that can be used to force a SCORM package to report a 'completed' cmi.core.lesson_status if it doesn't currently set the value.
- Force new attempt
- This hides the Start new attempt checkbox and will force a new attempt if the previous attempt has cmi.core.lesson_status value to 'completed', 'passed' or 'failed' (disabling "review mode")- this setting can also be used to make sure a new attempt is generated when the 'Student skip content structure page' setting is used.
- Lock after final attempt
- This prevents access to the SCORM after the total number of attempts have been used - if this is not set the learner can re-enter their last attempt (in review mode) and potentially change/overwrite their score each time depending on how the SCORM package supports multiple re-entries.
Reducing Load Time with Captivate
- Modify the percent that must be downloaded before the content starts to play. In Captivate 4, there's a setting in: Preferences / Project / Start and End / Preload. Reduce that to 50%.
- If you use audio in your Cp file (as background or element attachment), try to put a gap of 0,1 second at the beginning of each element including audio on your slides. If you don't do that, Cp merge all the audio files in one big audio file it need to download before playing the project. This problem have been report many times from the Cp community.
Moodle changes cmi.core.lesson_status from "completed" or "passed" to "failed"
Many SCORM authorware suites generate a masteryscore node in the imsmanifest.xml by default. This node is not necessary to the XML file. But when it is there, the SCORM standard designates specific behaviour with regard to the value set there.
This can also be controlled in Moodle using the setting "Mastery score overrides status" If this setting is enabled and a mastery score is provided within your package, when LMSFinish is called and a raw score has been set, if the raw score is lower than the mastery score, the lesson status will be overridden and set to "failed"
Here's what is in the scorm standard, on page 35 of 155 in SCORM_1.2_ConformanceReq.pdf, numbered page 2-19 (SCORM Version 1.2 Conformance Requirements Version 1.2):
If the value for this element is not set to “incomplete” by the SCO, then the LMS shall re-evaluate and change the value based on the following:
- If there is no mastery score in the Manifest, and the SCO sets a score (cmi.core.score.raw) and the lesson_status (cmi.core.lesson_status) then the LMS shall not override the SCO determined status.
- If there is a mastery score in the Manifest, the LMS can change the status to either passed or failed depending on the student's score (cmi.core.score.raw) compared to the mastery score.
- If the student is taking the SCO for no-credit, (cmi.core.credit = “no-credit”) there is no change to the lesson_status, with one exception. If the lesson_mode (cmi.core.lesson_mode) is "browse", the lesson_status may change to "browsed" even if the cmi.core.credit is set to no-credit.
This can result in some functionality you don't intend. You can fix the problem by removing the mastery score node from your imsmanifest.xml file or by adjusting the Moodle setting "Mastery score overrides status". You may also want to find out what options you have, within your authorware suite, for the writing of that node into the manifest file, and change your authoring process accordingly.
The Rustici SCORM Cloud default operating behaviour for masteryscore is different from Moodle's default operating behaviour - you can see a little bit of the history around the way Rustici handle this here: http://scorm.com/blog/2010/09/anatomy-of-scorm-minutiae-mistake/
Player Look 'n Feel
You should be able to adjust height and width settings for the SCORM player window so long as your theme is based on/not too much of an aberration from one of the standard themes which ship with Moodle 2.
If your site or course theme isn't closely based on one of the standard M2 themes, then it's possible that your theme CSS is overriding local height and width settings for the SCORM player. Have a Web developer (or a Moodle Partner) examine how your theme is interacting with the player layout, and make changes to your theme as needed.
Why can't I just change it locally? You can change height and width per individual SCORM package, and you can set defaults for these local height and width values ( SCORM Admin Options ). Other things, such as colors, shading, borders, backgrounds, are controlled by CSS, just like everything else on the site.
Courselab 2.4
If you receive a " found more than one record!" error when trying to run your SCORM 1.2 package check the imsmanifest.xml file of your SCORM package and ensure that the values for <organization identifier> and <item identifier> are unique. To change the <organization identifier>, in Courselab, go to File > Course Runtime Settings. The dialog says 'Course identification in LMS' but changing the Identifier field is what sets the <organization identifier>. (see MDL-38060 for more information)
SCORM results deleted after package update
When uploading a SCORM package over a previous one, if the item identifier in the manifest file is different to the one being overwritten then the tracking data for that SCORM package in Moodle is deleted.
Ensure the item identifier is the same for the new SCORM resource
Problems with responsiveness
Sometimes SCORMs fail on responsiveness or the ability to scroll on mobile devices
- Moodle uses iFrames for deploying SCORM. https://community.adaptlearning.org/mod/forum/discuss.php?d=180#p863
- There can be some problems with this as they are not responsive in iOS https://community.adaptlearning.org/mod/forum/discuss.php?d=1446#p6687
- There are some potential work arounds.
- Totara has a new window. #https://community.adaptlearning.org/mod/forum/discuss.php?d=851#p3968
- This comment https://community.adaptlearning.org/mod/forum/discuss.php?d=787#p3661
- Solutions for Adapt: https://github.com/adaptlearning/adapt_framework/issues/210
- The tracker:
- https://tracker.moodle.org/browse/MDL-47500 problems with pages.
- https://tracker.moodle.org/browse/MDL-46563
- https://tracker.moodle.org/browse/MDL-50401
- Why iFrames fail with iOS, one person's view: https://community.adaptlearning.org/mod/forum/discuss.php?d=926#p4714
This seems to be a problem that lies between the browsers (e.g. faults in iOS) the creation of the SCORM package and the LMS (in this case the iFrames in Moodle).
One quite comprehensive idea for a work around is here: https://community.adaptlearning.org/mod/forum/discuss.php?d=180 but there is really no evidence at the moment of a nicer solution.
See also
- SCORM doesn't work blog post from developer Dan Marsden
- SCORM 2004 in Moodle blog post from developer Dan Marsden
- Identifiers to change with updated SCORM module
Forum discussions:
Any further questions?
Please post in the SCORM forum on moodle.org.