How do get access to Interaction Data programmatically

First let me outline what I am trying to do and what my current restrictions are.
Captivate Version: 5 and 6 (but really only 6, they are in the process of upgrading everything to 6)
What I need:
- Access to the Quiz's interaction data for each question.
- I would like to have access to it utilmately in JavaScript.
Restrictions:
- The CBTs are hosted on a SharePoint site that I cannot modify, other than what is possible as a site admin (so no Internal server reporting)
- An LMS is also not an option
My current setup:
I created an aspx page in SharePoint to load the desired Captive file by query string.  I created a JavaScript file to help me communicate with Captivate and capture the basic quiz results (pass/fail, total points, unanswered quiestions, etc) using the cpEIGetValue method.  My JavaScript results function (SubmitQuiz()) is called from the Captivate file on either a submit results button click or the OnPass/OnFail events.  With the result data in JavaScript, I then post (ajax) the results to a SharePoint list using the List web service.
I know I can get each question's answer by having the captivate call a JavaScript method on question submit, but I was trying to avoid that (it means a fair amount of updates to each CBT), and even then I don't think that will give me access to all the interaction data that is provided when you use the internal server reporting method.  Captivate is clearly tracking the data that I want, I just can't find a good way to get to it.
I have spent a decent amount of time researching this and any help with this will be greatly apperiated. 

Erik -
Thanks for your reply!
I assumed the internal server meant local server or at least server on the same network, either way that is not an option for me.  The CBTs are in SharePoint, which we don't control and would not be allowed to put an aspx page or other handler to process the post and we arent allowed to setup a service or page somewhere to post to.  Unless if the CBT can post across the internet to a remote server, then its a no go.
I thought have the SCROM approach and rewriting it all, but I have limited time for this and that just looked like a big headache.  I have read the posts on piperworks that show you how to clean up the code, I may have to revisit it at some point, if they really want me to.
I will also see if I can modify the CP calls back to the API, do you know where those are made? Or are they just the OnSuccess/OnLastAttempt actions on the quiz? If so, that is the solution I ended up going with.
Using the JavaScript API, user variables and some advanced actions on the OnEnter/OnSuccess/OnLastAttempt I was able to get pretty much all the interaction results that are stored. The only ones I could not seem to get, were the ObjectiveID, InteractionID and the CorrectReponse.  However, instead of InteractionID I am now using the slide name.  I put a Advanced Action on the OnEnter event of the slide, which is used to set a user variable (v_QuestionStartTimeMS) to cpInfoElaspedTime. By doing so I can calculate the latency in the OnSuccess/OnLastAttempt events (v_QuestionTimeLengthMS = cpInfoElaspedTimeMS - v_QuestionStartTimeMS). The rest of the OnSuccess/OnLastAttempt advanced action calls a JS method.  OnSuccess passes true, OnLastAttempt passes false to the TrackResult function.
I am using the jQuery extend method to load objItem. 
$.Results.GetDate() gives my the date as a string. MM/DD/YYYY
$.CapHelper.GetVariable() a wrapper method I have that ends up calling cpEIGetValue()
$.Results.GetTimeStr() converts MS to HH:MM:SS.mmm string format.
function TrackResult(result) {
    var objItem = $.extend({}, $.Results.Objs.ResultQuest, {
        ResultDate: $.Results.GetDate() + " " + $.CapHelper.GetVariable("cpInfoCurrentTime"),
        SlideName: $.CapHelper.GetVariable("cpInfoCurrentSlideLabel"),
        InteractionID: "",
        ObjectiveID: "",
        InteractionType: $.CapHelper.GetVariable("cpQuizInfoQuestionSlideType"),
        CorrectResponse: "",
        StudentResponse: $.CapHelper.GetVariable("cpQuizInfoAnswerChoice"),
        IsCorrect: result,
        Weight: $.CapHelper.GetVariable("cpQuizInfoPointsPerQuestionSlide"),
        Latency: $.Results.GetTimeStr($.CapHelper.GetVariable("v_QuestionTimeLengthMS"))
    _objResultDetails.push(objItem);
I was hoping for a more elegant solution where I could just get all the data at the end of the quiz, like the internal server reporting option and send it all back at once.  Captivate is clearly tracking all that data, it would be nice if they exposed it so you could do what you want with it.
Again, thanks for your input Erik. I will look into what you suggested as time permits.
Phil

Similar Messages

  • How to get access to Row Data (Child Text) in a Tree Control Pragmatically?

    In LabVIEW 2010, I have entered Row Data into a Tree Control pragmatically using the Add Item method and providing the Child Text array and the Child Tag for the Row. When a Row in the Tree Control is selected, I can get the Row Tag in the Value Property of the Tree. But how do I access the Child Text array data when the Row is selected? I can't seem to find a Tree Control Property or Method that will return that data back again.
    What I am trying to do is: once a Row in a Tree is selected and a button is pushed, if the Row Tag is valid, I want to transfer all of the Row data into another similarly formatted Tree. To do that I need the Row Data for the Tree and Row that was selected. I can not find a way to get access to this Row Data after it has been entered into the Tree.
    Can anyone tell me how to pragmatically access the Child Text or Row Data in a Tree Control from a selected Row in the Tree? I have the Tag for the Row, but how do I access the data?
    Thanks for your assistance.
    Solved!
    Go to Solution.

    As mentioned in the posting here, you can use the Active Item:Tag property to set the item to which subsequent property changes apply. This includes pulling the Active Celltring values out in a for loop as you increment the Active Cell:Active Column Number to get the row's Child Text data programmatically as I was originally wanting to do.
    Note that wiring a 0 to the ActiveColNum property and reading the String value will return the tree item's visible name (in column 0), but not the unique item Tag (which is somewhat intangible after its creation). Therefore, I save the unique item tag when I add the item to the tree control (the output of the Add Item invoke node) and store it as a separate column of the Child Text array and place it out of sight in the tree control so I have access to it later. It might be useful, it might not.
    I find the tree control totally non-intuitive and not well explained anywhere, but that's how a lot of LabVIEW coding is I guess. Play with it long enough and you become an expert. I had to learn the hard way, but I hope this helps someone else.
    -Richard
    "Computers are useless. They can only give you answers." - Pablo Picasso

  • I loos my APPLE ID, I have a new one, how can get access to data stored in the old one?

    I loos my APPLE ID, Now I have a new one, how can get access to data stored in the old one?

    Do you have the email & password of the old Apple ID?

  • ICloud storage space used up by old data from 1st gen iPad I traded in nearly 2 yrs ago for an iPad Mini. Can't backup any info for mini or new 6 plus. How can I access this old data to clear it out?

    My iCoud storage space is being used up by old data from a 1st  generation iPad I traded in nearly 2 yrs ago for an iPad Mini. The people at the sprint store where I made my trade were supposed to transfer everything over from my old iPad to the new Mini once they backed up the old device to iCloud. Well, long story short, none of the data ever got transferred to the new iPad, but it all got backed to iCloud, eating up all my storage space. Here I am almost 2 years later, and I've never been able to back-up my iPad mini. What's worse, My iPhone 4 wasn't backed up that whole time, and now I can't back-up my data from my new iPhone 6 Plus to iCloud either. Trying to find creative ways to store and save my information and data between all my devices is getting to be ridiculous. I don't want to upgrade my storage space though...just want to clear out a great deal of what is already being stored. How can I access this old data to clear it out?

    The only way to access data from an iCloud backup is to restore it to your device.  You could, for example, back up your iPad mini to your computer using iTunes (by connecting it, opening iTunes, then going to File>Devices>Back Up and choosing to back up apps and transfer purchases when prompted), then erase it and restore the old iPad backup (as explained here: iCloud: Restore or set up your iOS device from iCloud), save any recovered data you want to keep, then restore your iTunes backup back to your iPad mini (by connecting it to your computer, opening iTunes, then going to File>Devices>Restore from Backup).
    Once you're done with the old backup, delete it from your account to free up the space.

  • How to get the plsql table data into output cursor

    Hi,
    Could anybody please help me.
    Below is an example of the scenario..
    CREATE OR REPLACE PACKAGE chck IS
    PROCEDURE getdata(dept_no IN VARCHAR2,oc_result_cursor OUT sys_REFCURSOR);
    TYPE get_rec is record (ename varchar2(20),
    eno number(12));
    TYPE t_recs IS TABLE OF get_rec INDEX BY BINARY_INTEGER;
    emp_tab t_recs;
    END chck;
    CREATE OR REPLACE PACKAGE BODY chck AS
    PROCEDURE getdata(dept_no IN VARCHAR2,oc_result_cursor OUT sys_REFCURSOR)
    is
    BEGIN
    select ename, eno
    bulk collect into emp_tab
    from emp;
    open oc_result_cursor for select * from table(emp_tab); -- I believe something is wrong here ....
    END;
    END chck;
    the above package is giving me an error:
    LINE/COL ERROR
    10/29 PL/SQL: SQL Statement ignored
    10/43 PL/SQL: ORA-22905: cannot access rows from a non-nested table
    item
    let me know what needs to be changed
    Thanks
    Manju

    manjukn wrote:
    once i get the data into a plsql table, how to get this plsql table data into the cursor?There is no such thing as a PL/SQL table - it is an array.
    It is nothing at all like a table. It cannot be indexed, partitioned, cluster, etc. It does not exist in the SQL engine as an object that can be referenced. It resides in expensive PGA memory and needs to be copied (lock, stock and barrel) to the SQL engine as a bind variable.
    It is an extremely primitive structure - and should never be confused as being just like a table.
    Its use in SQL statements is also an exception to the rule. Sound and valid technical reasons need to justify why one want to push a PL/SQL array to the SQL engine to run SELECT 's against it.

  • How to get ArrayCollection's total data after filter

    after i use filterFunction to filter data of some
    ArrayCollection. so how to get the total original data of this
    ArrayCollection?
    NOT use filterFunction = null, because i use the filter data
    to show at the same time!
    thank you!

    You can get the underlying array by accessing the
    ArrayCollection's "source".

  • How to get access to my iCloud back up when setting up a new iPhone 5s which needs the newest version of iOS7 first?

    how to get access to my iCloud back up when setting up a new iPhone 5s which needs the newest version of iOS7 first?

    Set up the new phone as a new iPhone (without using your backup), then update it to the latest iOS (7.1.2).  Then go to Settings>General>Reset, tap Erase All Content and Settings, go through the setup screens again and when given the option, choose Restore from iCloud Backup and follow the prompts.  This process is explained in more detail here: iCloud: Restore your iOS device from iCloud.

  • How to get the user entered data?

    Hi all,
    I have created an HTMLB DynPage component.
    In That i have created my input screen with textboxes using response.write method.
    i have added one onConfirm event on which the data whould validate.
    so onConfirm method im trying to get the data with request.getParameter method which returns null...
    how to do...how to get the user entered data to do my validations...can anyone plz advice.
    Thanks,
    Viswes

    Hi
    inputfield or textbox component entered directly using response.write(...) are not htmlb , but html.
    to create portal input field (ie HTMLB), you should do something like
    this in the doProcessBeforeOutput member function
    InputField field1 = new InputField("Id1");
    field1.setSize(8); // 8 characters
    this.getForm().addComponent(field1);
    and in doProcessAfterInput member function
    InputField field1 =
    (InputField) this.getComponentByName("Id1");
    you can then manipulate the content of the field.
    Hope this help,
    Guillaume

  • TS1538 I have just purchased an iPhone5 and created a new user instead of using my previous ID. How can I access my previous data?

    I have just purchased an iPhone5 and created a new user instead of using my iPhone3 ID. How can I access my previous data?

    don't just sign out!
    if you simply sign out, the stuff you recently purchased will be an issue in the future when an update comes out for apps or anything else. restore the device as new from itunes then restore from a back if you have one as stated above...or set up as new and use correct apple id. this will ensure you will be using the apple id that you used originally without issues from the new one.

  • Photostream Issue - I have had several phones over the years all backing up via iCloud/Photostream. It seems that the oldest of my photos and videos are simply gone and I cannot seem to figure out how to get access to them. Why is this happening?

    Photostream Issue - I have had several phones over the years all backing up via iCloud/Photostream. It seems that the oldest of my photos and videos are simply gone and I cannot seem to figure out how to get access to them. Why is this happening? Is there anything I can do to get them back? I'm freaked out by the thought that I am paying for what I thought was a safe place for my photos to be stored and accessed later but now see that there are nearly 500 pictures/videos gone from my photostream folder. Any help would be greatly appreciated. Thank you. - Michael

    Hi newmarket,
    Photo Stream is not a respository for archiving photos. It is a cloud storage device that will store the last month or last 1000 photos taken by any device on the same Apple ID, and then will "share" those photos with all other devices that have Photo Stream turned on,and that are logged onto the same Apple ID.
    iCloud backups will contain all of the photos that were on your camera roll the last time you backed up your device.
    If you have photos outside of the Photo Stream parameters, and they are not all on your current camera roll, then you have no way to retrieve them unless you have imported them to the computer you sync with or have uploaded them to some other cloud service like DropBox.
    Sorry,
    GB

  • How to get length of a data field

    Hi Experts,
    How to get length of a data field. For example data field /BIC/0COSTCENTER length is 9. and the entry in the table is /BIC/0COSTCENTER = 1000 only. How to get the lenth of value in the table.
    Any help greatly appreciated. Thanks.
    Best Regards,
    Suresh.

    Below is example  code
    Data: var1(10) type c value '2500',
          var2 type i.
    var2 = Strlen( var1 ).
    write var2.
    <b>Reward Points for helpful answers</b>
    Satish

  • Qosmio G30-126 - How to get access to the bios!

    I have a laptop Qosmio G30-126 and I don't know the key for entering the bios to change to properties for the HDD or any thing... so how to get access to the bios? what is the key for the bios??

    Hi
    Try to press the F2 button while powering the unit.
    Older Toshiba notebooks supported the ESC and then F1 button
    So these two options are possible

  • How can get difference between 2 dates in the form of days

    how can get difference between 2 dates in the form of days

    Hi,
    Check the following program:
    REPORT ZDATEDIFF.
    DATA: EDAYS   LIKE VTBBEWE-ATAGE,
          EMONTHS LIKE VTBBEWE-ATAGE,
          EYEARS  LIKE VTBBEWE-ATAGE.
    PARAMETERS: FROMDATE LIKE VTBBEWE-DBERVON,
                TODATE   LIKE VTBBEWE-DBERBIS DEFAULT SY-DATUM.
    call function 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
      exporting
        i_date_from          = FROMDATE
        i_date_to            = TODATE
      I_FLG_SEPARATE       = ' '
      IMPORTING
        E_DAYS               = EDAYS
        E_MONTHS             = EMONTHS
        E_YEARS              = EYEARS.
    WRITE:/ 'Difference in Days   ', EDAYS.
    WRITE:/ 'Difference in Months ', EMONTHS.
    WRITE:/ 'Difference in Years  ', EYEARS.
    INITIALIZATION.
    FROMDATE = SY-DATUM - 60.
    Regards,
    Bhaskar

  • How to get current time and date??

    How to get current time and date from my PC time and date to the java application??
    i use java.util.* package but got error, that is:
    - java.util.* and java.sql.* class are match
    - abstract class cannot be instantiated
    so what can i do, pls guide...thanks...

    There is a method in the System class that will return the current system time. You could also instantiate a Date, Time, Timestamp, or Calendar object, all of which get created with the system time by default.
    Don't import *. Import the specific classes you need.
    Next time, post the actual text of the exceptions/compile errors. If you make people guess, most just won't bother.

  • How to get access to the OCM toolkit  ?

    how to get access to the OCM toolkit  ?
    the full version not the demo !

    I need to know how to do a complex query my task is to find out the names of people allergic to paracetomol and penicilllin from a list of names??? I REALLY NEED HELP ITS DUE IN TODAY!
    TASK: show the Pupils: forename, Pupil surname, Year group, teacher in charge to all children allergic to penicillin and paracetmol from the table of names (not everyones allergic) How do I query it!?????????
    <a href="http://www.ornsoft.com/">Custom software development</a>
    <a href="http://www.aconsultancy.co.uk">Acquisition Search Warwickshire</a>

Maybe you are looking for