Domino 9 und frühere Versionen > ND8: Entwicklung

[gelöst] Reader-Field Fettnapf bei nachträglich geänderter Form-Validation

(1/4) > >>

Dr.Domino:
Hallo,

wollte nur kurz mein Leid klagen - wahrscheinlich kennt Ihr das "Verhalten" eh alle schon.

Gegeben sei:
- eine Maske mit einem Reader-Feld (und einigen anderen mit Validierungsformel)
- nach einiger Zeit der Nutzung fällt dem Publikum ein, daß man noch ein weiteres Feld hinzufügen und validieren könnte

-> nach Maskenänderung ziehen die Reader-Felder in den "Altdokumenten" nicht mehr, ein "Refresh" liefert einen Vaidierungsfehler (klar, Feld gabs beim Anlegen der "Altdokumente" noch nicht).

-> "Workaround" manuelle Änderung der Felder in der Altdokumenten (oder auch per Agent, je nach Anzahl und Gusto)

Was mich halt etwas gewundert hat, ist, daß die Reader-Felder dadurch komplett ausgehebelt sind ...

Happy Coding!

Peter Klett:
Sorry, das verstehe ich nicht.

Du hast ein (Alt-)Dokument, in dem ein Reader-Item enthalten ist. Du änderst die Maske und - ohne das Altdokument anzufassen - funktioniert die Lesersteuerung bei diesem nicht mehr?

Das habe ich noch nie erlebt. Was hast Du mit den Altdokumenten getan, damit die nicht mehr funktionieren?

Dr.Domino:
Dsa ist ja das, was mich auch gewundert hat ... mit den Altdokumenten habe ich "manuell" nichts gemacht, allerdings läuft regelmäßig eine Agent, der das Reader-Field auf Grund eines Konfig-Dokuments updated.
(das habe ich natürlich im Anfangspost zu Erwähnen vergessen ...)

Kann es mir nour so erklären, daß dadurch beim Speichern des Dokuments auch die neue Validierung mit geseichert wird.

Peter Klett:
Ich tippe eher, das der Update-Agent das Reader-Field zu einem normalen Textitem umwandelt. Hast Du bei den "defekten" Dokumenten mal in die Felderliste geschaut? Sind die Items wirklich noch Leserfelder?

Da der Agent sicherlich im Backend läuft, spielt die Gestaltung der Maske eigentlich keine Rolle, außer es wird ein ComputeWithForm ausgeführt. Und das könnte durch die nicht korrekte Validierungsformel ins Trudeln geraten.

Abgesehen davon, dass ich niemals die eingebaute Validierungssystematik in den Feldern der Maske verwenden würde, sondern lieber per Script das komplette Dokument mit ggf. einer Fehlermeldung mit allen fehlenden Information validiere, könntest Du mit @IsAvailable (Feldname) in der Validierung das Vorhandensein des Items abfragen. Ist es da und leer, ist es ein Fehler, ist es nicht da, ist es ein altes Dokument.

Dr.Domino:
Hallo Peter,

die Felder sind ok ... hatte ich als erstes dran gedacht - alles ordentliche "READ-ACCESS NAMES" mit ordentlicher Listen-Befüllung.
Agent läuft natürlich im BE und ein @IsValid steht nicht drin ... ich glaube, ich muß die ganze Sache nochmal gründlich auseinanderdividieren ...

Danke für die Anregung mit @IsAvailable.

Markus

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln