Skip to main content
Skip table of contents

Patch-Notes 2023.3

Version.Patch

Freigabetermin

Hinweise

23.3.10

07.06.2024

ERFOLGT

23.3.09

30.04.2024

ERFOLGT

23.3.08

04.03.2024

ERFOLGT

23.3.07

14.12.2023

ERFOLGT

23.3.06

20.10.2023

ERFOLGT

23.3.05

21.09.2023

ERFOLGT

23.3.04

24.08.2023

ERFOLGT

Timeline

Patch-Notes 2023.3.10

Bugs

Ticket-Nr

Produkt

Komponente(n)

Zusammenfassung

0034964

CURSOR-CRM

Dokumentenhandling

Externe Dokumente konnten nicht geöffnet werden, wenn diese per serverseitiger Serienmail hinzugefügt wurden

CURSOR-CRM

Systembasis Web Client

Werte in Zahlenfeldern, die per FieldUtils.setValue gesetzt worden waren, wurden beim Verlassen des Feldes ohne Änderung entfernt

0034945

CURSOR-CRM

Customizing-Transport

Beim Customizing Transport von DS-GVO-Verarbeitungstätigkeiten wurde immer nur eine der enthaltenen DS-GVO Kategorien mit übertragen

0034944

CURSOR-CRM

Systembasis Web Client

Im Web Client wurden nicht alle Felder erneut angezeigt, wenn man "Alle Felder anzeigen" auswählte

0034924

Infoboard

Unter bestimmten Umständen wurde auf Infoboards immer der Standardname der Kachel (z.B. 'KPI') anstatt des individuellen Titels (z.B 'Umsatz 2023') angezeigt

0034835

CURSOR-CRM

Kacheln

Verwendung des I18n-Eingabefeldes innerhalb von Kacheln führte bei aktiviertem Customizing-Transport zu Datenverlusten

CURSOR-CRM

Kacheln

Die Durchschnittsberechnung der KPI-Kachel schlug fehl, falls nicht-Zahlwerte in dem Feld der Berechnung enthalten waren

0034469

CURSOR-CRM

Geoanalyse

Der Startpunkt für die Routenplanung in der Geoanalyse wurde nicht korrekt ermittelt

CURSOR-CRM

Maskenskript

Die Labels für den Personen-Typ wurden unter Umständen beim Typ-Wechsel nicht geändert

Features

-

Features-Dokumentation

-

Patch-Notes 2023.3.09

Bugs

Ticket-Nr

Produkt

Komponente(n)

Zusammenfassung

CURSOR-CRM

Workflows

Client Workflows, welche Reports erzeugten und exportierten, konnten beim Update ab Version 23.3 nicht mehr gelesen werden

CURSOR-CRM

Customizing-Transport

Beim Mitarbeiterabgleich konnte es zu einem Fehler kommen, wenn Person oder Telekom fehlten

0034796

CURSOR-CRM

REST Webservices

Die Option "Duplikate erlauben" konnte in der REST-API /search nicht definiert werden und wurde immer mit "Duplikate erlauben" ausgeführt

0034788

HelVis

Suchen, Systembasis Web Client

Suchen mit geschweiften Klammern in der Beschreibung konnten im Web Client nicht geladen werden

CURSOR-CRM

Kacheln

Kachel 2.0: deepEqual in einem DataSourceHook führte beim Rendern von Kacheln zur Verschlechterung der Performanz

0034780

CURSOR-CRM

Infoboard, Kacheln

Wurden in einer v2-Kachel mehrfach Daten über die gleiche Suche ermittelt, haben sich die Ergebnisse gegenseitig überschrieben

CURSOR-CRM

UX

Bereiche konnten bei der Verwendung von Firefox nicht geöffnet werden

0034755

CURSOR-CRM

Infoboard

Kacheltitel wurden erst dann internationalisiert angezeigt, wenn man die Kachel übersteuerte und das Board neu geladen wurde

0034745

CURSOR-CRM

Teststudio

Das Test-Studio konnte keine Datumsfelder befüllen, deren Maskenkomponente 'DateTextField' war und bei denen das Zeitfeld eingeblendet war

0034739

CURSOR-CRM

Customizing-Transport

Wenn ein Customizing Transport per Timer scheiterte und im Paket eine Entität enthalten war, wurde unter Oracle der leere Paketrumpf nicht zurückgerollt

CURSOR-CRM

Customizing-Transport

Wenn ein Web Service ohne Skript transportiert werden sollte, kam es zum Fehler beim Import

CURSOR-CRM

Maskenskript

FieldUtils.setValue setzte zuvor per Maskenskript veränderte Eigenschaften von Zahlenfeldern zurück

0034728

CURSOR-CRM

Groupware

Beim Drag and Drop auf einen Geschäftspartner konnte es zu einem Fehler kommen, wenn kein Default-Ansprechpartner existierte

CURSOR-CRM

Skript-Bibliothek

Das Zurückrollen eines Pakets löschte Methoden einer C1-Skript-Bibliothek

CURSOR-CRM

Systembasis Server

Wurde ein Datensatz nicht geändert aber z.B. per BPM-Skript gespeichert, so konnte der Datensatz in demselben Skript nach weiteren Änderungen nicht mehr gespeichert werden

0034712

CURSOR-CRM

Systembasis Web Client

Ein Doppelklick auf die Lupe eines Schlüsselfeldes konnte die Anwendung blockieren

0034677

CURSOR-CRM

Maskenskript

Neuanlage eines Modulskripts führte zu einem Fehler

0034670

CURSOR-CRM

Timer

Bei der erneuten Übertragung von Modulen, die Timeraktionen enthielten, wurde der zuvor eingetragene ausführende User der Aktion im Zielsystem geleert

0034644

CURSOR-CRM

Kacheln

Pivot-Kachel nahm bei grafischen Darstellungen nicht allen verfügbaren Platz ein

CURSOR-CRM

Infoboard, Kacheln

Beim Ändern der Konfiguration der Streamline-Kachel konnte es dazu kommen, dass die Suche das System übermäßig belastete

Features

Zusammenfassung

Test-Studio: In Chrome erschien bei Neuanlage der Anlage ein Popup, welches abfragte, ob die Adresse gespeichert werden sollte

Neue Datenbank-Funktion "FNC_GetDateDiff", um die Differenz zwischen zwei Datumswerten zu ermitteln

Features-Dokumentation

Test-Studio: In Chrome erscheint bei Neuanlage der Anlage kein Popup mehr, welches abfragte, ob die Adresse gespeichert werden sollte

-

Neue Datenbank-Funktion "FNC_GetDateDiff", um die Differenz zwischen zwei Datumswerten zu ermitteln

Es wurde die Funktion
FNC_GetDateDiff(startDate DATETIME, endDate DATETIME, accuracy VARCHAR)
aufgenommen.
Sie nimmt Datumswerte entgegen und berechnet die Differenz zwischen diesen Werten auf Basis der übergebenen accuracy.
Liegt startDate nach endDate, ist die Differenz negativ.
Gültige Werte für die accuracy sind:
'YEAR', 'MONTH', 'DAY', 'HOUR', 'MINUTE'
Wird eine andere accuracy angegeben, liefert die Funktion NULL zurück.

MSSQL

SQL
select 
	pk,
	dbo.FNC_GetDateDiff(startDate, endDate, 'falsch') as errorValue,
	dbo.FNC_GetDateDiff(startDate, endDate, 'YEAR') as yearDiff,
	dbo.FNC_GetDateDiff(startDate, endDate, 'MONTH') as monthDiff,
	dbo.FNC_GetDateDiff(startDate, endDate, 'DAY') as dayDiff,
	dbo.FNC_GetDateDiff(startDate, endDate, 'HOUR') as hourDiff,
	dbo.FNC_GetDateDiff(startDate, endDate, 'MINUTE') as minuteDiff,
	startDate,
	endDate 
from activity 

Oracle

CODE
select 
	pk,
	FNC_GetDateDiff(startDate, endDate, 'falsch') as errorValue,
	FNC_GetDateDiff(startDate, endDate, 'YEAR') as yearDiff,
	FNC_GetDateDiff(startDate, endDate, 'MONTH') as monthDiff,
	FNC_GetDateDiff(startDate, endDate, 'DAY') as dayDiff,
	FNC_GetDateDiff(startDate, endDate, 'HOUR') as hourDiff,
	FNC_GetDateDiff(startDate, endDate, 'MINUTE') as minuteDiff,
        startDate,
	endDate 
from activity 

Wird die Funktion in einem SQL-Ausdruck oder SQL-Ausdruck (Where-Part) verwendet, so wird diese immer ohne dbo. angegeben, das ergänzt die Such-Engine.

Beispiel für einen SQL-Ausdruck in einer Suche der Tabelle “Activity”, der die Zeitdifferenz zwischen Start und Ende der Aktivität in Minuten ausgibt:

CODE
FNC_GetDateDiff(${StartDate.Activity}, ${EndDate.Activity}, 'MINUTE')

Beispiel für einen SQL-Ausdruck (Where-Part) in einer Suche der Tabelle Activity, der auf die Zeitdifferenz zwischen Start und Ende der Aktivität in Minuten prüft:

CODE
FNC_GetDateDiff(${StartDate.Activity}, ${EndDate.Activity}, 'MINUTE') > 60

Compliance: Austausch des Feldes "Freeboolean15.Employee" (Compliance-kritisch) im Vorgang abschließen-Prozess

Aufgrund der im Standard eingeschränkten Berechtigung zum Bearbeiten von Feldern in der Mitarbeiter-Entität musste das Feld “Freeboolean15.Employee” im Teilprozess "Vorgang abschließen" (C0TicketCompletionSub) im Schritt "Vorgang oder Anliegen abschließen" ausgetauscht werden. Daher wurde die Maske und die Logik angepasst, die daraufhin den Compliance-Status des Geschäfts- bzw. Ansprechpartners setzt.

Patch-Notes 2023.3.08

Bugs

Ticket-Nr

Produkt

Komponente(n)

Zusammenfassung

CURSOR-CRM

Customizing-Transport, Module, Schlüssel

Es kam zum Fehler beim Import von Modulen, wenn ein Konflikt mit numerischen Schlüsseln auftrat und ein neuer Schlüsselnamen gewählt wurde

CURSOR-CRM

Kacheln

In Firefox änderte sich beim Theme-Switch der Hintergrund des Seitenanzahl-Felds, sodass die Nummer schwer lesbar war

0034607

CURSOR-CRM

Customizing-Transport

Mitarbeiterabgleich schlug fehl, wenn technischer User sich selbst abgleichen musste, da er Berechtigungen verlor

CURSOR-CRM

Systembasis Server

Wurde das Pattern #PATTERN#[VALUE--DefaultContactPerson(0,9)] auf einem Textfeld einer Aktivität genutzt und der gewählte Ansprechpartner im Feld "Aktivität mit" einen Kurznamen hatte, der weniger als 9 Zeichen besaß, so kam es zu einem Fehler

0034601

CURSOR-CRM

BPM

FileUtils.copyFile vergab die falschen Benutzerrechte der kopierten Datei, da die Berechtigung der Ursprungsdatei übernommen wurde

0034591

CURSOR-CRM

Schlüssel

Der Aufruf von LookupUtils.insertOrUpdateIntoKeytable konnte zu Datenverlust führen

CURSOR-CRM

Kacheln

Links in der Kommentar-Kachel wurden innerhalb der Kachel selbst geöffnet

0034465

CURSOR-CRM HelVis

Dokumentenhandling

Nach dem Öffnen eines PDF-Dokuments kam es zu einem Fehler, wenn mehrere Mitarbeiter mit demselben Kürzel existierten

CURSOR-CRM

Systembasis Server

ActualEmployeeCache wurde nicht aktualisiert, wenn Telecom-Daten geändert wurden

CURSOR-CRM

Systembasis Web Client

Excelvorlage: Bei der Ausführung eines Exports per Dokumentvorlage ohne Assistent wurde kein Dokumentendatensatz generiert

0034541

CURSOR-CRM

BPM

In der BPM-Selektion wurden entfernte vorbelegte Kriterien in der Suchausführung nicht berücksichtigt

