CRM 8.3 Release Notes 🇩🇪

2024-11-15

Das Symbol in der Überschrift gibt die Art der vorgenommenen Änderung an.

🚀 – Neue Funktion
🛠️ – Verbesserung
🐞 – Fehlerbehebung

Die Links zu den Issues sind nur für den internen Gebrauch bestimmt!

Server

🚀 Auswertung des UTM-Parameters beim Import von Formular-Einsendungen aus Neoletter

Wenn Sie auswerten möchten, aus welcher Kampagne ein Lead stammt oder welche Leads „Cost per Click" sind, können Sie die zusätzliche Klassifikation von Aktivitäten verwenden.

Es gibt eine neue Liste (Administration > Aktivitäten > UTM-Klassifikation), in der Sie eine (zusätzliche) Aktivitätsklassifikation auswählen können. Für eine Klassifikation können Sie die Werte der UTM-Parameter festlegen, die übereinstimmen müssen. Wenn diese übereinstimmen, wird die Klassifikation der Aktivität hinzugefügt.
Mehrere Klassifikationen können übereinstimmen.
Es muss jedoch mindestens ein UTM-Parameter übereinstimmen.

Issue

🛠️ Cockpit > Filter-Balkendiagramm > Verdichtung auf die Kalenderwoche

Im Filter-Balkendiagramm können Sie Datumsangaben auf das Jahr, den Monat oder das Quartal verdichten. Nun haben Sie die zusätzliche Möglichkeit, Datumsangaben auf die Kalenderwoche zu verdichten.

Der Titel lautet dann Woche.Jahr

Issue

🐞 Ein Kunde mit mehr als 1000 Preislisten kann keinem Projekt zugeordnet werden

Dieses Problem wird behoben, indem die Preislisten iterativ verarbeitet werden, anstatt sie alle auf einmal zu laden.

Issue
8.1 patch 23
8.2 patch 1

🐞 Google Mail erlaubt nicht das Entfernen des SENT-Labels von einer E-Mail

Wenn Sie versucht haben, eine E-Mail im Postfach per Drag-and-Drop vom Ordner GESENDET in einen anderen Ordner zu verschieben, wurde eine Fehlermeldung angezeigt. Google erlaubt das Entfernen des SENT-Labels über die API nicht. Um damit umzugehen, wird die E-Mail stattdessen in den Zielordner kopiert. Oder in Google-Begriffen: Das Ziel-Label wird der E-Mail hinzugefügt.

Issue

🐞 Upgrade-Journal-Einträge auch für den Datensatzinhaber erstellen

Der Inhaber eines Datensatzes hatte keine Journal-Einträge für seine eigenen Datensätze erstellt. Dies führt zu Problemen, wenn der Inhaber den Datensatz geändert hat, nachdem ein anderer Benutzer seine Änderungen vorgenommen hat. In diesem Fall würde das Journal nur die Änderungen des anderen Benutzers wiederherstellen, und die Änderungen des Inhabers gingen verloren.

Issue

🐞 Terminserie mit einem Google Meet

Wenn Sie versucht haben, eine Terminserie zu erstellen, die alle Termineinträge auf einmal anlegt, und diese Serie auch ein Google Meet für jeden einzelnen Termin erzeugt, trat ein Fehler auf.

Das Problem bestand darin, dass der Termin mit Google synchronisiert werden musste, um ein Meet dafür zu erstellen. Während der Erstellung der Serie war dies jedoch zu früh. Daher wurden die Synchronisation und die Meet-Erzeugung ans Ende der Transaktion verschoben.

Issue

🛠️ „PisaSales CRM" wird immer für importierte E-Mails gesetzt

Wenn Sie eine E-Mail aus Exchange importieren, wird die Kategorie „PisaSales CRM" immer gesetzt. Um mehr Kontrolle zu haben, steuert die bestehende Variable PSA_SYN_EMA_SET_CAT nun auch, ob die Kategorie gesetzt wird, wenn die E-Mail mit Exchange synchronisiert wird.

Issue
8.1 patch 24
8.2 patch 2

🐞 Automatische Serviceobjekt-Auswahl funktioniert nicht

Wenn Sie ein Unternehmen mit einem Serviceobjekt haben und einen neuen Serviceaufruf oder Servicefall erstellen, sollte nach dem Speichern des neuen Datensatzes eine Auswahl von Serviceobjekten geöffnet werden. Diese Funktion hat nicht mehr funktioniert, ist aber nun behoben.

Issue
8.1 patch 24
8.2 patch 2

🛠️ Parameter zum Lead-Import-Job hinzufügen

Dieser Job importiert derzeit alle Abonnenten aller Neoletter-Formulare als Aufgaben und Kontakte. Dadurch werden viele Daten im CRM-Lead-Management ohne wirklichen Nutzen erzeugt. Eine Möglichkeit, diese Importe zu filtern, besteht darin, das Formular einem Event oder einer Publikation zuzuordnen. Der Job berücksichtigt dann möglicherweise nur Registrierungen aus Formularen, die eine Projektzuordnung haben.

Wenn der Job den Parameter FRC_PRO:=y setzt, werden nur Formular-Einsendungen importiert, bei denen das Formular einem Projekt zugeordnet ist.

Auf diese Weise können Sie beispielsweise Leads von einer bestimmten Anzahl von Landing Pages importieren. Alle anderen Formulare, die z. B. interne Fragebögen sein könnten, werden dann ignoriert.

Issue
8.2 patch 2

🛠️ Die REST-API erzeugt Zeitstempel mit der Zeitzone Z

Wenn Sie Objekte Zeitstempel im ISO-Format erzeugen lassen, entweder über die PsaRstApiIsoDat-Annotation oder die globale Eigenschaft im Objekt selbst, erhalten Sie nun eine Zeichenkette, die als letztes Zeichen ein Z enthält, um anzuzeigen, dass es sich um das UTC-Format handelt.

Wenn Sie die Zeichenkette ohne das Z möchten, können Sie timezone=false für die Annotation setzen oder dies in der globalen Eigenschaft definieren.

🛠️ Den Neoletter-Formulartyp an den Lead-Import übergeben

Der Neoletter-Formulartyp wird nun an den PisaSales-Lead-Import übergeben. Im Rahmen des Customizings kann dieser Typ verwendet werden, um beim Import eine Art Filterung oder spezielle Behandlung der Formular-Einsendungen vorzunehmen.

Issue

🐞 Die Liste der zuletzt verwendeten Objekte ist immer auf Deutsch

Ein Fehler wurde behoben, bei dem die zuletzt verwendeten Objekte immer in deutscher Sprache gespeichert wurden. Dies betraf Datensätze mit einem mehrsprachigen Namensfeld, wie z. B. Aktivitäten oder Dokumente.

Issue
8.2 patch 3

🐞 Der persönliche Kalender zeigt private Informationen aus anderen Kalendern

Fehler behoben, bei dem private Einträge anderer Mitarbeiter mit allen Daten im persönlichen Kalender angezeigt wurden.

Issue
8.2 patch 3

🚀 MS Teams-Integration über sipgate

Eine direkte Telefonie-Integration mit Microsoft Teams ist nicht möglich. Sie müssen das Telefonsystem integrieren, das Sie für Teams verwenden. Wir haben diese Integration mit sipgate verifiziert. Der Connector für sipgate ist bereits in PisaSales vorhanden, und wir können Benachrichtigungen über eingehende Anrufe empfangen sowie ausgehende Anrufe starten. Teams verhält sich in diesem Szenario wie ein Softphone. Wenn Sie beispielsweise einen ausgehenden Anruf aus PisaSales starten, klingelt Teams und Sie müssen abheben, um den eigentlichen Anruf zu beginnen.

Issue

🐞 Die Serverzeitzone verursacht eine unerwünschte Verschiebung von Aktivitätsserien

Ein Fehler wurde behoben, bei dem sich die Startzeit von Aktivitäten ändert, wenn diese als Serie erstellt werden und der Server eine andere Zeitzone als der Client hat.
Dies trat auf, wenn die Sommerzeit unterschiedlich definiert war, z. B. UTC im Vergleich zu Europe/Berlin.

Issue
8.2 patch 3
8.1 patch 25

🛠️ Lead-Import: Aktivitätsklassifikation anhand des Formulartyps setzen

Wenn Neoletter einen Formulartyp definiert, kann dieser Typ als Klassifikation der Lead-Aktivität verwendet werden. Dies ermöglicht eine bessere Gruppierung der verschiedenen Formular-Einsendungen bei der Auswertung/Analyse.

Der Formulartyp wird als Name einer Aktivitätsklassifikation gesucht. Dies gilt sowohl für die übergeordneten Klassifikationen als auch für zusätzliche Klassifikationen. Wenn der Name gefunden wird, wird die Klassifikationskennung an der Aktivität gesetzt.

Issue
8.2 patch 4

🐞 Vertragliche Auftragsgenerierung: falsche Monatswerte

Wenn Sie den Vertrag in der Mitte des Monats und nicht am Ersten beginnen lassen, ist der Preis der generierten Aufträge falsch. Bei einem monatlichen Abrechnungsintervall wird die Gesamtsumme der generierten Aufträge verdoppelt.

Issue
8.2 patch 4
8.1 patch  26

🛠️ Denselben Kommentar in IPLs wie in DYN_JAVs verwenden

Implementierungen und dynamisches Java haben eine Kommentarzeile mit einem Zeitstempel, wann der Code geändert wurde. Außerdem ist angegeben, wer den Code geändert hat. Beide Kommentare waren jedoch unterschiedlich formatiert. Jetzt haben beide das gleiche Format:

// Last update by user SALESADMIN on host WSAMZN-GCNRJ0KM at 20231027115912

Issue
8.2 patch 4

🐞 Drill-Down: gespeicherter Pfad-Selektor lädt möglicherweise nicht alle verfügbaren Konfigurationen

Der Selektor hat alle Konfigurationen herausgefiltert, auf die der Benutzer keinen Zugriff hat. Wenn es mehr als 100 Konfigurationen gibt, werden nur die lesbaren Konfigurationen aus diesen 100 Datensätzen angezeigt. Mit dieser Korrektur werden bis zu 100 lesbare Konfigurationen geladen.

Issue
8.2 patch 6
8.1 patch 28

🐞 Unnötige Erstellungen von Terminserien behoben (Route)

Wenn Sie eine Terminserie für eine Route erstellen, erscheinen mehrere Meldungsfenster, in denen Sie gefragt werden, ob Sie andere Termine der Serie löschen möchten. Das Problem bestand darin, dass der Kontakt dem Betreff hinzugefügt wurde, was eine Neuerstellung der Serie auslöste.

Issue
8.2 patch 4

🛠️ Verbesserte Behandlung von Referenzen bei der Dublettenbereinigung

Wenn Dubletten zusammengeführt werden, werden n:m-Relationen mit demselben Vater und Kind auf eine reduziert. Dies kann zu einem Datenverlust von Informationen führen, die im Relationsrecord gespeichert sind, z. B. der Teilnehmerstatus bei einem Termin oder die Rolle in einer Kampagne.

Die Dublettenbereinigung verfügt über eine Reihe von Datenobjekten und Feldern, die beim Zusammenführen geprüft werden. Wenn die Daten unterschiedlich sind, wird die Relation nicht gelöscht.

Issue

🛠️ Pflichtfelder bei der Bankverbindung

Bei der Eingabe von Bankverbindungsdaten für ein Unternehmen mussten bisher Kontonummer, Bankleitzahl, IBAN und BIC angegeben werden.

Nun ist nur noch die IBAN ein Pflichtfeld. Und Bankname, Bankleitzahl sowie BIC verfügen über einen Selektor, der auch die Eingabe freier Daten ermöglicht.

Issue
8.2 patch 4
8.1 patch 26
8.0 patch 25

🐞 Zugriffsprüfung wird manchmal bis zur Cache-Leerung deaktiviert

Wenn Sie die Zugriffsprüfung für ein Datenobjekt mit der Methode PsaSsn.setDtoAccChk(false) deaktiviert haben, kann es danach vorkommen, dass alle Datenobjekte, die im Cache gespeichert sind, während der Zugriff deaktiviert ist, eine deaktivierte Zugriffsprüfung haben, bis der Server-Cache geleert wird.

Issue
8.2 patch 5
8.1 patch 27
8.0 patch 25
7.6 patch 31

🛠️ IAM-Zugriffstoken wurde zu häufig angefordert

Das Zugriffstoken wurde für jede Sitzung zwischengespeichert. Ein Job erhält jedoch eine Sitzung aus dem Sitzungs-Pool, und das Token wird aus dem Sitzungs-Cache entfernt, sobald die Sitzung an den Pool zurückgegeben wird. Ein Job, der jede Minute läuft, fordert daher jede Minute ein neues Token an.

Nun wird das Token für den gesamten Serverprozess zwischengespeichert, und der gesamte Code verwendet dasselbe Token. Außerdem wird das Token mit einer Gültigkeitsdauer von 1 Stunde anstelle der bisherigen 15 Minuten erstellt.

Issue
8.2 patch 5
8.1 patch 27
8.0 patch 24

🐞 Google-API-Änderung für Events.list

Google hat den Standardwert für die Ereignistypen beim Abrufen von Kalenderereignissen geändert. Diese umfassen nun auch die Ereignisse für den Arbeitsort.

Wir setzen nun bei der Abfrage „default", „focusTime" und „outOfOffice" als Ereignistypen und ignorieren „workingLocation".

Issue

🛠️ Die Mitarbeitersuche im Kalender soll keine ehemaligen Mitarbeiter finden

Wenn ein Mitarbeiter das Unternehmen verlassen hat, wird er in der Schnellkontaktsuche im Kalender nicht mehr gefunden. Falls Sie ihn dennoch suchen müssen, verwenden Sie den Suchdialog.

Issue

🐞 Alte PSA_DYN_JAV-Implementierung wird geladen

Wenn Sie eine PSC_IPL hatten, die eine PSA_DYN_JAV direkt ohne Reflection aufruft, konnte es passieren, dass bei der Kompilierung der PSC_IPL die Class-Datei der PSA_DYN_JAV als BLOB gespeichert wird. Dies führte dazu, dass eine alte Version der PSA_DYN_JAV vom Class-Loader geladen wurde, auch wenn Sie den Quellcode danach geändert hatten.

Issue
8.2 patch 6
8.2 patch 28

🐞 Wenn Sie einen Besuchsbericht beantworten, wird der Fragebogen als Projekt zugewiesen

Der Fragebogen wurde zugewiesen, sobald er beantwortet wurde. Die Zuweisung erfolgte jedoch nur als n:m-Relation und nicht als Hauptprojekt.

Wenn Sie jedoch eine Folgeaktivität des Termins erstellt haben, wurde der Fragebogen plötzlich zum Hauptprojekt, falls der Termin kein anderes Hauptprojekt hatte.

Nun wird der Fragebogen dem ursprünglichen Termin nicht mehr zugewiesen.

Issue

🚀 Neoletter: Profile mit Kontakten synchronisieren

Neuer Job „Neoletter: Profile synchronisieren" (PSA_NEOLETTER_SYNC_PROFILES), der die Profilereignisse aus Neoletter liest.

Für jedes Profil wird eine Person mit einer übereinstimmenden E-Mail-Adresse gesucht. Anschließend werden die geänderten Werte für jedes Feld im Datenobjekt PSA_MOD_DAT gespeichert. Der Kundenbetreuer der Person erhält eine Nachricht, dass er die Änderungen prüfen soll. Im Dialog der Person kann der Benutzer die Funktion „Geänderte Daten bestätigen" aufrufen, um einen Dialog mit allen Änderungen zu öffnen. Für jedes Feld kann er entscheiden, ob er die Änderung übernehmen, ablehnen oder den Wert bearbeiten möchte.

Die Daten werden nicht direkt in den Kontakt geschrieben, um ein Überschreiben von Daten im CRM durch das Neoletter-Profil zu verhindern. Die Daten müssen manuell importiert werden, um mehr Kontrolle zu haben.

„Geänderte Daten bestätigen" ist in der Standardinstallation nur für Administratoren sichtbar. Um die Funktion für alle oder eine Gruppe von Benutzern sichtbar zu machen, muss der Zugriff auf die Funktion COM_MOD_DAT geändert werden.

Issue
8.2 patch 6

