---
title: "Save an edited export and import it"
---

# Save an edited export and import it

How the DCS module edits an export without touching any other byte, the save guard that catches changes beyond values, and how a change goes back into DeltaV under your management of change.

The DCS module helps prepare and review a configuration change. It does not carry it into the plant. A change prepared here goes back into DeltaV through DeltaV Explorer's import, which you run yourself, under your site's management of change.

**Verification state:** modelled. Edits and the save guard were read and measured on one real DeltaV 14.5.1 export: it is written back byte for byte, and a value edit changes only that value's bytes. **Whether DeltaV imports an export edited here is not known**: no DeltaV import has been run. Treat every edited export as unproven until you have imported it into a copy of a non-production database and checked the result. Not seen in the running Editor; not on Windows.

## How edits are made

Every edit in the DCS module, from the [Alarms](https://neuralinverse.com/docs/modules/dcs/alarms/) and [Instances](https://neuralinverse.com/docs/modules/dcs/bulk-edit/) tables and from [agents](https://neuralinverse.com/docs/modules/dcs/agents/), follows the same rules:

- It changes only the value's characters, written as the export writes it: a quoted value stays quoted with its quotes doubled; a number stays a number; T or F stays T or F.
- It is made on the export as the text editor holds it, as one change that one **Edit > Undo** takes back. Overlapping edits are refused.
- The text is encoded back in the file's own encoding and byte order mark.
- It is logged to **Output > DCS**.
- It is never saved by the module. You save, and the save guard checks the save.
- A field the export does not write is never added. A value the field cannot hold is refused with a message.

## The save guard

Every save of a `.fhx` is checked against the file on disk before it is written:

| What the save would change | What happens |
|---|---|
| Only values | Saved without a prompt; **Output > DCS** says how many values changed |
| Text the reader cannot read | Not saved; a notification names the line |
| A statement added, removed, renamed or moved; an attribute added, removed or reordered; spacing, line endings, comments or braces between values; another encoding or byte order mark; a value newly quoted or unquoted; a change of identity (a function block's `DEFINITION`, an instance's `MODULE_CLASS`, a `PLANT_AREA`, a `CONTROLLER`, the `CLASS` of batch equipment and phases) | A dialog lists the changes with their lines and asks: **Save Anyway** or **Cancel**. A text changed while the dialog was open is not saved |
| Any of the above during an automatic save | Held back and logged; the next explicit save asks |

A DeltaV export in its usual form (UTF-16 LE with a byte order mark and CRLF) is written back byte for byte. The Editor would add a byte order mark to UTF-16 without one and turns mixed line endings into one kind on load; the guard asks before either is written. Measured on the real export: 4 ms for an unchanged save, about 1 s with one value edited.

The guard sees only saves that go through the Editor's normal save. Not checked: saves made by chat editing after an agent's edits, saving on shutdown, Save without Formatting, the Skip button of a slow save, and writes outside the text editor (extensions, the terminal, Git). Review the file with Git before importing it.

## Bring the change back into DeltaV

1. Save the edited export; read what the save guard and **Output > DCS** report.
2. [Compare it](https://neuralinverse.com/docs/modules/dcs/compare/) with the export you started from, and keep the comparison with your change record.
3. Import it into a copy of a non-production database with **DeltaV Explorer, File > Import > Standard DeltaV Format**, and check DeltaV shows the change.
4. Take the change into the plant through your site's own management of change and DeltaV's own tools.

DeltaV may skip a module whose `Time=` stamp is not newer than the database's, without an error. The module does not change `Time=`; check DeltaV's import log (`DeltaV\dvdata\ImportExportProgress.log`) for what was imported and skipped.
