Autor Thema: Eigentlich trivial: Abbruch Button  (Gelesen 2758 mal)

Offline sslneve

  • Frischling
  • *
  • Beiträge: 29
Eigentlich trivial: Abbruch Button
« am: 08.06.05 - 11:29:13 »
Hallo zusammen,

ich habe ein recht grosses Formular mit einigen Sections, die je nach Bearbeitungs-Status versteckt oder sichtbar sind. Im Zuge der Bearbeitung bzw. der Neuanlegens wird das Dokument an verschiedenen Stellen gespeichert (per Formelsprache). Wenn jemand die Bearbeitung abbrechen will, bevor ein Speicherpunkt aufgetreten ist, dann ist das kein Problem. Wenn jedoch schon während der Bearbeitung gespeichert wurde, so ist ein Abbruch zwar möglich, allerdings existiert das (nicht gültige) Dokument dann schon.

Meine Überlegungen gingen bisher in die Richtung: Einen Button "Abbruch" ins Formular einbauen und diesen per Formel oder LS das Dokument (wenn es schon gespeichert wurde) bei gewünschtem Abbruch löschen lassen. Probleme hierbei: wie entscheide ich, ob es ein Abbruch beim Neuanlegen war oder nur ein Abbruch beim nachträglichen Editieren (hier darf natürlich nix gelöscht werden!). Zudem ist "richtiges" Löschen mit HardDeleteDocument nur aus einem Agenten möglich (den ich ja nach richtiger Entscheidung aus vorgenanntem Action Button aufrufen könnte). Nur wie sag ich dem Agenten, welches Dokument er (für den User möglichst unbemerkt) löschen soll? Anm.: Ich möchte ungern ein neues Feld einführen, das einen Speicherstatus o.ä. darstellt (hierüber könnte evtl. das Entscheidungsproblem gelöst werden).

.... oder sind meine Konstrukte möglicherweise völlig daneben. Ich bin mir sogar fast sicher, daß es hierfür eine simple Lösung geben muss.

Vielen Dank!
Markus

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Eigentlich trivial: Abbruch Button
« Antwort #1 am: 08.06.05 - 11:43:58 »
du könntest mit @created herausfinden, wann das doc angelegt wurde, wenn es zeitnah angelegt wurde, dann wird es wahrscheinlich noch nicht geschlossen wurden sein.

@isnewdoc greift hier nicht, da es nur true liefert, solange es noch nicht gespeichert wurde.

Ein feld, in welches du erst beim schließen des Documents mit einem Wert füllst wäre die einzig saubere Lösung die mir einfällt.

(--> von der 1. Überlegung rate ich ab)
mit besten Grüßen

Markus Petzold

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Eigentlich trivial: Abbruch Button
« Antwort #2 am: 08.06.05 - 11:58:09 »
ein Dokument das beim Anlegen mehrfach gespeichert wird ist per se in der Definition schon krank. Egal wie ich das erklären will da ist bei den Grundüberlegungen schon etwas falsch gelaufen.
Wenn du allerdings einen Workflow meinst bei dem verschiedene Benutzer das Dokument hintereinander weg bearbeiten, dann ist die Lösung eigentlich einfach. Du baust ein Feld "Abgebrochen" ein und setzt das Feld beim Beenden des Prozesses mit einem definierten Flag. Zusätzlich kannst du dann auch noch Autoren und Leser Felder einführen mit denen du den Zugriff auf dieses Dokument effektiv beschränkst. Damit bleibt der Prozess als solcher erkennbar, die Tatsache das er abgebrochen wurde auch und du machst keine Design Kopfstände.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Eigentlich trivial: Abbruch Button
« Antwort #3 am: 08.06.05 - 12:09:57 »
Merke Dir doch im QueryOpen der Maske, ob es ein Neues Dokument ist:
if IiNewDoc Then ....

Wenn es ein Neues Dokument ist, kannst Du im PostOpen ein Feld in der Maske mit einem bestimmten Wert setzen:
call uidoc.FieldSetText( "fld_NewDoc" ; "1" )
Call uidoc.Refresh

Je nach Feldwert kannst Du dann den Abbruch-Button, der die neuen Formulare zum Löschen markiert, anzeigen bzw. Verbergen.

Dirk



Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline sslneve

  • Frischling
  • *
  • Beiträge: 29
Re: Eigentlich trivial: Abbruch Button
« Antwort #4 am: 08.06.05 - 12:12:31 »
Hallo,

das Design ist nicht von mir ... ich "darf" nur dran rumbasteln. So ein Flag habe ich nun, allerdings weiß ich immer noch nicht, wie ich das Dokument wieder weg kriege, wenn es zwischendurch schon gespeichert wurde und dann abgebrochen wird. Andererseits dürfen dadurch nicht frühere Dokumente durch Abbruch bei erneutem Bearbeiten gelöscht werden ...

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Eigentlich trivial: Abbruch Button
« Antwort #5 am: 08.06.05 - 13:11:33 »
Noch einmal. Du baust eine eigene Aktion ein, "Workflow Beenden", diese Aktion löscht das Dokument nicht sondern setzt es in einen nicht bearbeitungsfähigen Zustand (Flag, Autoren und Leserfelder). Damit kann jeder normal damit arbeiten und wenn es nicht mehr weitergehen soll dann ist das eine DEDIZIERTE Aktion und nicht von irgendwelchen Zufälligkeiten abhängig.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline sslneve

  • Frischling
  • *
  • Beiträge: 29
Re: Eigentlich trivial: Abbruch Button
« Antwort #6 am: 08.06.05 - 13:39:38 »
Hallo Thomas,

ich verstehe wohl nicht ganz ... Die Speicherung passiert in dem Formular an mehreren Stellen. Es handelt sich zwar um einen Workflow, allerdings wird ein bestimmtes Dokument eigentlich immer nur von einer Person bearbeitet. Mein Problem ist aber doch jenes:

Wenn
- neues Dokument
- bereits durch Formular-Code gespeichert
- Abbruch-Button
dann
ist das Dokument vorhanden, was es aber nicht sein soll (Abbruch beim Neuanlegen meint für gewöhnlich, daß kein Dokument gespeichert wird).

Ich habe mir jetzt was gebastelt, das zumindest die richtige Entscheidung treffen würde. Allerdings weiss ich halt nicht, wie ich das unerwünschte Dokument per Code wegkriege (mit Code zum Löschen markieren und dann von Hand Refreshen ist irgendwie unergonomisch).

Offline sslneve

  • Frischling
  • *
  • Beiträge: 29
Re: Eigentlich trivial: Abbruch Button
« Antwort #7 am: 08.06.05 - 16:14:43 »
So, ich habs jetzt so gemacht (falls es jemanden interessiert  ;) ):

Wenn das Formular geöffnet wird (Queryopen), wird IsNewDoc geprüft und ins Environment geschrieben (steinigt mich später).
Der Abbruch Button prüft dies und (AND) ein Feld, das anzeigt, ob das aktuelle Dokument jemals gespeichert wurde. Trifft das zu (neues Doc und während des Anlegens schonmal gespeichert) und soll ein Abbruch erfolgen, dann muss das leider schon gespeicherte Doc gelöscht werden. Da das nicht wirklich geht, solange das Doc noch offen ist, wird es gespeichert (-> keine lästigen Abfragen) und geschlossen und vorher noch geschwind die ID ins Environment
gejagt. Jetzt wird noch ein Agent aufgerufen, der die ID wieder ausliest und damit doc.RemovePermanently macht.
Natürlich werden die ins Environment geschriebenen Daten an geeigneter Stelle in jedem Fall wieder entfernt.

