Verbesserung
Top-Thema
Detail
Wichtig
Detail
Detail
#26168
Attribut-Defaults können keine transaktionalen Änderungen machen
Möchte man einen Default-Provider für ein Attribut über tl:DefaultByExpression formulieren, der eine transaktionale Änderung macht (z.B. ein neues Objekt anlegt, oder eine ID generiert (über nextId()) und "vergisst" das Attribut im Anlagedialog zu verstecken, so wird die Expression auch bei Formularerzeugung ausgeführt und scheitert. In jedem Fall wird die Expression ausgeführt, wenn man versucht ein Formular für den Typ zu erstellen, weil dort immer alle Attribute angezeigt werden.
Um den Fehler zu vermeiden, muss man in der Lage sein, zu spezifizieren, dass die Default-Berechnung erst während der Anlagetransaktion erfolgen darf.
Lösung
Weitere Konfigurationsoption "In Transaktion", mit der die Ausführung bis zur Anlageoperation verzögert werden kann.
Test
- Formulareditor für den Typ DemoTypes:A öffnen.
- Prüfen, dass darin das Attribut idLong angezeigt wird (vgl. #26068).