AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
16.12.18 - 07:00:37
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  Nach @command([FileSave]) kommt trotzdem noch der Speicherdialog
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Nach @command([FileSave]) kommt trotzdem noch der Speicherdialog  (Gelesen 431 mal)
vrhsva
Frischling
*
Offline Offline

Beiträge: 17


« am: 23.11.18 - 10:59:17 »

Hallo zusammen,
Ich benötige etwas Hilfe bei einer eigentlich simplen Formel.
Ich habe eine Mailschablone 8.5 etwas modifiziert, so dass sie als eine Art Team-Mail-DB benutzt werden kann.
Dafür habe ich den Masken Memo und Reply ein zusätzliches Feld hinzugefügt vom Typ Namen (mehrfach Werte erlaubt), welches den Namen "Bearbeiter" trägt. Desweiteren eine Aktion, welche folgendes berechnetes Label hat:
Code:
@If(Bearbeiter="";"Bearbeitung: noch Niemand";"Bearbeitung: "+@Implode(@Name([CN];Bearbeiter);", "))
Der Inhalt der Aktion ist eine Formel:
Code:
docwasineditmode:=@False;
@If(@IsDocBeingEdited;@Set("docwasineditmode";@True);@Command([EditDocument];"1"));
FIELD bearbeiter:=@UserName;
@Command([ViewRefreshFields]);
@Command([FileSave]);
@If(docwasineditmode;"";@Command([EditDocument];"0"))
Also der User öffnet eine eingegangene Mail (üblicherweise im Ansichtsmodus), fühlt sich für den Inhalt der Mail verantwortlich und klickt oben auf die Schaltfläche "Bearbeitung: Noch niemand".
Folgendes passiert:
Das Dokument wird in den Editiermodus versetzt,
das Feld Bearbeiter bekommt seinen Wert zugewiesen,
die Felder werden refreshed,
das Dokument wird gespeichert.

Bis dahin alles schick. Nun soll das Dokument wieder in den Ansichtmodus versetzt werden, weil sonst ja die Standard-Schaltflächen "Antworten", "Weiterleiten",usw. ausgeblendet sind.
Doch obwohl die Aktion ja gerade gespeichert hat, wird trotzdem an dieser Stelle noch mal der Speicherdialog "Do you want to save your changes?" angezeigt.
Der Ordner ($Inbox)  hat übrigens eine neue erste Spalte erhalten: kategorisiert Bearbeiter.
Um zu prüfen, ob das Dok vor dem Speicherdialog bereits gespeichert wurde, habe ich die Mail in einem neuen Fenster geöffnet, so dass ich die geöffnete Mail und die Inbox zur gleichen Zeit im Überblick habe, um zu sehen, ob die Änderung in der Ordnerspalte bereits angezeigt wird. Und es ist so.

Wie kann ich jetzt also den Speicherdialog unterdrücken?
Mit SaveOptions=0, SaveOptions=1, SaveOptions="0", SaveOptions="1" hab ich auch schon rumgespielt, hat aber alles nichts gebracht.

Grüße
Volker




Gespeichert

DominoServer 9.01 - Linux
NotesClient 8.5.3 - Windows 7
Ralf_B
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 18


« Antworten #1 am: 28.11.18 - 18:21:04 »

Mal kurz gesagt:Ich würde es vermeiden in den Editmode zu wechseln.
Ich mach das normal so:
Mailin DB ($Inbox)um Aktionen(Button in Ansicht) erweitern "Bearbeiter 1;Bearbeiter 2...) mit jeweils @Setfield("Bearbeiter";"TBD").
Somit habe ich keine Probleme mit dem UIDOCUMENT und es wird auch gleich in der Ansicht angezeigt.
Oder gibt es einen speziellen Grund in den Editmode zu wechseln?

Gruß
Ralf
Gespeichert
Gutierrez
Aktives Mitglied
***
Offline Offline

Beiträge: 100


« Antworten #2 am: 29.11.18 - 09:59:09 »

Moin vrhsva,

wir haben auch eine Funktion, wo ein UIDocument in den Bearbeiten-Modus versetzt wird und wieder zurück. Damit gibt es hin und wieder Probleme. Die Funktion, die Ralf_B beschreibt, haben wir auch, weil es keine Probleme macht.

Beste Grüße
Gutierrez
Gespeichert
vrhsva
Frischling
*
Offline Offline

Beiträge: 17


« Antworten #3 am: 04.12.18 - 08:45:43 »

Hallo,

erst mal schon mal Danke für eure Antworten.
Es ist so: Der User bekommt nach Eingang einer neuen Mail in seine eigene MailDB eine Nachricht, dass in der TeamMailDB eine neue Mail eingegangen ist. Diese enthält einen Document-Link. Der User klickt drauf und ist dann gleich in der Mail im Ansichtmodus. Jetzt liest er sich den Inhalt durch und fühlt sich zuständig. Also klickt er auf die Aktion. Um dann zu sehen, dass die Aktion erfolgreich ausgeführt wurde, sollte dann auf dem Label der Schaltfläche sein Name als Bearbeiter zu sehen sein.

Um mit @setfield oder field:= einen Wert in ein Feld eines geöffnetes Dokument zu schreiben, muss ich ja im Edit-Modus sein.
Gespeichert

DominoServer 9.01 - Linux
NotesClient 8.5.3 - Windows 7
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #4 am: 04.12.18 - 10:04:18 »

Hast Du schon versucht, mit einem @PostedCommand ([FileSave]) die Reihenfolge der @Command-Abarbeitung zu beeinflussen?

Bernhard
Gespeichert
vrhsva
Frischling
*
Offline Offline

Beiträge: 17


« Antworten #5 am: 04.12.18 - 14:48:39 »

Ja, hab ich auch schon. Gleicher Effekt
Gespeichert

DominoServer 9.01 - Linux
NotesClient 8.5.3 - Windows 7
Ralf_B
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 18


« Antworten #6 am: 04.12.18 - 16:26:38 »

Hmm....
Also, der Anwender hat das Mail im Lesemodus offen und drückt eine Schaltfläche(Aktion der Maske vermute ich mal).
-> Also per Uiworkspace das uidocument holen und per uidocument.document in dem backenddokument das Feld setzen.
Dann soll der Anwendername auf dem Button erscheinen.
-> Weiter Aktion mit HideWhen und nach einem uidoc.refresh /reload oder nach erneutm öffnen des uidocs sollte das doch klappen.
Ich sehe da eigentlich keine Probleme, solange nicht der Editmodus genutz wird.

Und ja, @SetField oder doc.replaceitemvalue funktionieren ohne in den Editmodus zu wechseln solange ich das Backend Dokument nutze und nicht das Ui Dokument, problemlos.

Gruß
Ralf
Gespeichert
vrhsva
Frischling
*
Offline Offline

Beiträge: 17


« Antworten #7 am: 06.12.18 - 15:40:01 »

Gut, das hab ich mal probiert, also das Ganze per Script zu machen.
Feld im Backend gesetzt, uidoc schließen und wieder öffnen. Klappt wie gewollt einwandfrei.

Nur: Die erste Spalte in der Inbox ist ja kategorisiert (Bearbeiter). Wenn der Nutzer die Mail aus der Inbox öffnet, die Aktion durchführt und dann wieder schließt, aktualisiert sich die Kategorie in der Inbox nicht, ohne F5/F9 zu drücken. Das passiert nur, wenn ich das Dokument im Frontend speichere. Ich kann auch aus dem Script heraus, welches ich mit @command([ToolsRunMacro];"Agent") in dem Aktionsbutton aufrufe, nicht auf den im Hintergrund geöffneten Folder zugreifen, um dort die Inbox zu refreshen. Hab im Debugger die uiworkspace durchforstet nach notesuiview, aber da steht nichts drin. Komm ich also nicht ran. Oder kann man sich die notesuiview aus dem QueryOpenDocument der Inbox irgendwo merken, so dass sie dem Script im Agenten zur Verfügung steht?
Gespeichert

DominoServer 9.01 - Linux
NotesClient 8.5.3 - Windows 7
Gutierrez
Aktives Mitglied
***
Offline Offline

Beiträge: 100


« Antworten #8 am: 06.12.18 - 16:12:16 »

Hallo vrhsva,

du kannst die undokumentierte Funktion NotesUIWorkspace.ViewRefreshByDBid(Byval ReplicaID As String, Optional Byval ViewName As String, Optional Byval CalenderView) benutzen, um die Ansicht zu aktualisieren.

Beste Grüße
Gutierrez
Gespeichert
Ralf_B
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 18


« Antworten #9 am: 06.12.18 - 17:59:13 »

Sollte funktionieren.

Oder die dokumentierte Version:
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_VIEWREFRESH_METHOD.html

Viel Erfolg.
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: