Moving objects (single & multiple)
Moving objects (single, or in bulk) transfers them from one type to another. You choose a target type and map each source attribute to a destination attribute; unmapped attributes and system attributes are handled automatically.
Attribute mapping
- System attributes auto-map by type — Image, Creator, Created, and Updated on the source type are matched to their equivalent on the target type without you mapping them by hand.
- Unmapped attributes are dropped — any source attribute with no mapping (and no system- attribute match) is soft-deleted from the moved object, as is any attribute you don't have write-permission on.
- Unmapped Workflow attributes on the target type are automatically set to that workflow's initial state. If the target workflow has no initial-state transition to fall back on, the whole move fails outright rather than moving with a broken workflow value.
Validation and partial failure
Each object is validated independently (cardinality, type compatibility) against the target type. A single object failing validation doesn't block the rest — valid objects in the same batch still move.
For a bulk move (many objects at once, selected by a StarQL query against the source type), objects are processed in batches of 500. If any object in the batch fails validation, the whole operation is marked failed overall — but every object that did pass validation stays moved. A CSV listing each failure (object, attribute, domain, violation type, and the invalid value) is generated and attached to the operation for download.
DefaultMoveObjectService.applyMoveAndNotify/getAdditionalAttributeMapping
(MoveObjectService.kt:169-319) for attribute mapping, unmapped-attribute soft-delete, and the
initial-workflow-state fallback (throws NotFoundException if none exists). BulkMoveServiceImpl
(BulkMoveService.kt) for the 500-object chunk size (CHUNK_SIZE_FOR_MOVE), per-object
non-blocking validation, and the CSV failure export uploaded when hasValidationIssues is true.