Für das Speichern von Metadaten und Dokumenten über Intrexx in M-Files wird eine Intrexx-Datengruppe
verwendet. Fremddatengruppen werden zurzeit nicht vom Connector unterstützt. Die folgenden Datenfelder werden in dieser Datengruppe mindestens benötigt:
IntrexxGUID oder ObjectID/ObjectVersion
Wenn die ID in Intrexx generiert wird (z.B. eine GUID),
die dann sowohl im Intrexx-Datensatz als auch im M-Files-Objekt in einem eigenen Feld gespeichert wird,
erstellen Sie ein String-Datenfeld für den Intrexx-Wert. Soll die Objekt-ID aus M-Files im Intrexx-Datensatz
gespeichert werden, erstellen Sie zwei Integer-Datenfelder - eines für die M-Files-Objekt-ID und ein weiteres für die
M-Files-Objekt-Version.
Titel/Name
Für das Objekt in M-Files wird ein Titel bzw. ein Name benötigt. Legen Sie dazu ein entsprechendes
String-Datenfeld in der Datengruppe an.
Klasse
Objekte in M-Files werden immer einer bestimmten Klasse zugeordnet. Hierfür wird ein Integer-Datenfeld
benötigt. Auf dieses Datenfeld kann verzichtet werden, wenn ein
statischer Wert
für die Klasse verwendet wird.
3. Dateidatenfeld erstellen
Nachdem alle Felder für die M-Files-Metadaten in der Datengruppe angelegt wurden, kann das Datei-Datenfeld
für die M-Files-Dokumente erstellt werden.
Es ist zwar grundsätzlich möglich, mehrere M-Files-Dateifelder zu erstellen, empfohlen wird aber
nur eines pro Datengruppe, da sonst die Zuordnung der Metadaten unübersichtlich wird.
Wählen Sie hier den Datei-Datentyp aus und klicken Sie dann auf den Link "mehr…".
Hier kann der de.uplanet.lucy.server.mfiles.connector.MFilesFileHandler ausgewählt werden. Klicken Sie hier und in dem Dialog, in dem Sie
den Datentyp ausgewählt haben, auf OK.
Alle Informationen zu diesen Einstellungen finden Sie
hier.
5. Eigenschaften - Reiter Feldzuordnung
5.1. Pflichtfelder
Diese Metadaten werden, um ein Dokument bzw. Objekt erfolgreich in M-Files erstellen oder ändern zu können,
zwingend benötigt:
Titel/Name
Für das Objekt in M-Files wird ein Titel bzw. Name benötigt.
Klasse
Objekte in M-Files werden immer einer bestimmten Klasse zugeordnet.
Je nach verwendeter Dokumentenklasse können weitere Felder in M-Files als Pflichtfelder definiert sein.
5.2. Optionale Felder
Diese Felder sind optional, aber empfohlen.
Single File (boolean)
Definiert, ob das Dokumentenobjekt eine (true) oder mehrere Dateien (false) beinhalten kann.
Standardmäßig können mehrere Dateien gespeichert werden.
Wie Sie die Feldzuordnung herstellen und weitere Informationen zum Thema finden Sie
hier.
5.3. Zuordnung von benutzerspezifischen Werten
Neben Datenfeldern können M-Files-Feldern auch benutzerdefinierte Werte zugewiesen werden,
z.B., wenn für das M-Files-Pflichtfeld Klasse immer der gleiche Wert verwendet
werden soll.
Wert hinzufügen
Öffnet einen Dialog,
in dem ein benutzerdefinierter Wert erstellt werden kann.
Hier kann nun z.B. der statische Wert 10 erstellt und dem M-Files-Feld Klasse
in der Feldzuordnung zugewiesen
werden. Auch berechnete Datumswerte oder Systemwerte wie z.B. der aktuelle Intrexx-Benutzer können
als benutzerdefinierter Wert zugeordnet werden. Ein weiteres Beispiel wäre die Generierung einer GUID
zur Laufzeit als eindeutige Datensatz-ID für Intrexx und M-Files.
Berechnete Werte werden in der Regel nicht in Intrexx-Datenfeldern, sondern nur in M-Files-Feldern gespeichert.
Für bestimmte Zwecke muss ein statischer Wert auch in einem Intrexx-Datenfeld gespeichert werden, z.B., wenn die
ID-Ermittlung aus Intrexx
eingestellt wurde und eine GUID dafür generiert werden soll.
Diese wird hier als benutzerdefinierter Wert eingestellt und einem eigens dafür angelegten M-Files-Feld zugewiesen.
Da diese GUID später auch in Intrexx zur Verfügung stehen muss, um das entsprechende Objekt in
M-Files zu ermitteln, werden Sie nach der Zuweisung des Wertes an ein M-Files-Feld automatisch gefragt,
ob der Wert auch
in ein Intrexx-Datenfeld gespeichert werden soll.
5.4. Zuordnung von Auswahllisten
M-Files-Felder für Wertelisten haben in M-Files den Lookup- bzw. MultiSelectLookup-Datentyp (für Listen mit Mehrfachauswahl).
Jeder Eintrag einer Werteliste in M-Files hat dabei eine eindeutige ID (Typ Integer), die letztendlich
im M-Files-Objekt gespeichert wird. Wenn ein Intrexx-Datenfeld oder ein benutzerdefinierter Wert einem solches M-Files-Feld
zugeordnet wird, ist zu
beachten, dass über den Wert in Intrexx der entsprechende Eintrag der Auswahlliste in M-Files ermittelt werden kann.
Wird als Zuweisung ein Intrexx-Datenfeld mit Integer-Typ zugeordnet, so muss sichergestellt
werden, dass es in der M-Files-Werteliste einen entsprechenden Eintrag mit diesem ID-Wert
gibt. Alternativ kann der Eintrag in der Liste über den Anzeigewert ermittelt werden.
Optionen
Ist ein Lookup- bzw. MultiSelectLookup-M-Files-Feld in der Feldzuordnung
markiert, so öffnet ein Klick auf die Schaltfläche,
die Sie in der Optionen-Spalte finden, einen Dialog,
in dem eingestellt werden kann, wie die Werte von Wertelisten in M-Files ermittelt werden.
Wird der Werteliste z.B. ein String-Feld zugewiesen, so muss der darin gespeicherte Wert
einem Anzeigewert in der M-Files-Werteliste entsprechen. Dabei ist die Groß-/Kleinschreibung zu beachten. Welche
Strategie hier gewählt wird, hängt vom gewünschten Anwendungsfall ab. Sind die IDs der Listeneinträge in M-Files bekannt,
so sollte der Eintrag über die ID ermittelt werden. Ist dies nicht der Fall, bietet sich die
Ermittlung über den Anzeigewert an. In der Regel werden die Werte über die ID ermittelt.
6. Eigenschaften - Reiter Authentifizierung
Hier kann definiert werden, welcher Portalbenutzer für die Authentifizierung beim Zugriff auf den M-Files-Vault ermittelt werden soll.
Alle weiteren Informationen finden Sie hier.
7. M-Files-Datengruppen-Handler
Sobald einer Intrexx-Datengruppe ein Dateifeld für M-Files hinzugefügt und dieses konfiguriert wurde, wird automatisch die
datahandler-Klasse in den Expert-Attributen der Datengruppe auf
geändert. Dies kann auch nachträglich vorgenommen werden. Die M-Files spezifische Datengruppen-Handler-Klasse
ist optional, bietet aber zusätzliche Funktionalität im Zusammenspiel von Intrexx und M-Files. So wird eine
automatische Synchronisation der Metadatenwerte aus M-Files vorgenommen,
sobald ein M-Files-Datensatz auf einer Intrexx-Ansichts- oder Eingabeseite geladen wird.
Damit wird gewährleistet, dass ein Intrexx-Portalbenutzer stets die aktuellen Metadaten aus M-Files angezeigt
bekommt. Unter Umständen kann es nämlich vorkommen, dass Metadaten in M-Files geändert wurden und in Intrexx
noch die vorherigen Werte gespeichert sind.
8. M-Files in Portal-Applikationen
8.1. Authentifizierung
Beim ersten Zugriff auf eine Portal-Applikation mit einer Datengruppe, die M-Files-Datei-Datenfelder
enthält, wird der Benutzer aufgefordert, sich am M-Files-Vault anzumelden. Pro Sitzung und M-Files-Vault ist das
nur einmal erforderlich. Sollte die Integrierte Windows-Authentifizierung
für das Portal eingestellt sein, wird der Benutzer automatisch beim ersten Zugriff angemeldet. Eine Anmeldung wird nicht benötigt, wenn im Dateifeld der
Datengruppe ein statischer Benutzer für die M-Files Authentifizierung
hinterlegt wurde. Nach erfolgreicher Authentifizierung kann über die Intrexx-Applikation auf M-Files-Daten zugegriffen werden.
8.2. M-Files-Dateien in Ansichtstabellen
M-Files-Datei-Datenfelder können in Ansichtstabellen
platziert werden, um Dateien direkt aus Tabellen zu öffnen. In der Standardeinstellung werden aus Performancegründen jedoch
keine Dateien aus M-Files in Datei-Datenfeldern angezeigt, wenn sie in einer Ansichtstabelle dargestellt werden.
Mit der Option Dateien aus M-Files auch in Ansichtstabellen anzeigen
in der Datei-Datenfeld-Konfiguration kann die Anzeige aktiviert werden. Sollen Dokumente direkt aus Tabellen
heraus heruntergeladen werden können, muss dies in den
Eigenschaften des Datei-Datenfeldes
in der Ansichtstabelle aktiviert werden.
Bitte beachten Sie, dass keine Thumbnails für M-Files Dateien angezeigt werden können, weil diese nicht auf
dem Intrexx-Portalserver, sondern nur in M-Files vorgehalten werden. Somit können auch keine Vorschaubilder
von Intrexx generiert werden.
Auch hier kann ein Download der Dateien ermöglicht werden.
8.4. M-Files-Dateien auf Eingabeseiten
Mit dem Dateiauswahl-Element
auf Eingabeseiten können M-Files-Dateien und -Dokumente über Intrexx hochgeladen,
geändert und in M-Files gespeichert werden. Es stehen dabei alle Funktionen von
Standard-Intrexx-Datei-Datenfeldern zur Verfügung.
Neben dem Freischalten von Downloads kann im Eigenschaftendialog
auf dem Reiter Optionen
auch das Upload-Verhalten definiert werden. Grundsätzlich werden neue Dateien bei M-Files-Mehrfachdateifeldern
den vorhandenen Dateien hinzugefügt. Es ist aber auch möglich, Dateien zu ersetzen.
Außerdem kann eingestellt werden, wie viele Dateien maximal pro Dateifeld gespeichert werden dürfen. Auch die
maximale Größe einer Datei kann vorgegeben werden. Daneben gibt es noch erweiterte Funktionen zum Upload von
Dateien, die sich auf das Verhalten der Kontrolle im Portal auswirken.
Im Browser können Dateien per Drag & Drop auf die Dateikontrolle gezogen und damit automatisch auf den Intrexx-Server
hochgeladen werden. Beim Speichern der Eingabeseite werden die hochgeladenen Dateien zusammen mit den
Informationen in den Metadaten an den M-Files Server übertragen. Die neue Objekt-ID und die Version werden in
Intrexx gespeichert. Bestehende Dateien können hier mit Klick auf das
Löschen-Symbol in M-Files gelöscht werden.
Die Datei wird damit nicht physisch gelöscht. Es wird lediglich eine neue Version des
Dokumentenobjekts in M-Files erstellt, die die entfernte Datei nicht mehr enthält. Bei
Objekten mit Single File-Typ können Dateien aktualisiert bzw.
ersetzt werden, in dem zunächst eine bestehende Datei entfernt und dann die neue Datei
hochgeladen wird.
8.5. M-Files-Dateien in Auswahllisten
Um dem Portalbenutzer die Pflege der M-Files-Metadaten so einfach wie möglich zu machen, bietet es sich an,
für Wertelisten in M-Files identische Auswahllisten
auf Eingabeseiten in Intrexx anzulegen und als Speicherwert
entweder die ID oder den Anzeigewert zu wählen. Dementsprechend ist dann die Werteermittlung (ID/Anzeigewert) für das
Metadatenfeld einzustellen. Die IDs und Anzeigewerte von M-Files-Auswahllisten
können über das M-Files-Server-Administrationstool ermittelt werden. Öffnen Sie dazu den gewünschten Vault und darunter
den Punkt "Value Lists" unterhalb von "Metadata Structure (Flat View)". Es werden alle Wertelisten im rechten Bereich angezeigt. Über das
Kontextmenü Contents einer Liste
werden die Einträge und deren ID der Auswahlliste angezeigt. Das folgende Beispiel zeigt die Anzeigewerte und
deren ID der Classes-Werteliste in M-Files.
In M-Files werden die Einträge für Auswahllisten in den meisten Fällen automatisch über in Beziehung stehende
Objekte generiert, z.B. wenn in einer Kunden-Auswahlliste alle M-Files Objekte vom
Typ Kunde als Einträge aufgelistet werden. Diese Einträge können Sie über die
Metadata Structure (Hierarchical View) einsehen.
Daneben gibt es auch die Möglichkeit, Auswahllisten per SQL-Abfragen aus externen Systemen zu befüllen. Dies
bietet sich an, wenn die Einträge aus einer Intrexx-Datengruppe kommen sollen. So kann eine automatische
Synchronisation zwischen Intrexx und M-Files sichergestellt werden. Weitere Informationen dazu finden Sie
in der M-Files-Dokumentation. In Intrexx kann nun auf einer Eingabeseite eine Auswahlliste erstellt werden,
deren Einträge die einer M-Files Werteliste reflektieren. Dazu können die
Werte aus anderen Applikation,
Referenzen oder benutzerspezifisch definiert werden. Das folgende Beispiel zeigt, wie die M-Files-Werteliste
"Customer" auf einer Intrexx Eingabeseite nachgebildet wird. In diesem Fall werden
die Anzeigewerte als Speicherwerte benutzt, was bedeutet, dass das zugewiesene Metadaten-Feld in der Datengruppe
ein String-Typ sein muss und in der
M-Files-Dateifeld-Konfiguration
die Ermittlung des Listeneintrags über den Anzeigewert erfolgen muss.
9. Metadaten-Aktualisierung
Da Dokumente und Dateien nur im M-Files-Vault gespeichert und vorgehalten werden,
sind diese stets auf dem aktuellen Stand, wenn darauf über Intrexx zugegriffen wird. Etwas anders verhält es sich
mit den Metadaten eines Dokuments. Diese werden sowohl in Datenfeldern der Intrexx-Datengruppe als auch in M-Files
gespeichert. Das hat den Vorteil, dass auch in Intrexx nach Metadaten gesucht und auf Datensätze zugegriffen werden kann,
ohne dass jedes Mal ein Zugriff auf den M-Files-Server stattfinden muss. Der Nachteil dieses Ansatzes ist, dass sich mit der
Zeit die Metadaten eines Dokuments in M-Files ändern können, während in Intrexx noch die alten Werte gespeichert sind.
Da Intrexx über Änderungen an Metadaten nicht automatisch von M-Files informiert werden kann, werden Metadaten
in Intrexx aktualisiert, sobald ein Datensatz auf einer Ansichts- oder Eingabeseite geladen wird, der ein
M-Files-Dateifeld beinhaltet. Beim Speichern der Seite werden die aktualisierten Metadaten wieder in Intrexx
gespeichert. Wenn Felder auch in M-Files aktualisiert werden sollen, muss die Object-ID als Eingabefeld auf
Eingabeseiten aufgenommen werden.
Mit Prozessen können Metadaten zwischen Intrexx und M-Files stets synchron gehalten werden.
10. Suche in M-Files-Dokumenten
Dokumente und Dateien in M-Files-Datenfeldern werden nur auf dem M-Files Server aufbewahrt. Dadurch ist es für die
Intrexx-Suchmaschine nicht möglich, die Inhalte der Dateien zu indexieren, um sie für Suchanfragen in Intrexx verfügbar
zu machen. Es kann lediglich nach Metadaten, die in Intrexx-Datengruppen gespeichert sind, gesucht werden.
Die M-Files-Webservice-Schnittstelle bietet die Möglichkeit, über die M-Files-Volltextsuche nach Dokumenten in M-Files
zu suchen. Die Ergebnisse müssen dann entsprechend für Intrexx aufbereitet werden, so dass sich bei Klick auf einen
Treffer das Dokument im M-Files-Web-Access-Client öffnet oder der entsprechende Datensatz via Filter in Intrexx mit
der Verknüpfung zum M-Files-Dokument geöffnet wird.
10.1. Intrexx Suche
Um in Intrexx gespeicherte Metadaten eines Dokuments in M-Files zu suchen, können Sie wie gewohnt die
Suche in einer Applikation konfigurieren. Erstellen Sie dazu eine Suchkonfiguration und
wählen Sie die Metadaten-Felder in der M-Files-Datengruppe aus, die von der Suchmaschine indexiert werden sollen.
Anschließend können M-Files-Datensätze über die Suchfunktion in Intrexx nach Metadaten durchsucht werden. Ein weiterer
Ansatz ist die Suche über dynamische Filter in Intrexx-Applikationen.
Dabei werden Filter auf Ansichtstabellen definiert, die entsprechend Datensätze gemäß den Werten in den Metadaten-Feldern
der Intrexx-Datengruppe filtern.
10.2. M-Files Volltextsuche
Soll neben den Metadaten auch in den Dokumenten nach Stichwörtern gesucht werden, bietet sich die M-Files-Volltextsuche an.
Dabei kann direkt in Intrexx nach in Intrexx verwalteten M-Files-Dokumenten gesucht und die Treffer angezeigt werden.
Es bietet sich auch die Möglichkeit, im Portal nach Dokumenten in M-Files zu suchen, die nicht über Intrexx erfasst wurden.
Für den letzteren Fall benötigen die Portalbenutzer auch Zugriff auf den M-Files Web Access Client, um gefundene
Dokumente darin zu öffnen. Im Folgenden wird die Umsetzung beider Ansätze beschrieben.
10.2.1. Volltextsuche über Intrexx verwaltete M-Files Dokumente
Im folgenden Beispiel soll in M-Files-Dokumenten gesucht werden, für die es einen entsprechenden Datensatz in einer
M-Files-Datengruppe gibt. Dazu erstellen Sie eine Ansichtstabelle auf die M-Files-Datengruppe für die Suchergebnisse.
Zudem wird ein Eingabefeld für den Suchausdruck benötigt.
Fügen Sie dort eine Abhängigkeit hinzu.
Klicken Sie im nächsten Dialog
auf Ereignis hinzufügen und wählen Sie als Kontrolle
hier z.B. die Suchen-Schaltfläche mit dem onclick-Ereignis aus.
Klicken Sie dann auf im Eigenschaftendialog der Abhängigkeit
auf Filter im Expertmodus bearbeiten.
Kopieren Sie das folgende XML-Fragment in den Editor in das <filter></filter> Element:
Passen Sie dann die Filter Argumente entsprechend Ihrer Applikation an:
Im ersten <arg> Element tragen Sie unter "content"
die Datengruppen-Feld-GUID ein, die die M-Files-Objekt-IDs
oder die von Intrexx generierte ID enthält. Die weiteren Angaben beziehen sich auf die Attribute
des zweiten <arg>-Elements.
mfilesCfgGuid
Die GUID der zu verwendenden M-Files-Konfiguration
(kann in den Expert-Settings des M-Files-Dateifelds ermittelt werden).
mfilesVaultGuid
Die GUID des M-Files-Vaults (kann in den
Expert-Settings des M-Files-Dateifelds ermittelt werden).
mfilesImpersonationGuid (optional)
Soll die Suchanfrage über einen statischen M-Files-Benutzer erfolgen, kann hier die Intrexx-User-GUID dieses
Benutzers angegeben werden.
searchControlName
Tragen Sie hier den Namen der Eingabekontrolle für den Suchausdruck ein.
objectProperty
Hier wird dem Filter mitgeteilt, ob als Ergebnis der M-Files-Suche die Objekt-IDs
oder der Wert aus einem frei wählbarem M-Files-Property-Type zurückgegeben werden soll.
Für Objekt-IDs tragen Sie ID ein, für Property-Types die ID des
M-Files-Property-Types. Die Entscheidung, ob ID oder Property als Rückgabewert gewählt werden
soll, hängt davon ab, was Sie bei der ID-Ermittlung
im M-Files-Dateifeld definiert haben. Wenn es in der Datengruppe ein Feld für die M-Files-Objekt-ID gibt, empfiehlt es
sich, ID zu wählen. Wenn von Intrexx eine ID generiert wird und diese in
einem M-Files-Metadaten-Feld gespeichert wird, so tragen Sie hier die ID des Property-Types ein
(zu ermitteln über das M-Files Administrations Tool).
returnType (optional)
Gibt den Datentyp des Rückgabewert der Funktion an, entweder Integer
oder String, Standardwert ist Integer.
defaultReturnValue (optional)
Gibt den Rückgabewert der Funktion an, wenn die Suche in M-Files keine Ergebnisse liefert.
10.2.2. Volltextsuche über nicht mit Intrexx verwaltete M-Files Dokumente
Über die M-Files-REST-Web-Service-Schnittstelle lassen sich auch in Groovy-Action-Handlern
und Velocity-Templates nach M-Files-Dokumenten suchen und die Ergebnisse in Intrexx darstellen.
Dazu sind die Aufrufe der Suche und die Darstellung der Ergebnisse selbst zu programmieren, da
diese immer anforderungsspezifisch sind.
10.3. Suche über M-Files Views
Entsprechend der Volltextsuche ist es auch möglich, auf Basis bestehender Views in M-Files zu suchen.
Dazu gehen Sie genau so vor wie bei der Volltextsuche. Lediglich ein anderer Filter-Handler kommt für
die Suche per Views zum Einsatz:
Die Bedeutung der Filter-Argumente sind die gleichen wie für die Volltextsuche mit Ausnahme
des viewPathControlName-Arguments. Tragen Sie hier entweder den Namen
einer Eingabekontrolle ein, die den Pfad der zu verwendenden M-Files-View enthält, oder einen fixen View-Path,
so dass die Suche immer über die gleiche View ausgeführt wird.
Der View-Path setzt sich aus der ID der Views in M-Files zusammen. Soll z.B. über die
MyProposals-View in M-Files gesucht werden, so muss zunächst die ID dieser
View in M-Files ermittelt werden. Öffnen Sie dazu im M-Files Client die Eigenschaften der View.
Die ID der View finden Sie im Titel des Eigenschaftendialogs. Um diese View in Intrexx zu
verwenden, sähe der View-Path wie folgt aus:
V110
Soll über eine View-Hierarchie gesucht werden, könnte folgender View-Path verwendet werden:
V110/V111
Alternativ können auch andere View-Path-Ausdrücke verwendet werden. Weitere Informationen dazu
finden Sie in der M-Files-Web-Service-Dokumentation.