Universal Messenger 7.47.0
Das Release 7.47.0 Build 1820 wurde im Juli 2022 veröffentlicht. Dieses Release umfasst:
SMS-Versand entfernt
Unterscheidung Abonnement E-Mail vs. SMS entfernt
Optimierung des internen Datenmodells (Update des Datenbankschemas, DB-Backup dringend empfohlen!)
Core Scripting Engine:
Entry
-Klasse ableitbar (Polymorphie)Funktionserweiterungen und Fehlerkorrekturen
Update diverser Komponenten
Vorbereitungen beim Update
Beim Update auf UM-Release 7.47 werden mehrere Datenbankschemaanpassungen durchgeführt.
Es wird daher dringend empfohlen, vor der Ausführung des Installers ein vollständiges Datenbankbackup zu erstellen. Darüber hinaus sollte der Updatevorgang – soweit möglich – zuvor in einem Test- oder Stagingsystem mit vergleichbarer Konfiguration getestet werden.
SMS-Versand entfernt
Mit Release 7.47 wurden die Funktionen für den Versand von Transaktionsmails und Newslettern als Short Message (“SMS”) entfernt.
Dementsprechend entfällt die “SMS”-Option sowohl bei der Bearbeitung von Mailingvorlagen als auch beim Newsletterversand.
Die folgenden zwei Attribute, die sich auf den SMS-Versand beziehen, entfallen ebenfalls:
mms
– MMS bevorzugt?cmsbs.numsms
– Anzahl der versendeten Newsletter-SMS
Sollten gleichnamige Attribute in der additional.attributes
-Datei angegeben sein, werden sie ignoriert und sind nicht nutzbar.
Unterscheidung Abonnement E-Mail vs. SMS entfernt
Mit Release 7.47 wird bei Listen-Abonnements nicht mehr zwischen einem Abo für den E-Mail- bzw. SMS-Versand unterschieden.
Im Backoffice entfällt damit die “SMS”-Checkbox bei der Bearbeitung von Listen-Abonnements.
Des Weiteren entfallen folgende Prädikate der Abfragesprache:
inChannelSms
notInChannelSms
newsletterSmsContacted
newsletterNotSmsContacted
Folgende Prädikate der Abfragesprache sollten nicht mehr verwendet werden, bleiben aber bis auf Weiteres noch nutzbar:
inChannelMail
notInChannelMail
Optimierung des internen Datenmodells
Das interne Datenmodell wurde zur Performanceoptimierung und zur Verbesserung der Übersichtlichkeit an mehreren Stellen angepasst.
Anwender des Universal Messenger sollten von diesen Anpassungen nicht beeinträchtigt werden.
Für Entwickler sind die Anpassungen nur relevant, falls im Projekt direkt per SQL auf die Datenbank des Universal Messenger zugegriffen wird. Vor allem in Bezug auf die Speicherung der Listen-Abonnements könnten an dieser Stelle Code-Änderungen erforderlich werden.
Listen / Channels
Die Definitionen von Listen (“Channels”) werden nun in der neuen Datenbanktabelle channels
statt bisher in rights
bzw. rights_attr
gespeichert.
Listen-Abonnements / Channel Subscriptions
Listen-Abonnements werden nun nicht mehr in der Überlaufattributtabelle users_attr
, sondern in einer neuen Relationstabelle users_channels
gespeichert.
Segmente / VChannels
Die Definitionen von Segmenten (“VChannels”) werden nun in der neuen Datenbanktabelle vchannels
statt bisher in metas
bzw. metas_attr
gespeichert.
CronJobs
Die Definitionen von CronJobs werden nun in der neuen Datenbanktabelle cronjobs
statt bisher in metas
bzw. metas_attr
gespeichert.
Core Scripting Engine
Polymorphie für Entry-Klasse
Mit UM-Release 7.47 ist es in der Core Scripting Engine möglich, für unterschiedliche Entry-Types jeweils eigene Subklassen von Entry
zu implementieren. Alle UM-Kernfunktionen, die Instanzen der Klasse Entry
zurückliefern, liefern dann Instanzen der jeweiligen Subklasse zurück.
Für die Entry-Types admin
bzw. customer
könnte dies beispielsweise wie folgt aussehen:
cmsbs-conf/cse/plugins/.../shared/entry-types.mjs
:
export class Customer extends Entry {
get myClassname() {
return 'Customer';
}
toString() {
return `Customer: ${this.fullname}`;
}
get fullname() {
return `${this.get('firstname')} ${this.get('lastname')}`;
}
}
export class Admin extends Entry {
get myClassname() {
return 'Admin';
}
toString() {
return `Admin: ${this.fullname}`;
}
get fullname() {
return `${this.get('firstname')} ${this.get('lastname')}`;
}
}
// Klassen als `Entry`-Subklassen registrieren:
globalThis.Entry_customer = Customer;
globalThis.Entry_admin = Admin;
Damit können dann die neuen Methoden und Eigenschaften verwendet werden:
const c = UM.addEntry('customer-1', 'customer');
c.set('firstname', 'Max');
c.set('lastname', 'Mustermann');
'' + c // -> "Customer: Max Mustermann"
Funktionserweiterungen
Listen (=Channels) können ab jetzt um Custom-Attribute erweitert werden, die über die Backoffice-Oberfläche bearbeitet und per CSE- oder REST-API abgerufen werden können. Siehe Handbuch für Entwickler.
Auf dem Dashboard unter Newsletter Tracking werden nur noch Newsletteraussendungen mit mindestens zehn potentiellen Empfängern in Form eines kleinen Briefumschlagsymbols angezeigt.
Alternativ zu reCAPTCHA von Google kann nun auch Friendly Captcha zur Absicherung der Newsletteranmeldeformulare verwendet werden.
Fehlerkorrekturen
Der Job zum Löschen alter Newsletter wurde optimiert und benötigt nun weniger Arbeitsspeicher.
Ein Fehler in der Newsletter App wurde behoben, durch den bei Aktivierung der anonymen Anmeldung die serverseitige Validierung der Eingaben außer Kraft gesetzt wurde.
Aktualisierte Bibliotheken
Spring Core / Web / WebMVC 5.3.21
Embedded Tomcat 8.5.81
jackson-core 2.13.3
Device Detector (User-Agent-Erkennung für Newsletter-Tracking): Update auf Version vom 22.6.2022