TopLogic - the automated application engine
  • Releases
  • Dokumentation
  • Github
  • Discord
  1. Home
  2. Releases
  3. TL_7.7.1
  4. #21471

7.7.1
TopLogic Release

2024-02-27

Verbesserung

Wichtig
#26190
Mehrere Drop-Operationen pro Komponente
#27706
TL-Script: Explicit method chaining
Detail
#27260
Schlechtes Beispiel in der Dokumentation von revisionAt(...)
#27626
DropDown: Es werden keine Icons dargestellt
#27700
Allow dynamically loading ES6 modules from scripts
#27721
Automatische Datenmigration bei Applikationen ohne Branch-Support
#27735
PostgreSQL: Workaround for Method org.postgresql.jdbc.PgResultSet.updateClob(int, Reader) is not yet implemented.
Kleinigkeit
#27667
Update gstream package to gson 2.10.1

Fehlerbehebung

Wichtig
#21471
Überschreiben von Attributen schlägt manchmal fehl
#27741
Fehlende Entwickleroptionen im Modern-Theme
Detail
#27337
Dokumentation für Kachel-Sichten wird nicht angezeigt
#27528
Kafka verhindert das Logging auf Std-Out
#27640
Modell-Editor: Oberklassen-Pfeil wird angezeigt, obwohl Oberklasse nicht gezeichnet ist
#27661
Fehlerhaftes Error-Handling in I18N-Feldern
#27672
Falscher Tooltip bei Tabs in der Toolrow
#27673
TLScript: Copy(): Kopie historischer Objekte nicht möglich
#27693
Import soll nicht möglich sein, wenn Basisthemes nicht existieren
#27695
Versuch der Anlage eines Fachobjekttyps mit bereits existierendem Namen führt zu internem Fehler
#27697
Automatische Datenmigration führt Migrationen zu nicht konfigurierten Modulen aus
#27725
TL-Sync-Anwendung startet nicht, wenn Kafka nicht verfügbar
#27729
Rückwärtsreferenzen erzeugen separate Kante im Modellgraph
#27744
Keine visuelle Rückmeldung bei Tabellen Zeilen-Drop
#27745
Baum-Drops können nicht aufgezeichnet werden
#27764
Meta-Modell: Fehlender Typ für Assoziations-Properties
#27766
Legacy-Struktur-Module lassen sich in-app nicht löschen
#27767
No crash, when a legacy attribute filter cannot be resolved
#27768
TLScript: Fallback für untypisierte Ausdrücke
#27773
Crash beim Importieren der OpenAPI-Beschreibung von OpenAI
#27774
Baumtabellenzeile nicht dragbar, Aufklapper und Label schon
#27776
OpenAPI: Wrong encoding when constructing JSON request body
#27803
TLScript: Copy(): Kopie von historischen Referenz-Werten nicht möglich
#27805
Inkonsistentes Verhalten der TL-Script-Funktion union()
#27807
TL-Script: log() wird als seiteneffektfrei behandelt
#27808
BPE: Fehler beim BPMN Import wenn <association> Links vor den verbundenen Teilen im XML stehen
#27809
TL-Script: Crash bei Filter von literaler Map
#27810
CVE-2024-1597: Update PostgreSQL driver to at least 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9 or 42.2.8
#27811
CVE-2024-26308: Upgrade commons-compress to at least 1.26
Kleinigkeit
#27666
State-Modification-During-Rendering-Fehler in Layout-Tests
Fehlerbehebung

Wichtig

#21471

Überschreiben von Attributen schlägt manchmal fehl

Code-MigrationDaten-MigrationTLModel

Problem

Das Überschreiben von Attributen schlägt manchmal fehl. Ursache ist anscheinend, dass das Modell in einer unerwarteten Reihenfolge zusammengebaut wird. Insbesondere werden einer Ableitung ihre Attribute hinzugefügt, obwohl die Oberklasse ihre Attribute noch nicht hat. Da bei einem Override das überschriebene Attribut aber benötigt wird, da dessen Konfiguration übernommen wird, schlägt das fehl.

Migration

Überschreibungen von Rückwärtsreferenzen sollten das Kind backwards explizit in ihrer Konfiguration angeben, um direkt festzustellen um welche Art Überschreibung es sich handelt, ohne, im schlimmsten Fall, die ganze Typhierarchie nach einer gleichnamigen Referenz zu durchsuchen um die Art der Referenz zu bestimmen.

Die Konfiguration für die Referenz tl.doc:Page#parent, die eine Überschreibung einer Rückwärtsreferenz ist, sieht bspw. wie folgt aus:

<reference name="parent"
  kind="backwards"
  override="true"
  type="Page"
/>

Ex. bereits Überschreibungen von Rückwärtsreferenzen, dann sind sie zurzeit "falsch" (als Vorwärtsreferenz) in der Datenbank abgelegt. Für die Korrektur kann man sich an den Dateien

  • Ticket_21471_Adjust_model_overrides.migration.xml
  • Ticket_21471_Adjust_model_overrides.model.transform.xslt

, die das für die Überschreibung tl.doc:Page#parent der Rückwärtsreferenz tl.element:StructuredElement#parent machen, orientieren.

Umsetzung

Die Modellerstellung aus einer entsprechenden Konfiguration geschieht in den folgenden Phasen:

  1. START: Die Einrichtungsphase. In dieser Phase werden Module und leere Typ-Instanzen erstellt. Diese Erstellungen können unabhängig voneinander erfolgen.
  1. CREATE_TYPE_HIERARCHY: Erstellung der Typenhierarchie. Für jeden Typ wird seine Verallgemeinerung gesetzt.
  1. CREATE_PARTS: Erstellung von Typteilen. Die Vererbungshierarchie muss bekannt sein, um die Aktionen zur Erzeugung der Typteile zu sortieren. Diese Sortierung ist notwendig, weil eine Überschreibung eines tl:TLTypePart nur erstellt werden kann, wenn der zugrunde liegende Typteil bereits existiert.
  1. CREATE_ASSOCIATION_END: Assoziationsenden müssen erstellt werden, bevor Referenzen erstellt werden, denn diese verwenden Assoziationsenden.
  1. CREATE_REFERENCE: Erstellung von Referenzen.
  1. CREATE_REFERENCE_OVERRIDE: Erstellung von Referenzüberschreibungen. Alle Referenzüberschreibungen müssen erstellt werden, bevor Rückreferenzen erstellt werden, da es Rückwärtsreferenzen auf überschriebene Referenzen sein können.
  1. CREATE_BACK_REFERENCE: Erstellung von Rückwärtsreferenzen.
  1. CREATE_BACK_REFERENCE_OVERRIDE: Alle Referenzüberschreibungen müssen erstellt werden, bevor Rückverweise erstellt werden, da es möglicherweise Rückverweise auf überschriebene Referenzen gibt.
  1. REORDER_PROPERTIES: Festlegung der endgültigen Ordnung.
  1. CREATE_ROLE: Rollenerstellung.
  1. CREATE_SINGLETON: Modul-Singletons erstellen.

Dadurch wird sichergestellt, dass die Überschreibungen erst erstellt werden, wenn der Obertyp das zu überschreibende Attribut bereits erstellt hat.

Test

Kein Test.

  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

  • top-logic.com
  • Nutzungsbedingungen
  • Impressum
  • Rechtlicher Hinweis
  • Datenschutz
  • EN
  • Login