Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: iukhdh am 19.11.12 - 15:12:36

Titel: Funktionsweise von Ordnern
Beitrag von: iukhdh am 19.11.12 - 15:12:36
Hallo Forum,

kann mir hier vielleicht jemand kurz mal erklären, wie so ein Ordner technisch funktioniert?

Bei einer Ansichtsauswahl kann ich ja sagen, nimm diese oder jene Dokumente mit irgendeinem Wert. Aber wie geht das bei Ordnern? Wir da im Dokument ein Feld angelegt und da was eingetragen wenn ich das Dokument dort hineinschiebe, oder wird im Ordner hinterlegt welche Dokumente ich da hineinschiebe?

Gibt's da vielleicht was zum nachlesen was ich nicht kenne?

Wäre über eine kurze Info dankbar.


Thomas
Titel: Re: Funktionsweise von Ordnern
Beitrag von: dnotes am 20.11.12 - 12:06:37
m.E. nach wird im Ordner in dem Feld $Collection notiert, welche Dokumente in dem ordner angezeigt werden.
Titel: Re: Funktionsweise von Ordnern
Beitrag von: ascabg am 20.11.12 - 13:12:37
Hallo,

@dNotes
Zitat
m.E. nach wird im Ordner in dem Feld $Collection notiert, welche Dokumente in dem ordner angezeigt werden.
Kann ich so nicht bestaetigen.
Die Mails die bei mir in den Ordner liegen, besitzen dieses Feld est gar nicht.

Bitte nicht festnageln darauf, aber soweit ich mich noch erinnere werden diese Informationen in internen Tabellen vorgehalten.
Bei aktivierter FolderReference der Datenbank, kann man diese Informationen auch noch ueber versteckte Ansichten '($FolderRef...)
abgreifen.


Andreas
Titel: Re: Funktionsweise von Ordnern
Beitrag von: koehlerbv am 20.11.12 - 13:17:11
dnotes meint m.E. die $Collation-Items (!) der Folder-Design-Dokumente.

Allerdings beschreiben die $Collation-Items wie in Views die Sortierung der Spalten.

Bernhard
Titel: Re: Funktionsweise von Ordnern
Beitrag von: dnotes am 20.11.12 - 16:53:06
auch nicht ganz richtig. Dnotes meinte das Feld $Collection; nicht Collation. ;-)
Titel: Re: Funktionsweise von Ordnern
Beitrag von: koehlerbv am 20.11.12 - 23:07:28
Mein Fehler - sorry. Aber auch $Collection ist weder ein Feld noch hat es was mit den Dokumenten in Folders zu tun (da spricht Andreas wahr). Würden die IDs der Dokumengte der Folders in Items gespeichert, wären Folders ja auch arg aufnahmebeschränkt  ;)

Bernhard
Titel: Re: Funktionsweise von Ordnern
Beitrag von: dnotes am 21.11.12 - 10:22:23
Zum besseren Verständnis:

Wenn Du Dir die Mühe machst einen Ordner zu erstellen und diesen in Notes benutzt dann hat das Folder - Designelement das Feld $Collection. Definitiv.

Und von einem Feld, dessen Existenz Dir offenbar nicht bewußt ist, zu sagen, es hätte nichts mit den Dokumenten in Foldern zu tun, finde ich eine mutige Ansage.
Titel: Re: Funktionsweise von Ordnern
Beitrag von: ascabg am 21.11.12 - 10:44:30
@dnotes
Dann hat das Dokument/Designelement dieses Feld.

Aber das aendert nichts an der Tatsache, dass in diesem Feld keinerlei Informationen enthalten sind, welches Dokument sich in dem besagten Ordner befindet. Damit hat Bernhard wieder recht.

Felder in Bezug auf die Ordner, welches Dokument befindet sich in welchem Ordner, sind nur dann in den Dokumenten selber vorhanden, wenn die FolderReference innerhalb der Datenbank aktiviert ist.

Ansonsten werden die Informationen nur in internen Tabellen vorgehalten.


Andreas
Titel: Re: Funktionsweise von Ordnern
Beitrag von: dnotes am 21.11.12 - 11:03:47
Vielleicht klärt dieser link die Sache etwas auf:

