Entwicklung > Skript-Dictionary > Aktualisierungstransaktion 

Mit dieser Funktion können im Dictionary Systemtransaktionen angelegt werden. Diese Transaktionen werden von der Funktion Systemtransaktionen ausführen für Massenänderungen in der Datenbank verwendet (Anlage, Änderung oder Löschen von Zeilen).

Es ist wichtig, sich darüber bewusst zu sein, dass die Systemtransaktionen zum Daten-Dictionary gehören. Dies bedeutet, dass bei einer erneuten Freigabe des Ordners sämtliche Systemtransaktionen gelöscht werden, die nicht durch einen spezifischen Aktivitätscode geschützt sind. Weiterhin werden bei einer erneuten Freigabe des Ordners möglicherweise Standard-Systemtransaktionen in den Ordner übertragen, sofern dies zu einem späteren Zeitpunkt vom Herausgeber der Software implementiert wird (derzeit ist dies nicht der Fall).

Vorbedingungen

SEEREFERTTO Siehe Dokumentation Umsetzung

Maskenverwaltung

Eine Maske wird in zwei Registern definiert: einem allgemeinen Transaktionsdefinitionsregister und einem Register, das Auswahlformeln für die zu bearbeitenden Datensätze und für die zu aktualisierenden Tabellen enthält.

Kopfzeile

Übersicht

Der Kopfzeile ist die Transaktions-Id zu entnehmen.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

  • Code (Feld COD)

Code der aufzurufenden Systemtransaktion.

  • Bezeichnung (Feld ZINTIT)

 

Schließen

 

Register Allgemeine Angaben

Übersicht

In diesem Register wird der allgemeine Kontext der Systemtransaktion definiert:

  • Haupttabelle und ggf. verbundene Tabellen, die für eine Aktualisierung infrage kommen
  • ggf. zu erfassende Parameter (hierfür steht eine Tabelle mit maximal sechs Zeilen zur Verfügung). Diese Parameter können anschließend in Form von Variablen namens V1 bis V6 in der Tabelle des zweiten Registers verwendet werden.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Blocknummer 1

  • Modul (Feld MODULE)

Wählen Sie ein Modul für die Parametrisierung aus.

Dieses Feld ermöglicht Ihnen die Angabe, ob die Maske in der Datenbank des Ordners erstellt werden muss. Dies ist der Fall, wenn das der Maske zugeordnete Modul für den Ordner aktiv ist.

  • Kurzbezeichnung (Feld ZINTITSHO)

 

Ein Aktivitätscode ermöglicht folgende Aktionen:

  • Optionalsetzung eines Dictionary-Elements, wenn der dem Aktivitätscode zugeordnete Wert Null ist.
  • Signatur spezifischer Elemente, falls deren Code mit X, Y oder Z beginnt.
  • Vorgabe einer Höchstanzahl von Zeilen, falls der Aktivitätscode sich auf Elemente einer Tabelle bezieht.

Wenn der Aktivitätscode deaktiviert ist:

  • kann das markierte Element nicht verwendet werden,
  • wird der zugehörige Code nicht generiert oder aktiviert.

Mit diesem Code kann der Zugriff auf den aktuellen Datensatz für bestimmte Benutzer verboten werden.

Ist das Feld ausgefüllt, können nur die Benutzer den Datensatz anzeigen, die Leserechte für diesen Zugriffscode besitzen. Und nur die Benutzer, die über Schreibrechte verfügen, können ihn ändern.

Das Ausführungsrecht, das dem Zugriffscode angehängt sein kann, ermöglicht die Autorisierung zur Ausführung der Systemtransaktion.

Berücksichtigt man die Tatsache, dass diese Funktion sensibel ist, sollte man einen Zugriffscode angeben und die Anzahl der Benutzer, die Ausführungsrechte haben, einschränken. 

Definiert die Haupttabelle, in der die Transaktion ausgeführt wird.

Tabelle Verbundene Tabellen

Identifiziert die mit der Haupttabelle verknüpften Tabellen.

  • Link (Feld LNKEXP)

Dieses Feld wird als ein oder mehrere berechnete Ausdrucke definiert, die durch ein Semikolon getrennt werden. Jeder Ausdruck wird bewertet. Durch das Ergebnis erhält man den Wert des für die Verknüpfung verwendeten Schlüssels. Während der Autorisierung der Mehrfach-Verknüpfungen können nur die ersten Schlüsselsegmente angegeben werden.

In den Ausdrucken können Konstanten und Felder verwendet werden, die von den Tabellen ausgegeben werden, die zuvor in der Verknüpfungsliste definiert wurden.

Tabelle Einstellungen

Definiert den dem erfassten Parameter entsprechenden Datentyp.  Dies ermöglicht die eventuell mögliche Prüfung des Wertes über eine Tabelle.

  • Bezeichnung (Feld ZVARINTIT)

 

  • Länge (Feld VARLNG)

Definiert die maximale Anzahl an Zeichen, die für die Angabe des Parameters erfasst werden müssen.

  • Menü (Feld VARMEN)

Ist der zu erfassende Parameter vom Typ lokales Menü, wird hier die Nummer des betroffenen Menüs definiert.

  • Objektparameter (Feld VARPAR)

Dieses Feld definiert einen für die Definition des Datentyps notwendigen Zusatz, falls er benötigt wird. Bei einer sonstigen Tabelle definiert der Zusatz z.B. die Tabellennummer.

  • Standardwert (Feld VARDEF)

Ermöglicht die Definition eines Standardwertes über einen berechneten Ausdruck, der Konstanten und Variablen enthalten kann.

Der Code einer Prüftabelle kann in diesem Feld erfasst werden, um eine bestimmte Gültigkeitsprüfung durchzuführen, die dem in der Systemtransaktion definierten Parameter zugeordnet ist.

Schließen

 

Register Auskunft

Übersicht

In diesem Register können mithilfe von Auswahlkriterien die Zeilen der durchlaufenen Joins spezifiziert werden. Darüber hinaus werden die von der Systemtransaktion in diesen Zeilen vorgenommenen Aktualisierungen angegeben. Dabei kann es sich um folgende Aktualisierungen handeln:

  • Anlage eines Datensatzes auf Basis eines gewählten Datensatzes (zum entsprechenden Schlüsselfeld muss genau eine Zeile dieses Typs pro gewünschtem neuen Datensatz parametriert werden). Dies entspricht einer Datensatzduplizierung.
  • Änderung des Wertes eines oder mehrerer Felder (eine Zeile pro Feld)
  • Löschen eines Datensatzes (über die Felder werden keine Angaben gemacht)

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Tabelle Auswahl

  • Formeln (Feld SELFRM)

Dieses Feld ermöglicht die Definition der logischen Ausdrücke, um die zu aktualisierenden oder zu löschenden Datensätze zu filtern. Verwendet werden können die Felder der Haupttabelle, der verknüpften Tabellen und der Variablen, die in der Tabelle der Startparameter des ersten Registers (V1 bis Vn) definiert sind.

Ist das Ergebnis einer dieser Ausdrücke falsch, wird der Datensatz nicht übernommen.

Tabelle Aktualisierung

Definiert die Tabelle, in der ein Vorgang durchgeführt werden muss.

  • Transaktion (Feld FLDSUP)

Der abgeschlossene Vorgang kann sein:

  • Ändern (anschließend eine Aufzählung der zu ändernden Felder).
  • Löschen (keine zusätzliche Information wird dem Tabellennamen hinzugefügt).
  • Erstellen (in diesem Fall werden die Felder Datensatz für Datensatz ausgefüllt).
  • Feld (Feld FLD)

Definiert das Feld, dem man einen Wert geben will (Änderung oder Erstellung). Dieses Feld wird aus der in der Zeile erfassten Tabelle ausgegeben.

  • Formeln (Feld FLDFRM)

Diese Formel wird bewertet, um dem zuzuteilenden Feld den Wert zu geben. Diese Formel kann in den Feldern der Zeilentabellen und Konstanten und den Variablen V1 bis Vn verwendet werden, die in der Tabelle der Startparameter des ersten Registers definiert sind.

Schließen

 

Spezielle Buttons

Nach der Freigabe wird die automatische Verarbeitung generiert. Die Generierung umfasst die gesamte individuelle Transaktionsverarbeitung:

  • Deklaration der Variablen V1, V2, ..., V6
  • Deklaration der Tabellen
  • Beziehungen zwischen den Tabellen (Link-Befehl)
  • Filter der Datensätze der Tabelle, sofern diese eindeutig ist, sonst zur Beziehungsabkürzung.
  • Aktualisierungstransaktion
  • Es wird in die Datei espion.tra im tmp-Verzeichnis geschrieben.

Im über diese Schaltfläche geöffneten Fenster befinden sich die folgenden Felder: :

Blocknummer 1

  • Code (Feld COD)

Code der aufzurufenden Systemtransaktion.

  • Feld DES

Bezeichnung des vorherigen Codes.

Blocknummer 2

  • Testmodus (Feld TEST)

Bei Aktivierung wird die Transaktion ohne Tabellenaktualisierung ausgeführt. Der Logdatei sind dann die Daten zu entnehmen, die bei Aufruf aktualisiert worden wären.

