Domino 9 und frühere Versionen > Entwicklung

Script: Privaten Ordner erstellen

<< < (2/4) > >>

Rob Green:
oder eine Umgehung des Problems, ich zitiere mal "Walter L" von spotlight.de:

Bei einer Suchfunktion mit ähnlichem Prinzip hab ich das mal so gelöst:

Die Dokumente werden genau wie bei Euch von einem Script-Agent gesucht und verarbeitet, aber als Wrapper drumherum läuft folgende Formel, und die sorgt zuverlässig dafür daß der private Folder existiert bevor das Script versucht, Dokumente hineinzulegen.

@Command([OpenView];"FolderSearch";"";1);
@Command([EditSelectAll]) ;
@Command([RemoveFromFolder];"FolderSearch") ;
@Command([FileCloseWindow]) ;
@Command([FileCloseWindow]) ;
@Command([ToolsRunMacro];"(Ausgabe)");
@PostedCommand([OpenView];"FolderSearch";"";0);

Erklärung:

Zuerst mal wird der Ordner geöffnet - falls er noch nicht als privater existiert, wird er JETZT erstellt - und die Ergebnisse einer evtl vorher gelaufenen Suche werden rausgenommen.

Warum dann 2 mal FileCloseWindow kommt, hab ich vergessen :-)

Danach wird der Script-Agent getriggert, und zuletzt wieder der private Ordner geöffnet um das Ergebnis zu zeigen.

Nebenbei: man sollte IMHO immer die privaten Ordner in der Datenbank auf dem Server ablegen, nie im Desktop. Bei den unweigerlich folgendenen Design-Updates muß sonst der arme Admin jedem einzelnen User erklären wie er die Kachel vom Arbeitsbereich (den ein R5 User ja gar nicht kennt) runternimmt und wieder hinzufügt.

Geschickt von Walter L am 13.02.2002 um 12:55:08


Quelle: http://spotlight.de/zforen/alts/m/alts-1013601308-11691.html

Axel:
Hi,

die Art und Weise wie Rob gepostet hatte ich auch mal versucht. Aber bei über der Hälfte der Clients hat es nicht funktioniert. Nach FileCloseWindow war Feierabend. Ich vermute ein Timing-Problem, aber ganz bin ich der Sache nie auf den Grund gekommen. Hab's dann irgendwann verworfen.

Wenn ich solche privaten Ordner brauche, gehe ich folgenden, wenn auch nicht schönen Weg. Ich füge in den Postopen-Event im Datenbank-Script folgenden Zeilen ein:

@Command([OpenView];"Ordnername");
@Command([FileCloseWindow]) ;

Damit wird der Ornder, wenn er nicht vorhanden ist, beim Öffnen der Datenbank angelegt. Das kurze Öffnen des Ordners ist kaum zu sehen.

Axel

manuel:
Hallo,

danke für die reichlichen Antworten. Hab' mir das mal näher angesehen was Axel da beschrieben hat.

Da ich im Postopen schon ein bisschen Script-Code habe, habe ich den Formel-Code in einen Agenten gepackt, der nun vom Postopen aus gestartet werden soll. Wenn ich nun mit agent.RunOnServer den Agenten starte, wird dieser auch ausgeführt, zumindest lässt sich das durch den Rückgabewert erahnen.

Doch es wird kein Ordner erstellt. Wenn anschließend versucht wird Dokumente in den Ordner zu verschieben, erscheint erneut eine Fehlermeldung.

Wenn ich den Formel-Code in das QueryOpen packe, schmiert mir gleich das ganze Notes ab.

Was ist da los? Wie könnte ich das lösen, damit beim Öffnen der Ordner erstellt wird, ich aber schon im PostOpen Script-Code habe?

Schöne Gruße, und tschuldiung für die späte Antwort
Manuel

Axel:
Hi,

wieso agent.RunOnServer ?  Wenn du einen privaten Ordner anlegen willst, brauchst du einen Usernamen und den hast du, wenn der Agent auf dem Server läuft m.E. nicht. Der Agent muß auf dem Client ausgeführt werden. Versuch's mal mit agent.run.


Axel

manuel:
Klingt irgendwie logisch! bekomme aber auch hier die Fehlermeldung "Can't move doc ...... "

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln