Skip to main content

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.

Verified against code

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.