SIS Framework Override

Below is my approach to overriding the SIS Framework in Blackboard Learn.

If you’ve checked out my SQL script for overriding the snapshot controller you’ll likely know or be aware of the fact that “overriding” in either that manner before or in such a manner respective of the SIS framework are not really supported use cases. As I said before, if you don’t wish for an integration to make changes to data you’re officially recommended to use the “Change on Update” column in the field mappings for data, or, use custom JavScript.

I attempted the custom scripting method and had what I thought to be a solution but found that 1) it impacts run-time performance of data entry negatively because the script is checked against every row in any feed file you upload and 2) it just generally seemed buggy. I tested it previously on our development server and found that it worked okay with 2 or 3 different checks but as I started to add 9 or 10 it just to be a mess and it was too much of a pain to bother trying to troubleshoot it.

Enter below my solution for this. What I’ve done is created 3 tables in a separate schema in SQL Server 2008 that correspond to 3 different data types: persons, enrollments, and courses.

The persons table holds columns that correspond to these headers:

The enrollments table holds columns that correspond to these headers:

And the courses table holds columns that correspond to these headers:

Rows are inserted into these tables from a separate web form I developed if the user chooses to override whichever record type they’re modifying. Essentially to override data you need to look for the row in the feed file that corresponds to the OPPOSITE of what you want to achieve.

e.g. If you’re trying to disable a course in Blackboard and you want it to stay disabled and just find that the feed file continues to re-enable it, then, insert a row into the courses table that corresponds to that:

Assuming that the aforementioned row is in the courses table, this script will select all of the rows from that table and remove lines in the feed file that correspond, which ensures that changes will not be made to that course. The same principals apply to persons and enrollments. This application is called right before my Windows batch script pushes the feed files to the HTTP endpoints for Blackboard.

Below is the code:

Leave a Reply

Your email address will not be published. Required fields are marked *