Fazit: Umständlich, anstrengend, unkonventionell .. aber geht.

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Eigentlich trivial: Abbruch Button
« Antwort #8 am: 08.06.05 - 16:19:51 »
Eine Speicherung eines Dokumentes das von einer Person durchgehend in mehreren Abschnitten bearbeitet wird durch unterschiedliche Aktionen während der Benutzer noch im Dokument rumfuhrwerkt ist SCHWACHSINNIG.  :-:
Da im Nachtrab herzugehen und automatisch das bereits angelegte Dokument wieder LÖSCHEN zu wollen ist dann HIRNRISS hoch 5. Das löst dein generelles Problem nicht. In diesem Fall ist ein REDESIGN der Maske und unter Umständen des zugrunde liegenden Vorganges angesagt.  >:(

Nachklapp: Deine Lösung ist alles mögliche nur keine LÖSUNG. Was machst du wenn dein Agent nicht anläuft oder der Rechner ausgeschaltet wird. Oder du einen RSOD bekommst.
Du ignorierst alle brauchbaren Ansätze um eine Pseudobastellösung zu bauen.  ::)
Das nennt man Beratungsresistenzrenitenz (Danke Jens).
« Letzte Änderung: 08.06.05 - 16:36:07 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Eigentlich trivial: Abbruch Button
« Antwort #9 am: 08.06.05 - 16:22:25 »
Renitenz, nicht Resistenz, Thomas.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline sslneve

  • Frischling
  • *
  • Beiträge: 29
Re: Eigentlich trivial: Abbruch Button
« Antwort #10 am: 08.06.05 - 17:02:52 »
Hallo Thomas,

vielen Dank für Deine freundliche Antwort.
Um es nochmal zu sagen: Das Formular ist nicht von mir. Ich habe hier nur eine Lösung zu finden. Klar wäre ein Redesign besser, im Prinzip sollte man das ganze Teil schlicht neu machen. Alleine das besagte Formular ist aber derart umfangreich, daß man hierfür doch einiges an Zeit bräuchte (und die habe ich nicht). Somit ist es deutlich effizienter, einen Workaround zu bauen, zumal weder die Funktion noch die eigentliche Datenbank herausragende Wichtigkeit besitzen. Da es bisher gar keine Abbruch-Funktionalität gab, würde ich den jetzigen Zustand durchaus als Fortschritt bezeichnen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Eigentlich trivial: Abbruch Button
« Antwort #11 am: 08.06.05 - 17:27:58 »
Renitenz, nicht Resistenz, Thomas.

Wenn schon "renitente Beratungsresistenz"  ;D

Aber Spass beiseite bei einer ernsten Angelegenheit, gerade, wenn jemand fremden Murks gerade biegen soll.
Mir ist auch noch nicht ganz klar, was das ganze soll. Ganz trivial würde ich erstmal im Sinne eines plain text documents sagen: Gespeichert ist gespeichert. Es geht also eher um ein Rücksetzen auf einen früheren Zustand. Hier würde mich eine exakte Begründung interessieren hinsichtlich des "Wozu?".
Was meinst Du eigentlich genau mit den "unterschiedlichen Sektionen je nach Status" ? Meinst Du damit einen einzigen Bearbeitungsvorgang (natürlich durch einen einzigen User) oder aufeinanderfolgende Bearbeitungsvorgänge (ggf. unterschiedlicher Benutzer) ?

Wie andere schon angemerkt haben, sind die Prinzipien dieser Applikation weniger als suboptimal. Trotzdem können wir damit alle immer noch daneben liegen. Kannst Du also noch mehr Infos dazu geben ? Es gibt ja - wenn es denn Sinn machen würde anstatt die App so zu lassen wie sie ist oder in die Tonne zu drücken und neu zu erstellen - sicherlich zahlreiche Möglichkeiten, derartige Problem zu lösen. Ich denke da nur an Versioning oder die Restaurierung aller Items aus dem (Arbeits-)Speicher, wenn "Abbruch" gewählt wurde.

Sag' an, wie wichtig Dir dieses Problem ist (wobei ich das allgemeine Problem an sich schon interessant finde, wenn es auch noch nur sehr theoretisch ist) und dann ggf. noch ein paar mehr Details.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz