Autor Thema: In welchem Folder liegt das jew. Dokument - FolderReferences  (Gelesen 36416 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #20 am: 02.01.04 - 22:54:18 »
ok, was haben wir jetzt:

- eine Möglichkeit auch nachtraglich die Folderreference anzuzeigen

was fehlt:

- in einer Ansicht den Folder und seine Docs anzuzeigen.

aber dafür hat T he M aster of C eremony ja schon ein script gepostet; TMC.. good deal !!
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #21 am: 02.01.04 - 22:55:26 »
Hier noch ungetestet aus'm Stegreif ein mögliches Postsave-Script:

Code
Dim session As New notessession
   Dim db As NotesDatabase
    Dim uiws As New NotesUIWorkspace 
   Dim uidoc As NotesUIDocument    
   Dim newuidoc As NotesUIDocument   
   Dim session As New NotesSession 
   Dim db As NotesDatabase 
   Dim doc As NotesDocument
   
   Set db = session.CurrentDatabase   
   Set uidoc = uiws.CurrentDocument   
   Set doc = uidoc.Document 
      
   If Not doc.FolderReferences(0) = "" Then
    doc.FolderName = doc.FolderReferences
    Call doc.save (False,False)      
   End if
Matthias

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


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #22 am: 02.01.04 - 22:59:48 »
OK, zur View:

Man bastle sich eine View:

1. Spalte: Subject (oder so), aufsteigend sortiert
2. Spalte: FOLDERNAME (multi-value-separator: New line), View-Eigenschaften: Lines per row: "9".

Das sollte es sein :-)

TMC
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #23 am: 02.01.04 - 22:59:51 »
ja, soweit OK, jetzt mußt du nur noch berücksichtigen, daß manein doc auch von einem zum anderen Folder koperen oder verschieben kann..



Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #24 am: 02.01.04 - 23:08:42 »
Zitat
jetzt mußt du nur noch berücksichtigen, daß manein doc auch von einem zum anderen Folder koperen oder verschieben kann..

Hmm, evtl: Einen "Refresh-Buhtung" in die View welche die Doks mit zugehörigen Foldern anzeigt. Evtl. ein Queryopen-Event in die View, aber davon würde ich jetzt abraten, siehe Mail-File von Eknori mit s.au-vielen Dokumenten.

TMC

Refresh-Buhtong-Code:
Code
Sub Click(Source As Button)
   Dim uiws As New NotesUIWorkspace   
   Dim session As New notessession
   
   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
   Call uiws.ViewRefresh
End Sub
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #25 am: 02.01.04 - 23:12:08 »
ich rede jetzt hier imme nur vom MehlPfeil... In einer eigenen gestricketen DeeBee kann das dann auch einfacher gestaltet werden. Im MehlPfeil sind die Positionen im Post.. BlaBla scho besetzt...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #26 am: 02.01.04 - 23:18:29 »
Ulrich, da bin ich bei Dir.

Hab das aber eigentlisch auch nur fürs Mehlpferd gemacht (da hat man eben die Ordnervielfalt, und wehe der Admin macht ein Update und die Mails sind nicht mehr in den Ordnern in den sie sein sollen :-)
Wobei es natürlich überall geht (hab ich grad getestet)
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #27 am: 02.01.04 - 23:20:04 »
yoo, ist eine schwierige Kiste, aber dein Ansatz ist voll OK.  RESPEKT !!
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #28 am: 02.01.04 - 23:27:51 »
jetzt wäre noch ein Script nett: Restore all Documents in Mailfile when Admin has destroyed your mailfile

- Collection über alle Docs in der DB
- Prüfen ob Reference da
- Prüfen ob Folder vorhanden, wenn nein dann lege ihn an
- lege Doc im jew. Folder ab
- Next

Mal schauen, ob ich heute noch dazu Bock hab ....

TMC
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #29 am: 02.01.04 - 23:30:44 »
Zitat
jetzt wäre noch ein Script nett: Restore all Documents in Mailfile when Admin has destroyed your mailfile

you got 30 minutes  ;D

"es gibt keine Probleme, nur Herausforderungen "

