fix(native-alarms): a 4-column CSV import keeps stored MES overrides on the CLI path too (ScadaBridge#104)
The bulk SetInstanceNativeAlarmSourceOverridesCommand handler always wrote the entry's IsMesReportableOverride, so a CLI import of a legacy 4-column CSV (no MesReportable column) reset every imported source's MES override to inherit. The Central UI avoided it only by looking up the stored flag client-side. NativeAlarmSourceOverrideEntry gains an additive trailing KeepStoredMesReportable flag: when set, the server leaves an existing row's MES override untouched (a new row inherits) and ignores IsMesReportableOverride; unset keeps the old meaning (null = clear to inherit), so older senders are unaffected. The CLI and the Central UI now build their entries through one rule (ToOverrideEntry on each row type): no MesReportable column => KeepStoredMesReportable. CLI README and Component-CentralUI updated. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
This commit is contained in:
@@ -721,10 +721,9 @@ public static class InstanceCommands
|
||||
return 1;
|
||||
}
|
||||
|
||||
var overrides = parseResult.Rows
|
||||
.Select(r => new NativeAlarmSourceOverrideEntry(
|
||||
r.SourceName, r.Connection, r.SourceReference, r.Filter, r.MesReportable))
|
||||
.ToList();
|
||||
// A legacy 4-column file leaves the MES flag unspecified, so the server keeps the
|
||||
// stored overrides (ScadaBridge#104) — the same result as the Central UI import.
|
||||
var overrides = parseResult.Rows.Select(r => r.ToOverrideEntry()).ToList();
|
||||
return await CommandHelpers.ExecuteCommandAsync(
|
||||
result, urlOption, formatOption, usernameOption, passwordOption,
|
||||
new SetInstanceNativeAlarmSourceOverridesCommand(id, overrides));
|
||||
|
||||
@@ -648,8 +648,9 @@ Bulk-apply native alarm source overrides for a single instance from a CSV file
|
||||
(all-or-nothing — the native-source parity of `instance import-overrides`). The CSV
|
||||
header is required: `SourceName,Connection,SourceReference,Filter`, optionally followed by
|
||||
`MesReportable` (`true`, `false` or blank = inherit); a blank override field keeps the
|
||||
inherited value. Without the `MesReportable` column every imported source's MES override
|
||||
is reset to inherit, so include it to preserve or set MES-reportable overrides. Every named source must resolve for the instance and
|
||||
inherited value. Without the `MesReportable` column the file does not specify the MES flag and
|
||||
each source keeps its stored MES-reportable override (the same as the Central UI import); include
|
||||
the column to set or clear it. Every named source must resolve for the instance and
|
||||
be unlocked, or the whole batch is rejected before any write.
|
||||
|
||||
```sh
|
||||
|
||||
Reference in New Issue
Block a user