My$-Tabellen-Verwaltung
Inhalt
Allgemein
Aufgrund der flexiblen Einsatzmöglichkeiten des POLLEX-LC TaskCenter können in Sonderfällen kundenspezifische Datenbanktabellen zur Abbildung individueller Anforderungen erstellt werden. Diese Tabellen werden immer mit der Kennung „MY$_" im Tabellennamen bezeichnet.
My$-Tabellen können individuell mit allen benötigten Spalten erstellt werden und konnten bisher nur mit Hilfe von Datenbank-Befehlen (SQL) gewartet werden.
Ab TaskCenter Version 4.28.0 gibt es dafür ein übergreifendes Pflege-Fenster für alle vorhandenen My$-Tabellen.
Anlage einer My$-Tabelle per SQL
Oracle
create table my$name (inx decimal(15,0) not null, text1 varchar2 (30), nummer1 decimal (15,0), wert1 decimal (15,3), datum1 date);
Mit diesem Statement wird eine Tabelle mit dem Namen "my$name" mit folgenden Spalten angelegt:
Name | Typ | Länge | Beschreibung |
---|---|---|---|
INX | Decimal (Zahlenformat) | 15,0 (max. 15 Stellen, keine Nachkommastellen) | "Not null" steht dafür, dass diese Spalte befüllt sein muss. Die Spalte INX wird auch automatisch bei Anlage um 1 erhöht, sofern eine Zeile in der MY$-Tabellenverwaltung angelegt wird. |
TEXT1 | Varchar2 (Textformat) | 30 (max. 30 Zeichen) | |
NUMMER1 | Decimal (Zahlenformat) | 15,0 (max. 15 Stellen, keine Nachkommastellen) | |
WERT1 | Decimal (Zahlenformat) | 15,3 (max. 15 Stellen, 3 Nachkommastellen) | |
DATUM1 | Date (Datumsformat) | Hier wird das Standard-Datumsformat inklusive Uhrzeit der Datenbank verwendet. |
Nun kann die Tabelle nur vom User, welcher die Tabelle angelegt hat verwaltet werden. Damit jeder User die Tabelle verwalten kann, muss noch ein "Public Synonym" angelegt werden:
create public synonym my$name for my$name;
Am besten ist es wenn die Spalte INX noch UNIQUE gesetzt wird, damit die Einträge eindeutig werden:
alter table my$name add constraint inx unique(inx);
SQL
create table my$name (inx decimal(15,0) not null, text1 varchar (30), nummer1 decimal (15,0), wert1 decimal (15,3), datum1 date);
Mit diesem Statement wird eine Tabelle mit dem Namen "my$name" mit folgenden Spalten angelegt:
Name | Typ | Länge | Beschreibung |
---|---|---|---|
INX | Decimal (Zahlenformat) | 15,0 (max. 15 Stellen, keine Nachkommastellen) | "Not null" steht dafür, dass diese Spalte befüllt sein muss. Die Spalte INX wird auch automatisch bei Anlage um 1 erhöht, sofern eine Zeile in der MY$-Tabellenverwaltung angelegt wird. |
TEXT1 | Varchar (Textformat) | 30 (max. 30 Zeichen) | |
NUMMER1 | Decimal (Zahlenformat) | 15,0 (max. 15 Stellen, keine Nachkommastellen) | |
WERT1 | Decimal (Zahlenformat) | 15,3 (max. 15 Stellen, 3 Nachkommastellen) | |
DATUM1 | Date (Datumsformat) | Hier wird das Standard-Datumsformat inklusive Uhrzeit der Datenbank verwendet. |
Nun kann die Tabelle nur vom User, welcher die Tabelle angelegt hat verwaltet werden.
Am besten ist es wenn die Spalte INX noch UNIQUE gesetzt wird, damit die Einträge eindeutig werden:
alter table my$name add constraint inx unique(inx);
TaskCenter-Konfiguration
Im Geschäftsprozesse-Manager kann das Fenster unter dem Namen „SystemSettings.MyTableManager" eingeblendet werden.
Zu finden ist das Fenster in Grundlagen / Vorgabewerte:
Tabellen-Aufbau
Jede MY$-Tabelle kann beliebig viele Spalten enthalten.
Für Tabellen mit Verwaltungs-Funktion, wird dringend empfohlen, mindestens eine Spalte mit Namen „INX" (UNIQUE) anzulegen. Alle UNIQUE-Spalten werden für die WHERE-Bedingung beim Speichern verwendet.
Sind keine UNIQUE-Spalten vorhanden, wird die WHERE-Bedingung über alle in der Tabelle vorhandenen Spalten gebildet.
Beispiel Tabelle MY$OPTIK
Spaltenname | Datentyp | UNIQUE |
KURZTEXT | VARCHAR2(254) | JA |
LANGTEXT | VARCHAR2(2000) | NEIN |
SPRACHE | VARCHAR2(5) | JA |
Where-Bedingung: where KURZTEXT=:KURZTEXT and SPRACHE=:SPRACHE
Info: In diesem Fall kann man einen neuen Datensatz mit allen Werten einfügen, aber ändern kann man nur den Langtext, weil die anderen beiden Spalten UNIQUE sind und somit die unveränderliche WHERE-Bedingung bilden.
Beispiel 2 Tabelle MY$VERTRETERZUORDNUNG
Spaltenname | Datentyp | UNIQUE |
INX | DECIMAL(15,0) | JA |
KUNDENNUMMER | DECIMAL(15,0) | NEIN |
HAUPTGRUPPE | VARCHAR2(40) | NEIN |
ZAHLUNGSBED | VARCHAR2(30) | NEIN |
VERTRETERNUMMER | DECIMAL(15,0) | NEIN |
Where-Bedingung: where INX=:INX
Info: Weil die INX-Spalte vorhanden ist, wird diese automatisch bei einem neuen Datensatz vorbefüllt mit max(INX)+1.
Beispiel 3 Tabelle MY$DEMO
Spaltenname | Datentyp | UNIQUE |
BEZEICHNUNG | VARCHAR2(20) | NEIN |
NUMMER | DECIMAL(15,0) | NEIN |
SORTIMENT | VARCHAR2(40) | NEIN |
Where-Bedingung: where BEZEICHNUNG=:BEZEICHNUNG and NUMMER=:NUMMER and SORTIMENT=:SORTIMENT
Info: Weil keine UNIQUE-Spalte vorhanden ist, müssen alle Spalten in die WHERE-Bedingung für das Speichern übernommen werden.
Fenster-Aufbau
Das Fenster besteht aus der Toolbar, dem Tabellen-Auswahlfeld und der Tabelle. Sobald eine Tabelle im Auswahlfeld ausgewählt wurde, wird die Tabelle im Fenster aktualisiert.
Das Fenster ist designbar, es können also eigene Fensterlayouts erstellt werden.
Toolbar
Erstellt eine neue Zeile. Wenn eine Spalte „INX" vorhanden ist, wird der nächsthöhere Wert aus der Tabelle vorgeschlagen (es wird dazu NICHT die Tabelle INDIZES verwendet) | |
Löscht die markierte Zeile aus der Tabelle | |
Speichert die Daten der aktuell ausgewählten Tabelle in der Datenbank | |
Aktualisiert die Tabelle (alle Daten der Tabelle werden aus der Datenbank neu eingelesen) |
Tabellenauswahlfeld
Wird die gewünschte My$-Tabelle ausgewählt, so wird die Tabelle im Fenster automatisch befüllt. Die Spaltentitel werden NICHT übersetzt, werden also so wie sie in der Datenbank vergeben wurden angezeigt.
Spalten mit Vorgabewerten
Werden bestimmte Spaltennamen verwendet, sind auch Vorgabewerte möglich.
Aktuell werden folgende Spaltennamen für Vorgabewerte unterstützt:
Spaltenname | Beschreibung |
KUNDENNUMMER KUNDENNR | Kundensuchfenster wird geöffnet. Gleichzeitig wird der eingegebene Wert auch auf Gültigkeit geprüft. |
KUNDENNAME | Wenn diese Spalte NICHT in der Tabelle verfügbar ist, wird diese dennoch eingeblendet, wenn eine der Spalten „KUNDENNUMMER" oder „KUNDENNR" verfügbar ist. Die Spalte kooperiert mit den o.g. Spalten. Wert wird auf Gültigkeit geprüft. |
KATEGORIE | Vorgabewerte-Fenster für Kategorien wird geöffnet. Wird ein Wert manuell eingegeben, wird die Gültigkeit geprüft. |
ZAHLUNGSBEDINGUNG ZAHLUNGSBED ZBED | Vorgabewerte-Fenster für Zahlungsbedingungen wird geöffnet. Wird ein Wert manuell eingegeben, wird die Gültigkeit geprüft. |
VERTRETERNUMMER | Suchfenster für den Vertreter wird angezeigt. Wird ein Wert manuell eingegeben, wird die Gültigkeit geprüft. |