http://www-12.lotus.com/ldd/doc/tools/c/6.0.2/api60ug.nsf/85255d56004d2bfd85255b1800631684/00dd00f9007500b085255e0f00729848?OpenDocument
Titel: Re: Funktionsweise von Ordnern
Beitrag von: ascabg am 21.11.12 - 11:09:08
Ich moechte ja nicht unhoeflich erscheinen, aber dieser Lonk erklaert eigentlich nur das, was Bernhard bereits geschrieben hat.

Itemname: $Collation und nicht wie immer weiter von Dir geschrieben $Collection

Und dieses Item wird nur fuer das Sorting innerhlab der View/des Ordners verwendet. Keine Rede davon, dass hier Informationen gespeichert werden,
welches Dokument in welchem Ordner (welches Dokument in dem betreffenden Ordner) enthalten ist.

Bitte nicht boese sein, aber etwas genauer lesen.


Andreas
Titel: Re: Funktionsweise von Ordnern
Beitrag von: Glombi am 21.11.12 - 11:23:35
Intern speichert Notes irgendwo verklausuliert, in welchen Ordnern Dokumente liegt.

Damit man aber programmtechnisch drauf zugreifen kann, hat sich IBM folgendes ausgedacht:
notesDocument.FolderReferences
mit folgendem wichtigen Hinweis:
The database must have the $FolderInfo and $FolderRefInfo hidden views to support folder references. These views can be copied from the mail template. This property does not return view references.
Folder references must be enabled for the database. See the FolderReferencesEnabled property of NotesDatabase.

In Formelsprache gibts ab 8.5.1 die Funktion @WhichFolders
@WhichFolders is intended for use only as a column formula in the mail template.
This function is effective only when the view is open in the UI and the outline pane on the left is visible.

Andreas
Titel: Re: Funktionsweise von Ordnern
Beitrag von: Peter Klett am 21.11.12 - 11:27:42
@Andreas (ascabg): Schau mal nach ganz unten in dem Link

A folder note also contains an item, $Collection, that contains the list of documents and folders contained in the folder.


Unabhängig davon, ob nun die Dokumente in diesem Feld oder einer internen Tabelle gehalten werden, Kernaussage ist doch, dass sich die Information, welche Dokumente sich in einem Ordner befinden (das war ja die eigentliche Frage des Fragenstellers), im Ordner(-Umfeld) und nicht in den Dokumenten befindet. Habe erfolglos versucht, mittels Script das Item zu manipulieren. Löschen ging nicht, irgendeinen Müll reinschreiben erzeugte ein zweites Item. Eine Auswirkung auf die angezeigten Dokumente hatte es aber nicht. Vielleicht kommt man mittels API an weitergehende Informationen, oder das Item verweist nur auf die interne Tabelle, in der die Dokumente aufgelistet sind.

Und um Dokumente in Ordner zu verschieben oder wieder daraus zu entfernen, gibt es die entsprechenden Befehle in Script (PutInFolder, RemoveFromFolder oder so ähnlich). Damit muss man arbeiten, anstelle von Selektionsformeln.
Titel: Re: Funktionsweise von Ordnern
Beitrag von: iukhdh am 22.11.12 - 17:22:17
Das hätte der Fragesteller nun allerdings nicht erwartet. Ich war mir fast sicher dass der Name des Folders irgendwo im Dokument hinterlegt wird und eine vorprogrammierte Abfrage auf dieses Feld die Auswahl erledigt. Gerade die von Bernhard erwähnte Aufnahmebeschränkung schwirrte mir auch im Kopf herum.
Titel: Re: Funktionsweise von Ordnern
Beitrag von: Peter Klett am 22.11.12 - 17:29:00
Dagegen spricht, dass jedes Schieben in oder aus einem Ordner dann ein Ändern des Dokuments zur Folge hätte. Diese Änderung müsste auch mit Leserechten möglich sein, dürfte sich nicht auf die Ungelesen-Markierung auswirken und nicht zu Replizierkonflikten führen. Wohl Gründe genug, es so gelöst zu haben, wie es ist.

