How can I change the course ID of a blackboard course?.
I think you can't. Course Id is referenced everywhere and you cant't change it. You can change the Batch Id or External Course Key.
A workaround is to archive the course with all the memberships and interactions and restore it with the new ID.
changing the course_id and lower_course_id fields in the course_main blackboard database table will work ?
I don't think so. You'll probably break some dependecy, cache, reference or something worst... I will never recommend to perform any changes in the database unless you have full knowledge about the implications.
You will be able to commit the change. But don't do it.
Follow Alberto's recommendation of the archive + restore, with a different ID.
Not to mention the external_course_key which is the same as course ID. I have no idea what would happen with dependencies if they became different.
I think that external_course_key is the same that batch_id , not the course_id, and it can be changed using a SIS flatfile integration with the header new_external_course_key.
No, our SIS files don't even use the course id field. They only use external course key.
From: Snapshot Flat File Header Descriptions | Ayuda de Blackboard
Batch Uid (Required)
Short name used by the Institution to uniquely identify the Course or Organization section. This is not displayed to users. Can contain only letters, digits, dashes and periods. No spaces or other punctuation allowed. Must be unique for each Course and Organization, and is often the same as the COURSE_ID or ORGANIZATION_ID.
Max length 64. Must be unique. Multi byte characters accepted.
Course ID or Organization ID (Required)
Header: course_id or organization_id
Short name used by the institution to uniquely identify the Course or Organization (for example, math101_F99 or ChessClub) The following characters may not be used: space ( ) & / ' +
Max length 100. Must be unique and cannot be changed.
Yes, as you point out, it is the external_course_key that is used and "and is often the same as the COURSE_ID or ORGANIZATION_ID."
Our SIS files do not contain course_ID. But to your point, all of this has dependencies and I would never play with changing the course_ID
My two cents: "You gotta try, try, try..." :-)
If you have a test environment, you can try whichever way you want and if you break something, no issues. I myself have never tried changing the course id itself. I have, however, changed the username many times over, and it is exactly by using a SIS flat file, and the "external" field. It really does not matter that you currently do not use this field in your current files. What matters is that you set up the file that will change the data correctly. Here's what the usernameChangeFile looks like for us:
Mind you, it even changes the person's first name, last name, and e-mail (if they are different from what's in the database) even though there's no "new" fields in the file for those. Again, I would test this in a non-production environment first.
I hope this helps. Raphael.
Raphael, you bring up a very good point. I use SIS manual feeds to change external_person_keys and user DSKs fairly often. It's because the personnel/learning system that our learner and instructor enrollments come from can have issues. People's accounts there can get screwed up, and my SIS feeds are always correcting an error. Course accounts, on the other hand, come through SIS and almost never have errors. Thus changing external course key is like fixing something that isn't broken.
Adding this as a feature comes up from time to time.
Its in the Ideas Place, you could add your voice at Change ID or Allow relabeling of course ID
Years ago I asked why this could not be done. Most tables link together via the PK1, but someone pointed out that one table still uses the CID. Sorry I do not remember who identified the table or which table it was. I think it was a rather obscure one.
The Batch_uid/externial_key default to the same as the CID but do not have to be the same.
Just out of curiosity, what would the use case be for changing a course_id? In our environment, the course title is the only thing that is slightly tweaked, and that is to show the revision number. It seems to me if you need a new course ID you need a new course.
Great question! Well, each university is different. In our case, we have our own scripts for cross-listed courses. So, suppose you have these three cross-listed:
ACCT-1001-01 (marked as primary)
Our scripts concatenate them by, first, which one is primary, second, alphabetical order. So in this case, the one and only one course that would be created, along with all enrollments for instructors and students would be ACCT-1001-01_ACCT-1001-02_ACCT-1001-03_18SU (we also append the term).
So far so good. Now, it just so happens, that some people decided it was a good idea to start changing the primary course section after we had already created the courses in Blackboard. And since we run the course creation process nightly, it would pick up the change and create a duplicate of the course, now reflecting the new primary course:
ACCT-1001-02 (marked as primary)
Results? Automation would create a new course in Blackboard, ACCT-1001-02_ACCT-1001-01_ACCT-1001-03_18SU, and enroll all instructors and students in there as well.
In this case, since there was already instructor and student work in the course in Blackboard, it would be useful if I could simply delete ACCT-1001-02_ACCT-1001-01_ACCT-1001-03_18SU (before anyone submits any content to it) and then rename ACCT-1001-01_ACCT-1001-02_ACCT-1001-03_18SU to ACCT-1001-02_ACCT-1001-01_ACCT-1001-03_18SU. Thus keeping all systems in sync, the ERP and Blackboard.
I honestly do not remember what my solution was. But I asked them to stop changing primaries after the fact and they did. (No one could come up with a practical business need for changing primaries that was justifiable...)
I hope I didn't make this too difficult to read. I do tend to be verbose at times...
P.S. No, we neither like nor use Blackboard's own built in cross-listing solution.
So, as I read that, the long and the short of it is you are in error correction mode. Someone mucked up the mother ship and SIS comes to a screeching halt at Blackboard's door. I guess I would submit tickets to Blackboard and have them update the record. ONE time something like that happened in our system and that's what I did. Although it was slightly different situation, it was still a muck up in the mother ship. If people are allowed to manually manipulate data that is going into a feed, that is kind of a red flag. I realize challenging a process like that might be a non-starter, but it seems like a flawed set of business rules.
Retrieving data ...