Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: gatecrasher am 27.06.05 - 17:43:55

Titel: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: gatecrasher am 27.06.05 - 17:43:55
Hallo!

Ich habe momentan leider ein kleines Problem, ich möchte ein Form schreiben, dass beim Speichern eine Validation auf der Basis anderer Dokumente durchführt, da dies leider nur am Backend möglich ist, will ich diese Funktionalität mit einem WebQuerySave Agent lösen, jedoch sollte das ganze bei einem Fehler wieder die Maske bringen.

Leider gibt es bei WebQuerySave keine Continue Variable, die man auf False setzten könnte.

Ich bin für Vorschläge offen.

greetings,
gc
Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: animate am 27.06.05 - 17:50:17
Du musst mit dem SaveOptions-Feld arbeiten. Das scheint aber ein paar Maken zu haben.

Normalerweise sollte es so funktionieren: wenn die Validierung ok ist, dann setzt du es auf "1" (doc.SaveOptions = "1") wenn nicht, dann auf "0".
Mehr dazu steht bestimmt in der Hilfe.

Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: Marinero Atlántico am 27.06.05 - 19:09:42
Falls das mit dem SaveOptions nicht funktioniert, kannst du u.U. noch den umständlichen Weg gehen und die vom user eingegebenen Feldwerte in einen cookie oder in die URL als QueryParameter schreibst.
Bei nicht-Validierung schickst du den User zurück auf die Ursprungsseite und schickst da noch per cookie oder per UrL die ursprünglich vom User eingegebenen Feldwerte mit (die sollen ja nicht verloren gehen).
Die kannst du dann per JavaScript im onLoad event auslesen und die Felder füllen. Mega-umständlich, sollte aber möglich sein.
Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: gatecrasher am 28.06.05 - 00:13:14
Danke für die Tips, das mit den SaveOptions werde ich probieren.

Das Problem mit den Cookies ist, dass ich laut Sicherheitsbestimmungen keine Cookiessetzen kann und die Parameter, die validiert werden sollen sind Dokumente, dh die UNID wäre da der sinnvollste Parameter nur leider ist beim GET bei 255 Zeichen das Ende der Fahnenstange erreicht.

Danke noch mal und ich werde Euch über den Erfolg oder Misserfolg berichten.

greetings,
gc
Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: Marinero Atlántico am 28.06.05 - 00:19:07
Noch eine Idee:
Du lässt das Dokument speichern, setzt nur bei nicht-erfolgreicher Validierung ein validated=false flag und öffnest das wieder (über die UniversalID aus einer speziellen Ansicht -> dort sind Dokumente in erster Spalte nach universalID sortiert.
Falls das im querysave noch nicht da ist, kannst du an einen Agenten weiterleiten, der die Seite wieder aufruft.
Auch krumm, aber vielleicht eine Idee.

Axel
Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: gatecrasher am 28.06.05 - 08:50:12
Leider hat das mit den SaveOptions nicht funktioniert.

Die Meldung im Browser lautet Form processed und damit ist die Geschichte erledigt.
Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: Semeaphoros am 28.06.05 - 08:58:52
Grundsatzfrage: Du bist doch wahrscheinlich so kundenfreundlich, dass Du dem Benutzer die bereits ausgefüllten Werte wieder zur Verfügung stellen willst - oder?

Das bedeutet aber, dass Du dem Brauser das ausgefüllte Dokument und nicht die leere Maske wieder andienen musst.

Da Du aber nur Dokumente andienen kannst, die gespeichert sind, geht wohl nur der Weg, dieses Dokument mit einem Flag (siehe Beitrag von Axel Marinero) abspeicherst und dem Browser im Edit-Mode wieder sendest.

Ob die folgende Alternative funktioniert, wage ich zu bezweifeln: Das Dokument per doc.delete entfernen und dem Browser einen "Back"-Befehl zusenden, was ihn ja eigentlich zur Eingabe zurückbringen sollte. Sauber ist das sowieso nicht, da der Benutzer keine Mitteilung bekommt. Also müsste man sowieso dem Benutzer ein Dok mit einer Fehlermeldung schicken und dort einen JS-Button implementieren, der ein Back auslöst. Das hingegen könnte funktionieren.
Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: animate am 28.06.05 - 09:18:38
Das bedeutet aber, dass Du dem Brauser das ausgefüllte Dokument und nicht die leere Maske wieder andienen musst.

Da Du aber nur Dokumente andienen kannst, die gespeichert sind

Hmm, der Domino kann aber auch ein noch nicht gespeichertes Dokument an den Browser schicken => neues Dokument mit Vorgabewerten. Evtl. kann man das nachbauen.

Hier noch ein Link zu einem Lösungsvorschlag (http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/430c55f6ee741f7885256d6c007c2aa4?OpenDocument) wegen des SaveOptions-Felds

Titel: Re: WebQuerySave abbrechen und zurück zur Maske?
Beitrag von: Semeaphoros am 28.06.05 - 09:24:33
Hmm, der Domino kann aber auch ein noch nicht gespeichertes Dokument an den Browser schicken => neues Dokument mit Vorgabewerten. Evtl. kann man das nachbauen.

Das ist dann aber ein neues Dokument, das da kreiert wird. Das würde eigentlich heissen, dass man die Vorgabewerte in die Maske einbauen müsste, es sei denn, man kann ein im Backend kreiertes Document und mit Werten gefülltes Dokument im Edit-Mode an den Browser schicken, dann müsste man die entsprechenden Felder vom bestehenden in ein neues Doc kopieren und das senden. Keine Ahnung, ob das geht oder nicht, ist aber denkbar.