Skip to content

Bulk Operations

Feature code: GEN::BULK

Bulk operations allow users to act on multiple entities simultaneously, reducing repetitive manual work. This page defines the shared contract that all entity types must follow when supporting bulk actions. Individual domain modules document their coverage against this contract in the Current Coverage table.


Before a bulk action can be performed, the user must select the target entities. The platform supports several complementary selection models; each entity list view declares which models it activates.

  • Checkbox selection — Each row exposes a checkbox. The user checks individual rows to build up a selection set. This is the baseline model required by all list views that support bulk actions. Reference: GEN::LST::0006 (Row Selection).
  • Select-all — A header-level checkbox selects all entities on the current page. Where the result set spans multiple pages, the user is offered a secondary affordance to extend the selection to the full filtered result set (not only the visible page).
  • Shift-click range selection — Clicking a checkbox while holding Shift selects all rows between the last checked row and the newly checked row, inclusive.
  • Cell range selection — On grids backed by AG Grid Enterprise, the user may drag across cells to form a rectangular selection. This selection mode is complementary to row-level checkbox selection and is the basis for ranged export operations.

Reference for list-level behaviors: GEN::ENT-DA::0001 (Browse).


The following bulk action types are defined at the platform level. Each represents a distinct operation class with its own interaction contract and error semantics.

The user selects one or more entities and triggers the Delete action. Before executing, the system presents a confirmation dialog that:

  • States the count and entity type of items to be deleted.
  • Warns if any selected entity has referential dependents that will be affected (e.g., an Item referenced by open Kanban Cards).
  • Allows the user to cancel or proceed.

On confirmation, deletions are processed as a batch. The system reports per-entity outcomes — entities that were successfully deleted and those that failed, with a reason for each failure. Reference: GEN::ENT-DA::0005.

The user selects rows (or relies on the current filter without a row selection to export all matching records) and exports to CSV or Excel format. The export includes all columns visible in the list view at the time of export, respecting any active column configuration.

When a row-level selection is active, only selected rows are exported. When no selection is active, the full filtered result set is exported. Reference: GEN::LST::0011 (Export).

The user uploads a CSV file where each row represents an entity and an action column specifies the operation to perform per row:

Action column valueSemantics
createCreate a new entity from the row data.
updateLocate an existing entity by its key field(s) and apply the row data as a partial update.
skipIgnore this row. Useful when re-uploading a template that contains reference rows or examples.

The import is idempotent when rows carry update semantics — re-uploading the same file produces the same result. The system validates all rows before committing any writes and reports validation errors per row. Reference: GEN::ENT-DA::0007.

Apply a single field change to all selected entities in one operation. For example: set the Unit of Measure to “EA” for fifty selected Items. The interaction model and field eligibility rules are not yet specified.

Move multiple entities through a lifecycle step simultaneously. For example: submit a selection of Purchase Orders for approval in a single action. The eligible transitions and confirmation model are not yet specified.


The following rules apply to all bulk operations regardless of entity type or action type.

Selection state and permissions — Each bulk action button is enabled only when the selection state and the user’s permissions jointly permit it. A user without delete permission on an entity type will never see the Bulk Delete button enabled, even with rows selected.

Disabled-state tooltips — When a bulk action is disabled (due to empty selection, insufficient permission, or entity state constraints), a tooltip explains the specific reason. Generic “not available” messages are not acceptable.

Partial failure handling — Bulk operations do not fail atomically. The system processes each entity independently and returns a structured result indicating which entities succeeded and which failed, along with a human-readable reason for each failure. The UI surfaces a summary at the top of the list view and provides a downloadable failure report for large batches.

Progress indication — For batches that cannot be resolved synchronously (typically above a configurable threshold, default: 50 entities), the system transitions to an asynchronous model: the operation is queued, the user receives a progress indicator or notification, and the result is surfaced when processing completes.

Undo semantics — Bulk delete operations are recoverable via the entity history log for a platform-defined retention window. Bulk import operations are idempotent by design (via the action column); a corrective re-upload is the recovery mechanism rather than a transactional undo.


The table below shows which bulk actions are currently supported per domain. “Planned” means the action is on the roadmap but not yet implemented. “N/A” means the action does not apply to this entity type by design.

DomainDeleteExportImportEditState Transition
REF — ItemsYesYesYesPlannedN/A
REF — SuppliersYesYesPlannedPlannedN/A
RES — Kanban CardsYesYesNoPlannedPlanned
PRO — Purchase OrdersNoYesNoNoPlanned

  • General Entity Data Actions (GEN::ENT-DA) — covers browse, delete, and import use cases referenced throughout this page.
  • General List Behaviors (GEN::LST) — covers row selection (GEN::LST::0006) and export (GEN::LST::0011).
  • Domain-specific use cases for Items, Suppliers, Kanban Cards, and Purchase Orders extend the general contract with entity-specific field rules and eligibility constraints.

AspectDetail
Feature codeGEN::BULK
Action typesBulk Delete, Bulk Export, Bulk Import, Bulk Edit (planned), Bulk State Transition (planned)
Selection modelsCheckbox, Select-all, Shift-click range, Cell range (AG Grid Enterprise)
Key use case refsGEN::ENT-DA::0001, GEN::ENT-DA::0005, GEN::ENT-DA::0007, GEN::LST::0006, GEN::LST::0011
PersonasAll personas who work with list views in any functional module