Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Dr.Domino am 30.04.13 - 11:28:38
-
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!
-
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?
-
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.
-
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.
-
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
-
Kann es sein, dass der Update-Agent noch weitere Leser- oder Autorenfelder produziert, so dass der Anschein erweckt wird, die alten Leserfelder würden nicht mehr funktionieren? Mitglieder von Autorenfeldern können auch lesen ...
-
Nein, der packt nur das "einzig existierende" Reader-Feld an (und Updates in den Konfig-Dokumenten werden auch richtig drin "geupdated").
-
Was heisst denn...die Reader - Felder ziehen nicht mehr??
Kann ein darin enthaltener Benutzer das Dokument nicht mehr lesen??
-
Umgekehrt und schlimmer - jeder kann alles sehen :o
Daher hatte ich erst auch dieselbe Idee wie Peter -> Reader-Field zerschossen/zu Textfeld geworden etc.
-
Habt Ihr irgendow ein Leser Feld mit dem Wert "*" oder leer?
-
Das hier http://www.maysoft.com/web3.nsf/page/products-document_viewer-overview (http://www.maysoft.com/web3.nsf/page/products-document_viewer-overview)
könnte bei der Fehlersuche hilfreich sein.
-
Habt Ihr irgendow ein Leser Feld mit dem Wert "*" oder leer?
Ein leeres Leserfeld in Kombination mit einem gefüllten dürfte m.E. nicht dafür sorgen, dass alle User lesen dürfen. Eines mit Stern schon ...
-
Danke für den DocViewer Link.
Jetzt wird's witzig :-).
Schaue ich mir in einem Dokument das Feld "Readers" im Client an (, so sieht es gut aus und wie es sein soll, wird dem Admin das "Hidden" Field Readers in der Maske ohne das CN-Geraffel gezeigt)...
... im DocViewer steht da allerdings Text statt READERS ... Ihr seht mich verwirrt :-).
Vielleicht sollte ich mal in Erwägung ziehen, über alle Dokumente ein RemoveItem laufen zu lassen und das Readers.Field neu anzulegen ... oder?
-
Ist das Dokument geöffnet, wenn Du in die Felderliste schaust? Falls ja, wiederhole das mal mit dem geschlossenen Dokument.
-
Argh! In der Tat ... im geschlossenen Feld ist's auch nur TEXT >:( ???
Keine Ahnung, was da schiefgelaufen ist ...
-
Hier ein Test: Vorhandenes Dokument, nachträglich in die Maske ein Leserfeld aufgenommen. Im geschlossenen Dokument das Leserfeld mit einem beliebigen Text gefüllt. Eigenschaft Text, dann das Dokument im Bearbeitenmodus geöffnet, Eigenschaft Reader. Völlig logisch ...
-
Argh! In der Tat ... im geschlossenen Feld ist's auch nur TEXT >:( ???
Keine Ahnung, was da schiefgelaufen ist ...
Es ist Dein Update-Agent, der nicht richtig tickt, Notes funktioniert richtig.
Was haben wir heute gelernt: Wenn man wissen will, was wirklich in einem Dokument enthalten ist, schauen wir uns NIEMALS die Felderliste im geöffneten Dokument an, immer nur in der Ansicht ;)
-
Und dafür ein brontales "Danke" an alle! :knuddel:
-
So, nach einmal .RemoveItem und Neu-Erstellung der Reader-Felder und Neubetankung mittels des Agenten sieht's wieder gut aus.
(Obwohl ich es immer noch nicht kapiere ... der Agent macht nur @SetField, und das ändert ja ausdrücklich keine Flags etc ...)
-
Du schreibst vorher von Backend, jetzt lese ich @SetField. Warum verwendest Du nicht "FIELD := "? Mit @SetField würde ich auch genau so ein Zerschiessen erwarten. Ausprobiert habe ich den Stunt aer noch nie (oder vor 20 Jahren).
Bernhard