Grades to External LMS

Grades to External LMS

by Sergii Alexandrov -
Number of replies: 18

i am trying to configure Grading functionality to send grades to external LMS via LTI. I am configuring Canvas and Moodle, as well as Moodle and Moodle. I have local Moodle and I also use trial Moodle on website.
I am able to make LTI connection, and users successfully move from one LMS to another using LTI link.
However, I cannot send grades. I am not sure if I configure it correctly, and even if I configure grades in correct place. Is there any instruction, screenshots, video or at least comments how I can configure grades sending to external LMS. I am using Moodle 3.1
Thank you

Average of ratings: -
In reply to Sergii Alexandrov

Re: Grades to External LMS

by John Okely -

To double check, are you using Canvas (provider) in Moodle (consumer), or Moodle (provider) in Canvas (consumer)?

If you are using Moodle as a provider, run

php admin/tool/task/cli/schedule_task.php --execute="\enrol_lti\task\sync_grades"

And see if it works, if it doesn't perhaps copy the output here and we can see what the problem might be.

What version of canvas are you using?

In reply to John Okely

Re: Grades to External LMS

by Sergii Alexandrov -

Thank you for reply. The result is:


Execute scheduled task: Publish as LTI tool grade sync (enrol_lti\task\sync_grades)

Starting - Grade sync for shared tool '1' for the course '3'.

Skipping - Empty serviceurl for the user '8' in the tool '1' for the course '3'.

Completed - Synced grades for tool '1' in the course '3'. Processed 1 users; sent 0 grades.


Starting - Grade sync for shared tool '2' for the course '3'.

Skipping - Empty serviceurl for the user '14' in the tool '2' for the course '3'.

Skipping - Empty serviceurl for the user '13' in the tool '2' for the course '3'.

Failed - The grade '0.0055426395348837' for the user '11' in the tool '2' for the course '3' failed to send.

Skipping - Empty serviceurl for the user '9' in the tool '2' for the course '3'.

Skipping - Empty serviceurl for the user '8' in the tool '2' for the course '3'.

Completed - Synced grades for tool '2' in the course '3'. Processed 5 users; sent 0 grades.


Starting - Grade sync for shared tool '3' for the course '3'.

Skipping - Empty serviceurl for the user '12' in the tool '3' for the course '3'.

Skipping - Invalid grade for the user '11' in the tool '3' for the course '3'.

Skipping - Empty serviceurl for the user '10' in the tool '3' for the course '3'.

Completed - Synced grades for tool '3' in the course '3'. Processed 3 users; sent 0 grades.


Starting - Grade sync for shared tool '4' for the course '3'.

Failed - The grade '0.476667' for the user '11' in the tool '4' for the course '3' failed to send.

Completed - Synced grades for tool '4' in the course '3'. Processed 1 users; sent 0 grades.

In reply to Sergii Alexandrov

Re: Grades to External LMS

by John Okely -

Do you know which id the tool you are working on has?

Are you using launch URLs or proxy/registration URLs?

In reply to John Okely

Re: Grades to External LMS

by Sergii Alexandrov -

as i understand i am using tools 1-4

i am not sure i understand your second question. I am using Enrollment Method key and url to create LTI connection.


i made more tests and received 'Duplicate nonce detected' error. Please see the details below


Execute scheduled task: Publish as LTI tool grade sync (enrol_lti\task\sync_grades)

Starting - Grade sync for shared tool '5' for the course '5'.


Header:

(

    [0] => Authorization: OAuth realm="",oauth_version="1.0",oauth_nonce="2a5ccc62b43224448f4a70877efbf6d8",oauth_timestamp="1490797698",oauth_consumer_key="123",oauth_body_hash="U0HsJipsIPyQi%2Fc7yb2o7Cu%2FOwI%3D",oauth_signature_method="HMAC-SHA1",oauth_signature="TeZa76Ml7%2B6IJHyBxbcTX%2FAhNqA%3D"

    [1] => Content-type: application/xml

)


 Body:

<?xml version="1.0" encoding="UTF-8"?>

            <imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">

              <imsx_POXHeader>

                <imsx_POXRequestHeaderInfo>

                  <imsx_version>V1.0</imsx_version>

                  <imsx_messageIdentifier>1490797698</imsx_messageIdentifier>

                </imsx_POXRequestHeaderInfo>

              </imsx_POXHeader>

              <imsx_POXBody>

                <replaceResultRequest>

                  <resultRecord>

                    <sourcedGUID>

                      <sourcedId>5-2-7-6-18dc7ca3a05a44f1924650645707e006eda35662</sourcedId>

                    </sourcedGUID>

                    <result>

                      <resultScore>

                        <language>en-us</language>

                        <textString>0.57</textString>

                      </resultScore>

                    </result>

                  </resultRecord>

                </replaceResultRequest>

              </imsx_POXBody>

            </imsx_POXEnvelopeRequest>Array

   

   