Ulrich
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #30 am: 02.01.04 - 23:36:21 »
you got 30 minutes  ;D

Nun mal langsam, bekomm ich dann wenigstens 20 EUR ?

Ups, shit, ist ja dann 3Satz (20 EUR / 2 Std. ---> 5 EUR bei 1/2 Stunde).
Ist ja nicht mal eine Kiste Augustiner :-(

Na ja, mal schauen :-)
« Letzte Änderung: 02.01.04 - 23:37:04 von TMC »
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #31 am: 02.01.04 - 23:39:42 »
siehste, ist doch realistisch... jetzt hast du wertvolle Minuten verschenkt.  >:( Ich warte auf eine Lösung, brauche die sofort und du kriegst ja auch dein Flasch' Bier , keine  Sorge, aber her mit der Lösung und zwar zackichchchchchc !!!!
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #32 am: 02.01.04 - 23:43:36 »
jetzt bin ich beleidigt.

Dim szEknori as String
szEknori = "Eknori ist doof, er will nur 5 Euronen für ein Script bezahlen"  & Chr(10) & "Soll er es doch selber machen, die faule S** :-)"
Msgbox szEknori


 ;D
TMC
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #33 am: 02.01.04 - 23:45:16 »
ok, eat this ..........

man müßte ja nur eigentlich
  if not funktioniert
    sei beleidigt
  end if

end man

für die MAusliebhaber : " das war SpeudoCode"  ;D
« Letzte Änderung: 02.01.04 - 23:47:02 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #34 am: 02.01.04 - 23:50:36 »
Dim 20EURO As NotesItem
Set 20EURO = eknori.GetFirstItem( "Brieftasche" )
Call 20EURO.Remove
 ;D 8)
« Letzte Änderung: 02.01.04 - 23:52:05 von TMC »
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #35 am: 02.01.04 - 23:53:26 »
object Variable not set error !!

 du hast einigen Leuten schon k Euro erspart ( hatte ich dir in einer frühen PM schon geschrieben )
« Letzte Änderung: 02.01.04 - 23:55:59 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #36 am: 02.01.04 - 23:58:32 »
print "gut dass wir in 2004 ontopic und nie mehr offtic sind :-)"
end sub
Matthias

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


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #37 am: 03.01.04 - 00:00:58 »
Zitat
print "gut dass wir in 2004 ontopic und nie mehr offtic sind :-)"
end sub

ok, lasse ich als codefragemet einer SUB gelten.

Hast aber auch Recht , genug OffTopic

Ulrich
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:In welchem Folder liegt das jew. Dokument - FolderReferences
« Antwort #38 am: 03.01.04 - 00:12:10 »
Zum erwähnten noch nötigen Script:
- Collection über alle Docs in der DB
- Prüfen ob Reference da
- Prüfen ob Folder vorhanden, wenn nein dann lege ihn an
- lege Doc im jew. Folder ab
- Next
Bezüglich "Restore all Documents in Mailfile when Admin has destroyed your mailfile":

Werde ich angehen sobald ich das brauche.
Außer aber ein Forum-Teilnehmer hat Lust.....

Ist nicht weiter schwierig, Abfrage ob Reference da siehe letzte Scripts, Rest ist eh bekannt.

TMC
Matthias

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


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Komplettlösung Teil 1
« Antwort #39 am: 19.01.04 - 22:00:07 »
Komplettlösung Teil 1 / 2:


Inhalt

1. Einleitung
2. Warum das ganze - Beispiele zum Einsatz
3. Erstkonfiguration
    3.1 Order $FolderRef und $FolderRefInfo
    3.2 FolderReferences aktivieren
4. Nachträgliches Setzen der Folder References
5. Praktisches Arbeiten mit den Folder References
   5.1 Ordner des aktuellen Dokumentes anzeigen
   5.2 Ansicht "Dokument" | "Folder"
         5.2.1 Beispiel für einen Agenten oder Aktionsschaltfläche
         5.2.2 Postsave Script für neue Dokumente
         5.2.3 View erstellen
         5.2.4 Refresh-Button für die View
   5.3 Wiederherstellung der Dokumente
   5.4 Weitere hilfreiche Scripts
         5.4.1 Alle Ordner einer Datenbank löschen
6. Umsetzung der Beispiel-Scripts
7. Festgestellte Probleme


1. Einleitung

Werden Dokumente in Folder (Ordner) verschoben, so ist es erst einmal nicht möglich, im Dokument zu sehen in welchem Folder es liegt.

Seit R5 gibt es allerdings die FolderReferences property, mit dieser ist es z.B. möglich herauszufinden, in welchem Folder welches Dokument liegt.
Dabei werden automatisch in Felder des Dokumentes die jew. Ordner-Referenzen geschrieben, sobald ein Dokument in einem Ordner abgelegt wird.


2. Warum das ganze - Beispiele zum Einsatz

Schablonenupdate oder sonstige Modifikationen am Mailfile
In der Vergangenheit ist wohl leider schon vielen Administratoren bei einem Releasewechsel (und dadurch u.a. verbunden ein Schablonenwechsel des Mailfiles) passiert, dass vorher sauber in Ordner abgelegte Dokumente nun plötzlich "verschwunden" sind und nur noch in der $All - Ansicht sichtbar.

Mehrere (Mail-)Datenbanken zu einer zusammenfahren
Bisher war es sehr aufwändig, z.B. die Dokumente von Mailfile A strukturiert in Mailfile B zu übernehmen. Auch hier kann FolderReferences wertvolle Dienste erweisen.

Sicherheit durch Wiederherstellbarkeit
Es können beispielsweise nicht reproduzierbare Fehler auftreten, bei denen z.B. Dokumente plötzlich nicht mehr in den Ordnern erscheinen. Auch hier besteht dann die Möglichkeit, per Mausklick alles wieder herzustellen.


3. Erstkonfiguration

3.1 Order $FolderRef und $FolderRefInfo

Grundsätzlich ist 'Folder References' in jeder Datenbank ab R5 möglich. Allerdings sind hierzu zwei Ordner der R5 - Mailschablone nötig:
$FolderRef
$FolderRefInfo
Diese Ordner müssen in die Datenbank, in der 'Folder References' verwendet werden soll, kopiert werden.


3.2 FolderReferences aktivieren

Die FolderReferences sind grundsätzlich deaktiviert. Eine Aktivierung in einer Datenbank muss per Lotus Script erfolgen; eine Datenbank-Option, in der man per Mausklick die FolderReferences aktivieren kann, gibt es nicht!

Hier ein Beispiel-Script, welches man z.B. in eine Aktionsschaltfläche aufnehmen kann:

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 


Eine weitere Möglichkeit wäre es, db.FolderReferencesEnabled = True" generell im Postopen der Datenbank zu platzieren bzw. folgende If-Abrage erstellen:

Code
Sub Click(Source As Button)
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Set db = session.CurrentDatabase
  
  If  db.FolderReferencesEnabled  Then
      Exit Sub 
      db.FolderReferencesEnabled = True
  End If
End Sub 



4. Nachträgliches Setzen der Folder References

Im Internet wird oftmals fälschlicherweise die Meinung vertreten, es wäre nicht möglich, die Folder References nachträglich zu setzen.

Hier ein Beispiel-Script, welches man z.B. in eine Aktionsschaltfläche aufnehmen kann:
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  
  
  If  Not db.FolderReferencesEnabled  Then
      db.FolderReferencesEnabled = True
  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 

Dadurch werden nachträglich alle Folder References erzeugt.

Geschwindigkeit:
Mit einem Mailfile mit 240 Ordnern und 182.000 Dokumenten: 22 Minuten.
Der Test wurde durch Eknori auf einem Server durchgeführt:
 - Client 6.5 de auf einem Laptop mit P4 3.2GHz / 768 MB Ram
 - Server 6.5 en auf P4 3.2 GHz / 2 GB Ram
 - Netzwerk Glasfaser 1GBit

« Letzte Änderung: 19.01.04 - 22:13:57 von TMC »
Matthias

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


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz