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
Grades to External LMS
Number of replies: 18Re: Grades to External LMS
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?
Re: Grades to External LMS
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.
Re: Grades to External LMS
Do you know which id the tool you are working on has?
Are you using launch URLs or proxy/registration URLs?
Re: Grades to External LMS
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.
Re: Grades to External LMS
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?
Re: Grades to External LMS
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)
Re: Grades to External LMS
Thank you John.
Your assistance is highly appreciated!
Re: Grades to External LMS
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?
Re: Grades to External LMS
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.
Re: Grades to External LMS
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.
This forum post has been removed
This forum post has been removed
Re: Grades to External LMS 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
This forum post has been removed
Re: Grades to External LMS 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.
This forum post has been removed
Re: Grades to External LMS John Okely
I noticed your site is https. Can you try with https://lti.tools/test/tp.php instead?