Error Response from  http://canvas.org.com/api/lti/v1/tools/5/grade_passback

{"errors":[{"message":"Duplicate nonce detected"}],"error_report_id":1136}


Failed - The grade '0.57' for the user '16' in the tool '5' for the course '5' failed to send.

Completed - Synced grades for tool '5' in the course '5'. Processed 1 users; sent 0 grades.

In reply to Sergii Alexandrov

Re: Grades to External LMS

by Sergii Alexandrov -

seems 'Duplicate nonce detected' is a Canvas issue. I managed grading passing between 2 Moodles. 


Can you please review and consider the following scenario


I have a Course with many modules. Each module has its own Quiz and Test. For example

Module 1 has Quiz 1 and Test 1
Module 2 has Quiz 2 and Test 2

and so on


Can I make LTI link to a course, so that user comes from external LMS, passes Quiz 1, Test 1, Quiz 2 and Test 2. After that I move all 4 grades to external LMS gradebook?

or I need to make separate LTI link for each Quiz and Test for passing all grades to external LMS gradebook?

In reply to Sergii Alexandrov

Re: Grades to External LMS

by John Okely -

Unfortunately it's not yet possible for LTI provider to report back multiple gradebook items to the consumer.

To vote for this feature to be added, vote at https://tracker.moodle.org/browse/MDL-55644

Unfortunately if individual grades need to be shared, each will need to be shared via LTI separately. If you share the whole cause it will report back the course grade instead (based on the individual items)

Average of ratings: Useful (2)
In reply to Sergii Alexandrov

Re: Grades to External LMS

by Tansu PANCAR -

Hello Sergii and John,

Can you explain how you solved the problem of passing grades between two moodle?

Both my provider and consumer are moodle with versions 3.3.6+ and 3.3.5+ respectively.

In the provider side a quiz is published as LTI tool (with ID 12) and added as an external resource in the consumer part.

 

When the user logins to LTI Consumer Moodle and opens the activity, accessing the quiz has no problem, and all questions are answered and user submits the answers, view his grade and closes the window. 

In the consumer side, the grade is not listed.

In the provider side,  the grade is also not listed, from the logs, it is possible to track when the user started the activity and submitted, but there is no grade.

In the database, in "mdl_quiz_grades" table, I can view the grade from the activity.

 

When I run below code: 

php admin/tool/task/cli/schedule_task.php --execute="\enrol_lti\task\sync_grades"

 

The outcome is like this:

 

Starting - Grade sync for shared tool '12' for the course '98'.

Failed - The grade '0.85714285714286' for the user '756' in the tool '12' for the course '98' failed to send.

 

Do you have any suggestions to analyze the problem?


In reply to Sergii Alexandrov

Re: Grades to External LMS

by v k -

I have 'Skipping - Empty serviceurl', too. Did you manage to fix that?

I connected BB's CourseSites as LTI Consumer to Moodle as LTI Provider, and serviceurl and sourceid fields in table enrol_lti_users are empty. How they're filled?


Thank you, appreciate help.

In reply to v k

Re: Grades to External LMS

by John Okely -

These are given by the consumer so it's possible that blackboard is not providing them.

We can check by reviewing the request sent to moodle from blackboard when the tool is first used by a new user.

In reply to John Okely

This forum post has been removed

The content of this forum post has been removed and can no longer be accessed.
In reply to Deleted user

This forum post has been removed

The content of this forum post has been removed and can no longer be accessed.
In reply to Deleted user

Re: Grades to External LMS John Okely

by John Okely -

Have you set up the shared activities/courses on your LTI consumer yet? (This needs to be done first) If so, it should sync the grades when you run that command

Average of ratings: Useful (1)
In reply to John Okely

This forum post has been removed

The content of this forum post has been removed and can no longer be accessed.
In reply to Deleted user

Re: Grades to External LMS John Okely

by John Okely -

Wait are you using moodle as the consumer or provider?

Grades should be synced from that test tool back to moodle instantly (go to "Outcomes 1" and click update and type a number from 0-1)

The script I mentioned is for the opposite, when moodle is the LTI provider.

Average of ratings: Useful (1)
In reply to John Okely

This forum post has been removed

The content of this forum post has been removed and can no longer be accessed.
In reply to Deleted user

Re: Grades to External LMS John Okely

by John Okely -

I noticed your site is https. Can you try with https://lti.tools/test/tp.php instead?

In reply to John Okely

This forum post has been removed

The content of this forum post has been removed and can no longer be accessed.