Development docs
Development docsMay include features newer than the installer.

Bulk replacement workshop

Designer can preview literal replacements across a project's screens and templates, then apply selected properties as one Undo step. Open Search project → Replace… to show Replace in project, or press Ctrl+Shift+H / Cmd+Shift+H. Choose Display text or Tag paths, enter the text to find and its replacement, and inspect the before/after list before applying. Match case controls whether letter case must agree. The replacement is literal: regular expressions and replacement tokens are not interpreted.

Display text covers supported authored names, component captions, option labels and project navigation-menu labels. Tag paths covers supported authored tag references in component properties and bindings. It does not rename gateway tags or verify that a replacement tag exists. IDs, reference targets, field keys, input defaults, option values, code, SQL and expressions are outside this increment's replacement scope. A display-text change does not repair dynamically constructed text or change an input's submitted value.

A preview row is one property, including all non-overlapping matches within its value. Select only the rows you intend to change. Cancel leaves the draft untouched; applying a selected batch adds one Undo step. Changing the find text, replacement or matching options requires reviewing the new preview. If the project draft changes after a preview is created, the old preview is rejected; inspect a fresh preview. Applying does not save or publish the project.

Previews show 100 properties per page. Only valid properties on the first page are initially selected. The explicit Select all action selects valid matches across all pages; the summary reports selections on other pages. Invalid names, labels, paths and protected indirection-token changes cannot be selected. Screens includes project menu labels; Templates does not. These filters are independent of the search dialog's filters.

Open the workshop

Import Bulk replacement through Projects → Import .sparkproj. This creates an independent, unpublished project with two screens and one shared template. The authoring source is bulk-replacement.json. Use the gateway build supplied with the workshop bundle or a newer compatible build containing Replace in project.

No configured tags, database connections, assets, scripts, Python runtime or network access are required. All records and labels are synthetic. This workshop exercises display text; the Tag paths family intentionally has no matches in this project.

The initial screen is Line A desk. Its Assembly card and the Line A review screen's Packing card both use Line A station card. The desk also contains a note input, a destination dropdown, a repeated caption and a mixed-case caption. Navigation buttons use replace-home and replace-review; template placements use replace-card.

Try it

  1. Inspect the starting application. In Preview, enter a note, choose each destination and navigate to review and back. Both station cards show the shared caption. The input's saved default is Line A reference batch; the first dropdown choice displays Line A staging bin and has underlying value Line A-bin.
  2. Select a small batch. Open Replace in project. Find Line A, replace it with Cell B, choose Display text and enable Match case. Generate the preview. Inspect names, captions, menu labels and the dropdown option label. Deselect the other rows and select only the desk title (Line A production desk) and repeated caption (Line A receives. Line A checks. Line A dispatches.). Apply. Only those two properties change; all three occurrences in the repeated caption become Cell B. One Undo restores both properties.
  3. Compare letter case. With Match case enabled, the mixed-case caption previews Cell B / line a / LINE A. With it disabled, the same caption previews Cell B / Cell B / Cell B. Apply only that row, inspect the canvas, and Undo. Replacement uses the text you typed; it does not preserve the capitalization of each match.
  4. Change a shared template. Generate a case-sensitive preview again and select only the template's Line A station · Shared caption from one template definition. property. Apply. Preview both screens: Assembly and Packing show the updated shared caption. One Undo restores both rendered placements through their single template definition.
  5. Check labels and stable values. Preview and apply all case-sensitive Display text matches. Names, supported component captions, option labels and menu labels change. Inspect the note's fieldKey (LineA_note) and defaultValue (Line A reference batch), and the dropdown's first option value and default (Line A-bin): these stay unchanged. The template's station parameters stay Assembly and Packing; navigation and both card placements still work. Inspect menu labels in Project settings; the application-only runtime can use its authored navigation buttons without showing the surrounding runtime controls. Undo this batch before continuing.
  6. Inspect the empty family. Choose Tag paths with the same find text. This workshop contains no tag references, so there should be no replacement candidates. Cancel. No gateway tag or connection is created.
  7. Check publication separation. Save and publish the original workshop and open its operator application. Apply a title replacement in Designer without saving or publishing. Refresh the operator application: its published title remains Line A production desk. Save the draft and refresh again: publication still has the original title. Explicitly publish the saved revision and refresh: the new title appears. To finish with the original project, Undo the replacement in Designer, save and publish again, or import a fresh copy.

Limits

This is a project-draft replacement tool, not a gateway-wide migration. It supports selected, explicitly recognized property families; arbitrary JSON metadata, table data, form values, named queries and script resources are not replacement targets. Password-input captions are excluded. Binding expressions may produce display text that differs from a changed authored fallback; replacing the fallback does not edit the expression. Indirection tokens in interpolated text and tag paths stay unchanged; edit the owning property or binding deliberately to change those tokens. Review changed tag paths against the intended provider before publication. Existing server revision checks still apply when saving a draft.