We currently have a ticket in with Canvas about this, but I wanted to go ahead and check with other developers while I wait for a response back and will try to make this as simple as possible.
We have been importing courses, sections, and enrollments for some time now. However, we've also had to modify our data structure which has necessitated sections to be completed relocated from one course to another and the process needs to be: 1) remove Section A from Course A and 2) re-create it in Course X.
Please bear in mind that Course A and Course X are mutually exclusive. They may look similar or have nothing in common at all. Whatever the case may be, we want Course X to have Section A and Course A to have no knowledge or association of Section A.
The problem is at some point in time, we used SIS to import Section A into Course A. Now, we want to delete it from Course A (status="deleted") and re-create it in Course X (status="active"). Deleting works and the section gets dropped. However, when we explicitly specify Course X's course_id in the CSV file to import (overriding stickiness, etc), the section gets re-imported back into Course A whose course_id is completely different.
So in other words, our process is (similar to what our CSV looks like):
- Delete: SECTION_A,COURSE_A
- Add: SECTION_A,COURSE_X
The expected result is: SECTION_A,COURSE_X
The actual [incorrect] result is: SECTION_A,COURSE_A
Has anyone else been experiencing the same problem here?
Note: We have been working very closely with the API and SIS imports and have carefully selected parameters (i.e. override stickiness) in place for what we need to do. Also, this is not the first time we've seen abnormal behavior following a deletion of an SIS-imported object where re-creation of an object or a property update would fail because it thinks it's still there when it's not.