Hier kann eine maximale Anzahl von zu bearbeitenden Transaktionen vorgegeben werden.

  • Anz. Transaktionen (Feld NOMBRE)

Im Simulationsmodus wird durch dieses Feld die Anzahl von bearbeiteten Tabellenzeilen begrenzt.

Tabelle

  • Variable (Feld VARDES)

Titel aller Variablen, die als Parameter der Systemtransaktion erfasst werden können.

  • Wert (Feld VALEUR)

Werte der Transaktionsparameter bei Transaktionsausführung.

Schließen

Mit diesem Button kann die Transaktion direkt ausgeführt werden. Es handelt sich um das Werkzeug Systemtransaktion.

Im über diese Schaltfläche geöffneten Fenster befinden sich die folgenden Felder: :

Blocknummer 1

  • Feld OBJET

 

  • Feld CLES

 

Blocknummer 2

  • Von Ordner (Feld DOSORG)

Geben Sie den Ordner an, aus dem der Datensatz kopiert werden soll. Die möglichen Syntaxen sind im entsprechenden Anhang beschrieben.

  • Alle Ordner (Feld TOUDOS)

Mit dieser Option kann der Datensatz in alle im Dictionary definierten Ordner kopiert werden (Tabelle ADOSSIER der aktuellen Lösung).

  • Nach Ordner (Feld DOSDES)

Geben Sie den Ordner an, in den der Datensatz kopiert werden soll. Die möglichen Syntaxen sind im entsprechenden Anhang beschrieben.

Schließen

Mit diesem Button kann die Transaktionsdefinition in einen anderen Ordner kopiert werden. Achtung, die Transaktion muss im Zielordner freigegeben werden.

Algorithmus und Verarbeitung angelegt

Es ist wichtig zu wissen, dass in derselben Transaktion gleichzeitig Kopien und Änderungen vorgenommen werden können, sofern die Deklarationsreihenfolge beachtet wird. Beispiel: Bei Erfassung folgender Zeilen

 Tabelle

Transaktion

Feld

Formeln

TABELLE1

Änderung

FELD1

AUSDRUCK1

TABELLE1

Erstellung

FELD2

AUSDRUCK2

TABELLE2

Erstellung

FELD3

AUSDRUCK3

TABELLE2

Änderung

FELD4

AUSDRUCK4

TABELLE3

Änderung

FELD5

AUSDRUCK5

erhält man folgenden Algorithmus:

Für [Durchlauf aller Zeilen des betreffenden Joins]

Lesen der aktuellen Zeile in TABELLE1, Zuweisung von FELD1 und FELD2, Anlage einer Zeile in TABELLE1

Lesen der aktuellen Zeile in TABELLE2, Zuweisung von FELD3, Anlage einer Zeile in TABELLE2

Zuweisung von FELD4, dann Änderung durch erneutes Schreiben der aktuellen Zeile in TABELLE2

Lesen der aktuellen Zeile in TABELLE3, Zuweisung von FELD5, dann Änderung per erneutem Schreiben von TABELLE3

In jedem Fall kann sich der Entwickler die nach der Freigabe generierte Verarbeitung anzeigen lassen. Der Name der Verarbeitung ist durch den Transaktionscode festgelegt, mit WMAMI als Präfix..

Fehlermeldungen

Während der Erfassung können außer den generischen Meldungen folgende Fehlermeldungen auftreten: :

Länge nicht korrekt

Die Variablenlänge wird in Abhängigkeit von ihrem Typ geprüft.

Typ

Maximale Länge

 Bezeichnung

 30

 Short int

 4

 Longint

 8

 Zeichen

 250

 Datum

 4, 6 oder 8 (zulässige Länge)

 Decimal

 32 (für ganzzahligen Anteil und Nachkommastellen)

Nr. des lokalen Menüs nicht korrekt

Die erfasste Nummer entspricht einem Meldungskapitel und keinem Lokalen Menü.

Lokales Menü nicht definiert

Die erfasste Nummer entspricht keinem vorhandenen lokalen Menü.

Wert nicht korrekt

Tabellen, die in diesen Transaktionsdaten nicht als Haupttabellen oder als Beziehungstabellen definiert sind, können nicht aktualisiert werden.

Feld existiert nicht

Das Feld muss im Tabellen-Dictionary vorhanden sein, das in dieser Zeile angegeben ist.

Index nicht korrekt

Die Feldlänge dieses Feldes darf die im Tabellen-Dictionary für dieses Feld definierte Länge nicht überschreiten.

Verwendete Tabellen

SEEREFERTTO Siehe Dokumentation Umsetzung