CURSOR-CRM

Customizing-Transport

Der REST-Service zum Annehmen von Paketen wurde nicht ausgelöst, wenn das Paket importiert (nicht transferiert) wurde

CURSOR-CRM

Customizing-Transport

Es konnten Pakete importiert werden, die nicht aus dem Quellsystem stammten

0034494

EVI

Customizing-Transport

Customizing-Transport im Web Client setzte Sperr-Haken beim Transfer nicht

0034484

CURSOR-CRM

Infoboard

Änderung an einer Kachel auf einem übersteuerten C1-Board sorgte für Fehlermeldungen im Stacktrace

0034461

CURSOR-CRM

Customizing-Transport

Waren einzelne Systeme der Systemlandschaft voneinander abgeschottet, wurden Globale Variablen nur für die sichtbaren Systeme angelegt

0034433

CURSOR-CRM

Dokumentenhandling

Der Schreibschutz in der Dokumentvorlage ging nach dem Generieren des Dokuments verloren

0034366

CURSOR-CRM

Skript-Bibliothek, Skript-Editor

Maskenskript: Für die Methode "DocumentUtils.generateDocument" wurde manchmal die falsche Dokumentation angezeigt

0034359

CURSOR-CRM

Kacheln

Digitale Unterschriften in PDF Dokumenten wurden in der Dokumentenvorschau nicht angezeigt

0034193

CURSOR-CRM

SSL-Tool

Bei Verwendung der Funktion "Konfigurationsdateien aktualisieren" trat im SSLUpdateTool ein Fehler auf

Features

Zusammenfassung

REST-Aufruf mit Authentifizierung via Client-Zertifikat mit mTLS

Das automatische Öffnen von generierten Exceldokumenten steht auch im Assistenten der Excelgenerierung zur Verfügung

Die Pflege von Anwendungsvariablen zum Mapping von Standard-Schlüsseln aus C1-Schicht auf eigene Schlüssel ist möglich

Im Masken-Editor sollen Bindestriche in der CRM-ID erlaubt werden

BPM: CRM-Detailmasken werden im Bearbeitungsmodus geöffnet

Features-Dokumentation

REST-Aufruf mit Authentifizierung via Client-Zertifikat mit mTLS

Mutual TLS (mTLS) steht für Mutual Transport Layer Security und ist eine Erweiterung von TLS (Transport Layer Security), dem meistverwendeten Sicherheitsprotokoll für die Verschlüsselung und den Schutz von Daten im Internet. Während TLS hauptsächlich verwendet wird, um die Kommunikation zwischen einem Client (z.B. einem Webbrowser) und einem Server zu sichern, geht mTLS einen Schritt weiter, indem es eine beidseitige Authentifizierung ermöglicht. Das bedeutet, dass sowohl der Client als auch der Server ihre Identität gegenseitig bestätigen müssen, bevor eine sichere Kommunikation stattfinden kann.

Vorteile von mTLS:

  1. Verbesserte Sicherheit: Durch die beidseitige Authentifizierung können sowohl der Client als auch der Server sicher sein, dass sie Daten mit dem richtigen Partner austauschen. Dies schützt vor verschiedenen Arten von Angriffen, einschließlich Man-in-the-Middle-Angriffen.

  2. Fein abgestimmte Zugriffskontrolle: mTLS ermöglicht eine detaillierte Zugriffskontrolle auf Ressourcen. Da die Identität jedes Clients verifiziert wird, kann der Zugriff auf spezifische Dienste oder Daten strikt reguliert werden.

  3. Datenschutz: Die verschlüsselte Kommunikation schützt sensible Informationen vor dem Zugriff durch Dritte.

  4. Standardkonformität: Für bestimmte Branche, insbesondere im Finanz- und Gesundheitswesen, kann mTLS dabei helfen, Compliance-Anforderungen zu erfüllen.

Voraussetzungen für mTLS:

  1. TLS-Unterstützung: Sowohl Clients als auch Server müssen TLS unterstützen.

  2. Zertifikate: Sowohl der Client als auch der Server benötigen digitale Zertifikate. Diese dienen als digitale Pässe oder Ausweise, die die Identitäten bestätigen. Diese Zertifikate werden i.d.R von einer vertrauenswürdigen Zertifizierungsstelle (Certificate Authority, CA) ausgestellt.
    Der Kunde ist zuständig passende Zertifikate im CRM zu hinterlegen, sodass diese bei einem REST-Aufruf mit mTLS zur Verfügung stehen.
    Das CRM benötigt ein Schlüsselpaar bestehend aus einem privaten, verschlüsselten Schlüssel (encrypted private key) und dem dazugehörigen öffentlichem Zertifikat, um sich gegenüber der Gegenstelle zu authentifizieren. Der Schlüssel muss in der Syntax nach PKSC8 und das Zertifikat im Syntax nach X.509 vorliegen. Beide Werte werden zusammen in PEM-Format im CRM abgelegt.

  3. Vertrauenswürdige Zertifizierungsstellen: Der Client und der Server müssen sich gegenseitig vertrauen, was bedeutet, dass die Zertifikatsketten, die ihre Zertifikate validieren, bis zu einer gemeinsam anerkannten CA zurückverfolgbar sein müssen.

mTLS bietet eine sehr hohe Sicherheit für die Kommunikation zwischen Systemen. Es ist besonders nützlich in Umgebungen, in denen hohe Sicherheits- und Vertrauensanforderungen bestehen. Es erhöht jedoch die Komplexität durch den Aufwand für die Einrichtung und Verwaltung der Zertifikate (Zertifikate haben ein Ablaufdatum und müssen regelmäßig erneut ausgestellt und verteilt werden) bzw. bei die Gestaltung der REST-Aufrufe.

Das automatische Öffnen von generierten Exceldokumenten steht auch im Assistenten der Excelgenerierung zur Verfügung

Das automatische Öffnen von generierten Exceldokumenten steht auch im Assistenten der Excelgenerierung zur Verfügung.
Bedingung: Der Assistent wird direkt mit der Assistentenseite "Exportdatei geöffnet" geführt.

Bei folgenden Szenarien wird der Assistent direkt mit der Assistentenseite "Exportdatei geöffnet" :

  • Im BPM-Prozess ist in der Excel-Massendatenaktion eine der beiden folgende Serveraktionen gewählt

    • "Alle gewählten Aktionen ausführen und Assistent öffnen" oder

    • "Alle gewählten Aktionen ohne Assistent ausführen" (in Kombination mit einer makrobehafteten Excelvorlage)

  • Öffnen eines zwischengespeicherten Excelassistenten mit zuletzt geöffneter Assistentenseite "Exportdatei"

Die Pflege von Anwendungsvariablen zum Mapping von Standard-Schlüsseln aus C1-Schicht auf eigene Schlüssel ist möglich

Über die Anwendungsvariablen kann im Kundensystem ein Eintrag mit der ID "C1Key" angelegt werden. Als Eigenschaft ist dann der interne Name des Schlüsselbereichs sowie der Pk des Schlüssels mit Trennzeichen zu hinterlegen
Beispiel: C12KALKSTATUS$!!$fvvvvvvjp00601e4t16bn2S_Keytab

Im Masken-Editor sollen Bindestriche in der CRM-ID erlaubt werden

Bindestriche sind nun in der CRM-ID im Standard erlaubt.

BPM: CRM-Detailmasken werden im Bearbeitungsmodus geöffnet

Ein BPM-Prozess wird gestartet und im Prozess wird die CRM-Detailmaske angezeigt. Bisher öffnete diese im Lesemodus. Um im Prozess den Datensatz pflegen zu können, musste man immer zunächst in den Bearbeiten-Modus der Maske wechseln. Das war nicht optimal, da in einem Prozess-Kontext fast immer eine Datenpflege erfolgen soll. Die Maske wird jetzt direkt im Bearbeiten-Modus angezeigt.

Patch-Notes 2023.3.07

Ticket-Nr

Produkt

Komponente(n)

Zusammenfassung

CURSOR-CRM

Systembasis Server

Das Leeren der Metadaten Caches dauerte deutlich länger als die Statements über den SQL-Editor

0034497

CURSOR-CRM

BPM, Suchen

Der Anzeigetext von Eingabefeldern in einer Prozess-Suche wurde nach dem Speichern nicht mehr angezeigt

0034481

Kacheln

Kanban: Keine Suche wurde bei manuellem Refresh der Entitäts-Kachel durchgeführt

0034472

CURSOR-CRM

Suchausführung

Es kam zu einem Fehler bei der Auswahl eines Ergebnisses einer Einfeldsuche

0034467

CURSOR-CRM

Kacheln

Suchen-Kachel ließ sich nicht mehr sortieren

0034448

HelVis

BPM

Merkmalsschlüssel wurden in der BPM-Suchmaske im Web Client nicht über die ausgewählte Merkmalskategorie eingeschränkt

0034432

Admin-Konsole

Der Import von Dokumentenvorlagen per Migrationstool war trotz Fehlermeldung erfolgreich

0034392

Kacheln, Performance

Kanban V2: Bei Darstellung von Datensätzen im dreistelligen Bereich konnte es zu Performance-Problemen kommen

0034391

EVI

Jasper Reports

In der Anzeige für Reports und Auswahl im TopCount konnte der Wert -1 nicht eingetragen werden

0034376

CURSOR-CRM

Admin-Konsole

Adminkonsole - Beim Kopieren von Serienbriefvorlagen fehlte die Konvertierung nach internen Feldnamen

Maskenskript

In beiden Clients war das Verhalten von FieldUtils.addPreselectionValues unterschiedlich

0034366

CURSOR-CRM

Maskenskript

Dokumentation des Befehls DocumentUtils.generateDocument() wurde optimiert

0034365

Suchbearbeitung

Die Ebene zur Auswahl eines Schlüsselwertes berücksichtigte im Web Client nicht, dass die Suchbearbeitung sich dieser Hinsicht wie eine Suchmaske verhalten soll

0034336

CURSOR-CRM

BPM

Das Ergebnis von Prozess-Web-Service-Aufrufen enthielt sporadisch keine Variablen, wenn gleichzeitig zum Aufruf der System-Cache geleert wurde

0034333

CURSOR-CRM

sonstiges

Starten des Jasper-Designers scheiterte mit "See the Logfile, du Null" aufgrund von Dateiberechtigungen

0034327

CURSOR-Importer

Cursor Importer: Werte für <longValue> wurden nicht verarbeitet

CURSOR-CRM

Admin-Konsole

Die Anwendungsvariable mit der id = '/MassDataQueuedJobCache$!!$useMaxProcessorCount' war zum Customizingtransport markiert

0034283

CURSOR-CRM

Kacheln

Kanban V2: Die FilterSorter-Komponente wurde nicht in Kacheln angezeigt, welche Unterbereichsrelationen und deren Datensätze anzeigten

0034280

CURSOR-CRM

Kacheln

Kommentar- und Aktivitäten-Kachel bei mehrfacher Erwähnung von Mitarbeitern führte zu Performanzproblemen

CURSOR-CRM

Kachel-Editor

Abhängigkeiten von V2-Kacheln funktionierten nicht, wenn sie ungültige Zeichen enthielten

0034166

CURSOR-CRM INHOUSE

Dokumentenhandling

Die Dokumentenrückgabe schlug wegen Sonderzeichen ("/") im Benutzernamen fehl

0034066

CURSOR-CRM

i18n

Die Fehlermeldung im Dokumentenhandling des Browser-Plugins brachte eine unverstädliche Meldung

CURSOR-CRM

Dokumentenhandling

Der Absender einer Dokumentvorlage konnte nach dem Speichern nicht mehr bearbeitet werden

CURSOR-CRM

Dokumentenhandling

Excel-Massendatenaktion in BPM: Die Ausführung der Makros in den generierten Exceldateien war nicht zwingend erforderlich

0033883

CURSOR-CRM

Masken-Editor

Maskeneditor: Das Leeren einer Maske und die Rückgängig-Machen-Aktion danach führte zu einer leeren Baumansicht

0033441

CURSOR-CRM

HTML-Editor