🛠️ Das Fälligkeitsdatumsfeld in E-Mail-Serien nicht schreibgeschützt machen

Das Fälligkeitsdatum von E-Mail-Serien ist nicht mehr schreibgeschützt, solange die E-Mail im Bearbeitungsstatus ist. Dies ist wichtig, wenn Sie externe Mailer wie Neoletter verwenden. Hier befindet sich die E-Mail länger im Bearbeitungsstatus, bis sie versendet wird.

Issue
8.2 patch 7

🛠️ IPs unter „Monitor > Anwendungsserver" erlauben

Die Cluster-Kommunikation erfolgte bisher ausschließlich über den Hostnamen. Manchmal ist mehr Kontrolle darüber erforderlich, welcher Name oder welche IP verwendet werden soll.

Dafür wurde eine neue Server-Eigenschaft psc.srv.clu.hst eingeführt, über die der Hostname oder die IP-Adresse für die Cluster-Konfiguration festgelegt werden kann.

Wenn diese Eigenschaft nicht gesetzt ist, wird der lokale Hostname verwendet.

Issue
8.2 patch 7
8.1 patch 29

🚀 PDF-Konvertierung über einen Druckertreiber

Einige Druckertreiber wie „Microsoft Print to PDF" können über die API von Microsoft Office direkt in PDF drucken. Dadurch entfällt die Notwendigkeit, GhostScript zu verwenden, um PostScript, das von den Treibern erzeugt wird, in PDF zu konvertieren.

Diese neue Konvertierungsmethode kann im PDF-Konvertierungskonfigurationsdialog unter „Meine Daten" ausgewählt werden. Der Name dieser Methode lautet „PDF-Drucker".

Issue

🐞 Pinnwand: @-Namen mit Umlauten werden nicht ersetzt

Dieser Fehler trat auf, wenn Sie einen Empfänger mit @ adressiert haben und der Name des Empfängers einen Umlaut enthielt. Wenn der Name des Empfängers unbekannt war, wurde eine Kontaktauswahl geöffnet, in der Sie den richtigen Empfänger auswählen konnten.

Der unbekannte Name in Ihrem Text wurde nicht durch den korrekten Namen des ausgewählten Empfängers ersetzt.

Issue
8.2 patch 7
8.1 patch 29

🚀 „Nachricht des Tages" und „Kein Login-Nachricht"

Als Administrator müssen Sie die Benutzer manchmal über etwas informieren, z. B. eine geplante Wartungszeit.

Diese Nachricht soll einfach über das Dateisystem des Anwendungsservers definiert werden können.

Sie benötigen einen Ordner namens msg, der sich im Arbeitsverzeichnis des Servers befindet (parallel zu bin, conflog, usw.)
In diesem Ordner legen Sie Ihre Dateien ab, die die Nachrichten enthalten.

Der Dateiname besteht aus dem Nachrichtentyp und der Sprachkennung (ger, engfra, ...).
Es gibt zwei Nachrichtentypen:

motd: Eine Nachricht, die nach der Anmeldung für alle Benutzer angezeigt wird.

nologin: Eine Nachricht, die während der Anmeldung angezeigt wird und den Client danach beendet. Der Benutzer psa ist von dieser Nachricht ausgenommen, um sicherzustellen, dass sich mindestens ein Benutzer anmelden kann.
Wenn die Sprache des Benutzers nicht als Datei gefunden wird, wird eng als Fallback gesucht.
Im Standard werden diese Dateinamen unterstützt: motd.ger, motd.eng, nologin.ger und nologin.eng. Wenn weitere Sprachen installiert sind, wächst die Liste.

Die Nachricht unterstützt Platzhalter. Diese Platzhalter ermöglichen es dem Autor der Nachricht, Kontaktdaten einzufügen. Der Platzhalter hat das Format %<Feld>%.
Beispiel für motd.eng:

Issue
8.2 patch 7
8.1 patch 29

Sie können die maximale Anzahl von Datensätzen festlegen, die in der Drill-Down-Maske geladen werden. Diese Einstellung wird in einer Variable gespeichert und jedes Mal gesetzt, wenn Sie die Drill-Down-Maske öffnen.

Der Fehler bestand darin, dass das Öffnen eines gespeicherten Drill-Down-Pfads (z. B. aus Ihren Favoriten) über einen Hyperlink diese Einstellung ignorierte und nur 1000 Datensätze lud. Dies war ein Timing-Problem bei der Masken-Initialisierung.

Issue
8.2 patch 7

🐞 Druckerspooler kann langsamer als erwartet sein

Bei der PDF-Konvertierung durch das Drucken eines Dokuments über die Office-Anwendung kann es vorkommen, dass das gespeicherte PDF beschädigt ist.

Der Druckertreiber erzeugt ein korrektes Dokument, aber der Windows-Druckerspooler benötigt möglicherweise etwas Zeit, um den Druckauftrag zu verarbeiten. Während der Spooler läuft, ist die Ausgabedatei bereits vorhanden und leer. PisaSales liest diese unvollständige Datei und speichert ein beschädigtes PDF-Dokument.

Nun wartet PisaSales, bis die Datei vom Spooler vollständig geschrieben wurde.

Issue
8.2 patch 6

🛠️ Kontakt-„Gruppe" und „Status"-Informationen zum Kontakt-Nachbearbeitungs-Tab hinzufügen

Das Lead-Management-Portal zeigt nun im Kontakt-Nachbearbeitungs-Tab die Gruppe und den Status des „Für Kontakt" und seiner möglichen Dublette an.

Mit diesen Informationen können Sie besser entscheiden, ob Sie diese Kontakte wirklich zusammenführen möchten.

Issue

🛠️ Planungselemente in den Kunden-Cockpits anzeigen

Sie können Ihre Planung im Cockpit als Balkendiagramm oder als Liste visualisieren. Diese Elemente waren bisher nur im „normalen" Cockpit verfügbar.

Nun können sie auch im Unternehmens-Cockpit verwendet werden. Die Einschränkung besteht darin, dass Sie nur Planungen auswählen können, bei denen die Daten auf das Kundenattribut verdichtet sind. Sie können jedoch auch Planungen verwenden, die für mehr als ein Attribut verdichtet sind, sofern eines davon der Kunde ist.

Im Unternehmens-Cockpit sehen Sie dann die Daten gefiltert nach dem aktuellen Unternehmen.

Issue
8.2 patch 8

🚀 E-Mail aus dem Groupware-Postfach löschen, ohne die E-Mail im CRM zu löschen

Dies ist eine neue Funktion, die festlegt, wo E-Mails gelöscht werden (PisaSales und/oder Groupware). Sie können diese Funktion mit der Variable PSA_MBX_DEL_GRW_OLY aktivieren.
Wenn Sie sich in einem Groupware-Ordner befinden und eine E-Mail löschen, werden Sie nur gefragt, ob Sie die E-Mail in der Groupware löschen möchten. Wenn die E-Mail eingecheckt ist, bleibt der E-Mail-Datensatz in der Datenbank erhalten. Wenn Sie die E-Mail auch in der Datenbank löschen möchten, müssen Sie die E-Mail zuerst „deimportieren", indem Sie auf das PisaSales-Symbol in der Liste klicken.

Wenn Sie sich in der globalen Posteingangsansicht befinden, bleibt alles unverändert: Eine eingecheckte E-Mail wird in PisaSales und in der Groupware gelöscht.

Issue
8.2 patch 8
8.1 patch 20

🐞 Privater Fremdkalender zeigt anderen Benutzern den Namen

Wenn ein Benutzer einen Fremdkalender definiert und diesen als privat markiert, sehen andere Benutzer nur, dass ein Termin vorhanden ist, aber keine weiteren Daten wie Titel oder Beschreibung.

Sie sehen jedoch den Namen des Fremdkalenders.

Dieser Fehler wurde behoben, sodass nur der Betreff „Privater Termin" angezeigt wird und nicht mehr der Kalendername.

Issue
8.2 patch 8

🚀 Serviceobjekt-Dokumente im Webportal veröffentlichen

Um Dokumente zu veröffentlichen, die einem Serviceobjekt zugeordnet sind, wurde das Relationsdatenobjekt PSA_SVC_ART_DOC um das Feld WEB_PUB erweitert. Dieses Feld ist im Dokumenten-Tab sichtbar und funktioniert wie dasselbe Feld im Kontext von Kontakten und Projekten: Wenn das Kennzeichen gesetzt ist, wird dieses Dokument im Portal angezeigt.

