Autor Thema: Formel abbrechen wenn ein Dokument in Bearbeitung ist  (Gelesen 4002 mal)

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Hallo Form,

wie kann ich die Abarbeitung einer Formel unterbinden, wenn ein Dokument bereits durch einen anderen Benutzer bearbeitet wird.
Ich habe eine Formel in einer Schaltfläche "Dokument bearbeiten" erstellt.
Die Formal beginnt @Command( [EditDocument] ) und danach werden weitere Felder gesetzt. Diese Abarbeitung soll gestppt werden, wenn das Dokument bereits gesperrt ist. Es kommt die Meldung, dass das Dokument bereits von Benutzer xy bearbeitet wird, aber der Rest der Formel wird weiter ausgeführt.
Gibt es dafür eine Abbruchbedingung?
Danke.

VG Chris

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #1 am: 06.10.17 - 09:47:06 »
Probier mal ein

@If (!@IsDocBeingEdited; @Return (""); "")

nach dem EditDocument

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #2 am: 06.10.17 - 10:02:28 »
Ich bin mir grade nicht sicher, aber ich meine, dass @Command([EditDocument]) auch @False liefert... Dann müsste es auch so funktionieren:

@If( @Command([EditDocument] ; 1 ) ; ""; @Return( "" ) )
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #3 am: 06.10.17 - 10:44:46 »
Probier mal ein

@If (!@IsDocBeingEdited; @Return (""); "")

nach dem EditDocument

Geht leider nicht, das @IsDocBeingEdited reagiert nichht in Kombination mit dem Edit Dokument.
Erstelle ich zwei getrennte Schaltflächen eine Edit Dokument und eine zweite mit IsDocBeingEdited funktioniert es. Nur in Kombination in einer Schaltfläche geht es nicht.

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #4 am: 06.10.17 - 10:45:09 »
Ich bin mir grade nicht sicher, aber ich meine, dass @Command([EditDocument]) auch @False liefert... Dann müsste es auch so funktionieren:

@If( @Command([EditDocument] ; 1 ) ; ""; @Return( "" ) )

Liefert leider nichts zurück.

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #5 am: 06.10.17 - 12:40:36 »
Mir fällt spontan Document Locking dazu ein.

Hast Du mal in diese Richtung gedacht?

Offline DominoDancing

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
  • Kugel im Käfig, lsmf, hurz ...
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #6 am: 06.10.17 - 12:49:18 »
Hallo Chris, it's Chrismas-time ;D

bei einem hinterlegten Agent '(Test)' (manuell aus der Liste der Agents, Ziel = Keines) mit

   @If(@IsDocBeingEdited; @Prompt([Ok]; "OK"; "OK"); @Return(""));
   @Prompt([Ok]; "2. OK"; "2. OK");
   SELECT @All

zeigt mir meine Schaltfläche mit

   @Command([EditDocument]; "1");
   @Command([ToolsRunMacro]; "(Test)")

beide Prompts an, wenn ich im Autorenfeld hinterlegt bin und keines der beiden Prompts, wenn ich nur im Leserfeld hinterlegt bin. Wenn das Dokument durch einen anderen Nutzer gesperrt ist, zeigt es die Hinweismeldung "Das Dokument wurde bereits gesperrt von ..." an und bricht dann richtig die Bearbeitung ab, ohne die beiden Prompts anzuzeigen. Sollte so also funktionieren.

Ohne die Nutzung eines Agents hat das so nicht funktioniert, da dann immer zuerst @IsDocBeingEdited ausgewertet wurde (= Nein) und danach erst @Command([EditDocument]; "1") durchgeführt wurde. Da auch @PostedCommand anstelle von @Command bei mir keine Wirkung zeigte, hilft bei Dir ja vielleicht auch die Verwendung eines Agents?!

Liebe Grüße
René
... ich fühl' mich so ... Regenbogen ... ;D
... man muss die Ursache des Problems finden ... oder eine Tüte Glitzerfeenstaub ...
... Ich bin rhythm, I'm a dancer und I don't like Influenzer ...

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #7 am: 06.10.17 - 13:05:43 »
Kannst Du die Schaltfläche auf LotusScript umstellen? Da funktioniert das bestimmt

Code
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
If Not uidoc.EditMode Then
   uidoc.EditMode = True
End If
If Not uidoc.EditMode Then
   Exit Sub
End If
'Hier die Aktionen nach dem Umschalten einbauen

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #8 am: 06.10.17 - 13:06:53 »
Oder man fragt dann gleich die LockHolder Property ab.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #9 am: 06.10.17 - 13:10:34 »
Oder man fragt dann gleich die LockHolder Property ab.
Klar, aber es kann auch andere Gründe geben, weshalb man ein Dokument nicht bearbeiten kann, z.B. fehlende Rechte oder eigene interne Steuerungen.

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re: Formel abbrechen wenn ein Dokument in Bearbeitung ist
« Antwort #10 am: 06.10.17 - 15:19:58 »
Hallo Chris, it's Chrismas-time ;D

bei einem hinterlegten Agent '(Test)' (manuell aus der Liste der Agents, Ziel = Keines) mit

   @If(@IsDocBeingEdited; @Prompt([Ok]; "OK"; "OK"); @Return(""));
   @Prompt([Ok]; "2. OK"; "2. OK");
   SELECT @All

zeigt mir meine Schaltfläche mit

   @Command([EditDocument]; "1");
   @Command([ToolsRunMacro]; "(Test)")

beide Prompts an, wenn ich im Autorenfeld hinterlegt bin und keines der beiden Prompts, wenn ich nur im Leserfeld hinterlegt bin. Wenn das Dokument durch einen anderen Nutzer gesperrt ist, zeigt es die Hinweismeldung "Das Dokument wurde bereits gesperrt von ..." an und bricht dann richtig die Bearbeitung ab, ohne die beiden Prompts anzuzeigen. Sollte so also funktionieren.

Ohne die Nutzung eines Agents hat das so nicht funktioniert, da dann immer zuerst @IsDocBeingEdited ausgewertet wurde (= Nein) und danach erst @Command([EditDocument]; "1") durchgeführt wurde. Da auch @PostedCommand anstelle von @Command bei mir keine Wirkung zeigte, hilft bei Dir ja vielleicht auch die Verwendung eines Agents?!

Liebe Grüße
René

Die Lösung funktioniert, super danke.

Viele Grüße
Chris

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz