Version 4.3.5

Changelog (Release)

Aktuell ist die Version 4.3.5, diese wurde am 23.05.2025 veröffentlicht.

Bitte beachten Sie die folgenden Hinweise zu diesem Update

Für Betreuer

Für Entwickler

Sollten Sie die Version 4.3.4 bisher noch nicht installiert haben, lesen Sie bitte auch die Hinweise zu dem vorherigem Update 4.3.4

Juni 2025

4.3.5.63640 (11.06.2025)

cardo.Mobil

  • Fix: Kleinere Verbesserungen/Fehlerbehebungen:

    • Beim initialen Setzen der Grundkarte war das KBS der Grundkarte unter Umständen falsch.

    • Anschalten einzelner WMS Ebenen war nicht möglich.

    • Folgende Anpassungen am Dateneditor der Mobilversion:

      • Fehlerbehebungen bei der Bearbeitung von Geometrien.
      • Beim Aktualisieren der Liste wird die Sortierung nun beibehalten.
      • Beim Hinzufügen eines Datensatzes wird die Liste nun aktualisiert.

4.3.5.63652 (10.06.2025)

  • Fix: Sachdatenanzeige: Wurden aus einer Sachdatenanzeige heraus Objekte auf der Karte markiert, blieben beim Schließen des Sachdaten-Fensters die Markierungen auf der Karte bestehen. Nun werden diese gelöscht.

  • Fix: PiB-Anwendungen: Beim Ändern eines Objektes in den Status "Archiviert" konnte u. U. ein Fehler der Art Der Zugriff auf die Berechtigungen auf ... ist unzulässig, da die Objektbeschaffung mit queryWithoutAnySecurityInformation durchgeführt wurde auftreten.

  • Fix: Die Aktion der Karte "Markierungen löschen" (Radiergummi) wirkte sich bei Verwendung auf diverse Funktionen, die Vektordaten auf der Karten darstellen, negativ aus. Das zu beobachtende Problem war dann primär eine fehlende Darstellung der Geometrien bei nachfolgenden Aktionen und teilweise auch, dass die "Markierungen löschen"-Funktion nur einmalig und nicht bei Folgeaufrufen funktionierte. Das Fehlverhalten ist nun behoben.

  • Fix: Bei der Bearbeitung mit Topologie-Unterstützung schlug die Übernahme veränderter Nachbargeometrien aus der Karte u. U. mit der Meldung fehl, dass der Index der Primärschlüsselspalte nicht angegeben sei.

4.3.5.63569 (03.06.2025)

Puzzle.Mobil

  • Neu: Beim Erstellen eines leeren Dokumentes wird beim Speichern der Datensatz jetzt angelegt (bisher nur dann, wenn mindestens ein Datenfeld befüllt wurde).

    Nach dem Speichern wird der neue Datensatz auch gleich im Baum angezeigt und ausgewählt.

  • Fix: Beim Bearbeiten einer Kategorie deren Class-ID nicht mit der Kategorie-ID überein stimmte, trat folgender Fehler auf: Die Kategorie im IKX-Store xx mit der Kategorie-ID xx ist nicht vorhanden.

