The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
I am trying to use the variables that LTI has to obtain information on the sections of a course (http://www.imsglobal.org/specs/ltiv1p1/implementation-guide#toc-19), but when using them in the lti element: custom of the MXL structure that the application invokes, the values are not being loaded.
The only variable that loads information is $Course.Section.sourceId but it brings the data of the course.
How should I use the variables?.
Should an additional configuration be done?
<blti:launch_url>https://edouibeta.engdis.com/Runtime/customIncludes/Canvas/Entrance.aspx</blti:launch_url>
<blti:custom>
<lticm:property name="custom_canvas_section_id">$CourseSection.sourcedId</lticm:property>
<lticm:property name="custom_canvas_section_label">$CourseSection.label</lticm:property>
<lticm:property name="custom_canvas_section_title">$CourseSection.title</lticm:property>
<lticm:property name="custom_canvas_section_shortDescription">$CourseSection.shortDescription</lticm:property>
<lticm:property name="custom_canvas_section_longDescription">$CourseSection.longDescription</lticm:property>
<lticm:property name="custom_canvas_section_courseNumber">$CourseSection.courseNumber</lticm:property>
<lticm:property name="custom_canvas_section_credits">$CourseSection.credits</lticm:property>
<lticm:property name="custom_canvas_section_maxNumberofStudents">$CourseSection.maxNumberofStudents</lticm:property>
<lticm:property name="custom_canvas_section_numberofStudents">$CourseSection.numberofStudents</lticm:property>
<lticm:property name="custom_canvas_section_dept">$CourseSection.dept</lticm:property>
<lticm:property name="custom_canvas_section_timeFrameB">$CourseSection.timeFrame.begin</lticm:property>
<lticm:property name="custom_canvas_section_timeFrameE">$CourseSection.timeFrame.end</lticm:property>
<lticm:property name="custom_canvas_section_accept">$CourseSection.enrollControl.accept</lticm:property>
<lticm:property name="custom_canvas_section_allowed">$CourseSection.enrollControl.allowed</lticm:property>
<lticm:property name="custom_canvas_section_dataSource">$CourseSection.dataSource</lticm:property>
<lticm:property name="custom_canvas_section_sourceSectionId">$CourseSection.sourceSectionId</lticm:property>
</blti:custom>
Message Variable Name | XPath for value from LIS Database |
$CourseSection.sourcedId | courseSection/sourcedId |
$CourseSection.label | courseSectionRecord/courseSection/label |
$CourseSection.title | courseSectionRecord/courseSection/title |
$CourseSection.shortDescription | courseSectionRecord/courseSection/catalogDescription/shortDescription |
$CourseSection.longDescription | courseSectionRecord/courseSection/catalogDescription/longDescription |
$CourseSection.courseNumber | courseSectionRecord/courseSection/courseNumber/textString |
$CourseSection.credits | courseSectionRecord/courseSection/defaultCredits/textString |
$CourseSection.maxNumberofStudents | courseSectionRecord/courseSection/maxNumberofStudents |
From the IMS doc you are referring to "Support for substitutable custom parameters is optional and the TP should anticipate that these parameters may come from the TC in their unsubstituted form."
That is, the TC does not necessarily send these.
The custom variables Canvas has can be found at: LTI Variable Substitutions
Thank you Peter,
but how a Canvas user can configure TP anticipate that these parameters may come from the TC?
For Canvas, you put the variable substitutions in the tool's configuration. This could be manually entered, in an XML file, or by a URL.
So, for example, if your tool needs to know what sections a user is enrolled in, in Canvas you could add sections=$Canvas.course.sectionSisSourceIds in the tool's Custom Fields and then when the tool is launched the sections will be in the parameter custom_sections.
Or for file/URL configuration, your XML would include something like:
<blti:custom>
<lticm:property name="sections">$Canvas.course.sectionSisSourceIds</lticm:property>
</blti:custom>
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in