# Definitionen importieren und exportieren

Drei Wege, Definitionen in den Editor hinein- und aus ihm herauszubekommen. Alle drei
betreffen die **Definitionen**, nicht den Tabellenaufbau – der hat mit
[Alle SQL-Tabellen exportieren / importieren](/books/tableservice-konfiguration-neu/page/mehr-alle-sql-tabellen-exportieren-sql-tabellen-importieren) einen
eigenen Weg.

## Mehr → Alle exportieren

Liest alle Definitionen und lädt sie als eine Datei `TableServiceDefinitions.json`
herunter:

```json
{ "exported": "…", "count": 12, "definitions": [ … ] }
```

Das ist der Weg, um einen Stand mitzunehmen oder vor einer größeren Änderung zu sichern.

Einzeln geht dasselbe über **Mehr → Exportieren** bei geöffneter Definition; die Datei
heißt dann `TS_Definition_<Name>.json` bzw. `TS_ViewDefinition_<Name>.json`.

## Mehr → JSON importieren …

Nimmt beides an – eine Datei über den Dateiauswähler oder eingefügten Text:

| Inhalt | Wirkung |
|---|---|
| eine **einzelne** Definition (`{ "nameApi": … }` oder `{ kind, definition }`) | wird nur **in den Editor geladen**, als neue Definition und ungespeichert. Geschrieben wird erst mit `Speichern`. Die Art (*Tabelle* / *View*) steht im Dialog daneben, sofern das JSON sie nicht selbst mitbringt |
| eine Datei aus **Alle exportieren** (`{ definitions: [ … ] }`) | wird nach einer Rückfrage **zurückgeschrieben**: ein Aufruf je Eintrag, jeder mit `setOrAddCustomProperty`. Eine Definition gleichen Namens und gleicher Art wird dabei ersetzt |

> Beim Zurückschreiben eines Bündels werden vorhandene Definitionen ersetzt. Wer
> zurückkönnen will, exportiert vorher. Was nicht geschrieben werden konnte, steht
> danach einzeln in der Rückmeldung.

## Aus Definitionsdateien importieren

Der Knopf steht in der Kopfleiste und ist **nur zu sehen, solange es noch keine einzige
Definition gibt**. Er führt `DEXPRO__CreateCustomPropertiesFromAllTableServices` aus –
denselben Lauf, der auch die Auslieferung bestückt: aus den Definitionsdateien unter
`TableService/data/table-definitions` entstehen die Custom Properties
`TS_Definition_*` / `TS_ViewDefinition_*`.

Einmal importiert, ist der Editor selbst der richtige Weg, etwas zu ändern. Ein erneuter
Lauf überschriebe alles, was hier bearbeitet wurde – deshalb verschwindet der Knopf,
sobald eine Definition vorhanden ist.

Nach dem Lauf setzt der Editor Suchfeld und Art-Filter zurück und holt die Übersicht
frisch, damit das eben Importierte auch zu sehen ist.