Druck

  • Fix: Beim Druck von Dimensionslayern mit teilweise angeschalteten Sub-Layern kam die Meldung: Der angegebene Schlüssel war nicht im Wörterbuch angegeben (#12237)

Mai 2025

4.3.5 (23.05.2025)

Informationen zur Geometrie

  • Neu: Beim Kopieren der Koordinaten aus den Informationen zur Geometrie (Funktion bspw. an der Freihandgeometrie) in die Zwischenablage, wird jetzt das Komma als Dezimaltrennzeichen verwendet. (#10637)

Export

  • Neu: Im Export steht das Format "FlatgeoBuf" zur Verfügung.

    Export

Datenbrowser

  • Neu: Wird aus einem Ordner mit DXF-Dateien eine Ebene im cardo erzeugt, so hat diese jetzt pro Datei einen Sublayer (bisher pro DXF-Layer). (#10637)

  • Fix: Beim Laden aller Dateien eines Ordners als Ebene wurde bisher auch die erste Datei im Ordner als geladen markiert. (#11075)

Karte

  • Neu: Der "Radiergummi" in der Karte schaltet jetzt auch die Sichtbarkeit aller Geometrien in Geometriefeldern aus (inkl. der Freihandgeometrie). (#10232)

  • Fix: Wenn für die Karte Koordinatenbezugssysteme verwendet wurden, die der X-Koordinate die Zonennummer voranstellen, fehlten unter bestimmten Umständen einige Funktionen im Kontextmenü der Karte (bspw. Selektion mit Geometrie ausführen). Konkret war es dann nicht möglich, ein Kontextmenü auf einer Geometrie in der Karte zu öffnen. (#11226)

Sketch

  • Fix: Beim Export von Texten als Shape-Datei werden Referenzen jetzt aufgelöst (d.h. es wird tatsächlich die Länge der Linie ausgegeben und nicht das Label Länge von "Linie") (#11709).

Geodateneditor (AnySource Editor)

  • Neu: Multi-Geometrien können nun auf mehrere Datensätze geteilt werden.

    Editor

  • Neu: In der Geometrie-Toolbox gibt es die neue Aktion "Konkave Hülle".

    Editor

  • Neu: Funktion zum topologischen Bearbeiten wurden implementiert.

    Weitere Informationen zur Aktivierung finden Sie in der Hilfe.

    Editor

Wilma

  • Neu: Wir haben ein Syntax-Highlighting für Scriban-Seiten integriert (Hervorheben von Schüsselwörtern, Einfärben der Darstellung nach Text usw.)

    Dieses Feature ist an allen Stellen, wo der Texteditor verwendet wird, verfügbar. Hier ein Beispiel aus dem im BIS integrierten cardo.Button für Berichte.

    Wilma

  • Fix: Beim Verschieben von Einträgen wurden diese möglicherweise innerhalb eines Ordners abgelegt.

HQPrint (Druck)

  • Neu: Das Abrufen der Legenden und Ebeneninformationen wurde überarbeitet. Es kam beim Drucken von DXF Dateien mit sehr vielen Layern u.U. zu verschiedenen Fehlern und vor allem sehr langen Wartezeiten.

    Diese Änderung ist im cardo3 Update bereits mit enthalten.

cardo.Mobil

Mit dieser cardo Version steht cardo.Mobil produktiv zur Verfügung. Es können verschiedene Komponenten separat lizenziert werden:

  • cardo.Mobil Basis
  • AnySrcEditor.Mobile
  • Puzzle.Mobile

Weitere Informationen zu cardo.Mobil finden Sie in dieser Beschreibung.

  • Neu: Beim Aktualisieren des Gerätetyps erscheint nun eine Rückfrage, ob die Seite aktualisiert werden soll.

MapTip (cardo.Mobil)

  • Neu: Über den MapTip kann nun ein Datensatz im Dateneditor angezeigt werden.

Themenbaum (cardo.Mobil)

  • Neu: Im Themenbaum können die Ebenen aus cardo4 Sitzungen geladen werden.

  • Neu: In der Ebenen-Übersicht kann die ausgewählte Ebene aus der Karte entfernt werden.

Einstellungen (cardo.Mobil)

  • Neu: In den Einstellungen kann nun das initiale Zoomen auf den Standort deaktiviert werden.

    Dies deaktiviert auch das direkte Abfragen der Berechtigung zum Abrufen der Standortinformationen.

Puzzle (cardo.Mobil)

  • Neu: Puzzle Kategorien werden standardmäßig ausgeblendet und müssen aktiv für die Verwendung im cardo.Mobil Editor zugelassen werden.

    Dies kann in der Workbench für die jeweilige Kategorie vorgenommen werden.

    Kategorien im Standard-Store werden generell von cardo.Mobil nicht beachtet, das Aktivieren dort hat demzufolge keine Auswirkungen.

    Mobil

    Beachten Sie dabei, dass von cardo.Mobil keinerlei Aktionen in der Kategorie-Implementierung aufgerufen werden (der C#-Klasse zu der Puzzle-Kategorie), dies ist auch der Grund für den Zwang zur Freischaltung.

  • - Neu: Die Anzeige und Bearbeitung der Basisklasse ist jetzt möglich.

Wichtiger Hinweis: Wenn Sie bereits Teststellungen für Puzzle nutzen, müssen Sie die Kategorien, die Sie verwenden möchten, entsprechend dieser Hinweise explizit freigeben.

Fachanwendungen

Anwendung cardo.Button V2

  • Neu: Kompletter "Rewrite" der Anwendung cardo.Button als cardo4 Anwendung mit neuen Techniken und Möglichkeiten; lesen Sie hier alles zu dem neuem Modul.

    Hinweis: Kunden, die eine Lizenz für das Modul haben, bekommen die neue Version automatisch mit, es muss lediglich die Anwendung in der Anwendungsverwaltung registriert werden.

    Die im neuem "Button" erstellten Klassen für die Datenabfragen (GeoSQL) wurden auch in der allgemeinen Template-Erweiterung "uxGeo" verfügbar gemacht.

Anwendung VIS-Connector

  • Neu: Überarbeitungen der Startseite des VIS-Connectors. Es können alle referenzierten VIS-Objekte als Liste angezeigt werden. Weiterhin können alle referenzierten VIS-Objekte des aktuellen Kartenausschnittes angezeigt werden.

    VIS

Weitere Informationen sind in der Beschreibung zum VIS-Connector nachzulesen.

Bereich Administration

Anwendungsverwaltung

  • Neu: In der Anwendungsverwaltung wird der "Wilma-Editor" jetzt nicht mehr modal gestartet.

  • Neu: In den Ausführungseinstellungen von Tasks kann bei monatlicher Ausführung jetzt auch explizit der letzte, vorletzte oder drittletzte Tag der Monate gewählt werden.

Einstellungen

Benutzerverwaltung

  • Neu: Beim Löschen/Umbenennen von Benutzerobjekten werden diese Änderungen auch in die IKX-Stores zurückgeschrieben.

  • Neu: Kennwörter in der cardo4 Nutzerverwaltung werden mit einem neuerem Hash-Verfahren gespeichert.

    Es wäre ggf. an dieser Stelle mal wieder an der Zeit, die Nutzer zur Aktualisierung des Kennworts aufzufordern, siehe Einstellung "Max. Kennwort-Gültigkeit" in der Benutzerverwaltung.

Ebenenverwaltung

  • Neu: Erweiterungen am Administrativen Baum (Ebenen und Berechtigungen):

    • Aktion "Speichern erzwingen" an den Ebeneneigenschaften

    • Bearbeitung der Layer-Tags Ebenen

    • Anzeige Sortierhinweis + Layer-Tag in der Ebenenliste Ebenen

    • Hervorheben von Ebenen mit Referenzen - das betrifft Ebenen, die per c2c gesendet oder empfangen wurden, deren Metadaten zu einem CSW Dienst exportiert wurden oder die auf Basis einer cardo.Puzzle Ebene erstellt wurden.

      Ebenen

  • Neu: Für die Aktivierung der Geodatenverwaltung in cardo4 kann jetzt der Parameter EnableNewThemeTree in der web.config gesetzt werden. Hintergrund des neuen Parameters ist, dass mit der Einstellung EnableExperimentalFeatures noch andere Funktionen freigeschalten wurden, die man im Produktivsystem evtl. nicht haben wollte.

  • Neu: Eigenschaften "allowServiceMetadataCaching" für WFS Ebenen und "loadErrorBehavior" für Shape Ebenen hinzugefügt.

  • Neu: Neuer Ebenentyp "SVG (nur Textelemente)", siehe auch SVG - georeferenzierte Beschriftung per SVG Text.

PiB Anwendungen (Anfragenmanager, Carlo, BIS, ...)

  • Neu: Arbeitsaufgaben (Workitems) die löschbar sind, können jetzt auch gelöscht werden, wenn sie im Status "In Arbeit" sind.

  • Neu: Wenn der Nutzer Mitglied der (neuen) Feature-Rolle "ALLOW_MEMBERINFO" ist, dann werden in den PiB Anwendungen in den Listen die Klarnamen der Benutzer angezeigt.

    Standardmäßig wird ein Member-Provider mit der Id realNameResolver verwendet, ist dieser nicht vorhanden, wird der Standard-Memberprovider verwendet.

    D.h. zum Aktivieren dieser Funktion (für alle PiB Anwendungen) sind folgende Schritte erforderlich:

    • Hinzufügen der Feature-Rolle (siehe Nutzerverwaltung => "Andere neue Einträge"
    • Zuweisen von Nutzern/Gruppen zu dieser Rolle
    • optional: Erstellen eines Member-Providers mit dem Schlüssel realNameResolver

    Hinweis: Der in der Anwendung hinterlegte Member-Provider findet hier keine Verwendung, da dort meist Filter für die Auswahl der Nutzer hinterlegt sind. Diese Filterung wäre für diese Funktion kontraproduktiv.

  • Neu: Folgende Anpassungen an den Einstellungen der Sicherheits-Container:

    • Sicherheits-Filter können per Doppelklick auf die 1. Spalte aktiviert/deaktiviert werden
    • Generieren der SQL Statements gewählter Sicherheits-Filter oder der Filter für den aktuellen Benutzer (Kontextmenü)
    • Messen der Ausführungsdauer einzelner Filter oder der Kombination verschiedener Filter.

    PiB

Managementcenter ("cardo3")

  • Fix: Beim Bearbeiten der Views (MGM-Center: Dienste bzw. Ebenenbäume) waren immer alle Kontext-Menu-Einträge aktiv - egal auf welchen Ordner im View man geklickt hat. (#11000)

cardo.c2c cardo-to-cardo

  • Fix: Die Option "Nur die Beschreibung, keine Daten" überträgt jetzt wieder die komplette Ebenenbeschreibung 1:1 vom Quell- auf den Zielserver (inkl. sensibler Daten wie Connection-Strings).

cardo.Puzzle

  • Neu: BreakingChange: Für via Puzzle-Service erstellte AdHoc-Kategorien (CreateAdHocCategory) können jetzt keine IKX-Daten mehr an Ordnern hinterlegt werden.

    Bestehende Daten an Ordnern werden via SQL-Update gelöscht

  • Neu: Es gibt eine neue Feature-Role in der cardo4 Benutzerverwaltung: ALLOW_IKX - Benutzer dieser Rolle dürfen auch, sofern für die entsprechende Klasse das Recht vorhanden ist - die IKX-Struktur bearbeiten.

    Im Managementcenter ist der Bereich IKX entsprechend freigeschaltet. Das Verwalten der Stores, das Registrieren neuer Kategorien oder die Bearbeitung der Konfiguration einzelner Kategorien ist weiterhin den cardo-Administratoren (SuperUser) vorbehalten. (#12091)

    IKX

  • Fix: Die Option zum Wechseln des Datenspeichers im Puzzle bestand nicht, wenn neben den Standard-Store noch genau ein weiterer Store vorhanden war. (#1486)

Metadaten

  • Neu: Das ISO-Schema, welches in cardo hinterlegt ist und zur Validierung der Metadaten verwendet wird, wurde aktualisiert (u.a. GML 3.2.1). Damit wird das Element UnitDefinition jetzt nach dem aktuellen Schema korrekt in den Metadaten verwendet und führt bei externer Validierung nicht mehr zu einer Fehlermeldung.

    Diese Änderung ist im cardo3 Update bereits mit enthalten.

OGC Dienste (Server)

  • Neu: Der OgcAPI Handler. liefert jetzt eine "Landing-Page" aus.

  • Neu: Anpassungen an den von cardo angebotenen WFS Diensten (ogcsl.ashx):

    • In WFS 2.0 wird für Iwan7 Vektor Ebenen das Format FlatgeoBuf mit angegeben.

      Iwan7 unterstützt dies als Client mit Version 7.9.2 auch, dazu kann in der Ebenendefinition das neue Attribute "featureFormats" mit dem Wert "application/flageobuf" angegeben werden.

      Weitere Informationen dazu finden Sie hier.

  • Neu: Anpassungen an den von cardo angebotenen WMS Diensten (ogcsl.ashx):

    • Für kaskadierend eingebundene WMS Dienste wird GetLegendGraphics jetzt unterstützt.

    • Die Struktur (Ordner) von SubLayern wird in der Layer-Liste des WMS Dienstes beibehalten.

    • Beim Abrufen von WMS Diensten steht für die GetFeature-Operation jetzt auch das Formats application/geo+json zur Verfügung.

      Der Client sollte in dem Fall die Ebeneninformationen einzeln abrufen. Es wird immer nur eine Feature-Collection für alle Ebenen generiert (mehr gibt das Format leider nicht her).

    Diese Änderungen der WMS und WFS Dienste sind im aktuellen cardo3 Update bereits mit enthalten.

    ScribanExtension

  • Neu: Neue Methoden in der globalen Scriban-Extension:

    • NumberToWords(int), welche die übergebene Ganzzahl in ausgeschriebene Ziffern umwandelt (z.B. bei Ausgabe eines Währungsbetrages in Worten)

    • Assert(bool,string)

    • Throw(string)

API

Server

  • Neu: Anpassungen am ORM:

    • neue Methode ExistsByExpression<T>(expression)

    • obsolete Version der Methode GetOneByExpression wurde entfernt

    • Methoden ExistsByPrimaryKey als obsolet markiert, verwende ExistsByPrimaryKeyValue

    • Fehler in Verbindung mit FunctionTemplateOracle und Oracle Datenbanken behoben

  • Neu: BreakingChange: Die Signatur der Methode OpenWilmaDatabase() des Interface ICardoManagedApplicationUsingWilmaWithOwnDatabase wurde zu OpenWilmaDatabase(out bool isSharedConnection) geändert. Damit kann das erforderliche Disposing besser gesteuert werden.

  • Neu: Das Interface ISelfAppManager wurde um die MethodenGetSqlUpdateState() und GetMyRights() erweitert.

    Bsp.:

      var app = XXXApplication.Instance;
      var appMgr = cardo.Core.Api.Applications.ManagedApplicationManager.CreateManagerForMe(app);
      if (!appMgr.GetMyRights().HasFlag(cardo.Core.Sys.Applications.Builtin.ApplicationRole.ManageApplication))
      		return "Diese Informationen stehen nur Verwaltern der XXX Anwendung zur Verfügung.";
    
      	var sqlUpdateState = appMgr.GetSqlUpdateState();
    

PiB

  • Neu: Für alle Arbeitsaufgaben, die das Interface IDemandDataWorkitem implementieren, wird intern beim Starten ein Eintrag AddReconfirmWorkitemIds erstellt. Damit greifen die Regeln, das für die zugeordnete Arbeitsaufgabe deren OnStart/OnReOpen Methode nicht aufgerufen wird.

  • Neu: Umfangreiche Erweiterungen für die Konfiguration IduIT.PiB.Config.GlobalPibConfiguration:

    • Für die Abbildung von typbezogenen Verhalten kann die neue Eigenschaft ObjectSpecificPropertyGroups belegt werden.

      Dabei können Typ-Gruppen für eine Menge von Objektarten gebildet werden, die über folgende Eigenschaften verfügen:

      • Ändern des Anzeigetextes für den Objekt-Status (Bspw. "Beantragt" statt "Neu")
      • Auflistung sinnvoller Systemtags für die Objekte dieser Gruppe
      • Zuweisen einer Gruppen-Bezeichnung
      • Zuweisen der "Gründe" für den Status, die für dies Gruppe möglich ist
    • Neue Eigenschaft UseTags der EveryObjectConfig. wenn diese angegeben ist, werden die dort definierten Tag-Arten (System, Öffentlich etc.) für die Objekte mit abgerufen.

    Die Standard-Listenansicht generiert dann eine Spalte für die Anzeige der Tags in der Datenliste.

Client

TypeScript-Target

  • Neu: Das Target für die Typescript-Transpilierung wurde von "ES6" auf "ES2020" geändert. Hier (externer Link) gibt es eine schöne Übersicht der Änderungen.

    Weiterführende Infos: CanIUse

    Hinweis Falls noch zu viele "alte" Browser im Einsatz sind, könnten wir diese Änderung u.U. auch nochmal zurücknehmen. Bei diesbezüglichen Problemen bitte melden!

  • Fix: Beim Abrufen des Labels eines nicht Flag-Enum's wird nun direkt das Label ermittelt.

  • Fix: Kiss.Ui.Form.EnumRadioGroup - hat jetzt standardmäßig eine equal-Funktion, die zwischen 0 und null unterscheidet. Das bisherige Verhalten führte u.U. zu Problemen in Kombination mit allowEmptySelection: Kiss.Ui.Form.Field.EnumRadioGroup.EAllowEmptySelection.NonInteractive

PiB

  • Neu: BreakingChange: der Rückgabetyp der Methode create() des Interface PiB.ObjectModel.Ui.Interfaces.IPibObjectFormFactoryStore.IFormFactory wurde erweitert. Sie gibt jetzt TResult oder IPromise<TResult> zurück.

    Bsp.:

      //Neue Instanz erstellen
      const newItem = extendedTypeInfo.formFactory.create(mode, "default");
    
      if (!newItem)
    	throw IduIT.createError(`Interner Fehler: Zum Typ ${Kiss.Lang.String.quoteString(extendedTypeInfo.title, true)} ${Kiss.Lang.String.quoteString(extendedTypeInfo.typeName, true)} gab die formFactory null zurück!`);
    
      if (IduIT.Promise.IPromise.is(newItem))
    	return newItem.then(form => form);
      else
    	return newItem;
    

PropertyModel

  • Neu: Für Enum-Felder gibt es jetzt das EnumConfigAttribute, um die Liste der ignorierten Werte (als Integer) zu übergeben. Eine abstrakte Basisklasse EnumConfigAttribute<T> kann verwendet werden, um Enum-Werte typisiert zu übergeben und eine Auswahl zu treffen, ob diese als Black- oder Whitelist verwendet werden sollen.

3rd Party

Update externer Bibliotheken:

  • DOMPurify 3.2.4 zu 3.2.6

  • PdfJs 4.10.38 zu 5.2.133

  • HtmlAgilityPack 1.11.74 zu 1.12.1

  • MarkDig 0.40.0 zu 0.41.1

  • MimeKit 4.10.0 zu 4.12.0

  • Scriban 5.12.1 zu 6.2.1

  • NodaTime 3.2.1 zu 3.2.2

  • Oracle.ManagedDataAccess 23.7.0 zu 23.8


Zuletzt geändert: 11.06.2025 15:49:26 (erstmals erstellt 11.06.2025) // Alias: "AenderungenCardo4"