Bilder im Memotext wurden im Lesemodus nicht angezeigt, wenn kein weiterer Text enthalten war

Features

Zusammenfassung

Mailversand via SMTP ohne IMAP | Versand von Serienmails ohne gespeichertes Passwort

Methode zur Prüfung, ob der aktuelle Benutzer einer bestimmten Rechtegruppe zugeordnet ist

Aktualisierung der Datenqualität bei bestimmten Aktionen

Windows Client: Austausch des Hilfe-Links für neue Online Hilfe

Features-Dokumentation

Mailversand via SMTP ohne IMAP | Versand von Serienmails ohne gespeichertes Passwort

Im Windows Client wird die „normale“ Serienmail via Outlook direkt versendet, im Web Client hingegen wird der serverseitige E-Mailversand verwendet.

Bei Systembetreibern, die keine Passwörter im CRM speichern dürfen, war es problematisch. Jetzt ist der Mailversand ohne SMTP möglich, indem die Mailkonfiguration entsprechend konfiguriert wird und der Postausgangsserver in dem Fall keine Authentifizierung über IMAP verlangt.

Hierzu muss die Systemeinstellung konfiguriert werden.

Konfiguration ohne IMAP / über SMTP

Das Feld für die IMAP-Konfiguration muss leer bleiben, wenn die SMTP-Konfiguration aktiviert wurde.

E-Mail-Konfiguration

Methode zur Prüfung, ob der aktuelle Benutzer einer bestimmten Rechtegruppe zugeordnet ist

Es wurde eine Methode implementiert, die zurück liefert, ob dem SessionUser eine übergebene Rechtegruppe zugeordnet ist.

Details → isSessionUserInGroup

Aktualisierung der Datenqualität bei bestimmten Aktionen

Die Anzeige der Datenqualität wird bei jeder Wertänderung aktualisiert: sei es durch den Benutzer oder durch Maskenskript. Dieses Verhalten gilt für alle Ansichten, in denen die Datenqualität angezeigt wird.

Details → Datenqualität

Windows Client: Austausch des Hilfe-Links für neue Online Hilfe

Die Online-Hilfe wird in einem Browser geöffnet und verweist auf CURSOR Help Center.

Details → Über das Handbuch

Patch-Notes 2023.3.06

Bugs

Ticket-Nr

Produkt

Komponente(n)

Zusammenfassung

CURSOR-CRM

Lucene

Bei der Erstellung des Lucene-Index für ProcessContainer wurde nicht auf das Active-Flag geprüft

CURSOR-CRM

Skript-Bibliothek

Fehlerhafte Methoden-Aufrufe in Test-Methoden der Skript-Bibliothek wurden nicht als Fehler erkannt

CURSOR-CRM

Customizing-Transport

Ein Customizing-Paket konnte nicht importiert werden, wenn es einen leeren gruppen-spezifischen myCRM-Ordner enthielt

CURSOR-CRM

Groupware

Beim Anmelden wurde ein Fehler für den Adressbuch-Cache protokolliert, wenn der Benutzer kein Passwort für die Groupware eingetragen hatte

0034249

CURSOR-CRM

Systembasis Server

CompactList: Suchen wurden in der Vorschlagsliste bei Verwendung eines Systemboards nicht gefunden

0034232

CURSOR-CRM

Kacheln

Für bestimmte Nachschlagefelder im Kachel-Drawer wurde doppelter Platz verwendet

0034223

EVI

Massendaten

Die Lucene Indizierung brach auf einem Massendatenserver ohne Protokolierung ab

CURSOR-CRM

Infoboard

Kacheln in Boards tieferer Schichten konnten in der Größe verändert werden

CURSOR-CRM

Kachel-Editor

Hotkeys (wie z.B. Strg+S) lösten im Kachelbuilder die Browseraktion aus

0034092

CURSOR-CRM

Kacheln

Verkleinerte Darstellung der CompactList-Kachel wurde verbessert

0034083

CURSOR-CRM

Customizing-Transport, Infoboard, Kachelvarianten

Beim Schließen des Drawers einer Kachelvariante fehlte der Customizing-Dialog

0034074

CURSOR-CRM

Angebote & Verträge

Änderung des Einzelpreises (FW) war nicht möglich, wenn der bereits gefüllt war

0034053

Infoboard

Auswahlmenü der Boards in der Board-Verwaltung wurde zur Hälfte außerhalb des Browserfensters angezeigt

0034049

CURSOR-CRM

Kacheln

Verschiedene Padding-Werte verursachten unterschiedliches Aussehen der Badges der Scores-Kachel

0034027

CURSOR-CRM

Externe Arbeit (z. B. Installationen)

Beim Aufsplitten des Hauptpartnermoduls wurden i18n Einträge nicht dem korrekten Modul zugewiesen

0033764

CURSOR-CRM

Kacheln

KanbanV2: Wenn man die Suche nachträglich um Felder erweiterte, wurden diese nicht sofort in den Filtern und Sortiereinstellungen angezeigt

Features

Zusammenfassung

Erweiterung Eingehende Rest-Services scriptlibrary

Verbesserungen an der Filter- und Sortierkomponente

Ressourcen-Kalender: Verbesserte initiale Spaltenbreite der Ressourcen innerhalb der Wochenansicht

Ressourcen-Kalender: Implementierung einer Kalender-Komponente zur Datumsauswahl

Nutzung von BPM-User-Task-Neuanlage unabhängig von Aktionsrecht "Erstelle xxx"

CompactList: Konfiguration, ob initial die Kachel mit eingeklappter Filter/Sorter-Komponente angezeigt wird

Anzeige des Wochentags in der Überschriftenzeile der Tagesansicht des Ressourcen-Kalenders

Ausführung von Suche in Selektionstask in BPM-Prozessen wird nicht mehr erzwungen

bbetter: Logiken bei dem Ende der Klassifizierung und Gründen einbauen

Aufnahme der Datenqualität in den Metadatenexport

Features-Dokumentation

Erweiterung Eingehende Rest-Services scriptlibrary

Die Rest-API bietet nun die Möglichkeit, eine @Remote und @BpmSkript gekennzeichnete Methode aufzurufen. Die Dokumentation der Rest-API kann mit folgender URL aufgerufen werden:

