ActivityId is null for Discussions and Assignments, but is populated for Quizzes

John.M.2294
John.M.2294 Posts: 3 🔍
What is the process or configuration that results in an ActivityId being null? I manage a tool that allows an institution to design a course and export it to D2L Brightspace. In order to do this we rely on forming urls like this one:

/d2l/common/dialogs/quickLink/quickLink.d2l?ou={COURSE_OFFERING_IDENTIFIER}&type=discuss&rcode={ACTIVITYID}

This works for most partners that provide ActivityIds that can be appended to the rcode= portion at the end of the url to complete it. But if that id is null we cannot include the activity in the appropriate module as part of the export. We have a similar issue with Assignments.

Interesting although the ActivityId is null for quizzes, the D2L API adds an id in the form of rcode={INSTALLATION CODE-UNIQUE VALUE} to the url property when we run our export to Brightspace, but it does not have the same behavior for Assignments and Discussions.

It is unclear when this Unique Value is actually generated.

Is there an admin setting that enables or disables the creation and assignment of ActivityIds? Why would one Institution have them and another not? We work with several other partner institutions that have working integrations between our external tool and D2L Brightspace with no issues running successful exports.

In some cases when an assignment or discussion is manually created we see an ActivityId in the following format: "TBR-UNIQUE VALUE". We have not found documentation directly referencing this TBR-value, but we believe it is a temporary value representing something like "To Be Removed" or "To Be Resolved". What is this TBR value and when/how is it generated?

Any feedback from the Community or links to documentation related to this issue would be greatly appreciated!

Answers

  • Stefanie.B.518
    Stefanie.B.518 Posts: 554 admin

    Hi @John.M.2294

    I think the hard answer to give here is that this is not a recommended approach as the urls themselves can change at any time.

    I'm not a Developer by background but checked in with a few wonderful ones here at D2L and they each had the same initial response which was to recommend not building a solution that expects urls to remain the same indefinitely as these are subject to change without notice.

    However, API calls like this one give you the flexibility to target areas of the platform in a slightly different way and give you notice if something may change in future.

    This API may not allow you to do everything you want to do- but it would offer a more stable path forward

  • John.M.2294
    John.M.2294 Posts: 3 🔍

    Thanks for taking the time to review and respond to my post, Stefanie!

    We did our due diligence and attempted some tests with the LTI Link ID via the API as you suggested (we do make use of the D2L API extensively already), but the content we export to the LMS are then marked as "External Learning Tool" and the link attempts to redirect back to our web application, which is not at all the desired behavior.

    I appreciate the point of view on urls being subject to change, we are aware of that possibility. It is also possible for the D2L API to update/change over time, granted that would be documented and appear in change logs that we periodically review. But either way, we would need to alter code to account for that…but neither of those things are the current issue we are facing here.

    Quizzes, Assignments, and Discussions all need to export as the proper types for our integration to work. The real problem we have, which was not addressed in the response above is that all of the institutions we work with on D2L produce the types of content (Quizzes, Assignments, and Discussions) with an associated Activity ID. The problem we are facing currently is not a malformed url. It is an issue with an existing activity in the LMS having an Activity ID as null. Regardless of our current use-case, I would like to get more information from the D2L Development team about the particular configurations/settings a system admin would make on their end to even allow things like Assignments and Discussions to be created without a value in the Activity ID field. How is that controlled?

    Is there someone you could connect me with on that team to discuss how that is possible? Or is their documentation you can point me to?

    The only mention of it I have found so far is here:

    https://docs.valence.desire2learn.com/res/content.html

    Thanks again for looking into this.

  • Matt.J.517
    Matt.J.517 Posts: 5 🌱

    Could you share the outcome in here? It's not a unique problem for John but one that seems to be coming up for me too. When creating a Discussion Forum via the API you'll get the ForumId in response. But to add a discussion post, and connect it to a Topic I am assuming I'll need a return rcode / ActivityID in order to generate the URL needed (for setting up the topic).

    Could @Andrea.C.686 or @John.M.2294 share what happened next in this example please?

  • Stefanie.B.518
    Stefanie.B.518 Posts: 554 admin

    @Matt.J.517 It looks like you may also be connecting here as a partner. I would recommend reaching out to partners@d2l.com.

    I don't believe there is a public facing api route that can support this workflow, but for partners there may be other ways of achieving this goal working with the D2L Partners Team.

  • Matt.J.517
    Matt.J.517 Posts: 5 🌱

    OK @Stefanie.B.518 I will do that, thanks for confirming the differences! :)