ORM-Klassen: Standardkonstruktor entfernen

ORM-Klassen sollten keine Standardkonstruktoren mehr implementieren. Diese liefern keine funktionsfähigen Klasseninstanzen. Diese Konstruktoren können ersatzlos entfernt werden. Nur der Konstruktor mit dem Parameter für Session wird benötigt.

Im XPO-Diagram sollte zudem sichergestellt werden, dass auch keine neuen Standardkonstruktoren mehr angelegt werden

Entfernen von ‘*.d.ts’ Dateien

Die ‘*.d.ts’ Typinformationsdateien von TypeScript wurde neu organisiert. Zu finden sind diese nun im Ordner “Scripts/typings/BusinessApp”.

Nach dem Update der Nugets sollten nicht länger benötigte TypeScript Typinformationsdateien (*.d.ts), die nicht Bestandteil des Projektes sind, gelöscht werden, um potentielle Konflikte mit den neuen Typinformationsdateien zu vermeiden. Besonders häufig bleiben alte Dateien und Unterordner in Scripts/BA/Ui bestehen. Dennoch sollte der Gesamte Ordner Scripts auf alte Dateien geprüft werden.

Einbettung von Java Script Dateien

Verschiedene Java Script Pakete sind nun Teil der BA.dll, daher müssen diese, falls vorhanden, aus dem “scripts” Ordner entfernt werden. Dazu zählen auch die Ordner “history.js” und “pdf.js” und die jquery-Dateien direkt im Ordner. Von dem Standardprodukt wird nur noch die Ordner “DevExtreme” und “typings” ausgeliefert.

Einführung von Spalten Sets

Im Rahmen der Einführung von Spalten-Sets wurde an verschiedenen Stellen der Datentyp GridViewConfiguration auf GridConfigurationBase umgestellt. Beispielsweise bei GridDataColumnBase.GetDataType.

Änderung an DayAtAGlanceFilterModel [Compiler Fehler]

Die Schnittstelle zur Erweiterung der Widgets “Tag auf einen Blick” wurde modifiziert. DayAtAGlanceFilterModel hat jetzt StartDate und EndDate statt CurrentDate als Parameter. Das bedeutet, dass die gelieferten Einträge zwischen diesen beiden Daten liegen.

Änderung des Namespaces für den Import [Compiler Fehler]

Namespaces, die sich auf BA.Import beziehen, müssen auf BA.Core.Import geändert werden.

Änderung der Schnittstelle des Datenintegrationswidgets [Compiler Fehler]

Falls sie einen eigenen Treiber für das Datenintegrationswidget implementiert haben, ist hier die aktuelle Beschreibung.

Methode RenderUtils.GetMasterEnumGuid [Compiler Fehler]

Es wurde die öffentlichen Methode RenderUtils.GetMasterEnumGuid geändert.

Von

public static Guid GetMasterEnumGuid(FormControlRendererParameterModel parameters, string OrmFieldName)

auf

public static Guid GetMasterEnumGuid(ConfigurationBase configuration, ViewableControlBase control, object bindObject, string OrmFieldName)

Die Methode wird in den Renderern für Maskensteuerelemente für Auswahlwertlisten verwendet, die Umstellung des Aufrufs ist üblicherweise trivial (hauptsächlich abhängig von der Verwendung des korrekten BindObject):

Von

Guid masterGuid = RenderingUtils.GetMasterEnumGuid(RenderParameters, control.OrmFieldName);

auf

Guid masterGuid = RenderingUtils.GetMasterEnumGuid(RenderParameters.RenderingContext.Configuration, control, BindObject, PreparedProperty.Name);

Doppelte Relationskategorie entfernt [bei Compilerfehler]

Für die Anwendung der Relationskategorie “From/Source/Quelle” und “To/Target/Ziel” gab es eine zwei Implementierungen mit EnumRelationSide und EnumBusinessRelationSubtypes.

EnumBusinessRelationSubtypes wird ersetzt durch EnumRelationSide

  • Alle Vorkommen von EnumBusinessRelationSubtypes. in allen Projektdateien ersetzen durch EnumRelationSide.Case-sensitiv und ganze Worte.
  • Danach, falls erforderlich, noch Namespaces bzw. usings anpassen.
  • Alle Relationen und Konfigurationen werden automatisch migriert.

Code Migration: AfterpropertiesSubmit

Die Funktion AfterPropertiesSubmit wird jetzt früher aufgerufen, nämlich vor dem Binden der aktuellen Änderungen. Dies entspricht dem dokumentierten Verhalten.

Existierender Code könnte sich aber darauf verlassen haben, dass der Aufruf irrtümlich nach dem Binden der neuen Eingaben erfolgte. Deshalb sollten existierende Implementierungungen auf AfterPropertiesBind umgestellt werden. Das garantiert dasselbe (getestete) Verhalten wie seit Release 7.0.

Einzig für die Erkennung von jüngsten Änderungen sollte weiterhin der alte Wert von AfterPropertiesSubmit in AfterPropertiesBind mit dem neuen Wert verglichen werden. Das erkennt man üblicherweise daran, dass bereits beide Methoden überschrieben wurden. (Die Änderungserkennung über diesen Weg hat von Release 7-9 nicht funktioniert.)

Änderung der API vom Widget “Tag auf einen Blick” [Compiler Fehler]

Die neue Definition ist hier zu finden.

API zum Erzeugen von Toast-Nachrichten optimiert [bei Obsolete-Warnung]

Die Methoden Api.ClientCommunication.Create..., die als ersten Parameter einen OrmUser bekommen, sind obsolet, weil die Versorgung dieses Parameters i.a. nicht ohne Datenbankzugriff möglich ist. Verwenden Sie statt dessen die Überladungen, die nur die OID des Benutzerzugangs benötigen.

Beispiele:

// alt:
OrmUser user = session.GetObjectByKey<OrmUser>(UserContextGuid);
Api.ClientCommunication.CreateInfo(user, toastMsg);
// neu:
Api.ClientCommunication.CreateInfo(UserContextGuid, toastMsg);

// alt:
Api.ClientCommunication.CreateWarningExtended(Api.User.CurrentUserAccess(), recycleBinWarningMsg, "bce3c028-6f4c-4da9-8729-95842d4095ce".Translate(), unlimtedTimeToDisplay: true);
// neu:
Api.ClientCommunication.CreateWarningExtended(Api.User.CurrentUserGuid(), recycleBinWarningMsg, "bce3c028-6f4c-4da9-8729-95842d4095ce".Translate(), unlimtedTimeToDisplay: true);