Skip to main content
Skip table of contents

Release-Notes Versionen 22.1.x

Onboarding-Assistent

Onboarding-Assistent unterstützt Sie durch unaufrdringliche Dialoge. Mithilfe einer interaktiven Produkt-Tour können Sie ans System und die Funktionen herangeführt werden. Durch Popups werden Sie auf neue Features hingewiesen und durch die Anwendung geführt.

Onboarding-Maßnahmen sollen nicht Handbücher, Tooltips etc. ersetzen, indem sie jede Aktion jedes Features einzeln erklären, sondern durch "Storytelling" die wichtigsten diversen User-Stories erklären.

Mit einem Klick öffnen Sie den Assistenten. Mit einem weiteren Klick listen Sie die verfügbaren "Führungen" auf. Lassen Sie sich überraschen!

Abbildung: Geöffneter Assistent

Haben Sie eine Führung gestartet, wird diese mit einem blauen Punkt markiert. Sie können Die Führung immer unterbrechen und später fortsetzen. Gibt es Hinweise auf neue Features, werden Sie darüber mit einem roten Popup auf der Glocke informiert.

Abbildung: Verfügbare "Stories"

Benutzeroption "Schalterleiste im Unterbereich anzeigen"

Die Benutzeroption "Schalterleiste im Unterbereich anzeigen" wurde im Windows Client entfernt.

Flex-Masken: Maximalbreite für Spalten

Der Maskendesigner kann eine Maximalbreite für Spalten festlegen. Innerhalb dieses Bereiches skaliert die Spalte analog ihrer Flex-Breite. Wenn alle Spalten eine Maximalbreite besitzen und das Fenster größer als die Summe dieser wird, wird White-Space generiert und das Layout darin zentriert. Die Spalten sind dabei zentriert und das White-Space gleichmäßig darum verteilt. Wenn alle Spalten eine Standardbreite besitzen und das Fenster kleiner als die Summe dieser wird, greift nun Flex-Wrap und die Spalten werden umgebrochen.

Geoanalyse: Aktualisierung der Darstellung von Markierungen

In der rechten Toolbar der Geoanalyse gibt es einen neuen Aktualisierungsschalter. Hierbei werden die zugrundeliegenden Datensätze der Geoanalyse aktualisiert, so dass nachträgliche Änderungen an den Datensätzen auch in der Geoanalyse sichtbar werden.

Abbildung: Aktualisierungsschalter

Länge von Breadcrumbs

Die Breadcrumbs sind auf eine bestimmte Zeichenlänge beschränkt und es konnte vorkommen, dass Zeichen abgeschnitten wurden. So war meistens nur das erste ID-Feld gelistet und sichtbar. Die Breadcrumbs wurden so modifiziert, dass die Ebene im Verlauf mehr Pixelbreite zur Verfügung hat und somit mehr Informationen angezeigt werden.  Es gibt einen fest definierten Abstand zum rechten Rand, der nicht mit Verlaufsfeldern gefüllt wird.  So bleibt die Übersicht im Bezug auf die Buttons, die am rechten Rand liegen, bewahrt. Füllen die Breadcrumbs jetzt die ganze Verlaufszeile, werden so viele ID-Felder von hinten bei den einzelnen Elementen weggenommen, dass der Verlauf einzeilig bleibt. Kann der Verlauf so nicht einzeilig darstellbar sein, so werden die Elemente mehrzeilig angezeigt.

Abbildung: Optimierte Breadcrumbs-Länge

Handhabung in der Memo-Ansicht

Zum Markieren eines Wortes oder einer Zeile wird in der Textverarbeitung der Doppelklick auf das zu markierende Wort eingesetzt. Bisher konnte mit einem Doppelklick auf das Beschreibungsfeld im CRM die Memo-Ansicht geöffnet werden.  Durch die Vergrößerung des Beschreibungsfeldes auf Fensterbreite entstand ein anderer Zeilenumbruch.  Das zuvor ausgewählte Wort war nicht mehr markiert und in der neuen Ansicht nicht intuitiv wieder auffindbar.

Jetzt wird bei Doppelklick im Beschreibungs-Feld die Memo-Ansicht nicht geöffnet. Die Ansicht wird nur noch durch Aktivierung/Klicken des dafür vorgesehenen Buttons im Beschreibungsfeld geöffnet. Die neue Umsetzung funktioniert sowohl im HTML-Editor als auch in einfachen Memo-Feldern (Textarea). Im Tooltip der Memo-Ansicht kann man jetzt die Beschreibung der zugehörigen Entität ablesen. Außerdem hat der Schließen-Button in der Toolbar jetzt eine Beschriftung.

Abbildung: Geöffnetes Memo-Feld 

Mailadressen beim Versand aus einer Aktivität

Bei einer Aktivität, die als Mail versendet wurde, überschrieben die Schlüssel in Feldern "Delegiert von" und "Delegiert an" immer den Beziehungstyp, der im Unterbereich beim "Mitarbeiter" gepflegt war und zwar unabhängig davon, ob eine interne oder externe Mail versendet wurde. Das war missverständlich.

Beispiele:
"Delegiert von" setzt die Person immer in den CC, auch wenn Beziehungstyp z. B. als BCC gesetzt war
"Delegiert an" setzt die Person immer als Empfänger, auch wenn Beziehungstyp z. B. CC gesetzt war

Nun werden die Angaben aus dem Unterbereich „Beziehungstyp“ bei der Mail übernommen und nicht von "Delegiert an" und "Delegiert von" überschrieben.

Bei internen Mails wird der Sender nicht angeschrieben.

Abbildung: Felder und Beziehungstyp in der Aktivität

Keys anstatt dem Beschreibungstext in Picklistenfeldern

In Picklistenfeldern wird nur der Key angezeigt. Dies gilt, wenn für die Systemeinstellung "Inhalt der Felder in Detailmasken" die Option "Nur Schlüssel", "Nur Beschreibung" sowie "Schlüssel + Beschreibung" ausgewählt wurde.

Unterbereichsdatensätze in einer separaten Ebene öffnen

Öffnete man im Web Client eine Unterbereichsliste, so wurde diese stets als abhängige Liste des übergeordneten Datensatzes geöffnet. Die Bearbeitung vieler abhängiger Daten im Unterbereich wurde vereinfacht, indem man über einen Split-Button in der Unterbereichstoolbar zusätzlich zu dem aktuell vorhandenen Verhalten (Öffnen als abhängige Liste) das Öffnen als eigenständige Liste ohne Bezug zur übergeordneten Entität anbietet ("Listenansicht in neuer Ebene öffnen").
Somit wird ermöglicht, dass die geöffnete Liste auch beim Wegordnen von Datensätzen aus der Liste durch Änderung des Nachschlagefeldes, das die Relation zum Hauptdatensatz abbildet, stabil bleibt.
Zusätzlich steht im Tabellen-Aktionsmenü von Datensätzen der Eintrag "Öffnen in neuer Ebene" zur Verfügung. Dies ermöglicht, einen einzelnen Datensatz in einer neuen, eigenen Ebene zu öffnen. 

Abbildung: Einen Datensatz in einer neuen Ebene öffnen

Abbildung: Eine Liste in neuer Ebene öffnen

Web Client

Benutzeroptionen "Schriftgröße Listeneinträge"

Die Schriftgröße der Listenansicht kann über die Benutzereinstellungen angepasst werden.

Die Einstellung greift:

  • in der Ergebnisliste der Einfeldsuche,

  • in der klassischen Suchergebnisliste,

  • in der Unterbereichsliste und

  • im Unterbereich.

Abbildung: Benutzereinstellungen im Web Client

Composed-Felder kopieren

Inhalte der Composed-Felder (wie z.B. Adresse oder Datetime-Feld) können in die Zwischenablage kopiert werden. Die Funktion wird über das Kontextmenü aufgerufen. Sie bezieht sich immer auf das gesamte Feld, so dass beispielsweise bei einem Datetime-Feld ein Wert wie "25.02.2023 09:32" (mit Datum und Zeit) in die Zwischenablage kopiert wird.

Abbildung: Kopieren der Adresse via Kontext-Menü

Benutzer- und systemspezifische Konfigurationen für Listenansichten

Es ist nun möglich, benutzerspezifische Einstellungen der Breite, Reihenfolge und Sortierreihenfolge der Spalten zu speichern, zu laden und zu löschen, sowie die systemspezifischen Einstellungen im Web Client zu laden. Weiterhin besteht die Möglichkeit - das Vorhandensein entsprechender Berechtigungen vorausgesetzt - eine systemweite Konfiguration oder Löschung dieser Eigenschaften vorzunehmen.

Abbildung: Konfigurationen für Listenansichten

Laden, Speichern und Löschen benutzerspezifischer Konfigurationen für Listenansichten

Befindet man sich in einer Listen- oder Unterbereichsansicht, so steht unterhalb des Split-Buttons zur Konfiguration der Listen-/Unterbereichansicht ein Kontextmenü mit Konfigurationseinstellungen zur Verfügung:

Konfigurationseinstellungen

In Unterbereichslisten erfolgt die Speicherung der Konfiguration relationsspezifisch.

  • Benutzereinstellungen der Tabelle laden

    • Lädt die für den aktuellen Nutzer gespeicherte Konfiguration der Spaltenbreite, Spaltenreihenfolge und Sortierreihenfolge der betrachteten Liste

  • Benutzereinstellungen der Tabelle speichern

    • Speichert die in der betrachteten Liste eingestellte Spaltenbreite, Spaltenreihenfolge und Sortierreihenfolge für diesen Benutzer

    • Fortan wird die benutzerspezifische Konfiguration genutzt

  • Benutzereinstellungen der Tabelle löschen

    • Löscht die für den aktuellen Nutzer gespeicherte Konfiguration der Spaltenbreite, Spaltenreihenfolge und Sortierreihenfolge der betrachteten Liste

    • Fortan wird die systemspezifische Konfiguration genutzt

  • Systemeinstellungen der Tabelle laden

    • Lädt die Systemkonfiguration der Spaltenbreite, Spaltenreihenfolge und Sortierreihenfolge der betrachteten Liste

    • Durch das reine Laden der Systemkonfiguration wird diese nicht permanent gesetzt.
      Verlässt der Anwender die aktuelle Ansicht, ohne die Konfiguration zu speichern, sieht er - sofern vorhanden - bei erneutem Betreten die bisher genutzte benutzerspezifische Konfiguration

Sichtbar, wenn administrationsrechte vorhanden:

  • Systemeinstellungen der Tabelle speichern

  • Systemeinstellungen der Tabelle löschen

Globale Konfigurationseinstellungen

  • Globale Benutzereinstellungen laden

  • Globale Benutzereinstellungen speichern

  • Globale Benutzereinstellungen löschen

  • Globale Systemeinstellung laden

Sichtbar, wenn administrationsrechte vorhanden:

  • Globale Benutzereinstellungen speichern

  • Globale Benutzereinstellungen löschen

Speichern und Löschen von systemspezifischen Konfigurationen für Listenansichten im Web Client

Anwender mit entsprechenden Administrationsrechten besitzen zusätzlich zu den genannten Funktionen folgende Möglichkeiten:

  • Systemeinstellungen speichern

  • Systemeinstellungen löschen

  • Bei aktiviertem Customizing-Transport stehen die Optionen zum Speichern und Löschen der Systemeinstellungen ausschließlich im Entwicklungssystem zur Verfügung

    • Bei Verwendung der Optionen zum Speichern und Löschen der Systemeinstellung erfolgt eine Abfrage zur Zuordnung zu einem Customizing-Paket

  • In Unterbereichslisten erfolgt die Speicherung relationsspezifisch

"Speichern & Schließen" 

Die Funktion wurde in Analogie zum Windows Client implementiert. Der "Speichern und schließen"-Button steht in folgenden Ansichten zur Verfügung:

  • In der Detailansicht 

  • im invalidFields-Dialog

  • in der Memo-Ansicht 

Wenn die Toolbar genug Platz hat, trägt der Button eine Beschriftung.

Abbildung: Speichern und schließen

Anmeldung in der Standard- und Kundenschicht

Im Web Client ist es auch möglich, sich in der Kunden-Schicht (C1) oder Standard-Schicht (C0) anzumelden. Dazu muss auf der Login-Seite manuell der Parameter ?layer=C1 oder ?layer=C0 hinzugefügt werden.

Beispiel: 

CODE
https://meincrm.example.com:18443/webclient/pages/cursor/login.jsf?layer=C1

Dies funktioniert auch in Verbindung mit Kerberos-Autologin sowie mit SAML 2.0. Eine Beispiel-URL für SAML 2.0 Login in der C1-Schicht: 

CODE
https://meincrm.example.com:18443/webclient/samlLogin?layer=C1

Gleichzeitiges Öffnen mehrerer Dokumentenwizards

Beim Öffnen von Serienmailaktionen (betrifft alle Massendatenwizards) konnte bei einer bereits geöffneten Aktion keine neue Serienmailaktion angezeigt (kein neuer Tab erstellt), sondern nur auf die alte Aktion gewechselt werden.

Jetzt kann ein Massendatenwizards immer als jeweils neuer Tab erstellt werden. Öffnen von mehreren Massendatenwizards des selben Typs ist möglich.

Export eines Suchergebnisses aus einer Suche im XLSX-Format

Der Export der Suchergebnismenge ist nun auch im Web Client auch im xlsx-Format möglich. Die Liste kann über das Pop-up-Menü exportiert werden.

Abbildung: Export einer Suche im xlsx-Format

Komponenten-Vorlagen im Maskeneditor

Vorlagen

Zur Verfügung stehen auch vorgefertige Layouts oder Layoutkomponenten. Diese sollen die Maskengestaltung vereinfachen.

Es gibt folgende Vorlagen:

  • Komponentenkombination: Karte + Collapsible (Collapsible-Karte)

  • Dreispaltiges Hedaer-Layout

  • Zweispaltiges Layout

Diese Vorlagen sind nicht customizebar und bleiben immer gleich.

Öffnen von Terminen im Kalender

Ein Termin (Aktivität) öffnet sich mit einem Klick immer in einem neuen Tab, ebenso wie der Terminanlage-Wizard. Zusätzlich wird nach dem Speichern im Terminanlage-Wizard die erstellte Aktivität geöffnet.

Dialog-Fenster für Signaturen

Beim Versenden einer Mail über den Web Client kann man eine Signatur auswählen und als Standard festlegen. Dazu öffnet sich ein extra Fenster, welches optimiert wurde. Die Spaltenbreite der Beschreibung kann vergrößert werden.

Infokacheln

Button zum Schließen der Boardverwaltung

Bisher mussten Anwender durch Ausprobieren erlernen, dass man die Boardverwaltung durch Klick auf eine freie Fläche des Board schließen kann. Manchmal stand freie Fläche auch gar nicht zur Verfügung. 

Jetzt kann das Board mit einem Klick auf das Icon geschlossen werden.

Standardboards

Mit der Version 22.1 werden im Standard drei Infoboard-Cockpits zur Verfügung gestellt, welche neue und alte Anwender verwenden können. 

Das Standardboard liefert die gängigsten Kacheln und eine Übersicht für relevante Suchen und deren Ergebnisse. Die Möglichkeit, eigene To-Dos in Form von Notizen und von Punkten innerhalb der Checkliste zu hinterlegen, ist in allen drei Boards gegeben. 

Es gibt 3 Varianten:

  • Standardboard

  • Vertriebsboard

  • Supportboard

Das Supportboard ist eine veränderte Variante des Standardboards und fokussiert sich mehr auf Informationen, die für Support-Mitarbeiter von mehr Interesse sein könnten. Mittels der Kachel "Verpasste Anrufe" können Anrufe zurückverfolgt werden. Notizen und Checklisten haben mehr Platz um mehr Informationen festhalten zu können. 

Das Vertriebsboard ist eine Variante des Standardboards, welches sich auf die Angebote und Aktivitäten in Form von bspw. Terminen stärker fokussiert.

Benachrichtigungsmenü

Verbesserung:

Durch Klick auf das Plus-Symbol startet eine Neuanlage von (vorgefertigten) Aktivitäten. Nach dem Klick auf Neuanlage befindet man sich in der Neuanlagemaske, welche mit dem Erinnerungsdatum vorbefüllt ist.

Abbildung: Kachel "Benachrichtungsmenü" mit Neuanlage-Icons

Checklisten

Verbesserungen:

Durch Tippen und Betätigen der Taste Enter werden neue Einträge erstellt. Die erstellten Einträge können durch Anklicken als erledigt markiert werden und erscheinen dann am Kachelende als Liste "Erledigte Einträge". Sowohl erledigte als auch nicht erledigte Einträge können über das Löschen-Icon, welches per Mouseover erscheint, aus der Liste gelöscht werden.

Unicode-Zeichen wie Emojis, Sonderzeichen etc. sind nutzbar. Mehrzeilige Einträge sind mit STRG+Enter möglich und per Drag & Drop verschiebbar. Nach jeder Eingabe wird der Inhalt automatisch gespeichert.

Dokumentenvorschau

Da die Dokumentenvorschau den Inhalt von MS-Office-Dokumenten nicht exakt wiedergeben kann, sondern nur eine Annäherung anzeigt (es gibt stand keine optimale Bibliothek, um via JS clientseitig Office-Dokumente exakt darzustellen), wird ein Disclaimer (eine Hinweismeldung) angezeigt.

Abbildung: Hinweismeldung bei der Vorschau eines MS-Office Dokumentes

Notizen

Diese Infokachel dient zur Erstellung eigener Notizen. Mithilfe von Formatierungsmöglichkeiten in der unteren Leiste können die Notizen individuell nach ihren Bedürfnissen angepasst werden. 

Diese Kachel wurde mit der Version 22.1 und folgende überarbeitet und kann nicht nur für Benutzerboards, sondern auch für Systemboards verwendet werden. Jeder User sieht seine eigenen Notizen.

Die Formatierungsmöglichkeiten innerhalb der Notizen-Kachel sind folgende: 

  • Fette Schriftart (B)

  • Kursive Schriftart (I)

  • Unterstrichene Schriftart (U)

  • Durchgestrichene Schriftart (S

Um Kategorien oder Gruppen innerhalb der Notizen darstellen zu können, stellt die Notizen-Kachel Varianten für Überschriften zur Verfügung: 

  • Große Überschrift (H1)

  • Mittelgroße Überschrift (H2)

Für Auflistungen sind folgende Einstellungen vorgesehen: 

  • Aufzählungspunkte

  • Nummerierte Aufzählung

Um Korrekturen innerhalb der Notizen vorzunehmen, stehen Ihnen mit der Rückgaängig- bzw. Wiederholen-Funktion bekannte Operationen zur Verfügung.

Scores

Verbesserung:

Die Kachel kann auch auf Entitätsboards verwendet werden. Der Primärschlüssel des aktuellen Datensatzes kann in die in der Scores-Kachel verwendeten Suchen als Parameter hineingegeben werden.

Google Maps

Bisher konnte die Google Maps-Kachel ausschließlich auf Entitäten verwendet werden, auf denen die Adresse in sogenannten ComposedFeldern zusammengefasst, aus einer basierenden Person ermittelbar oder als Koordinaten hinterlegt war. Es war nicht möglich, eine aus mehreren Feldern zusammengesetzte Adresse als Datenbasis zu nutzen.

Durch die neue Option "Verwende eigene Felder" in der Kachelkonfiguration können nun beliebige Felder einer Entität zur Adressermittlung gemappt werden. Die Felder (mit Ausnahme des Hausnummer-Zusatzes) werden mit den für Adressfeldern typischen Standardnamen vorbelegt, können jedoch auf beliebige Felder angepasst werden.

Abbildung: Mapping der Adresse in der Kachel 'Google-Maps'

Scores

Typ

Desktop-Kachel

(Plus)

Entitäts-Kachel

(Minus)

Beschreibung

Die Infokachel "Scores" erlaubt es, vergleichbare Anzahlen von Suchergebnismengen in eigene Kanälen untereinander anzuzeigen, die i.d.R. einen konkreten Handlungsbedarf benötigen, z.B. "offene Vertragsangebote" oder "ungelesene E-Mails".

Die Darstellung erfolgt analog zur Kachel "Benachrichtigungsmenü". Bei Klick auf einen Kanal wird die dahinterliegende Suche ausgeführt, die Anzahl der Suchtreffer wird auf der rechten Seite dargestellt.

Konfiguration

Die Konfiguration der Kachel kann unmittelbar innerhalb der Kachel oder innerhalb des Kachel-Konfigurationsmenü erfolgen. 

Innerhalb der Kachel

Wenn kein Kanal vorhanden ist oder die Kachel von der Kachel-Verwaltung auf das Desktop-Infoboard gezogen wurde, kann in diesem Zustand direkt innerhalb der Kachel Kanäle hinzugefügt werden. 

Innerhalb der Kanal-Konfiguration sind folgende Informationen zu hinterlegen: 

  • Name: Hier wird bestimmt, unter welchem Namen der Kanal angezeigt werden soll

  • Suche: Die auszuführende Suche wird in diesem Feld hinterlegt. Hier wird unterstützend passende Suchen innerhalb einer Vorschlagsliste angezeigt, um die richtige Suche zu hinterlegen.

  • Beschriftung der Anzahl: Der Text, der die Anzahl der Suchtreffer beschreibt, kann hier definiert werden. Im Regelfall wird durch die hinterlegte Suche bereits ein sinnvoller Vorschlag für die Beschriftung automatisch vorgegeben. 

  • Farbe des Badges: Das Aussehen des Feldes, das die Anzahl der Suchtreffer anzeigt, kann hier mittels einer Farbauswahl (wahlweise auch mit Eingabe von verschiedenen Codierungen wie Hexadezimalcode) näher bestimmt werden. 

Wenn ein Kanal von oben nach weiter unten platziert werden soll, kann dies mittels der 6 Punkte an der linken Seite eines Kanals via Drag-&-Drop verschoben werden. Einen Kanal zu entfernen oder zu bearbeiten ist mittels des 3-Punkte-Menüs auf der rechten Seite eines Kanals möglich. 

Kachel-Konfigurationsmenü

Titelbild

Größe des Bildes 

Je nach verfügbarem Platz oder optischer Präferenz kann hier zwischen den Varianten "Leer", "Standard" oder "Klein" ausgewählt werden. 

Vorlagen

Hier kann ein bereits im System vorhandenes Vorlagenbild für die Scores-Kachel ausgewählt werden. Hier stehen die Optionen 

  • Leer

  • Vertrieb

  • Support

  • Marketing

  • Sprint

zur Verfügung. 

Eigenes Titelbild

Soll ein eigenes Bild in der Scores-Kachel verwendet werden, kann die Bilddatei in der Kachelkonfiguration hinterlegt werden. 

Kanal-Konfiguration

Entitäts-Icons anzeigen 

Kommaseparierte Liste (ohne Leerzeichen) der Namen für eigene Kanäle, welche angezeigt werden sollen.

Im Standard ist der Kanal "Angenommene Angebote" hinterlegt.

Die Namen der eigenen Kanäle innerhalb einer Instanz dieser Kachel müssen eindeutig sein.

Liste der Kanäle

Analog zu der Konfiguration direkt in der Kachel werden die Felder Name, Suche, Beschriftung der Anzahl sowie Farbe des Badges vorgegeben, um einen Kanal zu konfigurieren.

Gantt-Diagramm: Visualisierung aller Statuswerte

Die Kachel "Gantt", die auf der Kampagne als Kampangnenkalender in Verwendung ist, kann nun bei der Anzeige des Status mit allen Schlüsseln umgehen.

Abhängig zum Kampagnen(phasen)status werden auch die folgenden Statuswerte in der Gantt-Kachel visualisiert:

  • ABGEBROCHEN (A-C0CAMPSTATUS): ABGEBROCHEN | CANCELLED,

  • VERWORFEN (V-C0CAMPSTATUS): VERWORFEN | DISCARDED, 

Weiterhin kann die Kachel auf Nicht-Standard-Schlüssel des Kampagnen(phasen)status reagieren. Statt der Anzeige "DEFAULT" wird hier der Keyname angezeigt.

Die Umsetzung funktioniert sowohl für die Entitäts- als auch die BI-Board-Kachel (Workspace-Board-Kachel).

Abbildung: Visualisierte Statuswerte 

Schließen einer Ebene

Das Schließen einer Ebene bewirkt die Rückkehr auf die zuletzt geöffnete Ebene. Intuitiv möchten Anwender für den Fall, dass im Web Client mehrere Tabs geöffnet sind, beim Schließen eines Tabs auf den davor zuletzt selektierten Tab zurückkehren. Nach dem Schließen des Tabs befinde ich mich in diesem Fall wieder auf dem Cockpit. 

Hinweise für die Bedienung:

  • Eine neue Ebene wird immer am Ende der Ebenen eingefügt. 

  • Der  Sonderfall für BPM-Aktionen wurde geändert. Diese öffnen sich nun hinter der aktiven Ebene und nicht mehr davor

  • Nach dem Schließen einer Ebene springt man auf die zuvor geöffnete Ebene

Drag & Drop von Dokumenten

Der Anwender kann nun besser erkennen, wo man ein Dokument (eine Datei aus dem Dateisystem/Windows-Explorer o.ä.) fallen lassen kann, damit dieses auch importiert wird. Gleiches gilt für den Drop von E-Mails.

 Es wurde ein Mechanismus implementiert, durch den die DropZones beim "dragOver" visualisiert werden. Dabei gibt es zwei Arten von DropZones:

  • den "dialogContent" des Cockpits und der Detail-Masken 

  • die erweiterten Drop-Zones in der Branding-Bar

Die Visualisierung hängt von der Art der Drop-Zone ab.

Die beiden globalDropZones haben unterschiedliche Funktionalitäten:

  • Drop auf dem COMMAND-Feld verknüpft das Dokument mit dem aktuellen Detailsatz,

  • Drop auf dem Logo legt ein neues (nicht verknüpftes) Dokument an.

Die Drop-Bereiche in der Branding-Bar werden nicht mehr hervorgehoben. Die Drop-Bereiche im Hauptbereich werden abgedunkelt mit einem anderen Rahmen und mit einem Hinweistext dargestellt. Beim Drop auf den Desktop wird ein eigenständiges Dokument und beim Drop auf eine Entität ein abhängiges Dokument angelegt.

Abbildung: Visualisierung beim Drag & Drop Import

Sicherheitsabfrage von Dokumenten

Der Benutzerdialog bei der Sicherheitsabfrage von Dokumenten wurde angepasst. Der Anwender soll somit bewusst zustimmen, wenn er ein Dokument öffnen möchte.

Schlüsselwerte mit Pfeil-runter direkt anzeigen lassen

In Schlüsselfeldern und auch in Nachschlagefeldern auf Entitäten ist es nun möglich, das Popupmenü mit möglichen Nachschlagewerten per Tastatur zu öffnen, ohne zuvor einen Buchstaben eingegeben zu haben. Gerade bei neuen Nutzern und Feldern kann damit ein Einblick in mögliche Werte erreicht werden. Dies war bereits möglich, allerdings war das Standardtastenkürzel Alt-O für die Mehrzahl der Nutzer ungewohnt.

Das Popup kann zusätzlich zum bestehenden Shortcut mit Pfeil-down geöffnet werden. 

Sobald das Popup angezeigt wird, navigiert man mit den Pfeiltasten hoch / runter durch die Einträge (wie bisher). Pfeil-runter öffnet das Popup, Escape schließt es wieder. Der Wechsel aus dem Einfeld-Suchfeld in die Ergebnisliste ist mit Pfeil-runter weiterhin möglich. Um Konflikte mit diesem Feature zu vermeiden, wurde der "kurze" Fokuszyklus auf die Einfeldsuchmaske beschränkt. Pfeil-runter zum Navigieren im Tabellenzyklus funktioniert jetzt nur noch dort.

Abbildung: Popup der Aktivitäten-Art

Fehlermeldung bei fehlenden Berechtigungen in der Suchausführung

Im Rahmen der Webservice-Online-Integration im myCRM gibt es verfügbare Suchen, die es Administratoren ermöglichen, für sie relevante Daten der Schnittstelle auszuwerten. Die über die Suche ermittelten Daten sind nur für Benutzer, die einer bestimmten Rechtegruppe angehören, lesbar.  Die kommende Meldung über die fehlende Berechtigung wurde an dieser Stelle in beiden Clients (Windows und Web Client) angeglichen .

CODE
"Sie haben nicht die notwendigen Rechte, um diese Aktion durchzuführen. Das Feld <Feldname> kann nicht gelesen werden."

Temporäres Benutzer-Verzeichnis

Die JX-Browser-Versionen werden im System und bei jedem Benutzer im Temp-Verzeichnis abgelegt. Beispielverzeichnis: c:\Users\<Benutzername>\INHOUSE\INHOUSE.CURSOR.DE_18443\. Dies geschieht bei der Verwendung des Windows Clients, wenn moderne Webviews ausgegeben werden, so dass durch das dadurch ausgeführte Entpacken (z.B. beim Laden eines Infoboards) Datenreste entstanden sind. Jede alte Version belegte unnötigerweise 100-300MB Speicherplatz.

Alte JX-Browser-Verzeichnisse im temporären Verzeichnis werden nun beim Clientstart aufgeräumt. 

Logging von Anmeldeversuchen

Fehlerhafte Anmeldeversuche werden in einem separaten Log protokolliert.

Patch-Level-Prüfung bei Modulen

Bei der Veröffentlichung eines Moduls können nun Patch-Level hinterlegt werden, die mindestens nötig sind, um ein Modul zu veröffentlichen. Somit wird vermieden, dass nicht lauffähige Modul-Versionen eingespielt werden. Die Patch-Level werden im Modul gespeichert und können bei der nächsten Veröffentlichung des Moduls verändert werden. Beim Import des Moduls im Zielsystem wird geprüft, ob für die aktuelle Version ein Patch-Level hinterlegt wurde und wenn ja, ob dieses vorhanden ist. Andernfalls lässt sich das Modul nicht einspielen und man erhält eine Fehlermeldung.

Abbildung: Konfiguration eines Patch-Levels für ein Modul

Obsolete Pflichtfeldeigenschaften für diverse Felder auf dem Geschäfts- und Ansprechpartner

 Der Anwender möchte bei der Neuanlage von Kontakten nur solche Informationen verpflichtend pflegen müssen, die mir auch mit absoluter Sicherheit vorliegen, damit man auch dann Kontakte anlegen kann, wenn man noch nicht viel über diese weiß.

Folgende Felder sind keine Pflichtfelder mehr:

  • EmployeeSales.Customer

  • TermsOfDeliveryKey.Customer

  • TermsOfPaymentKey.Customer

  • DepartmentKey.ContactPerson

  • FunctionKey.ContactPerson

  • InfluenceKey.ContactPerson

Ansprechpartner-Schnellerfassungsmaske

Felder "Serienbrief" und "Serienmail" wurden in der Ansprechpartner-Schnellerfassungsmaske in der Standard-Schicht entfernt.

Customizing-Transport: verworfene Pakete

Wenn ein Paket verworfen wird, wird es nicht mehr gelöscht, sondern als "Verworfen" markiert und es wird "Verworfen am" und "Verworfen von" gesetzt. Die verknüpften Customizings werden aber weiterhin gelöscht, auch die Änderungen werden rückgängig gemacht. Es bleibt nur das leere Paket zurück.

Beschreibungstexte ausgewählter Standardschlüssel

Die folgenden Schlüssel wurden überarbeitet:

  • Kontaktergebnisschlüssel
    Der Schlüssel "OFFEN" (S_ERGEB-OFFEN) hat den Beschreibungstext "Offen" bzw. "open-ended"(eng.) erhalten.

  • Unterschriften Zusatz
    Der Schlüssel "Ohne Zusatz" (SIGNATUREPREFIX-OZ) hat den Beschreibungstext "Ohne Zusatz" bzw. "Without Addition"(eng.) erhalten.

Skript-Bibliothek

Die Tastenkombination STRG+F12 auf dem Methodennamen öffnet die Referenz-Übersicht der Methoden.

Hier werden die möglichen Schichten der Methode angezeigt und können darüber geöffnet werden.

Lesendes Öffnen von Skript-Bibliotheksklassen

Wenn eine Bibliothek nur geöffnet und eigentlich nur gelesen werden soll, wie die dort hinterlegten Methoden implementiert sind bzw. ob eine Methode im eignen Code genutzt werden kann, gibt es den Fall der "unbeabsichtigten" Sperre. Dabei wird die aktuelle Bibliothek gesperrt, falls sie nicht gerade von einem anderen Benutzer gesperrt ist.

Zusätzliche Hinweise:

  • wenn eine Skriptklasse zum Lesen geöffnet ist und diese über das Dashboard nochmals zum Bearbeiten geöffnet , dann ist die Skriptklasse danach auch bearbeitbar (sofern nicht durch einen anderen Benutzer gesperrt)

  • wenn eine Skriptklasse zum Bearbeiten geöffnet ist und keine ungespeicherten Änderungen enthält und diese über das Dashboard nochmals zum Lesen geöffnet , dann ist die Skriptklasse danach auch wirklich im Lesen-Modus geöffnet und die Skriptklasse wieder entsperrt

  • wenn eine Skriptklasse zum Bearbeiten geöffnet ist und ungespeicherten Änderungen enthält und diese über das Dashboard nochmals zum Lesen geöffnet wird, dann erscheint eine Meldung, dass diese erst speichert werden muss

Aktivitätenart über den Telefonie-Inbound

Bei einer Aktivität, die aus dem Telefonie-Inbound-Dialog erfasst wurde, war für eingehende und ausgehende Telefonate im Standard der Leerschlüssel konfiguriert. 

Mit Version 2022.1 stehen im Standard u.a. die Schlüssel TELEIN und TELAUS zur Verfügung. Die Konfiguration der Aktivität kann über die Administrationskonsole im Bereich "Telefonie-Konfiguration" vorgenommen werden. War hier bislang einer der Leerschlüssel hinterlegt, so werden nun folgende Vorbelegungen genutzt:

  • Vorbelegung Aktivitätenart (Telefoneingang): TELEIN

  • Vorbelegung Aktivitätenart (Rückruf): TELAUS

War hier bereits ein anderer vom Leerschlüssel abweichender Wert in Benutzung, so bleibt dieser erhalten und wird nicht mit den obigen Schlüsseln überschrieben.

Abbildung: Vorbelegte Schlüssel für Aktivitätenarten

Skripting

Ausblenden von GUI-Elementen und Feldern

Um die Beschriftung und ein Feld auf der Maske ausblenden zu können, mussten bisher zwei Methoden benutzt werden(Feld und GUI .setVisible()).

Die Methode setVisible wurde um einen optionalen Parameter erweitert, um Feld und GUI-Element gleichzeitig auszublenden.

Code

CODE
FieldUtils.setVisible(boolean visible, [boolean considerLabel,] String... fieldNames)

Beschreibung

Ändert die Sichtbarkeit von Feldern.

Parameter

  • visible - true, um die Felder anzuzeigen. false, um die Felder auszublenden.

  • considerLabel (optional) - Bei true wird die Feldbeschriftung entsprechend mit behandelt. Bei false (bzw. nicht übergeben) eben nicht. 

    • ACHTUNG: considerLabel stellt hier nicht die Sichtbarkeit der Beschriftung dar, sondern steuert lediglich das Verhalten, ob sie mit ein- oder ausgeblendet werden soll!

  • fieldNames - Eine kommaseparierte Liste von internen Feldnamen, z.B. "MatchCode.Customer". Mit GUIConstants.ALL_FIELDS können alle Felder geändert werden.

Beispiele

CODE
FieldUtils.setVisible(true, true, "MatchCode.Customer", "Name1.Customer");

RestUtils: Versenden von Dokumenten als "Multipart/Form-Data"-Parameter

Für den Upload von Dateien per Rest stehen Methoden zur Verfügung, die eine Datei in ein entsprechendes Format umwandeln und als multipart/form-data per POST versenden.

  • createMultipartFormPayloadByDocument

  • createMultipartFormPayloadByInputStream

  • createMultipartFormEntry

  • createMultipartFormDocumentEntry

  • createMultipartFormPayload

Erweiterung der MetaDataUtils

Der Prozessdesigner kann nun über einen Befehl in den MetaDataUtils ermitteln, ob es sich bei einem übergebenen Feld um ein delegiertes Feld handelt, um in Prozessen und Skripten auf diesen Umstand adäquat reagieren zu können.

Neue Methoden:

  • MetaDataUtils.isAnonymize(String fieldName)

  • MetaDataUtils.isCMRField(String fieldName)

  • MetaDataUtils.isConfidential(String fieldName)

  • MetaDataUtils.isDefaultListKey(String fieldName)

  • MetaDataUtils.isDelegatedField(String fieldName)

  • MetaDataUtils.isDelegationOverLookup(String fieldName)

  • MetaDataUtils.isDelegationToLinkTable(String fieldName)

  • MetaDataUtils.isNotNullField(String fieldName)

  • MetaDataUtils.isReadOnlyApp(String fieldName)

  • MetaDataUtils.isRowModelMergerField(String fieldName)

  • MetaDataUtils.isSearchable(String fieldName)

  • MetaDataUtils.isUniqueWarning(String fieldName)

  • MetaDataUtils.getChangeHistoryCommentField(String fieldName)

  • MetaDataUtils.getDelegatedToField(String fieldName)

  • MetaDataUtils.getDelegatedEntities(String entityName)

  • MetaDataUtils.getDelegatedEntities(String entityName, Boolean includeLinkTables)

  • MetaDataUtils.getDelegatedFields(String sourceEntity)

  • MetaDataUtils.getDelegatedFields(String sourceEntity Boolean includeLinkTables)

  • MetaDataUtils.getDelegatedFieldsTo(String sourceEntity, String targetEntity)

Details finden Sie im Skripting-Handbuch.

Asynchroner (massendatentauglicher) Zeitereignis-Webservice

Es gibt zusätzlichen optionalen Query-Parameter

  • dateTime:ISO-Datetime (schon vorhanden) - Angabe des Zeitpunkts des Ereignisses, wenn leer wird es intern mit der aktuellen zeit vorbelegt

  • async (neu):boolean - Reiht das Zeitereignis für die asynchrone Verarbeitung ein. Die Gültigkeit des Payloads wird in der SC0EventUtils.check()-Methode geprüft.

  • parallel:boolean - Reiht das Ereignis für die parallele Abarbeitung ein. In diesem Fall ist die Reihenfolge der Abarbeitung nicht gesichert.

Beispiel-URL: rest/api/event/v1/events/?dateTime=2021-12-31T11:11:11.000Z&async=true&parallel=true

Die Skript-Methode SC0EventUtils.check() ist neu.

  • prüft den Request-Payload für alle neuen Zeitereignisse

  • Für Fehlerhafte Prüfungen kann der Fehlertext im responsePayload hinterlegt werden

  • Das Fehlerhafte Ereignis wird mit dem Status 'ERROR' abgelegt und nicht weiterverarbeitet

  • Die Prüfung darf nicht zu lange dauern

  • DB-Zugriffe oder Prüfungen mit externen Systemen sind zu vermeiden.

  • Bei einer Zeitüberschreitung der Prüfung von 50ms, erfolgt eine Meldung an den Empfänger von Systemmails und im Log

  • Die Zeitdauer kann global oder pro Ereignistyp (eventType) über die Anwendungsvariable '/EventProcessingManager$!!$CheckDurationThreshold' angepasst werden

Es gibt zwei asynchrone Verarbeitungsstränge

  • Sequentiell - Einhaltung der Reihenfolge der Ereignisse nach internem Aufrufzeitpunkt

  • Parallel - Abarbeitung im mehreren parallelen Strängen, je nach Verfügbarkeit der CPUs im Zusammenspiel mit der Auftragswarteschlange des Massendatenservers. Die Reihenfolge der Abarbeitung ist hier nicht gesichert.

Absichern von produktiven Installationen vor "versehentlichem" Update

Mit der Version 22.1 wurde das Update so umgebaut, dass der Applikationsserver beim Start erkennt, dass die Datenbank eine "ältere" Version hat und beginnt mit dem Update beim Starten.

Aufräummechanismus einer Datenbank

Durch die intensive Nutzung von Online-Schnittstellen wachsen die Protokoll-Tabellen im CRM wie Schnittstellendetails, Zeitereignisse, Webservice-Logging und Testläufe stetig an. Dies belastet die Datenbank und verlängert gerade die Laufzeit für Datenbank-Sicherungen.

Mit den Löschregeln können diese Daten nach einer festgelegten Aufbewahrungszeit aus dem System vollständig entfernt werden. Die Löschregeln sind auf alle administrativen Laufzeitdaten, aber auf auf Geschäftstabellen anwendbar. Ausgeschlossen von den Löschregeln sind alle Customizing-Tabellen sowie das Personenrollenmodell, da für Löschungen der Customizingtransport bzw. die DSGVO-Regeln zu verwenden sind. Die Neuanlage und Bearbeitung als auch die Aktivierung einer Löschregel ist nur dem Administrator mit dem Aktionsrecht "Löschregel bearbeiten" möglich.

Die Neuanlage von Löschregeln ist im aktuellen Release deaktiviert. Diese Funktion wird im nächsten Release nachgeliefert.

Die Suchen dürfen spezielle Templates wie Platzhalter oder Benutzerinformationen sowie die Funktion "SQL-Ausdruck" nicht verwenden. Für Adressen und Kommunikationsdatensätze müssen Einschränkungen auf die Delegationsfelder im Personenrollenmodell enthalten sein, wie z.B. "Personenprimärschlüssel ist leer". Wurde eine Suche nach Anlage der Löschregel verändert und enthält nun ungültige Definitionen, wird sie im Löschlauf ignoriert und als Fehler in der Log-Date DeletionRule.log gekennzeichnet.

CODE
ERROR Stop: WebserviceLog - Search_DeletionRule_WSL: The search uses invalid templates or contains no exception of person roles.

Eine Regel wird zunächst immer inaktiv angelegt. Die Aktivierung erfolgt in einem extra Schritt, nachdem z.B. die zu erwartende Datenanzahl für die Suche geprüft wurde. Eine separate Aktivierung ist auch nach Customizing-Transport der Löschregel notwendig. Dies verhindert, dass durch eine fehlerhafte Suchkonfiguration direkt und unwiderruflich Daten im Produktivsystem gelöscht werden. Im Produktivsystem muss jede Löschregel manuell aktiviert werden.

Zu jeder Löschregel stehen dem Administrator mehrere Aktionen zur Verfügung:

  • "Datenmenge ermitteln" zeigt die Anzahl der mit der hinterlegten Suche gefundenen Datensätze an.

  • "Suche öffnen" wechselt in die Suchmaske der Suche.

  • "Suche bearbeiten" wechselt in die Suchbearbeitung der Suche. (Der Administrator benötigt hierfür das Aktionsrecht "Suchen administrieren")

  • "Löschregel entfernen" löscht die Regel auf Nachfrage.

Der Löschlauf wird mit über den Timer "Systemtabellen bereinigen" in der Regel jeden Tag einmal ausgeführt. Dabei werden die über die Suche ermittelten Daten aus der Datenbank mit samt aller Verknüpfungen entfernt. Sollte die betreffende Tabelle leer sein oder die Suchen keine Daten ermitteln, wird diese Datentabelle übersprungen und entsprechend im Log vermerkt.

CODE
INFO Stop: WebserviceLog: No data found.

Fremdschlüsselbeziehungen werden durch den Leerschlüssel ersetzt. Der Lucene-Index wird im Anschluss bereinigt. Falls sehr viele Daten einer Tabelle entfernt wurden, werden Verkleinerungsoperationen der Datenbank angestoßen. Besondere Löschlogiken wurden für Testläufe vorgesehen, so dass die abhängigen Testfälle und Testschritte ebenfalls vollständig gelöscht werden.

Der Löschlauf kann auch für Dokumentendatensätze konfiguriert werden, doch werden hierbei keine Dokumentdateien gelöscht. Alternativ kann für Dokumente die Archivierung anstatt dem Löschlauf eingesetzt werden.

Maskeneditor

Boolsche Änderung aller Felder bei gleichzeitiger Markierung

Markiert man mehrere gleiche Felder und ändert dann Attribute, werden diese Änderungen (auch boolsche Attribute) für alle Felder übernommen.

Maskenelementauswahl führt zur automatischen Öffnung der Konfiguration

Wenn ein Element auf dem Maskeneditor ausgewählt wird, öffnet sich direkt der Konfigurations-Tab, auch wenn man zuvor auf dem Komponenten-Tab war. Wenn man sich zuvor auf der Baumansicht befand, springt man nicht auf den Konfigurations-Tab.

CURSOR App

Standort-Komponente auf Masken

Es besteht die Möglichkeit, dass auf einer App-Maske eine Standort-Komponente hinterlegt werden kann. Mit dieser Komponente kann der aktuelle Standort ermittelt und im CRM festgehalten werden. Die Komponente 'Standort' kann per Drag and Drop auf der Maske platziert werden. Diese hat folgende Eigenschaften:

  • Feldhöhe: Die Höhe des Feldes in der Maske (Default ist Faktor 1)

  • Anzeigename: Der internationalisierbare Anzeigename wird auf der Maske, im Verlauf und im Reiter auf der CURSOR-App dargestellt.

  • Breitengrad-Feld: Hier muss ein Zahlenfeld (de.cursor.gui.mrv.RecordableDecimalField) von der ausgewählten Entität hinterlegt werden.

  • Längengrad-Feld: Hier muss ein Zahlenfeld (de.cursor.gui.mrv.RecordableDecimalField) von der ausgewählten Entität hinterlegt werden.

  • Höhe Feld (optional): Hier kann ein Zahlenfeld (de.cursor.gui.mrv.RecordableDecimalField) von der ausgewählten Entität hinterlegt werden. Wenn die Höhe nicht ermittelt werden soll, kann hier der Eintrag <Keine Auswahl> hinterlegt werden (Default Wert).

Damit am Ende eine gewisse Standortgenauigkeit bei der Ermittlung des Standort festgehalten werden kann, ist es erforderlich, dass bei den o.g. Feldern 7 Nachkommastellen (Anzeige und Editieren) in den Feldeigenschaften eingestellt werden. Dies ist beim Feld Höhe nicht erforderlich, hier können auch weniger Nachkommastellen hinterlegt sein.

Feldvalidierung

Mit Maskenregeln können für die App feldwertabhängige Anzeigen bestimmt werden. Dies bedeutet, dass je nach Feldinhalt auf einer Maske gewisse Felder oder Gruppen aus- oder eingeblendet werden können. Des Weiteren ist es möglich, dass einzelne Felder als schreibgeschützt oder als Pflichtfeld gekennzeichnet werden können. Hierfür wurde ein Maskenregel-Editor geschaffen, in dem man skriptseitig in einem json-Format Regeln für eine Maske hinterlegen kann. Außerdem ist es nun ab der Version 22.1 möglich, Validierungen auf Feldern durchzuführen. Validierungen sorgen dafür, dass bei der Eingabe von Daten fehlerhafte Werte erfasst werden.

Abbildung: Konfiguration der Maskenregeln im App-Editor und die Auswirkung im validierten Feld

Bestehende Eigenschaften von Feldern können über das Skript verändert werden:

  • Sichtbarkeit (Ist das Feld/Gruppe/Komponente auf der Maske oder nicht)

  • Schreibschutz (Ist das Feld schreibgeschützt oder beschreibbar)

  • Pflichtfeld (Ist das Feld ein Pflichtfeld oder nicht)

Zusätzlich wurde die Feldvalidierung implementiert. Es kann nun auf den Inhalt eines Feldes eine Validierung durchgeführt werden:

  • Ist ein Zahlenwert größer oder kleiner als Zahl X

  • Liegt ein Zahlenwert zwischen den Inhalten des Feld x und Feld y

  • Somit kann auf feste Zahlenwerte oder auch Feldinhalte geprüft werden

    • Voraussetzung ist hier aber, dass die Felder den gleichen Typ haben

  • Liegt ein Datumswert vor oder nach einem festgelegten Datum

  • Liegt ein Datumswert vor oder nach einem ausgelesenen Wert aus einem anderen Datumsfeld

  • Steht ein beliebiger Wert in einem Textfeld

Anruf Benachrichtigungen DSGVO konform versenden

Bei den Benachrichtigungen vom Typ Anruf darf die Telefonnummer nicht übermittelt werden und wurde damit aus der System-Benachrichtigung ausgebaut. Dies hat auch Auswirkungen auf die Funktion "Zurückrufen". Hier muss der Anwender zunächst auf die Benachrichtigung klicken und kann dann über den Bereich Anrufe einen Rückruf tätigen. Die Telefonnummer wird nicht dem OS mitgeteilt, sondern bleibt im Bereich der App.

JavaScript errors detected

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

If this problem persists, please contact our support.