Grundlegende Änderungen

Version 13.2

      Verhaltensänderung: Die Print- sowie die 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. Konkret betrifft dies folgende Methoden: 'Record.PrintLabel', 'Record.PrintCard', 'Record.PrintReport', 'RecordSet.PrintLabel', 'RecordSet.PrintCard','RecordSet.PrintReport','Project.ExecuteInstantReportByName','Project.ExecuteInstantReportByDescription'.

Version 13.0

      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: Die Methoden "PrintCard", "PrintLabel" und "PrintReport" der "RecordSet"- und "Record"-Objekte bereinigen einen etwaigen Ausgabedateinamen nun automatisch um für Dateinamen nicht erlaubte Zeichen. D. h., dass sich in diesem Fall der vom Script übergebene und der tatsächlich erzeugte Dateiname unterscheiden können. Wenn ein Script die Ausgabedatei weiterverarbeiten soll und daher den Dateinamen kennen muss, muss es sich vorab selbst darum kümmern, dass keine ungültigen Zeichen im Dateinamen enthalten sind.

      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.)