CODE
https://server:port/rest/doc/v1/services/scriptlibrary 

Die Services benötigen eine gültige Autorisierung mit Benutzername und Passwort oder eines Session-Tokens. Die Sprache des Aufrufs kann durch dien Angabe "Accepted-Language: de-DE" gesteuert werden oder fällt auf die Standard-Sprache des Applikationsservers bzw. Server-Systems zurück.

Die Rest-API bietet zwei Services über dieselbe URL an, um die Dokumentation der Methode auslesen zu können und diese aufzurufen.

GET: /rest/api/scriptlibrary/v2/classes/\{classname\}/\{methodname\}

CODE
-- HTTP-Status --
200: OK

-- Response-Body --
/**
 * Remote call method.
 *
 * @param parameter The method parameter.
 *
 * @return The method result.
 *
 * @example
	String result = SCRemoteCall.remoteCall("string");
 */
@BpmScript @Remote
String remoteCall(String parameter) 

Kann eine Skript-Klasse bzw. Methode nicht gefunden werden oder erfüllt die Methode die Anforderungen für die Rest-API nicht, so wird mit dem HTTP-Status-Code "604: Wrong Parameter" quittiert.

Der Aufruf dieser Skript-Methode verwendet dieselbe URL erwartet aber die Parameter als JSON-Payload als HTTP-POST Aufruf.

POST: /rest/api/scriptlibrary/v2/classes/\{classname\}/\{methodname\}

CODE
-- Skript-Methode --
@BpmScript @Remote
String remoteCall(String parameter)
{
  return "Result: " + parameter
}

-- Request-Body --
{
  "parameter" : "Parameter-Content"
}

-- HTTP-Status --
200: OK

-- Response-Body --
{
  "result" : "Result: Parameter-Content"
}

Falls die Methode nicht gefunden werden kann oder die Voraussetzungen für den Aufruf über Rest-API nicht erfüllt, Parameter fehlen oder einen fehlerhaften Datentyp verwenden, erfolgt eine Ausgabe als Fehler.

CODE
{
  "error": {
    "reason": "Wrong parameter.",
    "exceptionMessage": "ParameterException: Could not find ScriptLibrary class 'SCRemoteCall'!",
    "exceptionHash": -1099067344,
    "statusCode": 604
  }
}

Der JSON-Payload ermöglicht nicht alle Datentypen der Parameter oder Rückgabewerte direkt anzugeben. Daher findet eine Konvertierung der Parameter statt. Die folgenden Beispiele zeigen verschiedene Methode-Signaturen mit den entsprechenden Request- und Response-JSON-Payload.

  • Datumswerte werden im ISO-8600-Format angegeben

  • Nachschlagewerte werden über den Primärschlüssel identifiziert

  • Bei Maps, Listen und Arrays vom Typ Object oder Serializable findet keine Konvertierung z.B. von Strings im Format ISO-8600 nach Date statt

Multi-Parameter

CODE
@BpmScript @Remote
Date multiParameterMethod(String s, Integer i, Long l, Double d, BigDecimal bd, Boolean b, Date dt, ILookup lo)
{
  return dt;
}

-- Request-Body --
{
  "s" : "abc",
  "i" : 123,
  "l" : 123456789012345,
  "d" : 12.34,
  "bd": 12345678901234.12345678901234,
  "dt" : "2022-04-11T12:00:00.000Z",
  "b" : true
  "lo" : "LookupPk"
}

-- Response-Body --
{
  "result" : "2022-04-11T12:00:00+00:00"
}

Array-Parameter

CODE
@BpmScript @Remote
BigDecimal[] arrayParameterMethod(BigDecimal[] bd, Double[] d)
{
  BigDecimal[] result = new BigDecimal[bd.length + d.length + 1];
  for(int i = 0; i < bd.length; i++) {
     result[i] = bd[i];
  }
   for(int i = 0; i < d.length; i++) {
     result[bd.length + i] = new BigDecimal(d[i]);
  }
  result[result.length - 1] = new BigDecimal(5.5)
  return result;
}

-- Request-Body --
{
  "bd" : [11111111.11111111,222222222.22222222],
  "d" : [33.33,44.44]
}

-- Response-Body --
{
  "result" : [11111111.11111111,222222222.22222222,33.33,44.44,5.5]
}

List-Parameter

CODE
@BpmScript @Remote
List<String> listParameterMethod(List<String> ls, List<Integer> li)
{
  for(Integer i : li)
  {
    ls.add("" + i)
  }
  return ls;
}

-- Request-Body --
{
  "ls" : ["a","b","c"],
  "i" : [1,2,3]
}

-- Response-Body --
{
  "result" : ["a","b","c","1","2","3"]
}

Map-Parameter

CODE
@BpmScript @Remote
Map<String,Object> mapParameterMethod(Map<String,Object> map)
{
  map.put("sOut", "xyz");
  map.put("iOut", 456);
  map.put("dtOut", new Date());
  return map;
}

-- Request-Body --
{
  "m" : {
    "s" : "abc",
    "i" : 123,
    "l" : 123456789012345,
    "d" : 12.34,
    "bd": 12345678901234.12345678901234,
    "dt" : "2023-01-01T12:00:00.000Z",
    "b" : true
  }
}

-- Response-Body --
{
  "m" : {
    "s" : "abc",
    "sOut" : "xyz",
    "i" : 123,
    "iOut" : 456,
    "l" : 123456789012345,
    "d" : 12.34,
    "bd": 12345678901234.12345678901234,
    "dt" : "2023-01-01T12:00:00.000Z",
    "dtOut" : "2023-10-31T12:00:00+00:00", 
    "b" : true
  }
}

Verbesserungen an der Filter- und Sortierkomponente

Die Filter- und Sortier-Komponente, die bspw. in der Kanban- oder CompactList-Kachel verwendet wird, wurde überarbeitet und verbessert. 

  • Der Dialog für die Konfiguration wurde überarbeitet. Es wird nun deutlicher dargestellt, was die Optionen in der Komponente bedeuten.

  • Sind Felder in der Filter- und Sortierkomponente vorhanden, die in der hinterlegten Suche der Kachel nicht vorhanden sind, so werden diese Felder mit einem optischen Hinweis ausgestattet.

