Required?: NO
Authenticated Request?: YES
Request Arguments: [Generic Proxy Tool Request Arguments||Generic Proxy Tool Request Arguments], type, oldId, newId, oldCourseId, newCourseId, external_content_id
Sample Implementation: ContentHandlerAction.java ?action=content-copied
Action on Failure return: Copy operation will log an error at this point and continue. The operation as a whole will be reported as being successful though. Event is NOT queued for later delivery.
Action on Communications error: Same as failure (Error logged to file) plus Event is queued up to be delivered later (Deferred Event Delivery).
Action when proxy tool not available: Event queued for later delivery.
This request is called as a simple XML response method. The extra arguments passed are:
- type: exact or shallow
- oldId: The content id of the original piece of content being copied.
- newId: The content id of the new piece of content being created.
- oldCourseId: The course id where the original content lives.
- newCourseId: The course id where the new content lives.
- external_content_id: The external content id specified when the content was originally created.
Refer to ContentHandlerAction.handleContentCopiedAction for sample implementation.
In response to this request a point-in-time copy of the content associated with oldCourseId+oldId +generic.ourguid must be made and associated with newCourseId+newId+generic.ourguid. The new external ID of the new content item cannot be updated because it is being called within a transaction on Blackboard Learn so the new content id does not exist yet. It is not created until after it has been returned.
Refer to OurContentDao.loadContent and ProxyUtil.fixContentAfterCopy for the two places where Blackboard Learn loads the content from the snapshot through a fallback. When the content is first accessed after it has been copied, call ContentWS.saveContent to update the external ID associated with the content in the Blackboard Learn server.
The type that is passed into this request controls how much information that is permitted to copy from the old to the new (the snapshot copy). If it is exact then all of the per-user data is copied. If it is shallow then only the description/configuration of the content item can be copied, not any per-user data.
| If any per-course data is stored that is expected to be backed up as part of the course-copied handler and it is required for the content item make sure that the logic reflected in this handler. This is because this content may be copied to another course by itself (i.e. single content item copy and not a full course copy). |
Refer to Content Exchange and Proxy Tools for an outline of how this fits into the bigger contentexchange picture.