Issue
8.2 patch 8

🚀 PisaSales-Module über die Befehlszeile installieren

Für die Installation des PisaSales-Systems können Sie festlegen, was installiert werden soll, indem Sie den Wert installex bei der Eigenschaft psc.loa oder dem Parameter -loa setzen. Mögliche Optionen für installex sind PSC, PSA, CST und PAT.

Unbekannte Optionen werden als Module behandelt. Die Moduldatei wird im Loader-Verzeichnis gesucht. Die Erweiterung der Moduldatei ist .module.
Beispiel: installex_PSI
Sucht psi.modules im Loader-Verzeichnis. (Beachten Sie die Kleinschreibung.)

Mehrere Optionen und Module können kombiniert werden.
Beispiel: installex_PSC_SRM_VOC
Führt ein PisaCubes-Upgrade durch und installiert srm.module und voc.module.

Issue
8.2 patch 8

🐞 Abgemeldete Empfänger werden einer E-Mail-Serie hinzugefügt

Wenn Sie eine Mailingliste haben, die mit einem externen Mailingsystem (z. B. Neoletter oder CleverReach) synchronisiert ist, haben die Kontakte einen Status, der den Zustand im externen System widerspiegelt.

Wenn Sie eine solche Mailingliste zu einer Aktivität hinzufügen, wird die Liste aufgelöst und alle Kontakte werden der Aktivität einzeln hinzugefügt. Der Status wird dabei ignoriert.

Dies wurde geändert, da der Kontakt bei einem Abmelde- oder Entfernungsstatus zwar als Empfänger in PisaSales angezeigt würde, das externe System die E-Mail jedoch nicht an den Kontakt sendet.

Nun werden Listenmitglieder mit dem Status „Abgemeldet" (PSA_CON_CON_STA_USU) oder „Entfernt" (PSA_CON_CON_STA_REM) nicht mehr aufgelöst.

Issue
8.2 patch 8
7.6 patch 32

Das Öffnen eines Hyperlinks in einem externen Fenster wie dem Entry-Portal, dem Postfach oder einem Kalender führt zu einem modalen Dialog. Dies hat den Vorteil, dass die Aufmerksamkeit auf den Dialog gelenkt wird und Sie die Daten sehen.

Benutzer mit mehr als einem Bildschirm oder sehr großen Bildschirmauflösungen haben jedoch möglicherweise das Hauptfenster und das externe Fenster nebeneinander geöffnet. Daher ist es für diese Benutzer wünschenswert, dass Hyperlinks den Dialog im Hauptfenster als nicht-modalen Dialog öffnen.

Die Lösung ist eine neue Dialogfunktion PSA_NEW_FRM_EXT, die die Variable PSA_OPN_EXT_DLG_MOD prüft, um zu bestimmen, ob der Hyperlink den Datensatz in einem modalen Dialog oder im Hauptfenster öffnen soll.

Diese Funktion ist auf das Hauptobjekt (Termin, E-Mail usw.) beschränkt, da zu viele Dialoge und Funktionen betroffen sind und eine Änderung aller dieser Elemente das Customizing definitiv beeinträchtigen würde.

Issue

🚀 Neoletter & Leads: Zustellereignisse an der Aufgabe protokollieren

Wenn ein Kontakt ein Neoletter-Formular ausfüllt und ein Thema abonniert, erstellt das Formularereignis bereits einen Lead in PisaSales.

Die Dankes-E-Mail kann Tracking-Informationen enthalten, die Neoletter-Zustellereignisse generieren, wenn die E-Mail geöffnet oder ein Link angeklickt wird.

Diese Ereignisse sind nun an der Lead-Aktivität sichtbar.

Ein neuer Job „Neoletter: Lead-Mailing-Zustellungen" (PSA_NEO_LEA_DLV) importiert alle neuen Mailing-Zustellereignisse und verarbeitet die Ereignisse mit einer external_reference.

Diese Referenz kann eine Formular-Einsendungs-ID enthalten. Diese ID wird im externen Schlüssel der erstellten Lead-Aktivitäten gesucht. Wenn eine solche Aktivität gefunden wird, werden die Zustellereignisdaten der Aktivitätsnotiz hinzugefügt.

Issue
8.2 patch 8

🐞 Fehlende Aktivitätsfunktion im Baum

Die Funktionen „Hauptprojekt zuweisen" und „Priorität ändern" sind in Aktivitäts-Sublisten verfügbar, fehlten jedoch in der Baumansicht.

Issue

🛠️ E-Mail-Adresserkennung: Interne Kontakte bevorzugen

Wenn ein externer und ein interner Kontakt dieselbe E-Mail-Adresse haben, wurde aufgrund der Mehrdeutigkeit keiner der Kontakte verwendet.

Wenn nun nur ein interner Kontakt mit dieser E-Mail-Adresse gefunden wird, wird dieser Kontakt verwendet – unabhängig davon, wie viele externe Personen oder Unternehmen gefunden werden.

Issue
8.2 patch 9
8.1 patch 31
8.0 patch 27

🚀 Nachrichten aus der Groupware deaktivieren

Die Benutzer erhalten viele verschiedene Nachrichten von der Groupware, z. B. wenn ein Termin abgesagt oder eine E-Mail importiert wurde. Diese Nachrichten können die Benutzer stören, wenn es zu viele davon gibt.

Wir haben Variablen für jede Nachricht eingeführt, mit denen diese benutzer- oder gruppenspezifisch deaktiviert werden können. Alle diese Variablen beginnen mit PSA_SYN_GWC_MSG.

Issue
8.2 patch 9

🛠️ Neutrale Artikel, die für Demozwecke verwendet werden, nicht installieren

Die Standardinstallation enthielt viele neutrale Produkte, die nur für Demozwecke nützlich waren. Jeder Kunde musste diese löschen, wenn er eigene Produkte hinzufügte.

Um diesen lästigen Schritt zu vermeiden, werden diese Produkte nicht mehr installiert.

Nur diese Produkte werden installiert, da sie von bestimmten Funktionen benötigt werden:

  • Spesen
  • Reise
  • Alle Produkte
  • Service nach Aufwand

Issue

🛠️ Fehlende Option zum Importieren mehrerer E-Mails mit einem Dialog aus dem Postfach

Wenn Sie mehrere E-Mails im Postfach auswählen und auf die Importfunktion im Kontextmenü klicken, wird für jede ausgewählte E-Mail ein Importdialog geöffnet. In anderen Szenarien wie Drag & Drop von E-Mails oder der Synchronisation über die Client-Integration gibt es im Dialog eine „Für alle"-Option.

Diese Option ist nun auch im Kontext des Postfachs verfügbar.

Issue 
8.2 patch 9

🛠️ PSC_IPL-Klassen mit PsaUti.getCls laden

PsaUti.getCls konnte bisher nur „normale" und PSA_DYN_JAV Klassen laden. Um eine PSA_DYN_JAV Klasse zu laden, müssen Sie das Präfix $ vor dem Namen verwenden, um dies anzuzeigen.

Um die Flexibilität zu erhöhen, wurde das Laden von PSC_IPL Klassen hinzugefügt.

Für dynamische Java-Klassen bleibt alles unverändert. Sie verwenden <name>.

Für PSC_IPL wird das Präfix um den Typ der Implementierung erweitert:

  • $GLB<name>: Globale Implementierung
  • $FIX<name>: Fix-Implementierung
  • $DLG<name>: Dialog-Implementierung
  • $DTO<name>: Datenobjekt-Implementierung

Alle anderen Klassen werden als normale Java-Klassen behandelt.

Issue
8.2 patch 10
8.1 patch 33

🛠️ Hauptfarbe an isolierte Web-Fragebögen übertragen

Der isolierte Web-Fragebogen benötigt die Hauptfarbe des Touch-Clients, um den Inhalt in der korrekten CI-Farbe anzuzeigen.

Die Farbe wird durch das Touch-Farbschema in der Variable PSA_PAD_CLR_PRI definiert.

Der RGB-Wert dieser Variable wird dem Link-Parameter mit dem Wert im Format PSA_PAD_CLR_PRI:=#RRGGBB hinzugefügt.

Wenn die Variable PSA_QST_IAM_CLI_IDS gesetzt ist, wird der RGB-Wert der Variable PSA_PAD_CLR_PRI innerhalb der URL verschlüsselt.

Issue
8.2 patch 9
8.1 patch 31

🛠️ Isolierte Web-Fragebögen unterstützen nur den Eingabetyp „wiederholt"

Wenn Sie isolierte Web-Fragebögen verwenden, muss der Eingabetyp „wiederholt" sein. Andernfalls zeigt der generierte Link einen Fehler beim Öffnen.

Um zu verhindern, dass Benutzer Links generieren, die nicht funktionieren, prüft die Funktion „Link generieren" nun zunächst den Eingabetyp.

Außerdem werden der Status und das Gültigkeitsdatum geprüft. Wenn festgestellt wird, dass der Link nicht funktionieren wird, wird eine Meldung mit der Ursache des Problems angezeigt.

Um festzustellen, ob isolierte Fragebögen verwendet werden, wird die Variable PSA_QST_IAM_CLI_IDS geprüft. Andernfalls funktioniert die Funktion wie bisher.

Issue
8.2 patch 9
8.1 patch 31

🚀 Testfall-Management-Modul

Ein neues Modul zur Definition von Software-Releases und der dafür notwendigen Tests. Es ist vorgesehen, dass die Mitarbeiter des Kunden und das Projektteam dieses Modul gemeinsam zur Zusammenarbeit nutzen.

Die Hauptdialoge können über das Hauptmenü „Administration > Testfall-Management" geöffnet werden.

Das Konzept beschreibt die Funktionen.

Issue

🐞 Beim Erstellen eines Briefs für einen Marketingfall werden Kontakte ohne E-Mail ignoriert

Dies ist eine Fehlerbehebung. Wenn Sie einen Marketingfall mit mehreren Kontakten haben und über die Funktion „Brief mit Kontakten" einen Brief erstellen, wurden dem Brief nur Kontakte mit E-Mail-Adresse hinzugefügt. Dieses Verhalten ist nur für E-Mails sinnvoll. Nun werden alle Kontakte dem Brief hinzugefügt. Für E-Mails hat sich nichts geändert: Es werden weiterhin nur Kontakte mit E-Mail-Adressen hinzugefügt.

Issue
8.2 patch 9

🛠️ Java-Records für PSC_IPL und PSA_DYN_JAV unterstützen

In PSC_IPL und PSA_DYN_JAV Implementierungen war es nicht möglich, den Java-Records-Typ zu verwenden. Diese Einschränkung stammte von der verwendeten Bibliothek QDox, die das record Schlüsselwort nicht unterstützte.

Mit der Aktualisierung auf Version 2.1.0 unterstützt diese Bibliothek nun Records, sodass es möglich ist, diese auch in unseren repository-basierten Implementierungen zu verwenden.

Issue

🛠️ Erstellung von Aktivitätsserien: mehrfache Fragen zur Synchronisation

Wenn Sie eine Aktivitätsserie erstellen, bei der alle Aktivitäten gleichzeitig angelegt werden, erhalten Sie für jede Aktivität einen Dialog, der fragt, ob Sie mit der Groupware synchronisieren möchten.

Dies tritt auf, wenn Ihre ursprüngliche Aktivität (die Aktivität, bei der Sie die Serie starten) den Synchronisationsmodus nicht gespeichert hat.

Nun zeigt der Synchronisationsdialog bei der Erstellung oder Änderung einer Serie, die mehrere Aktivitäten betrifft, eine Checkbox „Für alle". Wenn diese Checkbox gesetzt ist, wird die Auswahl (Synchronisation und Einstellung speichern) auf alle folgenden Aktivitäten während dieser Operation angewendet.

Issue
8.2 patch 10

🛠️ Aktivitätsserie löschen: mehrere Fragen

Sie haben eine Aktivitätsserie, bei der die einzelnen Aktivitäten bereits erstellt und mit dem Groupware-System synchronisiert wurden.

Wenn Sie die Serie nun löschen, indem Sie das Serien-Flag bei einer der Aktivitäten entfernen, werden alle offenen Aktivitäten gelöscht. Für jede Aktivität erhalten Sie eine Frage, ob Sie diese auch im Groupware-System löschen möchten. Dieselbe Frage erscheint, wenn Sie eine Serie ändern (z. B. den Betreff) oder wenn Sie einfach mehrere synchronisierte Aktivitäten manuell löschen.

Bei einem solchen Löschvorgang mit mehreren Aktivitäten zeigt das Meldungsfenster nun eine Checkbox, mit der Sie die Antwort auf alle Aktivitäten anwenden können.

🛠️ Standarddokumente: Zusätzlicher Subtyp

Wenn Sie ein Standarddokument für einen Prozess definieren, können Sie dieses Dokument nun zusätzlich zum Status auch für einen Subtyp festlegen. Die Standarddokument-Unterliste in der Prozessdefinition verfügt nun über eine neue Subtyp-Spalte.

Sie können die Subtypen auswählen, die für den aktuellen Prozess definiert sind (derzeit können nur Projekte Subtypen haben). Falls Sie einen bestimmten Status für das Standarddokument ausgewählt haben, kann die Subtyp-Auswahl eingeschränkt sein, wenn der Status selbst auf eine Menge von Subtypen begrenzt ist.

Wenn der Status oder der Subtyp des Projekts geändert wird, werden die Standarddokumente mit dem passenden Status und Subtyp kopiert/referenziert. Dokumente ohne Status werden nur beim Einfügen kopiert. Im Aktualisierungsmodus ist der Status Pflichtfeld. Für den Subtyp ist eine ähnliche Logik implementiert. Wenn der Subtyp bei einer Aktualisierung geändert wird, ist der Subtyp Pflichtfeld.

Issue

🐞 Teams als Vertreter: Nachrichten werden endlos kopiert

Dies ist eine Fehlerbehebung, die zu einem geänderten Verhalten geführt hat.

Das Problem bestand darin, dass bei einem Team, in dem ein Mitglied durch das Team vertreten wird (z. B. während des Urlaubs), das Mitglied eine Nachricht erhält. Diese Nachricht wird dann aufgrund der Vertretungsregelung an ein Teammitglied weiterkopiert. Es konnte vorkommen, dass dieses (zufällig ausgewählte) Mitglied die Person selbst war, wodurch eine Endlosschleife beim Kopieren von Nachrichten entstand.

Die Korrektur hat die Logik so geändert, dass nun alle Teammitglieder eine Kopie der Nachricht erhalten, sofern sie derzeit nicht vertreten werden. Und als Sicherheitsmaßnahme werden diese kopierten Nachrichten niemals erneut kopiert.

Issue

🛠️ CSV-Import: Warnung bei Import durch den User-Customizer

Wenn Sie einen CSV-Import mit dem User-Customizer durchführen, kann dies zu Problemen wie einem eingeschränkten Datensatzzugriff führen. (Siehe Variable PSC_MSK_ACC)

Sie können eine Liste von Benutzernamen in der Variable PSA_CSV_IMP_WRN_USR konfigurieren. Wenn ein Benutzer aus dieser Liste einen CSV-Import (normal, BLOB oder Batch) startet, wird eine Warnung angezeigt mit der Frage, ob der Import dennoch fortgesetzt werden soll.

Der Standard definiert CUSTOMIZER als den Benutzer in der Variable.

Issue

🛠️ Bessere Handhabung von Organisationen mit einer großen Anzahl untergeordneter Einheiten

Wenn Sie Unternehmen mit einer großen Organisationsstruktur haben, ist es in der Baumansicht etwas schwierig, diese Struktur einzusehen, zu durchsuchen und zu ändern. Insbesondere wenn Sie mehr als 1000 untergeordnete Einheiten haben, werden nicht alle Datensätze geladen.

Mit einer neuen Umschalttaste können Sie die Baumansicht nun in eine Liste umschalten, die die direkt untergeordneten Einheiten anzeigt. In dieser Liste können Sie Datensätze wie in jeder anderen Liste suchen und löschen. Dies erleichtert die Pflege der Struktur.

Issue

🛠️ Vorlagenbaum: Den vollständigen Baum nicht aufklappen

Wenn ein Kunde viele Vorlagen hat (insbesondere für Korrespondenzen), zeigt der Auswahldialog bei Korrespondenzen oder der Vorlagenmaster-Dialog des Benutzers einen großen Baum an. Dies kann etwas schwer zu handhaben sein.

Nun können Sie mit der Variable PSA_RPT_TRE_MAX_RPT eine Obergrenze festlegen, bis zu wie vielen Vorlagen der Baum automatisch vollständig aufgeklappt wird. Wenn diese Grenze überschritten wird, wird nur die erste Ebene aufgeklappt und der Benutzer kann sich durch Öffnen nur der relevanten Knoten zu den Vorlagen vorarbeiten.

Der Standardgrenzwert ist 50.

Issue
8.2 Patch 11

🚀 Problem-/Feature-Meldung

Diese neue Funktion ermöglicht es Benutzern, Probleme zu melden und Funktionen direkt aus dem CRM-System heraus vorzuschlagen.

Im Hilfemenü gibt es eine neue Funktion „Problem/Feature melden", die einen Dialog öffnet, in dem der Benutzer seine Beschreibung eingeben kann.

Die Beschreibung wird zusammen mit einigen Hintergrundinformationen in einer Administrationstabelle gespeichert (Administration > Testfallverwaltung > Probleme/Features). Wenn dieser Dialog geöffnet wird, sammelt der Server Informationen über die Sitzung und andere Threads:

  • Geöffnete Dialoge in diesem Client
  • Protokolldatei-Einträge dieses Threads
  • Thread-Dumps aller Threads
  • Offene Transaktionen in allen Sitzungen

Dies hilft bei der Analyse von Problemen.

Um Personen über neue Datensätze zu informieren, kann ein Administrator Empfänger definieren (Administration > Testfallverwaltung > Problem-/Feature-Empfänger). Für jeden Empfänger kann konfiguriert werden, ob die Person eine interne Nachricht und/oder eine E-Mail erhält. Darüber hinaus kann diese Einstellung zwischen einem Problem- und einem Feature-Bericht unterschieden werden.

Issue

🐞 Neue Konfiguration für die Google Maps-Integration

Die Authentifizierung für die Google Maps REST-Dienste hat sich geändert. Nun wird nur noch ein API-Schlüssel benötigt. Um diesen in PisaSales festzulegen, wurde die neue Variable PSA_MAP_GOG_API_KEY erstellt.
Die alten Variablen PSA_MAP_GOG_CLI_ID und PSA_MAP_GOG_SIG_KEY werden nicht mehr verwendet.

Weitere Informationen zur Konfiguration in Google finden Sie in diesem Dokument.

Issue

🐞 Standard-Verteilungsteams werden neuen Terminen nicht immer hinzugefügt

Wenn Sie ein Team mit der Variable PSA_APM_DSP_TEA_NUM als Standard-Verteilungskontakt für neue Termine definiert haben, wurde das Team nur zugewiesen, wenn der Termin in einem Formular erstellt wurde.

Falls der Kalender-App oder ein Groupware-Import den Termin erstellt hat, wurde kein Verteilungskontakt hinzugefügt.

Nun wird dieser Kontakt immer hinzugefügt.

Issue

🛠️ Bestimmte Web-Services beim Start ignorieren

Beim Start möchten Sie möglicherweise bestimmte Web-Services nicht registrieren.

Ein Anwendungsfall kann das Portal sein. Sie möchten den bestehenden Web-Service erweitern, indem Sie neue Endpunkte hinzufügen. In diesem Fall würden Sie einen neuen Web-Service erstellen, der von der Implementierung des ursprünglichen Web-Services erbt. Sie müssen jedoch denselben Pfad für die Endpunkte verwenden, damit die Scrivito-App eine Verbindung herstellen kann. Dies führt beim Start zu einem Fehler, da keine zwei Endpunkte mit demselben Pfad erlaubt sind.

Als Lösung haben wir eine neue Server-Eigenschaft eingeführt, die die Namen der Web-Services definiert, die beim Start ignoriert werden sollen.

Definieren Sie die Namen, die Sie ignorieren möchten, in der Eigenschaft psc.rst.ign.wsv.

Mehrere Namen werden durch ein Komma getrennt.

Als Alternative können Sie eine Variable namens PSC_RST_IGN_WSV verwenden. Die Einstellungen der Variable überschreiben den Eigenschaftswert.

Issue

🚀 Portal-Schema

Die Endpunkte, die vom Scrivito-Portal genutzt werden, stellen nun eine Schema-Definition bereit. Das Schema beschreibt die Attribute und die möglichen Werte für Enumerationen.

Eine Dokumentation zur Implementierung dieser Funktion finden Sie in der REST-API-Dokumentation.

Issue

🛠️ Cockpits: Trendlinie für Hauptgruppenwerte

Wenn Sie bestimmte Werte im Cockpit-Filterleistendiagramm als Linie anzeigen möchten, können Sie nun ein Feld konfigurieren, das als Linie im Diagramm dargestellt wird.

🚀 Dialog-Schnittstellen

Wenn Sie einem Dialog Funktionalität hinzufügen möchten, ohne ihn zu verlinken oder den globalen Jar-Hack zu verwenden, können Sie nun die neuen Dialog-Schnittstellen nutzen.

Diese Schnittstellen sind für Dialoge (Liste, Formular, Baum) und Selektoren verfügbar.

Die Idee ist, dass sie sich wie ein Listener verhalten. Sie implementieren eine Methode der Schnittstelle, und wenn PisaCubes die entsprechende Methode aufruft, wird Ihre Methode aufgerufen.

Es gibt immer zwei Methoden-Varianten. Eine, die vor dem PisaCubes-Code aufgerufen wird, und eine, die nach dem PisaCubes-Code aufgerufen wird.

Die verfügbaren Methoden umfassen die gängigsten:

  • Formulare (definiert durch PscIfcFrm):
    • creDlg
    • fetDat
    • delDat
    • insRow
    • putDat
    • aboDat
    • und viele mehr
  • Selektoren (definiert durch PscIfcSel):
    • chkSelDat
    • delSetDat
    • rfrSelDat
    • setSelDat

Die Implementierung wird in einem Dialog-IPL definiert.

In der Dialogmaske finden Sie die neue Registerkarte „Schnittstellen". Hier können Sie Dialog-Implementierungen zur Liste hinzufügen. Der Selektor zeigt alle Implementierungen an, die PscIfcFrm oder PscIfcSel erweitern.

Die Position definiert die Reihenfolge, in der die Schnittstellen ausgeführt werden.

Die „Before"-Methoden werden in aufsteigender Reihenfolge aufgerufen und die „After"-Methoden in absteigender Reihenfolge.

Die Schnittstellen werden für den Dialog ausgeführt, in dem sie definiert sind. Das bedeutet, dass eine Schnittstelle im Basisdialog und im erbenden Dialog definiert werden kann.

Ein Beispiel für die Reihenfolge der Methodenaufrufe:

  1. Oberer Dialog: Methodeneintritt
  2. Schnittstelle oberer Dialog: Before-Methode
  3. Basisdialog: Methodeneintritt
  4. Schnittstelle Basisdialog: Before-Methode
  5. Schnittstelle Basisdialog: After-Methode
  6. Basisdialog: Methodenaustritt
  7. Schnittstelle oberer Dialog: After-Methode
  8. Oberer Dialog: Methodenaustritt

Issue

🛠️ Server-Eigenschaften aus der Systemumgebung laden

Wenn Sie die Server-Eigenschaft psc.prp.sys.env definieren, lädt der Server Systemumgebungsvariablen in die Server-Eigenschaften. (Das Muster kann auch mit der Systemumgebungsvariable PscPrpSysEnv definiert werden.) Der Wert dieser Eigenschaft ist ein regulärer Ausdruck, dem die Namen der Systemumgebungsvariablen entsprechen müssen. Zum Beispiel Psa[ac]+*

Wenn der Server eine solche Variable findet, wird der Variablenname in einen Eigenschaftsnamen umgewandelt. Dazu wird vor jeden Großbuchstaben ein Punkt gesetzt (außer vor dem ersten Buchstaben). Dann wird alles in Kleinbuchstaben umgewandelt. Zum Beispiel wird PsaTit zu psa.tit.

Dann wird die Eigenschaft zu den Server-Eigenschaften hinzugefügt, sofern sie nicht bereits durch die ursprüngliche Server-Eigenschaftsdatei definiert wurde. Die Eigenschaftsdatei hat also Vorrang vor der Systemumgebung.

Der Anwendungsfall für diese Funktion ist die Konfiguration des Servers innerhalb eines Docker-Containers.

Issue
8.2 Patch 12

🛠️ Probleme/Features von einem System in ein anderes exportieren/importieren

Wenn in einem Kundensystem ein neues Feature oder Problem erfasst wurde, möchte der Support die Daten möglicherweise in ein anderes System kopieren. Auf diese Weise muss der Support nicht auf das Kundensystem zugreifen, sondern kann das Problem/Feature in einem „lokalen" System bearbeiten.

Der Problem-/Feature-Dialog verfügt über eine neue Export- und Importfunktion.

Die ausgewählten Datensätze werden als ZIP-Datei exportiert und auf dem Client gespeichert. Wenn die ZIP-Datei in ein anderes System importiert wird, werden die importierten Datensätze automatisch in die Maske geladen.

Issue

🚀 Portal: E-Mail an externe Kontakte bei neuen Ticket-Nachrichten senden

Wenn ein interner Benutzer eine neue Nachricht im Pinboard veröffentlicht, sollen alle externen Kontakte, die an diesem Projekt mitarbeiten, eine E-Mail erhalten, dass es Neuigkeiten gibt. So müssen sie das Portal nicht ständig auf Neuigkeiten prüfen, sondern erhalten eine Benachrichtigung.

Sie müssen diese Funktion für jeden Projektprozess einzeln über eine Variable aktivieren. Der Variablenname beginnt mit PSA_PIN_BRD_SND_EMA_, gefolgt vom Prozessbezeichner. Zum Beispiel PSA_PIN_BRD_SND_EMA_PSA_SVC_TRB für Störungen.

Anschließend werden die Kontakt-GIDs aus dem Pinboard extrahiert, die einen öffentlichen Beitrag erstellt haben – ausgenommen der Benutzer, der gerade einen Beitrag erstellt.

Diese GIDs werden bei allen externen Kontakten gesucht, bei denen kein E-Mail-Sperrvermerk gesetzt ist.

Das Scrivito-Template, das für die E-Mail verwendet wird, wird durch die Variablen definiert, die mit PSA_PIN_BRD_SND_EMA_TPL_ beginnen und ebenfalls mit der Projektprozess-ID enden.

Templates in verschiedenen Sprachen können konfiguriert werden, indem der Sprachbezeichner an den Variablennamen angehängt wird (z. B. PSA_PIN_BRD_SND_EMA_PSA_SVC_TRB_GER). Es wird der Sprachbezeichner der Kommunikationssprache des Empfängers verwendet.

Wir exportieren die benutzerdefinierten Felder name, number und user an das Template, die den Projektnamen, die Projektnummer und den Namen des Empfängers enthalten. Zusätzliche Felder können durch Customizing definiert werden.

Diese Funktion erfordert Neoletter für den E-Mail-Versand.

Wenn ein Kunde Neoletter nicht verwenden möchte, ist es durch Customizing möglich, eine andere Lösung zu implementieren (z. B. SMTP). Die zuständige Klasse ist PsaPinBrdSndEma.

8.2 Patch 13

Issue

🛠️ CORS: Wildcards für den Ursprung unterstützen

Sie können die erlaubten Ursprünge in der Server-Eigenschaft psc.rst.aca.ori definieren.

Nun können Sie Wildcards (? und *) in der URL für mehr Flexibilität verwenden. Zum Beispiel http?://*-scrivito.com. Dies entspricht http://alpha-scrivito.com und https://beta-scrivito.com.

In der Antwort enthält der Header Access-Control-Allow-Origin den Ursprung der Anfrage.

Issue

🛠️ Plantafel: Konfigurieren, welche Termintypen exportiert werden

Sie können konfigurieren, welche Termintypen in die Plantafel exportiert werden. Diese Einstellung wird mit der Variable PSA_PLB_ACTIVITY_FILTER vorgenommen.

Das Format der Variable entspricht dem Zugriffsstring (<positiv>!<negativ>). Wenn der positive Teil leer ist, werden alle Termintypen verwendet. Der negative Teil wird von der positiven Liste entfernt.

Es gibt zwei Sonderschlüssel zur Definition mehrerer Typen:

  • #PLN für alle Typen, die das „planbar"-Flag haben
  • #FRE für alle Typen, die das „frei"-Flag haben

Beispiele:

  • #PLN: exportiert nur planbare Typen (dies ist der Standard)
  • !#FRE: exportiert alle Typen außer den freien Typen (wie MILESTONE)
  • !HOMEOFFICE,MILESTONE: exportiert alle Typen außer HOMEOFFICE und MILESTONE
  • SVC_ACTION,MAINTENANCE_ACTION: exportiert nur SVC_ACTION und MAINTENANCE_ACTION

🚀 Fragebögen mit Neoletter-Formulareinreichungen verknüpfen

Das Szenario sieht vor, dass Sie ein Scrivito-Formular haben, das die Daten an Neoletter sendet. PisaSales importiert dann diese Formulareinreichungen und kann anschließend Fragebogen-Aktionen auf diesen Daten auslösen. Zum Beispiel das Erstellen einer Aufgabe.

In PisaSales gibt es bei den Fragebögen eine neue Liste, in der Sie ein Formular in einem externen System (Neoletter) auswählen können. Dies können mehrere Formulare sein, zum Beispiel wenn Sie Formulare in verschiedenen Sprachen haben.

Bei jeder Frage können Sie den Namen des Formularfelds eingeben. Der Name wird im Formulareinreichungsobjekt zunächst im Stammverzeichnis gesucht, dann in den details, anschließend in den personal_fields und schließlich in den custom_fields. Sie können dem Feldnamen in PisaSales das Präfix custom_ hinzufügen, um zu erzwingen, dass das Feld nur in den benutzerdefinierten Feldern gesucht wird.

Der Job „Neoletter: Lead-Import" (PSA_MAI_LEA_IMP) prüft, ob die form_id mit einem Fragebogen verknüpft ist. Mit dem Job-Parameter IMP_QST_LEA=y | n kann gesteuert werden, ob der normale Lead-Kontakt mit der Aufgabe, die die Formulardaten enthält, vor dem Import der Fragebogen-Antworten erstellt werden soll. Standardmäßig werden sie erstellt.

Der Import wird durch die Klasse PsaQstExtFrmImp durchgeführt.

Für alle Fragen mit einer Formularfeld-Zuordnung werden die Formulardaten importiert und als Satz von Fragebogen-Antworten gespeichert.

Nach dem Speichern aller Antworten werden die Fragebogen-Aktionen und Speicher-Userexits ausgelöst.

Issue

🚀 Assistent zum Veröffentlichen eines Service-Vorgangs (Tickets) im Portal

Falls Sie einen Service-Vorgang in PisaSales erstellt haben (und nicht im Portal), möchten Sie dieses Ticket möglicherweise veröffentlichen, damit der Kunde es im Portal einsehen und kommentieren kann.

Um einen Service-Vorgang zu veröffentlichen, führen Sie die Funktion „Im Portal veröffentlichen" am Service-Vorgang aus. Falls der Service-Vorgang noch nicht veröffentlicht ist, öffnet sich ein Assistent.

Sie können das Stichwort und die Beschreibung bearbeiten und unerwünschte Informationen entfernen. Dies sind die Daten, die der Kunde im Portal sehen wird.

Außerdem versucht der Assistent, den Kontakt zu ermitteln, der diesen Vorgang eingereicht hat, indem er die Daten des Felds „Weitergeleitet von" im Personal des Kunden durchsucht. Sie können einen Kontakt auch manuell auswählen. Das Personal des Kunden wird vorab geladen, aber Sie können auch über alle Personen suchen.

Wenn Sie eine E-Mail-Vorlage für den Service-Vorgangstyp konfiguriert haben, können Sie auswählen, ob Sie dem Kontakt eine Benachrichtigung über den neu veröffentlichten Service-Vorgang senden möchten. Die Konfiguration ähnelt dem Versand einer Benachrichtigung für einen neuen Beitrag. Das Variablenpräfix ist jedoch PSA_SVC_PUB_SND_EMA_TPL_.

Im Assistenten können Sie auch Dokumente auswählen, die ebenfalls veröffentlicht werden sollen. In der Dokumentenliste werden alle Dokumente angezeigt, bei denen das Web-Veröffentlichungs-Flag gesetzt ist.

Wenn der Assistent mit der Schaltfläche „Veröffentlichen" geschlossen wird, erhält der Service-Vorgang den externen Portal-Schlüssel und einen neuen Pinboard-Beitrag mit dem Stichwort und der Beschreibung.

Issue

🚀 Farbschema pro Benutzer auswählen, um die Barrierefreiheit z. B. für farbenblinde Benutzer zu verbessern

Das Farbschema kann bisher nur für alle Benutzer festgelegt werden. Für farbenblinde Benutzer wäre es jedoch hilfreich, wenn das Farbschema für einzelne Benutzer oder Gruppen und nicht nur für alle festgelegt werden könnte.

Wir haben im Farbschema-Dialog zwei neue Funktionen hinzugefügt, um das ausgewählte Schema benutzer- oder gruppenspezifisch festzulegen.

Die Funktionen öffnen eine Personen- oder Gruppenauswahl und legen dann die Farbvariablen für die Auswahl fest.

Sie müssen sicherstellen, dass die Variablenwerte gesetzt sind, da andernfalls die globale Farbe verwendet wird. Das Festlegen eines globalen roten Schemas und der anschließende Versuch, das Standardschema für einen Benutzer zu setzen, funktioniert daher nicht. Sie müssen ein Standardschema erstellen, bei dem alle Variablen auf den Standardwert gesetzt sind.

Issue
8.2 Patch 14

🛠️ Mailing-Liste: Massenlöschung für Kontakte mit doppelten E-Mail-Adressen erlauben

Sie können die Empfänger nur dann in ein externes Mailing-System (wie Neoletter) exportieren, wenn alle E-Mail-Adressen innerhalb der Empfänger eindeutig sind.

Wenn Sie jedoch viele Empfänger mit zahlreichen Duplikaten haben, ist es sehr aufwändig, diese manuell zu löschen.

Im Mailing-Listen-Dialog gibt es bereits eine Funktion, die Duplikate auf Basis identischer Kontakt-GIDs sucht. Diese Funktion wurde nun erweitert, sodass ein modaler Dialog erscheint, der den Benutzer fragt, wie Duplikate gesucht werden sollen.

Die erste Option ist die bisherige Suchmethode. Hier werden nur Referenzen auf denselben Kontakt mit derselben E-Mail-Adresse gefunden. Es ist zulässig, denselben Kontakt mit einer anderen E-Mail-Adresse zu haben, wenn Sie den Kontakt über mehrere Adressen anschreiben möchten.

Die zweite Option sucht nur nach identischen E-Mail-Adressen, unabhängig davon, welcher Kontakt verknüpft ist. Alle Kontakte mit einer identischen Adresse werden angezeigt.

Die dritte Option ähnelt der zweiten, mit dem Unterschied, dass ein Datensatz der Duplikate nicht in die Liste geladen wird. Dies ermöglicht es dem Benutzer, alle Treffer mit einem einzigen Klick zu löschen.

Issue
8.2 Patch 14

🚀 Eine E-Mail in PisaSales auf Basis eines Neoletter-Mailings erstellen

Es kann Anwendungsfälle geben, in denen Sie ein Neoletter-Mailing in PisaSales benötigen, das nicht in PisaSales erstellt wurde. Zum Beispiel hat ein Benutzer nur in Neoletter gearbeitet oder Sie haben die E-Mail in PisaSales versehentlich gelöscht.

In der Neoletter-Administrationsliste (Administration > Aktivitäten > Korrespondenzen > Neoletter) haben Sie eine Liste externer Mailings. Sie können eines auswählen und dann „E-Mail-Serie importieren" aufrufen.

Dabei wird geprüft, ob ein Mailing mit dieser ID bereits in PisaSales vorhanden ist. Falls ja, wird die E-Mail-Serie einfach geöffnet. Falls nicht, wird eine neue E-Mail-Serie mit dem Betreff erstellt. Anschließend werden die Vorschau und die Rückmeldung importiert. Aus der Rückmeldung werden alle Empfänger zur Empfängerliste hinzugefügt.

Mit dieser neuen Funktion können Sie nun auch die Rückmeldung für eine einzelne E-Mail importieren. Dazu muss die E-Mail-Rückmeldung leer sein. Wenn Sie bei einer solchen E-Mail „Rückmeldung importieren" aufrufen, werden alle Statusereignisse von Neoletter für dieses bestimmte Mailing gefiltert. Anschließend wird die Rückmeldung für die E-Mail generiert.

Issue

Web-Client

Neues Haupt-Tab-Widget

Das Haupt-Tab-Widget wurde von Grund auf neu geschrieben. Es unterstützt:

  • Neuanordnung von Tabs per Drag & Drop
  • Gruppierung von Tabs, wenn nicht genügend Platz vorhanden ist, um alle Tabs anzuzeigen
  • 100 % client-seitiges Rendering (Browser) für ein besseres UI-Erlebnis

Neuer Rich-Text-Editor

Der Rich-Text-Editor wurde vollständig neu entwickelt.

  • Neue Codebasis mit CK Editor, Version 44
  • Erhöhte Stabilität und Robustheit
  • Bessere HTML-Unterstützung mit dem Versuch, nicht unterstützte Tags beizubehalten und darzustellen
  • Verbessertes „Einfügen aus Office"

Globale Konfiguration über Umgebungsvariablen

Umgebungsvariablen, deren Name mit „PISASALES_WEBCLI_" beginnt (außer solchen, deren Name mit „PISASALES_WEBCLI_LGI_" beginnt – siehe unten), gelten als Definition oder Überschreibung einer globalen Konfigurationseinstellung.

#568

Login-Set-Konfiguration über Umgebungsvariablen

Altes Verhalten bei der Vervollständigung partieller Datums-/Uhrzeitwerte zulassen

Wenn ein Datums-/Uhrzeitfeld keinen vollständigen Datums-/Uhrzeitwert liefert, sondern beispielsweise nur ein Datum, füllt der Client die fehlenden Teile mit einem Standardwert; die Stunde wird auf 12 Uhr Ortszeit gesetzt, um sicherzustellen, dass der UTC-Wert dasselbe Datum anzeigt.

In einigen benutzerdefinierten Umgebungen gibt es jedoch eine Logik, die darauf angewiesen ist, dass die Uhrzeit in diesem Fall auf 00:00:00 gesetzt wird.

Eine neue Umgebungsvariable „PSA_FMT_DAT_SET_NUL" wurde eingeführt. Wenn sie auf „y" gesetzt ist, setzt der Client fehlende Zeitteile bei der Verarbeitung von Datums-/Uhrzeiteingaben auf null.

#579

Unterstützung von HTTPS / WSS

Die Backend-zu-Backend-Verbindungen für Desktop-Integration und den Push-Benachrichtigungsdienst unterstützen nun HTTPS / WSS.

Die Verwendung von HTTPS/WSS kann global konfiguriert werden. Außerdem gibt es eine Login-Set-Option, um die globale Einstellung für eine bestimmte Anwendung zu überschreiben.

Veraltung von Bildern im ICO-Format

Bilder (BLOBs) im ICO-Format sind in Version 8.3 veraltet. Die Unterstützung für dieses Bildformat wird in einer zukünftigen Version entfernt.

Es gibt mehrere Möglichkeiten, diese Bilder zu ersetzen:

  1. Stattdessen ein schriftbasiertes Symbol bereitstellen.
  2. Stattdessen ein SVG-Bild bereitstellen.
  3. Das Bild im ICO-Format in das PNG-Format konvertieren.

Auto-Login basierend auf dem Benutzernamenvergleich durch die Desktop-Integration ist standardmäßig deaktiviert.

Siehe https://github.com/pisasales/webclient-webcli/pull/215

Diese Methode gilt als unsicher. Stattdessen sollte ein auf Open ID Connect basierender Login verwendet werden.

Fehlerbehebungen

Alle Fehlerbehebungen und Verbesserungen, die in den Patch-Notizen der Versionen 8.1 und 8.2 erwähnt werden.