Ressourcen-Kalender: Verbesserte initiale Spaltenbreite der Ressourcen innerhalb der Wochenansicht

Die Spaltenbreite der Ressourcen in der Wochen-/Monat-/Jahres-Ansicht wird jetzt initial kleiner dargestellt, als es bisher der Fall war (15% anstatt 30%).

Ressourcen-Kalender: Implementierung einer Kalender-Komponente zur Datumsauswahl

In der Tages-Ansicht wird ein Kalender-Button anstelle der Vor- und Zurück-Buttons zur Datumsauswahl angezeigt.

Nutzung von BPM-User-Task-Neuanlage unabhängig von Aktionsrecht "Erstelle xxx"

Die Neuanlage in BPM umgeht das einschränkende Aktionsrecht zur Neuanlage der ausgewählten Entität.

CompactList: Konfiguration, ob initial die Kachel mit eingeklappter Filter/Sorter-Komponente angezeigt wird

Im Kontext von Entitätsmasken und dem dort eher begrenzten Platz kommen Use-Cases vor, wo die CompactList-Kachel auf Masken platziert wird.

Für solche Fälle hat der Administrator eine Möglichkeit, vorzugeben, ob die Kachel initial mit zugeklapptem FilterSorter dargestellt wird. Hierfür wurde eine neue Kachel-Konfiguration geschaffen.

Anzeige des Wochentags in der Überschriftenzeile der Tagesansicht des Ressourcen-Kalenders

In der ersten Zeile der Tagesansicht wird zusätzlich zum Datum noch der Wochentag angezeigt.

Beispiel: anstelle von "29. Juni 2023" wird "Do, 29. Juni 2023" angezeigt.

Ausführung von Suche in Selektionstask in BPM-Prozessen wird nicht mehr erzwungen

In einem BPM-Selektionstask wurde bisher erzwungen, dass eine Suche ausgeführt werden muss, bevor der Prozess fortgeführt werden kann. Dies ist nicht in allen Fällen und Prozessen sinnvoll, daher ist es nun möglich, dass die Ausführung der Suche nicht erzwungen wird.

bbetter: Logiken bei dem Ende der Klassifizierung und Gründen einbauen

Es wurden folgende Logiken umgesetzt:

  • Sind Felder Bezugsbereich Ende (ReqReasonKey.TicketRequest) und / oder Grund Ende (ReasonEndKey.TicketRequest) auf der Maske, werden diese automatisch befüllt

  • Es erschient kein Fehler, wenn die Felder nicht auf der Maske sind

  • Die Felder Bezug (TicketReqKey.TicketRequest) und Begründung (TicketReasonKey.TicketRequest) sind immer beschreibbar, wenn sie auf der Maske sind.

  • Wenn Klassifizierung eindeutig und eindeutiger Grund dazu, wird Begründung und Bezug automatisch mit gefüllt.

Aufnahme der Datenqualität in den Metadatenexport

Bisher ging aus dem Metadatenexport nicht hervor, ob ein Feld „relevant für die Datenqualität“ ist. Um dies gezielt aktivieren und deaktivieren zu können, wurde dieses Feld in den Metadatenexport aufgenommen.

Patch-Notes 2023.3.05

Bugs

Ticket-Nr

Produkt

Komponente(n)

Zusammenfassung

0034226

CURSOR-CRM

Suchbearbeitung, UI

In der Suchbearbeitung liefen die Karten aus dem Fenster, wenn es viele Schlüsselwörter gab

CURSOR-CRM

BPM

Die Outbound-Serienaktion lief auf einen Fehler, wenn ein dynamischer Verteiler verwendet wurde

0034220

CURSOR-CRM

Maskenskript

Das Abbrechen der Auswahl eines Listeneintrags in DialogUtils.showSelectionDialog führte nicht die Callback-Methode mit dem Index -1 aus

Der Rückgabewert von DialogUtils.showSelectionDialog kann im Web Client nicht verarbeitet werden. Die Nachverarbeitung findet ausschließlich in der Callback-Methode statt. Dieser Aufruf darf nur der letzte innerhalb einer Methode sein, das gilt auch für if-Bedingungen oder while-Schleifen. Eine while-Schleife wird dadurch realisiert, dass DialogUtils in der Callback-Methode im Falle von Index=-1 immer wieder neu aufgerufen wird und dadurch auch dieselbe Callback-Methode rekursiv.

CURSOR-CRM

Systembasis Web Client

Die Lucene-Konfiguration in den Entitätseigenschaften zeigte keine Feldbeschriftungen

CURSOR-CRM

Application Server

Der JSON-Parser der Jettison-Bibliothek lief in gewissen Konstellationen auf einen Rekursionsfehler

CURSOR-CRM

Skript-Editor

Es frhlte i18n, wenn MailUtils.sendActivity in der Skriptbibliothek verwendet wurde

CURSOR-CRM

Massendaten

Fehler in der Auftragswarteschlange konnten nicht entfernt werden

0034181

CURSOR-CRM HelVis

Systembasis Rich Client

Report Aktivitätenporträt öffnete sich nicht, wenn dieser als PDF erstellt wurde

0034170

CURSOR-CRM

Update/Systeminitialisierung

Index-Generierung im Rahmen der Updateroutine behandelte keine Include-Felder unter MSSQL

CURSOR-CRM

Infoboard

Fab-Button auf dem Desktop zum Verwalten von Boards lag über dem Drawer der Kachelkonfiguration

0034148

CURSOR-CRM

Systembasis Web Client

Das Speichern eines Social-Media Datensatzes im Unterbereich der Entität 'Person' führte zu einem Fehler

0034117

Maskenskript

Der Fortfahren-Button in Prozess-Detailmasken konnte nicht über GUIUtils.setEnabled() deaktiviert werden

0034081

CURSOR-CRM

Update/Systeminitialisierung

Fehlerhafte Metadaten für "historisch" umgewandelte Freitextfelder in Nachschlagefelder waren immer noch vorhanden

0034050

CURSOR-CRM

Application Server

Eine Nachschlagsuche fand keine Zahlenwerte im Integer-Format

0034056

Kacheln, Suchen

Unterbereichsbeziehungen konnten in der CompactList nicht dargestellt werden

0033980

CURSOR-CRM

BPM

Das Kopieren von Dokumenten per DocumentUtils.copyDocumentFile war fehlerhaft, wenn Dokumente mit identischen Dateinamen kopiert wurden

0033918

CURSOR-CRM

Skript-Bibliothek

Skriptbibliothek: es kam zum Performance-Problem bei der Ermittlung der Contributor-Liste

CURSOR-CRM

Infoboard

Im Kachelkonfigurationsdrawer wurden Labels abgeschnitten, obwohl noch Platz zur Verfügung stand

Infoboard, Kachel-Editor, Tooling (Build)

Durch mehrfaches Bauen von infoboard-tile konnten verwaiste Build-Artefakte entstehen

Features

Zusammenfassung

Direktes Öffnen von temporären Dokumenten aus der Taskliste

Maximalanzahl an Token für die K&A-Kachel, so dass es nicht zu langen Ladevorgängen kommt

Die Methoden RestUtils.setQueryParams und RestUtils.setQueryParam behandeln List-Datentypen korrekt

Features-Dokumentation

Direktes Öffnen von temporären Dokumenten aus der Taskliste

Im Falle der nativen Excelvorlagen kommt im Regelfall ein Assistent zum Tragen, der den Anwender bei der Generierung von Exceldateien unterstützt.
Zwecks Vereinfachung und Beschleunigung dieses Prozesses kann nun unter gewissen Bedingungen, auf die Verwendung des Assistenten verzichtet werden. Sind die Voraussetzungen gegeben, so wird sowohl die generierte Exceldatei als auch der zugehörige Dokumentendatensatz direkt aus der Taskliste geöffnet. 

Der neue Konfigurationsparameter CONF_APPL_AVOID_INSTANT_OPEN ist im Standard auf "Nein" gestellt, sodass das neue (veränderte) Verhalten bei Excelvorlagen (= Reduzierung der Schritte im Assistenten) im Standard greift.

Fertige Aufgabe im Benachrichtigungszentrum

Folgende Aktionen stehen hier zur Verfügung:

  • Exceldatei bearbeiten
    Es wird der Dokumentendatensatz in einer neuen Ebene geöffnet und die generierte Exceldatei direkt geöffnet.
    Zweck: Eine Bearbeitung der Exceldatei ist direkt erwünscht. 

  • Aus der Liste entfernen
    Die Exceldatei wurde ebenfalls generiert und als Dokumentendatensatz im CRM angelegt. Es erfolgt jedoch kein Öffnen des Dokuments. Stattdessen wird der Eintrag aus der Taskliste entfernt. 
    Zweck: Eine direkte Bearbeitung der Exceldatei ist nicht notwendig.

Voraussetzungen

  • In der Excelvorlage ist kein Rücktransfer konfiguriert

  • Die Option  "Suchfenster und Auswahldialog anzeigen" (CONF_SEARCHDIALOG) in der Excelvorlage enthält den Wert  NONE oder NEIN

Sind die genannten Voraussetzungen erfüllt, wird das direkte Öffnen der generierten Exceldatei im Tasklisteneintrag automatisch angeboten. Eine Anpassung der Vorlagen durch den Kunden ist somit nicht notwendig.
Ist es im Einzelfall dennoch gewünscht, den Assistenten weiterhin zu verwenden, so kann dies durch den zusätzlichen Konfigurationsparameter "CONF_APPL_AVOID_INSTANT_OPEN" in der Excelvorlage gesteuert werden.

Konfigurierter Parameter in der Vorlage

Maximalanzahl an Token für die K&A-Kachel, so dass es nicht zu langen Ladevorgängen kommt

Sporadisch kam es vor, dass der Ladevorgang einer auf einer Entität platzierten Kommentar-und-Aktivitäten-Kachel ange dauerte.

In solchen Fällen ist der Ablauf wie folgt:

  • Jede Aktivität wird auf Textbestandteile überprüft. Jedes einzelne Textbestandteil ist ein Token.

  • Die Überprüfung hat fachlich folgende Auswirkungen: Generierung eines Chips und Anzeigen der "Mehr Anzeigen"-Aktion innerhalb der Aktion

  • Aufgrund von Generierung von HTML-Texten kann die Token-Anzahl massiv ansteigen. Dies liegt zum Beispiel an Outlook.

  • Dadurch, dass die Token mehrmals zyklisch überprüft werden, leidet die Performance, wenn die Token-Anzahl deutlich über Normwert liegt.

Lösungsansatz:
Es wurde eine nicht-konfigurierbare Maximalanzahl eingeführt, nachdem die Token-Durchzählung und zyklische Überprüfung gestoppt wird. Wird die Maximalanzahl erreicht, so wird kein Chip generiert und die Anzeige von "Mehr anzeigen" gemäß der hinterlegten Konfigurationseinstellung durchgeführt.

Dies bedeutet, dass auch kleine Aktivitäten (bspw. ein Mailtext) keinen Chip mehr generieren können.

Dies bedeutet, dass auch kleine Aktivitäten (bspw. ein Mailtext) keinen Chip mehr generieren können.

Methoden RestUtils.setQueryParams und RestUtils.setQueryParam behandeln List-Datentypen korrekt

RestUtils.setQueryParams kann eine "flache" Map<String, Object> übergeben bekommen, die einfache Objekt-Datentypen wie String, Integer etc. und nun auch List behandeln kann.
Aktuell erhält man bei dem Aufruf mit der MapRestUtils.setQueryParams(target, ["meineListe": ["Wert1", "Wert2"]])den Aufrufparameter &meineListe=%5BWert1%2C+Wert1%5D.
Es wird nun der Aufrufparameter &meineListe=Wert1&meineListe=Wert2 generiert.

Das gleiche gilt für den Aufruf von RestUtils.setQueryParam mit einer Liste RestUtils.setQueryParam(target, "meineListe", ["Wert1", "Wert2"]).

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.