it-at-m / digiwf-core

central workflow automation and integration platform based on the free process framework Camunda.
MIT License
19 stars 7 forks source link

Default Number is String #227

Closed darenegade closed 1 year ago

darenegade commented 1 year ago

Describe the bug Form Defaults of Number-Fields are Strings

To Reproduce Steps to reproduce the behavior:

  1. Create Form with Number and Default
  2. Start Process with Empty Number Field
  3. Start User-Task with Form and don't change Number
  4. Can't save Task

Expected behavior Numbers should be JSON-Numbers or Backend should Accept String Numbers

Additional context https://git.muenchen.de/digitalisierung/digiwf-support/-/issues/251 https://git.muenchen.de/digitalisierung/digiwf-support/-/issues/277

dominikhorn93 commented 1 year ago

Meiner Meinung nach 2 Möglichkeiten:

  1. Die Initalisierung mit Default Werten wird angepasst, sodass die Typen berücksichtigt werden Man müsste hier die Klasse anpassen: io.muenchendigital.digiwf.json.serialization.JsonSerializationService In der initialize methode dürfte bei extractRootKeys nicht nur die keys berücksichtig werden, sondern die entsprechenden typen sollten relevant sein.

  2. Prüfen ob die json validation lib das ignorieren kann Man müsste hier die Klasse anpassen: io.muenchendigital.digiwf.json.serialization.JsonSerializationService Methode: createSchema -> https://github.com/everit-org/json-schema#lenient-mode Dazu müssten man dann beim Validieren auf einen Validator setzen

lehju commented 1 year ago

Durch die Verwendung des Validators mit dem Lenient-Mode ist es jetzt möglich Zahlenfelder mit einem unverändertem Defaultwert zu speichern. Weiterhin kommt ein Fehler bei unausgefüllten Datumfeld und Select nachdem diese mit einem leeren String initialisiert wurden. Das Datumsfeld erwartet ein als Datum formatierten String und bei Select wird eine der Auswahlmöglichkeiten als String erwartet.

lehju commented 1 year ago

@dominikhorn93 schaut sich die Thematik nochmal an. Eventuell wechsel zu einer anderen Bibliothek.

darenegade commented 1 year ago

Wurde geklärt. @lehju macht MR dazu