EDIT: Sorry, dass ich Dich Fragensteller genannt habe, nächstes Mal scrolle ich in der Zusammenfassung zum Anfang zurück, so viel Zeit muss sein...
Titel: Re: Funktionsweise von Ordnern
Beitrag von: iukhdh am 22.11.12 - 17:48:39
 ;)
Titel: Re: Funktionsweise von Ordnern
Beitrag von: Thomas Schulte am 22.11.12 - 22:12:15
Der Name des Folders wird definitiv im Dokument hinterlegt, wenn man Folder References aktiviert. Und das schon seit Version 5. irgendwas.
Titel: Re: Funktionsweise von Ordnern
Beitrag von: koehlerbv am 22.11.12 - 23:55:15
Interessant, was hier so an Mythen umgeht  ;)  In welchem Item wird denn das abgelegt, Thomas?
By the way: $Collection im Folder-Design-Element ist auch falsch (das geht in Richtung view selection und ist deswegen eh in Folders nur selten zu finden - hängt von der Vererbung ab) und auch in der Doku falsch oder missverständlich.

Bernhard
Titel: Re: Funktionsweise von Ordnern
Beitrag von: dnotes am 23.11.12 - 07:50:53
Das war schon mal gar nicht so schlecht, Bernhard. Das geht in Richtung View selection.
In meinen Augen ist ein Folder auch eine View; mit dem Unterschied, daß er keine Selektionsformel hat.
Was also läge näher als einen Folder vom internen design her genau so zu gestalten mit den ähnlichen Mechanismen wie eine View??

Bei einem Test ist mir aufgefallen, daß beide - views und Folder - erst das Feld $Collection erzeugen, wenn sie in Notes geöffnet werden.
Daraus folgere ich mal, so lange das Element nur im designer schlummert wird dieses Feld nicht benötigt. Erst beim erstmaligen Gebrauch in Notes muss entschieden werden welche Dokumente angezeigt werden sollen. Und da wir ja alle wissen sollten, wofür das Feld in einer view benutzt wird, stelle ich mir die Frage, warum man diese Funktionsweise einem Ordner von vornherein aberkennt???

@Thomas:  Folderreferenz ist dann der umgekehrte Fall. Damit wird im Dokument festgehalten in welchem Ordner es sich befindet; nicht umgekehrt.
Titel: Re: Funktionsweise von Ordnern
Beitrag von: Glombi am 23.11.12 - 09:04:09
Ein Folder ist technisch gesehen eine View. Nachzulesen in Inside Notes auf S. 49 und 51ff

Inside Notes - Die Architektur von Lotus Notes und Domino (http://www.lotus.com/ldd/doc/uafiles.nsf/docs/inside-notes/$File/insidenotes.pdf)

Es ist zwar schon sehr angestaubt und noch gelb, aber das Grundprinzip gilt immer noch.

Andreas
Titel: Re: Funktionsweise von Ordnern
Beitrag von: Thomas Schulte am 24.11.12 - 07:03:15
Interessant, was hier so an Mythen umgeht  ;)  In welchem Item wird denn das abgelegt, Thomas?
Such im Dokument nach $FolderRef, $FolderRefFlags und $FolderRefID. Und ich glaube ich hab mich missverständlich ausgedrückt, das sind die Items in denen das Dokument das im Folder abgelegt wurde die Folderzuordnung enthält.

Was den Teil des Folder Dokumentes angeht, in dem die Information über die im Folder enthaltenen Dokumente steckt.
Ja das ist tatsächlich ein Bestandteil des Folder Dokumentes und ja, es steckt im Item $Collection mit drin.
dieses Item enthält nämlich keine Liste von Werten, sondern ein View Object. Damit hat sich dann auch die Frage nach den Limits erübrigt.

Wer das aus einem anderen Anlass aufgedröselt hat ist Robert Ibsen Voith (http://www.proudprogrammer.no/ppblog.nsf/d6plinks/RIVH-8MGM9B). Ich hab das vor ca 2 Jahren mal ganz intensiv studieren dürfen und bin dabei in den Untiefen der Dokumentation von IBM auch mal auf ein Dokument gestoßen, das die Technischen Hintergründe dahinter erklärt hat. Finde das aber aktuell nicht mehr.