# Mehr → Squeeze-Stammdaten in Tabelle laden

Die Gegenrichtung zu
[Tabelle in Squeeze Stammdaten hinzufügen](/books/tableservice-konfiguration-neu/page/mehr-tabelle-in-squeeze-stammdaten-hinzufugen): aus
einer Squeeze-Stammdatentabelle in eine Tabelle einer DEX-Datenbank.

Erzeugt wird dafür ein Portalskript `Squeeze_UserExit_Import_<Zieltabelle>` nach dem
Vorbild von `DEXPRO__UserExit_SqueezeMasterdata_FirmInformation` – mit `SqueezeImport`,
einem `setTable()` für die Squeeze-Seite und einem `add()` je Feld.

## Nur in eine Tabelle, die es gibt

Angelegt wird hier nichts und geändert auch nichts. Die Zieltabelle wird aus den
vorhandenen gewählt, ihre Spalten werden gelesen, wie sie sind, und zugeordnet wird nur
auf sie. Fehlt die Tabelle noch, ist
[SQL Tabelle anlegen](/books/tableservice-konfiguration-neu/page/sql-tabelle-anlegen) der Schritt davor.

| Feld | Bedeutung |
|---|---|
| **Stammdatentabelle in Squeeze** | die Tabelle, aus der gelesen wird. Ihre Felder stehen danach in der Zuordnung zur Wahl |
| **Verbindung** | die DEXPRO-Verbindung der Zieltabelle. Workflow, DOCUMENTS und Squeeze stehen nicht zur Wahl |
| **Zieltabelle** | die Tabelle, in die geschrieben wird |

## Zuordnung

Zugeordnet wird **spaltenweise von der Zieltabelle aus** und nicht von Squeeze her:
was gefüllt werden *muss*, steht in der DEX-Tabelle. Eine Pflichtspalte ohne Wert lässt
den ersten Lauf scheitern – der Dialog sagt es als Warnung, lehnt aber nicht ab, denn
ein Standardwert kann es doch noch richten.

Je Zielspalte gibt es drei Möglichkeiten:

| Auswahl | Bedeutung |
|---|---|
| ein **Feld aus Squeeze** | vorbelegt ist ein Squeeze-Feld gleichen Namens |
| ein **fester Wert** | bei `Licence` vorbelegt mit dem Mandanten. `cLicence` geht dabei als **Konstante** in den Quelltext, alles andere als Text |
| **– nicht füllen –** | die Spalte bleibt leer |

Die Spalte `ID` steht nur abgeblendet da: sie zählt sich selbst hoch.

## Zieltabelle vor jedem Lauf leeren

> **Die einzige Stelle im ganzen Editor, die Daten zerstört.** Mit diesem Haken beginnt
> jeder Lauf mit `TRUNCATE TABLE` auf der Zieltabelle. Was darin steht und nicht aus
> Squeeze kommt, ist danach weg.

So ist ein Stammdatenabgleich gemeint, und der Haken ist deshalb voreingestellt. Er
lässt sich abwählen; das erzeugte Skript schreibt seinen Zustand ausdrücklich hin,
statt sich auf den Vorgabewert der Bibliothek zu verlassen. Wer gleich ausführen lässt,
bekommt vorher noch eine Rückfrage.

## Anlegen, ausführen, einplanen

`Skript erzeugen` legt das Portalskript an; ein vorhandenes gleichen Namens wird nur
nach Rückfrage überschrieben. Daneben stehen dieselben beiden Haken wie beim Export:

* **Stammdaten gleich laden** – führt das Skript einmal aus.
* **Täglich als Job ausführen** – mit Uhrzeit; ändern lässt sich das danach im
  DOCUMENTS-Manager.