Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
1

Storing Captivate Test Scores in a Database

Guest
Nov 08, 2007 Nov 08, 2007
I've been tasked with capturing data (the quiz results) from Captivate 2 in a database. I've tinkered around with exporting the course for SCORM 1.2 and 2004 and modifying the wrapper, but since I don't have a proper API in place, it's not communicating the data. If anyone knows how to "hotwire" it to send an xmlhttprequest (or just get the scores into plain ol' javascript), that would be fantastic.

I've already looked at the dev article ( http://www.adobe.com/devnet/captivate/articles/store_cpresults.html) for intercepting the data as it's sent via the email function.

This would be perfectly fine except that the user has to click a button to submit the results. I'm not sure how to have captivate trigger the email function when the results slide loads.

Another route I thought about taking would be to use Captivate's "Execute Javascript" under "Project end options." This would be ideal, but I don't know what variable names to use to send the user's score. This would be a cleaner way than grabbing the data from the send email function, but I'll go with whatever works.

I'd appreciate any help with capturing the quiz scores as I'm now getting desperate for some sort of acceptable solution.

Thanks!


-edit-

It looks like _percentCorrect is the variable I want to use from Flash, but I'm not sure how to get it out of ActionScript and into Javascript. It seems to escape quotes. If I do alert("hi");, it'll pop up an alert box with "hi" in it.

If I do alert(_percentCorrect);, it throws an error like you might expect. I was hoping that I could do something along the lines of alert("+_percentCorrect+");, but that just alerts the text "+_percentCorrect+". (same with single quotes)

TOPICS
Quizzing and LMS
6.5K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Deleted User
Nov 08, 2007 Nov 08, 2007
I think I may be on to something.

If captivate won't give up the variable willingly, then I can always steal it. I'm working on a swf to "wrap" the captivate file in that will snatch the score up once it's calculated. I'm not sure if this'll work, but it seems to be the most promising idea I've had thus far.

I can access the test score like this:
container.slide X_scoring_mc._scoreDisplay._percentCorrect

The only problem is the "X" part. That's the slide number that the test is located on (w...
Translate
Guest
Nov 21, 2007 Nov 21, 2007
Hi BurTech,
I just got done talking to the company that I hired to do my website (not the actual ASP.NET developer). They told me that a Flash developer needs to set up the files correctly. This sounds contrary to your ASP suggestion above.

I'm teetering on understanding the tech talk. I guess I'm wondering if it's possible for their ASP.NET programmer to collect & process the Captivate quiz data - thus preventing me from having to hire a Flash developer.

Here is what they said:

"its the responsibility of you and your flash developer to:

1) Define what data you want to track in the flash application
2) Pass the data to an external store sop we can manipulated like a php
page, URL or else.
3) Tell us what data he will be passing and its format so our developer
can manipulated."

Any thoughts?
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 21, 2007 Nov 21, 2007
This company dont know the different from a flash file built from scratch and a captivate swf??
You have no control of what variables captivate uses.
I used an asp script to send captivate data to the lms and I dont know anything about flash.
Sounds to me they are passing the buck back to you to let you do their job for them.

Yes, its possible for their ASP.NET programmer to collect & process the Captivate quiz data.
All they have to do is follow the coldfusion example listed in this thread.
If they cant look at the coldfusion code and translate that into ASP.NET script.
Then you need to look for a new development company.




quote:

Originally posted by: Mr_Mike_M
Hi BurTech,
I just got done talking to the company that I hired to do my website (not the actual ASP.NET developer). They told me that a Flash developer needs to set up the files correctly. This sounds contrary to your ASP suggestion above.

I'm teetering on understanding the tech talk. I guess I'm wondering if it's possible for their ASP.NET programmer to collect & process the Captivate quiz data - thus preventing me from having to hire a Flash developer.

Here is what they said:

"its the responsibility of you and your flash developer to:

1) Define what data you want to track in the flash application
2) Pass the data to an external store sop we can manipulated like a php
page, URL or else.
3) Tell us what data he will be passing and its format so our developer
can manipulated."

Any thoughts?


Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Nov 21, 2007 Nov 21, 2007
wow, thanks for the great insight!!!! I'll send that URL to them.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Nov 21, 2007 Nov 21, 2007
I agree with BurTech. If your vendor can't look at the Dev Center article and figure it out, you need to find someone else.

The process doesn't require Flash and isn't even that hard. I wanted so see how hard it would be, so using the example in the Dev Center article I created a custom database write routine in classic ASP using Dreamweaver. It took maybe an hour. I wouldn't expect ASP.Net to be any different.

While my sample solution certainly isn't suitable for production use, it does prove that it can be done and any competent web developer should be able to comprehend the developer center article easily.

BurTech's suggestion to have the vendor parse the gstrEmailBody variable itself is also a very good one. It's more work to do it that way but you also have access to the full array of Captivate data that's available through the various Quiz Manager settings.

Tim understandably grabbed only the minimum required values in his Dev Center example, but you may also be interested in things like elapsed time and how users answered each interaction. Assuming you set it up appropriately in Quiz Manager, all those things are in the gstrEmailBody variable and you just need to pull them out, which is a bit of work but worthwhile if you're interested in such things.

A quick look at the Dev Center article reveals the answers to all the vendor's questions:


1) Define what data you want to track in the flash application

If you change the sendMail() function in your published HTM file to look like this:

function sendMail()
{
alert(gstrEmailBody);
... original code continues here ...
}

then you'll see all the data that's available if you pass the gstrEmailBody variable itself. Otherwise, the Dev Center article makes only the following data available:

- name (entered manually on the form created on page 3 of the article)

- course (hardcoded in the Dev Center article but can be pulled dynamically from the HTM title if you specify it in the properties of your Captivate project [File menu | Properties])

- total (total possible points)

- correct (number of points the user got)

- score (Captivate-calculated score)


2) Pass the data to an external store sop we can manipulated like a php
page, URL or else.

Whatever that means. The Dev Center article already does this. On page 3, the code sends the results to a page named insert.cfm but you can change this to your own page that does your own special magic with the data.


3) Tell us what data he will be passing and its format so our developer
can manipulated."

The data elements are listed above and are sent via a simple web form. If they can't figure that out from the Dev Center article, they're obviously gypsies who are trying to fleece you by posing as web developers.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 31, 2008 Jan 31, 2008
I am building something requiring tracking of reporting info from Captivate swf files from within another flash file. Instead of intercepting SCORM calls, using the Captivate swf variables would be ideal. Is there a resource for finding variable names such as the _percentCorrect identified by Mr. Thomson, as there are for Captivate swf slide controls?

If not, is decompilation the only option? Do you know of good resources for hacking Captivate swfs for complex projects?

Thank you.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Jan 31, 2008 Jan 31, 2008
I couldn't find any documentation about Captivate's internal variables and found that decompiling it was the best option. You may have better luck than I, though.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 04, 2008 Feb 04, 2008
LATEST
Thanks, Keith.

I posted a new question in this forum today, 2-3, to attempt a different approach, and to avoid decompiling if possible. This alternative tries to capture LMS calls by the Captivate with my wrapper flash file. Please check it out if you might have an answer.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Help resources