AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
27.02.20 - 21:46:19
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News: Jetzt mit HCL Notes / Domino 11 und einem Extraboard für Nomad!
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  Tipps und Tricks (Moderatoren: eknori, fritandr, ata)
| | |-+  In welchem Folder liegt das jew. Dokument - FolderReferences
« vorheriges nächstes »
Seiten: [1] 2 3 Nach unten Drucken
Autor Thema: In welchem Folder liegt das jew. Dokument - FolderReferences  (Gelesen 27556 mal)
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« am: 02.01.04 - 18:29:04 »

** EDIT **

Komplette Lösung siehe hier unter Best Practices: Best Practices Folder References



Hi,

ich hab mich zu dem Thema "Wie finde ich heraus, in welchem Ordner Dokument XY liegt" mal etwas schlau gemacht  und ein paar Scripts geschrieben.

Damit dies überhaupt klappt, müssen die folgenden Ordner der R5 Mailschablone in die jew. DB kopiert werden:
- $FolderRef
- $FolderRefInfo

Außerdem muss vorher ein db.FolderReferencesEnabled = True ausgeführt werden.
Per Default werden keinerleid Infos in den Dokumenten gespeichert!

Beispiel-Code:
Code:
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   If   db.FolderReferencesEnabled  Then
      If Messagebox ("Folder References are enabled." & Chr(10) & Chr(10) _
      & "Do you want to disable the Folder References?" ,1 + 32,db.title) = 1 Then
         db.FolderReferencesEnabled = False
         Messagebox "Disabled Folder References now.....", 64, db.title        
      Else
         Exit Sub      
      End If  
   Else
      If Messagebox ("Folder References are disabled." & Chr(10) & Chr(10) _
      & "Do you want to enable the Folder References?" ,1 + 32,db.title) = 1 Then
         db.FolderReferencesEnabled = True
         Messagebox "Enabeled Folder References now.....", 64, db.title
      End If
   End If      
End Sub

Nachträglich Folder References erzeugen

Nun hat man ggf. das Problem, dass db.FolderReferencesEnabled nicht enabled wurde und eine DB (z.B. Mailfile) u.U. viele tausend Dokumente hat ohne jeder Referenz.

Da kann man dann folgenden Code nehmen, damit wird einfach jedes Dokument wieder in denselben Folder geschoben, und damit wird dann nachträglich eine Referenz erzeugt.

Code:
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim vec As NotesViewEntryCollection
   Set db = session.CurrentDatabase
   
   If Not Messagebox ("Do you really want to create references of all docs in all folders?" ,1 + 32,db.title) = 1 Then
      Exit Sub      
   End If  
   
   Forall v In db.Views
      If v.isFolder Then
         Set vec = v.AllEntries
         Call vec.PutAllInFolder( v.Name )
      End If
   End Forall
   Messagebox "Folder References are created...", 64, db.title
   
End Sub

Ist erstmal ein erster Wurf, to be continued.....

TMC
« Letzte Änderung: 26.01.04 - 20:17:39 von TMC » Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #1 am: 02.01.04 - 18:30:13 »

das funzt dann aber nur für neu erstellt docs, oder ?

upps, erst lesen, dann posten Script 2 bringt die Lösung
« Letzte Änderung: 02.01.04 - 18:31:48 von eknori » Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #2 am: 02.01.04 - 18:31:01 »

lies mal Script 2 :-)

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #3 am: 02.01.04 - 18:33:39 »

TMC ( The Master of Ceremony  Grin ) :

Gute Arbeit, das kann mir in der Fa. gute Dienste leisten..

Feedback folgt...
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #4 am: 02.01.04 - 18:38:24 »

Freut mich Ulrich  Grin

Auf die Idee bezügl. dem Call vec.PutAllInFolder( v.Name ) brachte mir ein Spotlight.de - Thread......

Bin schon auf Dein Feedback gespannt, sollte auch mal mit einem größeren Mailfile oder so getestet werden - werd ich auch noch angehen....

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #5 am: 02.01.04 - 18:40:37 »

Ich habe hie rmein privates Mailfile mit 240 Foldern und 182000 Docs. Das ist schon ordendlich Futter für dein Script, gell ?
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #6 am: 02.01.04 - 18:43:15 »

Zitat
rmein privates Mailfile mit 240 Foldern und 182000 Docs.
Shocked Shocked Shocked

cool, da geht was  Grin
Und da sagt noch einer hier wird nicht richtig getestet  Cheesy

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #7 am: 02.01.04 - 18:47:43 »

ach ja, bevor das Fragen wieder losgeht, mache doch mal ne DB mit Code und den entsprechenden Ansichten fertig und lade die hier hoch. Merci...
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #8 am: 02.01.04 - 18:59:26 »

hat gefunzt  Cheesy Super.  Der Code hat 22 Minuten für meine paar docs gebraucht  Grin
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #9 am: 02.01.04 - 19:01:02 »

gute Idee, Ulrich.

Hier noch ein Beispiel-Buhtong für eine Ansicht, um in einer Messagebox zu sehen, in welchem Folder das ausgewählte Dok steckt:

Code:
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim szReference As String
   
   Set db = session.CurrentDatabase
   
   Set collection = db.UnprocessedDocuments
   
   Set doc = collection.GetFirstDocument
   
   Forall r In doc.FolderReferences
      If r = "" Then Goto Empty
      szReference = r & Chr(10) & szReference
   End Forall      
   
   While Not (doc Is Nothing)
      Msgbox "Folder References: " & Chr(10) & Chr(10) &szReference, 64, db.title
      Set doc = collection.GetNextDocument(doc)   'Nächstes Dokument
   Wend
   
   Exit Sub
   
Empty:
   Msgbox "No References in this document....", 64, db.title
   
End Sub
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #10 am: 02.01.04 - 19:02:46 »

wow, jetzt drehst du aber auf... supi...
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #11 am: 02.01.04 - 19:04:36 »

hat gefunzt  Cheesy Super.  Der Code hat 22 Minuten für meine paar docs gebraucht  Grin

Super, das ist doch was  Cool

Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #12 am: 02.01.04 - 19:13:53 »

Interessant wäre jetzt noch eine View

Dokument | Folder

Mal schauen, ich befürchte ohne DBLookup geht das nicht, was wiederum bedeuten würde, man braucht ein weiteres Feld in den Dokumenten  Undecided

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #13 am: 02.01.04 - 19:45:58 »

ok, hast recht, aber deine Scripte sind schon mal ein guter Ansatz.
Script 3 in einen Agenten gepackt und dann das Feld $FolderName füllen ( einmal täglich ) wäre für manche FA. schon ein riesen Fortschritt.

Bei neuen Dokumenten müsste das doch auch im PostSave zu machen sein...
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #14 am: 02.01.04 - 20:16:50 »

jip.

Hier das Script dazu, welches alle Doks der DB behandelt die FolderReferences haben:

Code:
Dim session As New notessession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   
   Set db = session.CurrentDatabase
   Set dc = db.allDocuments
   
   Set doc = dc.GetFirstDocument
   Do While Not doc Is Nothing
      If Not doc.FolderReferences(0) = "" Then
         doc.FolderName = doc.FolderReferences
         Call doc.save (False,False)      
      End If   
      Set doc = dc.GetNextDocument(doc)
   Loop

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #15 am: 02.01.04 - 22:32:10 »

und das packe ich dann in das postsave; krrrekt ?
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #16 am: 02.01.04 - 22:35:40 »

Zitat
mache doch mal ne DB mit Code und den entsprechenden Ansichten fertig und lade die hier hoch.

Wollte ich eigentlich machen, aber
1) die Scripts sind eh hier verfügbar
2) warum es DAUs noch einfacher machen
3) hab ich jetzt keinen Bock nochmal alles zu dokumentieren in der DB :-)

Was mir hier wichtig war:
- Die vielfach behauptete Aussage, ein FolderReference lasse sich nachträglich nicht umsetzen, zu widerlegen
- praxistaugliche Scripts zu posten die man dazu einsetzen kann

Ich hoffe wir bekommen hier noch Rückmeldungen egal welcher Art und weitere Script-Beispiele, da dieses Thema schon immer im Notes-Bereich ein Problem war (Zuordnung Dokumente / Folder), und R5 brachte die Lösung, nur viele wußten bzw. wissen es nicht wie umzusetzen.

TMC
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #17 am: 02.01.04 - 22:36:40 »

@Ulrich:
War für einen Buhtung ausgelegt.....

TMC

*Edit*
wenn Du das letzte Script meinst.
« Letzte Änderung: 02.01.04 - 22:38:31 von TMC » Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11352


« Antworten #18 am: 02.01.04 - 22:41:18 »

Zitat
Die vielfach behauptete Aussage, ein FolderReference lasse sich nachträglich nicht umsetzen, zu widerlegen

was dir gelungen ist...  Cheesy
Gespeichert
TMC
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3660


meden agan


« Antworten #19 am: 02.01.04 - 22:49:32 »

Danke Ulrich, solch eine Bestätigung von einem Experten wie Dir freut mich sehr :-)

Zumal ich wirklich (noch) kein Script Freak bin :-)
Gespeichert

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.

Seiten: [1] 2 3 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: