Squeeze
Mehr → Tabelle in Squeeze Stammdaten hinzufügen
Dieser Dialog geht in die andere Richtung: nicht in die Datenbank, sondern nach Squeeze. Gewählt wird eine SQL-Tabelle – dieselbe Auswahl wie bei SQL Tabelle ändern –, und daraus entsteht über die Squeeze-API die passende Stammdatentabelle:
- ein
POSTaufapi/v2/masterData/tablesfür die Tabelle, der mit ihrer Id antwortet, - danach ein
POSTje Spalte auf.../tables/<id>/columns.
Die SQL-Tabelle selbst wird dabei nur gelesen.
Die Stammdatentabelle in Squeeze
| Feld | Bedeutung |
|---|---|
| Name in Squeeze | Vorgeschlagen wird Breeze_<Tabellenname>. Wer ihn ändert, behält seine Eingabe auch beim nächsten Tabellenwechsel |
| Beschreibung | Freier Text, den Squeeze zur Tabelle anzeigt. Bleibt das Feld leer, wird der Name der SQL-Tabelle eingetragen |
Felder
Die Felder heißen in Squeeze genauso wie die Spalten der Tabelle – so kommt eine Übertragung zwischen beiden ohne Zuordnungstabelle aus.
IDgeht nie mit. Eine Squeeze-Stammdatentabelle zählt ihre Zeilen selbst und bringt eine eigene Id mit; eine zweite daneben bedeutete dasselbe und sagte etwas anderes, sobald beide Seiten schreiben.Licencebleibt im Angebot – welchem Mandanten eine Zeile gehört, weiß Squeeze von sich aus nicht.- Zeichenvorrat: Squeeze nimmt höchstens 45 Zeichen aus Buchstaben, Ziffern,
Unterstrich und Bindestrich. Eine Spalte mit Punkt, Leerzeichen oder Umlaut bekommt
darum ein Feld für einen Ersatznamen; der Rückweg in die Tabelle bleibt über
sourceColumnerhalten, das die SQL-Spalte behält. Kurze Namen wiedeoderensind in Ordnung.
Übertragungsskript
Die frisch angelegte Stammdatentabelle ist leer. Der nächste Schritt steht deshalb gleich in der Rückmeldung – drei Haken:
| Haken | Wirkung |
|---|---|
| Übertragungsskript erzeugen | legt ein Portalskript nach dem Vorbild von Squeeze_UserExit_MasterData_TransferPricipalsApi an, mit einem addColumnMap() je Feld. Name: Squeeze_UserExit_Export_<Tabelle>, Kategorie Squeeze_UserExit. Gibt es den Namen schon, kommt eine Rückfrage – der Quelltext könnte von Hand geändert sein |
| Stammdaten gleich übertragen | führt genau dieses Skript einmal aus. Dafür – und nur dafür – ist das erzeugte Skript clientExecutable, anders als die Vorlage |
| Täglich als Job ausführen | mit einer Uhrzeit daneben (HH:MM). Das Skript bekommt RunAsJob, den festen Zeitpunkt und die Uhrzeit; ohne den Haken läuft es nur, wenn es jemand startet |
Die letzten beiden Haken hängen am ersten: was nicht angelegt wird, lässt sich weder ausführen noch einplanen. Zeitpunkt und Häufigkeit lassen sich danach im DOCUMENTS-Manager ändern.
Das Breeze_ der Tabelle fällt im Skriptnamen weg, und „Export“ steht darin, weil es
in diese Richtung geht: aus einer DEX-Tabelle hinaus nach Squeeze. Was von dort
holt, heißt Squeeze_UserExit_MasterData_* und soll davon zu unterscheiden sein.
Wie viele Zeilen übertragen wurden, zählt das Skript nicht mit – das steht im Log unter
Logs/SqueezeImport. Hat die SQL-Tabelle für diesen Mandanten keine Zeile, bleibt die
Stammdatentabelle vorerst leer; das Skript überträgt beim nächsten Lauf, was dann da ist.
Die Gegenrichtung beschreibt Squeeze-Stammdaten in Tabelle laden.
Mehr → Squeeze-Stammdaten in Tabelle laden
Die Gegenrichtung zu Tabelle in Squeeze Stammdaten hinzufügen: 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 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 TABLEauf 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.