Autor Thema: Initialisierung von privaten Ordner im Agenten  (Gelesen 2000 mal)

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Initialisierung von privaten Ordner im Agenten
« am: 25.01.08 - 11:45:41 »
Hallo,

ich schon wieder. Und zwar biete ich eine Suchfunktion an. Im Prinzip werden die Dokumente per Script je nach Auswahl gesucht und zum Anzeigen in einen Ordner verschoben.

Im Detail funktioniert das so. Der Benutzer drückt einen Button in einer Ansicht. Die öffnet zunächst den privaten Ordner per Formel-Sprache. Dadurch wird der Ordner erstellt, wenn er noch nicht vorhanden ist. Anschließend wird ein Agent gestart.

Code
@SetTargetFrame("NotesView" );
@Command([OpenView]; "geschaefteFolder");
REM {@Command([ToolsRunMacro]; "(Eingrenzer)")};
@Command([RunAgent]; "(Eingrenzer)")

Der Agent sucht die Dokument und soll diese anschließend in den privaten Ordner einfügen. Und genau hier liegt das Problem. Der Agent kann den privaten Ordner des aktuellen Nutzers einfach nicht initialisieren.

Code
...

Dim view1 As NotesView
'Set view1 = db.GetView("AusgewählteDokumente")
Set view1 = uiws.CurrentView.View
If Not view1 Is Nothing Then '<-- view1 is nothing
	Call view1.AllEntries.RemoveAllFromFolder(view1.Name)
	Call doccolForFolder.PutAllInFolder(view1.Name,False)			
End If

...

Woran kann das liegen? Sieht der Agent die private Ansicht des Benutzers nicht?

Vielen Dank für eure Hilfe.
Gruß

Fabian

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Initialisierung von privaten Ordner im Agenten
« Antwort #1 am: 25.01.08 - 12:38:50 »
Ist denn der persönliche Ordner vorhanden?

Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Re: Initialisierung von privaten Ordner im Agenten
« Antwort #2 am: 25.01.08 - 12:41:11 »
Ja der pesönliche Ordner ist vorhanden. Er wird auch geöffnet. Allerdings findet der Agent den Ordner nicht.

Aus der Notes-Hilfe:

Zitat
If the database is local, GetView returns both public and personal views and folders. If the database is on a server, GetView returns only public views and folders.

Wer lesen kann ist klar im Vorteil...

Aber warum NotesUIWorkspace.CurrentView.View nicht den Order liefert bleibt weiterhin fraglich.

Ich werde jetzt die Logik die im Agenten steckt, in den privaten Ordner packen. D.h. wenn die Ansicht geöffnet wird, erfolgt die Suche und anschließend das einfügen in den Ordner.
Gruß

Fabian

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Initialisierung von privaten Ordner im Agenten
« Antwort #3 am: 25.01.08 - 12:47:30 »
Ich habe damit aber noch nie Probleme gehabt.

Ich nutze GetView auch um Zugriff auf pers. Ordner zu erhalten und dort Suchergebnisse zu speichern.

Allerdings habe ich ein Ordnertemplate gebastelt und das ist vom Typ "Gemeinsam, privat bei Erstbenutzung" und die pers. Ordner werden in der Datenbank gespeichert.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Re: Initialisierung von privaten Ordner im Agenten
« Antwort #4 am: 25.01.08 - 12:58:40 »
Ich verwende auch den Typ "Gemeinsam, privat bei Erstbenutzung"...

Über ein Ordnertemplate verfüge ich allerdings nicht...

Die privaten Views werden auch bei mir in der Datenbank auf dem Server gespeichert. Nur ich sehe beispielsweise nicht die private View einer anderen Person X. Bei X am Rechner habe ich geprüft, ob der Ordner wirklich da ist. Und ja er ist da. Nur das blöde Script im Agenten findet bzw. sieht den Ordner auch nicht. Obwohl der Agent von User selbst gestartet wird.
Gruß

Fabian

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Initialisierung von privaten Ordner im Agenten
« Antwort #5 am: 25.01.08 - 14:04:31 »
Über ein Ordnertemplate verfüge ich allerdings nicht...

Mit dem Template war auch der Ausgangsordner gemeint. Wenn man den aufruft, wird ein persönlicher Ordner daraus erstellt, wenn noch keiner für den entsprechenden User existiert.

Nur ich sehe beispielsweise nicht die private View einer anderen Person X.

Ist ja auch logisch, sonst wär's ja kein privater Ordner.

Wenn du das so machst, wie oben beschrieben (Agentaufruf mit @Command([RunAgent]) und Zugriff auf Odner mit uiws.CurrentView.View), beschleicht mich ein Verdacht.

RunAgent wird sofort ausgeführt und wahrscheinlich im Context der ursprünglichen Ansicht (die gerade angezeigt wird) und nicht im Context des Ordners.

@Command([ToolsRunMacro]...) wäre hier die bessere Alternative. Ich würde aber mit NotesDatabase.Getview auf den Ordner zugreifen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Initialisierung von privaten Ordner im Agenten
« Antwort #6 am: 26.01.08 - 17:40:26 »
Hallo Skorpi,

warum erstellst du den Ordner nicht per Script in dem Agenten selbst ?

Ein kurzer Auszug aus einem allgemeinen Ecel-Export-Agenten, den ich überall einsetze. Dort nehme ich die aktuelle View und erstelle eine Kopie davon, die ich anschließend zum privaten Ordner über die $FLAGS-Eigenschaften mache. Und den kann ich mit Dokumenten füllen - bei einer View mit Antworthierarchie und Dokumenten mit Antwortdokumenten in der DocumentCollection wandern allerdings immer ALLE Antwortdokumente mit (und nicht nur die der ursprünglichen Selektion). Das muß man wissen und ggf. berücksichtigen.

         Randomize
         foldername="TmpExportView" + Cstr (Int(Rnd()*1000))
         If Not v Is Nothing Then
            Set doc=db.getdocumentbyunid(v.universalid)
            If Not doc Is Nothing Then
               Set newdoc=doc.copytodatabase(db)
               Call newdoc.replaceitemvalue("$Title",foldername)
               Call newdoc.replaceitemvalue("$Flags","3FY")
               Call newdoc.save(True,True)
               ' Wenn der Anwender kein Recht hat Ordner zu erstellen, kommt er hier nicht mehr hin
               foldercreated=True
            End If
         End If
         Set v = db.getview(folderName)
         Call dc.putallinfolder(folderName)


Gruß

Norbert
Situs vilate in isse tabernit.

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Re: Initialisierung von privaten Ordner im Agenten
« Antwort #7 am: 07.02.08 - 17:44:03 »
Nochmal vielen Dank für Eure Hilfe  :)

Ich hatte das Thema erstmal nach hinten geschoben. Als ich es Heute wieder auf dem Tisch kam, fiel es mir wie Schuppen von den Augen. Ich hatte einfach vergessen in der Zugriffskontrolle einen Haken bei "Private Ordner/Ansichten erstellen" zu setzen.

Tja, so ist das halt manchmal  :-:
Gruß

Fabian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz