Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Helge Jantzen am 13.06.06 - 10:49:05
-
Hallo,
Ich habe einen Workflow für das Genehmigungsverfahren von Formularen programmiert.
Ich habe eine Maske in der eine Teilmaske mit zugriffsgeschützten Abschnitten eingebettet ist. Die Maske stellt das Hauptdokument dar, welches die wesentlichen Informationen (Stammdaten) des Formulars enthält. Die Teilmaske beinhaltet den eigentlichen Workflow und soll, wenn der Workflow abgeschlossen ist, das Formular also freigegeben wurde, wieder komplett auf die Werte zurückgesetzt werden, die beim Anlegen des Dokuments vorhanden waren. Zum besseren Verständnis hier mal der Workflow:
Dokument wird angelegt -> Daten weren in Hauptdokument(HD) eingetragen -> erster Abschnitt der Teilmaske wird durch Ersteller ausgefüllt -> Ersteller sendet durch klick auf Button Mail mit Doclink an Prüfer -> nächster Abschnitt wird angezeigt -> Prüfer gibt frei -> Prüfer sendet durch klick auf Button Mail mit Doclink an Veröffentlicher -> nächster Abschnitt wird angezeigt -> Veröffentlicher sendet durch klick auf Button Mail an alle Mitarbeiter -> Der Button für den Veröffentlicher kopiert Daten in das HD und legt Antwortdokument mit wichtigen Daten des Workflows an -> verstecktes Feld 'neue_Revision' in der Teilmaske wird zurückgesetzt und die Teilmaske damit ausgeblendet -> Jetzt sollen die Felder der Teilmaske zurückgesetzt werden -> Durch einen klick auf einen Button wird das Feld 'neue Revision' wieder gesetzt und die leere Teilmaske angezeigt
Anwortdokumente werden als Historie in einer eingebeteten Ansicht angezeigt, wenn das Dokument zum lesen geöffnet ist.
Einige der Felder wie z.B. die Namen der Prüfer etc. sind berechnet und der Veröffentlicher hat nicht auf alle Abschnitte Zugriff.
Hat irgendwer eine Idee wie ich ich alle Felder wieder auf Ihre Anfangswerte bekomme, damit beim Erstellen einer neuen Revison des Dokuments der Workflow wieder wirklich von vorn startet?
Eine andere Idee wäre vielleicht, die Teilmaske aus dem Dokument zu löschen wenn der Workflow beendet ist und einzufügen wenn eine neue Revision erstellt wird, aber die User sollen natürlich keine Designerrechte auf die Datenbank bekommen. Hat dazu vielleicht jemand eine Idee wie das zu lösen ist?
MfG
Helge
-
Hi Helge,
ich bin nicht sicher ob ich verstehe was du mit zurücksetzen meinst, aber ich würde ich mit einem nachgeschalteten oder periodischen Agent erledigen. Solange du nicht mit Autorenfeldern in den Masken arbeitest sollte das kein Problem sein.
Gruß
Willi
-
Hallo Helge,
habe ich Dich richtig verstanden?
Im Antwortdok sollen Informationen aus dem 1. Workflow nachzulesen sein, aber auch ein eigener Workflow gestartet werden?
Deine Antwort-Maske übernimmt Werte aus dem gewählten Dokument?
Schreibe Deine Informationen in andere Felder oder Feld der Antwort. Und lass die Vorgabe-Werte der Workflow-Felder leer. Dann ist der Workflow jungfräulich.
Gruß
Barbara
-
Nicht ganz. Mein Antwortdokument übernimmt die Werte aus dem Hauptdokument, hat aber mit dem Workflow nichts zu tun. Es dient lediglich dazu später nachlesen zu können, wann eine Revision eines Formulars genehmigt wurde und von wem usw. Wenn drei Revisionen des Formulars existieren stehen drei Dokumente in meiner eingebetten Ansicht in denen ich die Daten nachlesen kann.
Damit der Workflow aber überhaupt ein zweites, drittes und ntes mal gestartet werden kann muß ich die Felder, die während des ersten Durchlaufs geändert wurden wieder auf ihre Anfangswerte setzen.
Da sich der komplette Workflow in einer Teilmaske befindet wäre meine Idee diese eventuell neu zu initialliesieren wenn eine neue Revision angelegt werden soll, aber ich hab keine Ahnung ob das geht oder wie.
Gruß
Helge
-
Hallo
du solltest dir einmal grundsätzlich vor Augen halte, das eine Teilmaske nur ein Element ist, das es mir als Entwickler ermöglicht gleiche Felder, Statischer Text, Grafiken, Formatierungen etc. Die immer gleich sind, nicht in mehreren Masken immer wieder gestallten muss, sondern dieses einmal festlege und bei einer Änderung diese Änderung sofort auf alle Maske sichtbar ist, die diese Teilmaske beinhaltet.
Die Felder die damit in das Dokument gespeichert werden sond nicht zu unterscheiden von denen, die "direkt" auf der Maske sind.
Somit behandelst du dieses Felder so wie jedes andere auch. Wenn du allso ein Feld in einem Dokument hast und dieses soll gelöscht werden dann machst du z.B. FIELD WegDamit:=@DeleteField
Wenn ein Feld eine anderen Wert haben soll, dann z.B. FIELD DasFeld:=DeinNeuerWert (auch "" oder NULL oder 0 oder was auch immer)
-
In Verbindung mit Deinem anderen Thread glaube ich verstanden zu haben. Erstmal, wie Lossa schon schreibt, sind Deine Werte im Dokument, nicht in einer Maske. Die Maske zeigt dem User nur einen Teil der Bestandteile eines Dokumentes. Die Abschnitte sind nur verborgen und nicht schreibgeschützt.
Was möchtest Du tun?
1. Das Hauptdokument nach erfolgreicher Prüfung als Link verschicken, gleichzeitig ein Antwortdokument erstellen. OK Funktioniert ja auch.
2. Eine erneute Prüfung. Mach einen Button "Erneuter Prüflauf". Dieser Button löscht die entsprechenden Workflowfelder oder setzt neu, damit werden die entsprechenen Abschnitte wieder sichtbar und das Spielchen kann von vorne losgehen.
Barbara
-
Hatte da wohl nen Denkfehler oder einfach zu kompliziert gedacht. Egal, jetzt funktioniert alles so wie ich es will.
Vielen Dank für die Hilfe.
Gruß Helge