Beim Öffnen der Solution wird ein Hinweisdialog "Datenbankstruktur muss angepasst werden" angezeigt. Folgen Sie den Anweisungen der Anwendung.
▪ Microsoft SQL Server 2014 wird nicht mehr unterstützt (Grund: Offizielles Ende des erweiterten Supports zum 09. Juli 2024, siehe Microsoft SQL Server 2014 - Microsoft Lifecycle).
▪ Microsoft SQL Server 2012 wird nicht mehr unterstützt (Grund: Offizielles Ende des erweiterten Supports zum 12. Juli 2022, siehe Microsoft SQL Server 2012 - Microsoft Lifecycle).
▪ PostgreSQL 12 wird nicht mehr unterstützt (Grund: Offizielles Ende des Supports zum 14. November 2024, siehe PostgreSQL: Versioning Policy).
▪ PostgreSQL 11 wird nicht mehr unterstützt (Grund: Offizielles Ende des Supports zum 09. November 2023, siehe PostgreSQL: Versioning Policy).
▪ PostgreSQL 10 wird nicht mehr unterstützt (Grund: Offizielles Ende des Supports zum 10. November 2022, siehe PostgreSQL: Versioning Policy).
▪ Die Internetmarke der Deutschen Post AG wird nicht mehr unterstützt.
▪ WordPad wird als Zielprogramm für Übernahmemasken nicht mehr unterstützt (Grund: Offizielles Ende des Supports ab Windows 11 Version 24H2, siehe In Windows 11, Version 24H2 entfernte Features | Microsoft Learn).
▪ IBM Lotus Notes wird nicht mehr unterstützt (Grund: das anbindbare IBM-Produkt ist end-of-life). Eine bereits aktivierte "IBM Lotus Notes"-Anbindung als Terminverwaltung ist davon nicht betroffen, kann aber nicht mehr interaktiv ausgewählt werden.
▪ Für das Mozilla Thunderbird Add-in wird nun Mozilla Thunderbird in mindestens Version 136 benötigt.
Eine Auflistung aller Neuerungen im SDK finden Sie über die Programmgruppe unter dem Punkt "Programmierer-Referenz" im Dokument "SDK_DE.pdf" im Kapitel "Änderungen und Neuerungen".
•REST-Schnittstelle, welche das combit CRM-SDK in eine REST-API kapselt. Der combit CRM-REST-Server kann sowohl lokal (localhost) inklusive interaktivem UI operieren, als auch im Intranet für die nicht-interaktive/nicht-visuelle combit CRM-API.
•Verhaltensänderung: Bei cRM.Login werden nun etwaige Hinweis-/Fehlermeldungen (z. B. beim Laden des Projekts) unterdrückt, sofern das Anwendungsfenster nicht sichtbar ist (cRM.Visible = true wurde nicht gesetzt). Deren Darstellung ist bei unbeaufsichtigten Skripten, z. B. per Aufgabenplanung, kein sinnvolles Verhalten.
•Verhaltensänderung: Schlug bisher die cRM.Login-Methode fehl, so wurde bislang in jedem Fall der Login-Dialog angezeigt. Dies ist bei unbeaufsichtigten Skripten, z. B. per Aufgabenplanung, kein sinnvolles Verhalten. Daher erfolgt jetzt bei einem ungültigen Login zuerst eine erzwungene Wartezeit von mindestens 5 Sekunden (zur Verhinderung von brute-force-Attacken), bevor sie anschließend mit NULL/Nothing erfolglos zurückkehrt. Um das bisherige Verhalten mit angezeigtem Login-Dialog zu erzwingen, muss man vor dem cRM.Login-Aufruf "cRM.SetOptionLong(1, 0)" aufrufen.
•Potentielle Verhaltensänderung: Wurde ein RecordSet mit fulldynamic Cursor-Modell von vorne nach hinten durchlaufen, so befand sich die aktuelle "Position" nach dem letzten "GotoNext", welches zum Signalisieren des Datenendes dann false lieferte, hinter dem letzten Datensatz. D. h. ein anschließender GotoPrevious-Aufruf positionierte zunächst "auf" den letzten und erst das zweite "GotoPrevious" ging dann zum vorletzten. Dies ist jetzt anders: das letzte "GotoNext" bleibt direkt "auf" dem letzten Record stehen, so dass es nur 1 "GotoPrevious" braucht, um von dort zum vorletzten zurückzugehen. (Gilt nicht für RecordSets mit forwardonly Cursor-Modell, da diese sowieso nur einmalig in 1 Richtung durchlaufen werden können.)
•Potentielle Verhaltensänderung: Bei einem nicht-visuellen RecordSet konnte bislang der RecordSet.SortOrder-Eigenschaft eine beliebige Sortierungsnummer zugewiesen werden. Zwar resultierte dies bei einer gar nicht vorhandenen Sortierungsnummer in einer "unsortiert"-Sortierung, aber die Abfrage der Eigenschaft lieferte weiterhin die urspr. gesetzte, ungültige Sortierungsnummer. Jetzt wird jedwedes Setzen einer ungültigen Sortierungsnummer komplett ignoriert und die bisherige Sortierung beibehalten, anstatt auf "unsortiert" gesetzt zu werden.
•Der 'ViewConfig.FldTypePhys'-Wert für ein NUMERIC(x)-Feld ohne Nachkommastellen unter Microsoft SQL Server wird fortan als 'Int64'-Typ (Wert 18) abgebildet und nicht als 'Numerisch'-Typ (Wert 5).
•Verhaltensänderung: Die Print- sowie ExecuteInstantReportBy-Methoden schlagen nun fehl, wenn der Ausgabedateipfad ungültige Zeichen enthält und liefern eine Fehlermeldung, die auf diesen Umstand hinweist. Im Vergleich zu V12 und älter ist die Fehlermeldung nun spezifischer und das Zeichen ':' wird nun korrekt behandelt. In V13.0 und V13.1 wurden ungültige Zeichen durch '_' ersetzt und die Methode schlug nicht fehl, solange der resultierende Pfad valide war. Das konnte jedoch bei darauffolgenden Zugriffsversuchen auf die Ausgabedatei zu Problemen führen, da sich der Dateipfad geändert hatte.
▪ E-Mail-Tool "Sendinblue": Solutions, die aktuell noch das E-Mail-Tool "Sendinblue" verwenden, müssen nun zwingend auf "Brevo" umgestellt werden. Befolgen Sie dazu die Anweisungen im Artikel "E-Mail-Tool Sendinblue auf Brevo umstellen" in unserer Knowledgebase.
▪ Die neue Ansichten-Eigenschaft "Datensätze seitenweise abrufen" ist standardmäßig aktiviert. Dadurch werden Datensätze lediglich seitenweise vom Datenbankserver abgerufen. Dies führt bei > 500.000 Datensätzen in Kombination mit Papierkorb oder Datensatzrechten zu einem immensen Performancegewinn, wobei ein direkter Sprung an das Ende der Daten dann nicht direkt möglich ist (nutzen Sie hierfür z. B. eine invertierte Sortierung).
▪ Potentielle Verhaltensänderung: Auf neuen, noch nie eingerichteten, Clients ist ab sofort standardmäßig die Option 'Datei > Konto > Allgemein > Oberfläche > Standard-Bildlaufleiste in Containern/Übersichtslisten verwenden' aktiv (bislang: inaktiv).
▪ Verhaltensänderung: Für ein Feld vom physikalischen Typ "Datum" (ohne Zeit) kann nun der interne Feldtyp "DatumZeit" nicht mehr ausgewählt werden, da der physikalische überhaupt keinen Zeitanteil unterstützt. Dadurch kann es in bestehenden Solutions beim Laden/Reorganisieren zu einer Warnung kommen, dass es ein Feld gibt, dessen konfigurierter Feldtyp nicht (mehr) zum passt. Der Feldtyp sollte auf die adäquate Entsprechung "Datum" umgestellt werden.
▪ Performance-Optimierung: Zur Performance-Verbesserung müssen Eingabemasken per Projekt > Reorganisieren > Eingabemasken aktualisieren einmalig aktualisiert werden.
▪ Die Telefon-CD-Suche wird nicht mehr unterstützt. Die Suche erfolgt mittlerweile ausschließlich über Onlineverzeichnisse.
▪ Für die Terminübersichtsliste, die Aufgabenübersichtsliste, Termincontainer und Aufgabencontainer kann nun per Rechtsklick auf die Titelzeile wie in anderen Übersichtslisten/Containern das Layout konfiguriert werden. Sie unterstützen nun ebenfalls Profile für unterschiedliche Layouts. Die Konfiguration kann nun auch auf andere Termin-/Aufgabencontainer in anderen Eingabemasken verteilt, sowie als Projekteinstellung für andere Anwender:innen vorgegeben werden. In den Termin-/Aufgabencontainern kann per Rechtsklick auf die Titelzeile nun auch die Sortierung inkl. Gruppierung eingestellt werden. Spaltentitel können nicht bearbeitet werden, da diese sich aus der gewählten Oberflächensprache intern automatisch ergeben.
▪ Potentielle Verhaltensänderung: Bei den Datensatzrechten für Bearbeitbarkeit und Löschen wurden die Bedingungen für ein Ansichtselement mit etwaigen Unterbedingungen dortiger Unterzweige (seit Einführung dieses Features) verODERt anstatt wie dokumentiert verUNDet. Dies wurde korrigiert und kann dadurch jetzt aber zu einer restriktiveren Bearbeitbarkeit/Löschbarkeit vorhandener Datensätze führen als bisher, da ein UND eingrenzender ist, als ein ODER. Wenn also bspw. im "Kontakte"-Element "Anrede="Frau"" sowie in der "Firma"-Unterrelation "ABC="A"" hinterlegt wurde, so konnten bislang ein Kontakt bearbeitet/gelöscht werden, wenn ENTWEDER die Anrede "Frau" war ODER wenn er mit einer A-Firma verknüpft war. Jetzt muss - wie an allen anderen Stellen von Filter-Allgemein-Filterausdrücken - beides gleichzeitig gelten, d.h. es muss ein Kontakt die Anrede "Frau" haben UND dieser zu einer A-Firma gehören. Wird ein ODER benötigt kann dies über eine zweite Gruppenzugehörigkeit mit ausschließlich der gesetzten Unterrelationsbedingung realisiert werden. Alternativ kann die Filterbedingung auch (neu) per Filter-Assistent abgebildet werden. Sichtbarkeitsrechte sind davon nicht betroffen, diese haben die Teilbedingungen schon immer verUNDet.
▪ Verbesserung: Bei einem Serien-E-Mailing ("Ausgeben > Serien-E-Mail" oder per SDK via RecordSet.SendBulkMail) wird die nun die Datensatzauswahldatei (.tag) für einen manuellen Filter, die alle Datensätze AUSSCHLIESST, an die eine Mail "erfolgreich"* abgesendet wurde, dauerhaft erzeugt: Der Speicherort liegt nun unter "%APPDATA%\combit\cRM\" (statt wie bislang %TEMP%) und der Standardname der .tag Datei lautet nun "MailsSentTo yyyy-mm-dd hh-mm-ss (%VORLAGENNAME%).tag". %VORLAGENNAME% wird ersetzt durch den verwendeten Mailvorlagennamen (.mptx-Datei) bzw. durch "No Saved Template", wenn es sich um keine gespeicherte Vorlage handelt. Die "MailsSentTo*.tag"-Dateien, die aus dem Vorvormonat und davor stammen, werden zyklisch immer wieder automatisch gelöscht. Durch diese Datensatzauswahldateien kann bei einem Abbruch des Mailings jederzeit nachträglich das Mailing wieder aufgenommen werden, indem der urspr. Empfängerfilter erstellt wird und anschließend mit den zum Mailing gehörenden "MailSentTo"-Datensatzauswahldateien kombiniert wird, wodurch die bereits beschickten Datensätze aus dem urspr. Filter AUSGESCHLOSSEN werden. Im Falle eines Serienmailings über die SDK Methode RecordSet.SendBulkMail kann der Name (inkl. Pfad) der .tag Datei als optionaler zusätzlicher Parameter angegeben werden.
▪ Verhaltensänderung: Formeln: Ein einzelnes Vorzeichen-Zeichen ("-" oder "+") als "Formel" wurde bislang in die numerische Zahl 0 umgewandelt. Jetzt wird es als Zeichenkette, so wie sie ist, interpretiert.
▪ Verhaltensänderung: Wird bei aktiver " Fenster beim Schließen in den Infobereich der Taskleiste minimieren"-Option auf das "X" des Hauptfensters geklickt, so erfolgt dieses Minimieren nur noch, wenn vorher für jede offene Ansicht ein etwaiger Bearbeiten-Modus beendet werden konnte. Dies soll verhindern, dass diese noch ungespeicherten Änderungen in der ausgeblendeten Anwendung vergessen werden und eventuell bei einem System-Shutdown oder einer Zwangsabmeldung dann auch verloren gehen würden. Es wird also ggf. die Frage nach der Speicherung etwaiger ungespeicherter Datensatzänderungen ausgelöst.
▪ Verhaltensänderung: Bei Formelfeldern und anderen Stellen mit Formeln reagieren nun die Funktionen IsNull() und NullSafe() auf NULL-Feldinhalte, auch wenn der Feldwert (weiterhin, d. h. abwärtskompatibel) durch einen Ersatzwert (Zeichen: "", Logisch: false, Numerisch: 0) ersetzt wird. Nicht betroffen ist der Reportingbereich und die Eingabemaske, hier wurde schon immer ohne Ersatzwerte gearbeitet.
▪ Verhaltensänderung: In der Filterzeile berücksichtigen bei relationalen Feldern der Operator "Ist leer" sowie die diversen "... nicht ..."-Operatoren nun auch, wenn überhaupt kein relationaler Datensatz verknüpft ist und beziehen diese Datensätze als Treffer mit ein. Ein Filter in der Filterzeile der "Kontakte"-Übersichtsliste für die Spalte "Firma.Firma" mit der Bedingung "beginnt nicht mit 'S'" liefert bspw. nun auch alle Privatkontakte, die also mit gar keiner Firma verknüpft sind und die Firma somit in der Übersichtsliste "leer" dargestellt wird, da deren nicht vorhandene, "leere" Firma augenscheinlich nicht mit 'S' beginnt. Bislang wurden nur die Kontakte Treffer, die überhaupt mit einer Firma verknüpft waren und die aber nicht mit 'S' begann.
▪ Potentielle Verhaltensänderung: Felder vom Typ "Papierkorb-ID" stehen nicht mehr in Eingabemaske, Übersichtsliste und Container zur Verfügung. Ihr Feldinhalt wäre prinzipbedingt sowieso immer leer, denn anderenfalls befände sich der Datensatz im Papierkorb und würde gar nicht dargestellt werden.