Connector für M-Files

Allgemeines
Datenquelle einrichten
Anwendungsentwicklung
M-Files in Portal-Applikationen
M-Files in Intrexx-Prozessen
Import/Export von M-Files Konfigurationen
Troubleshooting

Allgemeines

Der Connector für M-Files ermöglicht die Verwendung des M-Files Dokumentenmanagementsystem, im Folgenden M-Files DMS genannt, als Speicherort für Dateien, die in Intrexx Datengruppen üblicherweise auf dem lokalen Dateisystem gespeichert werden. Neben dem Speichern von Dateien können zudem Metadaten einer Datei in M-Files über Intrexx gepflegt und bearbeitet werden. Dabei ist es für einen Portalbenutzer transparent, ob eine im Portal verfügbare Datei lokal oder im M-Files DMS vorgehalten wird. Das folgende Diagramm veranschaulicht die Rolle des Connectors und der beteiligten Komponenten.



Ein Dateifeld in einer Datengruppe einer Intrexx Applikation entspricht dem Objekttyp Dokument und einer Klasse im M-Files DMS. Pro Dateifeld können eine oder mehrere Dateien gespeichert werden, abhängig davon, ob es sich bei dem Dokument in M-Files um einen Ein-Datei- oder Mehrfach-Datei-Dokumententyp handelt.

Dateien können nicht nur im M-Files DMS gespeichert werden, sondern auch in einem Intrexx Portal direkt aus M-Files geöffnet bzw. heruntergeladen werden. Der Zugriff auf M-Files erfolgt dabei unter einem bestimmten M-Files-Benutzer, wodurch alle Berechtigungen in M-Files berücksichtigt werden. Je nach Authentifizierungsmethode können sich Intrexx Portalbenutzer direkt an M-Files anmelden oder der Zugriff erfolgt über einen sogenannten statischen Benutzer, der im Dateifeld Konfiguration hinterlegt wird.

Grundsätzlich wird Intrexx im Zusammenspiel mit M-Files als das führende System betrachtet. Das bedeutet, dass in Intrexx Dateien hochgeladen und Metadaten erfasst werden und dann an M-Files übergeben werden. Dabei werden Metadaten in M-Files und zusätzlich in Intrexx Datengruppenfeldern gespeichert, wobei Dateien nur im M-Files-DMS gespeichert werden.

Eine Volltextsuche in den Inhalten der Dokumente ist über Intrexx nicht ohne weiteres möglich, da die Dateien nur in M-Files vorliegen. Hierfür wird empfohlen, die Suche des M-Files Web Access Client zu verwenden.

Im Intrexx Prozessdesigner stehen für M-Files die gleichen Aktionen zur Verfügung, wie für normale Intrexx Datengruppen auch. Dadurch lassen sich Dateien von Intrexx nach M-Files und umgekehrt prozessgesteuert übertragen.

Datenquelle einrichten





Über das Kontextmenü kann die neue Datenquelle angelegt werden.



Weitere Informationen zu den Funktionen des Kontextmenüs erhalten Sie hier.

Anwendungsentwicklung

Datengruppen

Um Metadaten und Dokumente über Intrexx in M-Files speichern zu können, wird eine Intrexx Datengruppe benötigt. Fremddatengruppen werden zurzeit nicht vom Connector unterstützt. Die Felder der Datengruppe können dann mit M-Files-Metadaten-Feldern verknüpft werden. Für Dateien wird der Datengruppe ein Dateifeld hinzugefügt, das eine spezielle FileHandler-Klasse für M-Files erhält.

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.

Im ersten Schritt werden nun die Felder für die Metadaten angelegt, die später mit M-Files verknüpft werden sollen.



Erstellen Sie eine Datengruppe für die M-Files-Verbindung oder wählen Sie eine vorhandene in Ihrer Applikation aus. Fügen Sie der Datengruppe alle benötigten Datenfelder hinzu, die mit Feldern in M-Files verknüpft werden sollen. Zunächst muss die Entscheidung getroffen werden, wie ein Datensatz in Intrexx mit einem Dokument-Objekt in M-Files verbunden werden soll. Dazu kann entweder ein generierter Wert (z.B. eine GUID) als gemeinsame ID für Intrexx und M-Files generiert werden, der dann sowohl im Intrexx-Datensatz als auch im M-Files Objekt in einem eigenen Feld gespeichert wird. Alternativ wird die Objekt ID aus M-Files im Intrexx Datensatz gespeichert.

Folgende Felder werden mindestens in der Datengruppe benötigt:

Dateifelder

Nachdem alle Felder für die M-Files-Metadaten in der Datengruppe angelegt wurden, kann das Dateifeld für die M-Files-Dokumente erstellt werden.



Fügen Sie dazu der Datengruppe ein neues Feld vom Typ Datei hinzu und klicken Sie auf mehr…:



Im Dialog wählen Sie unter Datentyp des Primärschlüssels die Option Anderer Handler und in der Auswahlliste den Eintrag de.uplanet.lucy.server.mfiles.connector.MFilesFileHandler aus. Bestätigen Sie mit OK.



Mit Klick auf Datenfeld bearbeiten öffnen Sie den Eigenschaftendialog des neuen Datei-Datenfeldes.



Auf dem Reiter Allgemein werden der Titel des Feldes sowie die zuvor ausgewählte Handlerklasse angezeigt. Daneben werden spezifische Angaben benötigt: Mit der letzten Option Dateien aus M-Files auch in Ansichtstabellen anzeigen wird gesteuert, ob die Inhalte von M-Files Dateifeldern auch in Ansichtstabellen angezeigt werden sollen.

Die Option Dateien aus M-Files auch in Ansichtstabellen anzeigen kann zu einer hohen Systemauslastung führen, da die Dokumente pro Datensatz in M-Files ermittelt werden müssen. Wir empfehlen, die Dokumente nur auf Ansichtsseiten eines Datensatzes anzuzeigen.

Metadaten Feldzuordnung


M-Files Pflichtfelder

Um ein Dokument bzw. Objekt erfolgreich in M-Files erstellen oder ändern zu können, definiert M-Files eine Menge von Metadaten-Feldern, die zwingend benötigt werden und Felder, deren Verwendung optional ist aber empfohlen wird. Im Folgenden werden sowohl die Pflichtfelder als auch die optionalen Felder beschrieben, die über Intrexx gepflegt werden sollten - über Feldzuordnung oder benutzerspezifische Werte.

Pflichtfelder Je nach verwendeter Dokumentenklasse können weitere Felder in M-Files als Pflichtfelder definiert sein.

Optionale Felder

Zuordnung von Intrexx Feldern

Im nächsten Schritt werden nun über den Reiter Feldzuordnung Intrexx-Datenfelder bzw. -Werte den M-Files-Metadaten-Feldern zugeordnet.



Auf der linken Seite des Dialogs werden die M-Files-Metadatenfelder des zuvor gewählten Vault aufgelistet, rechts die Felder der Intrexx-Datengruppe, ggfs. die Felder einer Eltern-Datengruppe und benutzerspezifische Werte. Zur besseren Übersicht können die M-Files-Felder nach Klasse gefiltert werden. Pflichtfelder in M-Files werden mit einem gekennzeichnet.

Mit den Pfeil-Schaltflächen können M-Files-Felder und Intrexx-Datenfelder zugeordnet werden. Beim Speichern eines Datensatzes in Intrexx wird der Wert des Intrexx-Datenfeldes automatisch im verknüpften M-Files-Feld gespeichert. Dabei ist zu beachten, dass der Datentyp in M-Files kompatibel zu dem des Intrexx-Datenfeldes ist.

Zuordnung von benutzerspezifischen Werten

Neben Datenfeldern können M-Files-Felder auch benutzerspezifische Werte zugewiesen werden. Klicken Sie dazu auf Wert hinzufügen.



Wählen Sie hier einen statischen Wert, Systemwert, eine GUID oder einen Null-Wert aus. Dies ist z.B. hilfreich, wenn für das M-Files-Pflichtfeld Klasse immer der gleiche Wert verwendet werden soll. So kann hier ein statischer Wert 10 erstellt und der Klasse zugewiesen werden. Auf gleiche Art und Weise können so berechnete Datumswerte oder Systemwerte wie z.B. der aktuelle Intrexx Benutzer angelegt 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 standardmäßig nicht in Intrexx-Datenfeldern, sondern nur in M-Files Feldern gespeichert. Für bestimmte Zwecke ist es notwendig, einen statischen Wert auch in einem Intrexx-Datenfeld zu speichern. Dies ist z.B. der Fall, wenn die ID-Ermittlung aus Intrexx gewählt wurde und eine GUID dafür generiert werden soll. Diese wird als GUID-Wert definiert 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.



Hier kann die Einstellung Wert in Datenfeld speichern aktiviert werden. Klicken Sie OK.



Die Einstellung Wert in Datenfeld speichern kann in der Feldzuordnung mit Klick auf Wert in Datenfeld speichern bearbeitet werden. Klicken Sie auf Wert hinzufügen.



Wenn Sie hier die Option Statischer Wert wählen, können die Einstellungen mit Klick auf Statischen Wert bearbeiten definiert werden.



Wählen Sie den gewünschten Datentyp aus (Zeichenkette, Zahl, Boolean (Logischer Wert), Datum/Uhrzeit). Im Bereich Wert wird der feste Wert eingetragen, wobei Sie bei einem Datum/Uhrzeit-Datenyp die Möglichkeit haben, das Datum dynamisch anzupassen. Beim Datentyp Zeichenkette kann mit einem Klick auf GUID einfügen eine eindeutige ID erzeugt werden, die direkt im Feld Zeichenkette eingetragen wird. Wählen Sie in Zeitzone die gewünschte Zeitzone aus. Klicken Sie OK.



Wenn Sie hier die Option Systemwert wählen, können die Einstellungen mit Klick auf Systemwert bearbeiten geändert werden.



Wählen Sie hier den gewünschten Typ aus. Beim Typ Benutzerwert können Felder aus der Benutzerverwaltung gewählt werden. Bei den Typen Requestwert, Sessionwert und Verarbeitungskontext wird der Name der Variablen im Feld Wert eingetragen. Im unteren Bereich des Dialogs können Sie regeln, was als Systemwert eingetragen werden soll, wenn kein Wert gesetzt ist.

Zuordnung von Auswahllisten

Wie Intrexx bietet auch M-Files die Möglichkeit, Auswahllisten für Datenfelder zu definieren. Felder mit Auswahllisten haben in M-Files den Datentyp Lookup bzw. MultiSelectLookup (für Listen mit Mehrfachauswahl). Jeder Eintrag einer Auswahlliste in M-Files hat dabei eine eindeutige ID (Typ Integer), die letztendlich im Objekt gespeichert wird.



Auswahllisten in M-Files können Werte aus Intrexx-Datenfeldern oder statische Werte zugewiesen werden. Dabei 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 vom Typ Integer gewählt, so muss sichergestellt werden, dass es in der M-Files-Auswahlliste einen entsprechenden Eintrag mit diesem ID-Wert gibt. Alternativ kann der Eintrag in der Liste über den Anzeigewert ermittelt werden. Wird z.B. ein String-Feld dem Listenfeld zugewiesen, so muss der darin gespeicherte Wert einem Anzeigewert in der M-Files Auswahlliste 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. Der entsprechende Dialog dafür wird über Optionen hinter einem M-Files-Lookup/MultiSelectLookup-Feld aufgerufen. Standardmäßig werden die Werte über die ID ermittelt.

Authentifizierung

Als letzter Schritt der Dateifeld-Konfiguration kann über den Reiter Authentifizierung definiert werden, welcher Portalbenutzer für die Authentifizierung beim Zugriff auf den M-Files-Vault ermittelt werden soll.



Standardmäßig wird hier der aktuell angemeldete Portal-Benutzer verwendet. Besteht für diesen keine M-Files Sitzung und es wurde in der Konfiguration Benutzername/Passwort als Authentifizierungsmethode gewählt, so wird der Benutzer im Portal aufgefordert, sich an M-Files anzumelden. Es gibt Anwendungsfälle, bei denen Zugriffe auf M-Files immer über den gleichen M-Files Benutzer erfolgen sollen, unabhängig welcher Portalbenutzer aktuell angemeldet ist. Dies ist z.B. der Fall, wenn es nicht zu jedem Intrexx Benutzer einen M-Files Benutzer gibt oder grundsätzlich Dokumente aus Intrexx immer unter dem gleichen Benutzer in M-Files gespeichert werden sollen. Dazu kann in dem Dialog ein sogenannter Statischer Benutzer gewählt werden. Hier handelt es sich um einen Intrexx Benutzer, dem in der M-Files Konfiguration ein M-Files Benutzerkonto zugewiesen wurde. Über den Dialog kann auch direkt ein statischer Benutzer angelegt werden. Sobald ein solcher Benutzer in dem Dateifeld hinterlegt wird, erfolgen alle Zugriffe auf M-Files über die Datengruppe unter diesem M-Files Benutzerkonto. Das bedeutet, dass eine interaktive Anmeldung an M-Files im Portal nicht mehr notwendig ist. Dadurch lassen sich auch einfache Single-Sign-On-Szenarien realisieren, ohne auf die Kerberos Authentifizierung zurückgreifen zu müssen.

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
de.uplanet.lucy.server.mfiles.connector.rtdata.RtDataGroupTableMFiles
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.

Dadurch ist 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.

M-Files in Portal-Applikationen

Authentifizierung

Beim ersten Zugriff auf eine Portal-Applikation mit einer Datengruppe, die M-Files Metadaten-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 Windows integrierte Authentifizierung aktiv 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. Dem Portalbenutzer stehen dabei mit M-Files-Datengruppen die gleichen Funktionen zur Verfügung, wie mit normalen Intrexx-Datengruppen. Bezüglich der Dateioperationen gibt es nur wenige Besonderheiten zu beachten.

Dateioperationen in Ansichtstabellen

M-Files-Datei-Datenfelder können in Ansichtstabellen platziert werden, um Dateien direkt aus Tabellen zu öffnen. Standardmäßig werden aus Performancegründen jedoch keine Dateien aus M-Files in Datei-Datenfeldern angezeigt, wenn sie in einer Ansichtstabelle dargestellt werden. Aktivieren Sie dazu die Option Dateien aus M-Files auch in Ansichtstabellen anzeigen in der Datei-Datenfeld-Konfiguration. Sollen Dokumente direkt aus Tabellen heraus heruntergeladen werden können, muss dies in den Optionen 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.

Dateioperationen in Ansichtsseiten

M-Files-Dateien werden auf Ansichtsseiten über die Kontrolle Dateiauswahl Ansicht dargestellt.



Auch hier kann ein Download der Dateien ermöglicht werden.

Dateioperationen in Eingabeseiten

Mit der Kontrolle Dateiauswahl 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 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 über Löschen 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 vom Typ Single File können Dateien aktualisiert bzw. ersetzt werden, in dem zunächst eine bestehende Datei entfernt und dann die neue Datei hochgeladen wird.

Dateioperationen in Auswahllisten

Um dem Portalbenutzer die Pflege der M-Files Metadaten so einfach wie möglich zu machen, bietet es sich an, für Auswahllisten in M-Files identische Auswahllisten auf Eingabeseiten in Intrexx anzulegen und als Speicherwert entweder ID oder 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 Werteliste Classes 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 Auswahlliste Kunde 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 vom Typ String sein muss und in der M-Files-Dateifeldkonfiguration die Ermittlung des Listeneintrags über den Anzeigewert erfolgen muss.

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.

Ein weiterer Ansatz, um Metadaten zwischen Intrexx und M-Files stets synchron zu halten, besteht durch Verwendung von Prozessen.

Suche in M-Files Dokumenten - Mögliche Suchoptionen

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. Lediglich Metadaten, die in Intrexx Datengruppen gespeichert werden, sind auch über die Intrexx-Suche durchsuchbar.

Die M-Files-Web-Service-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.

Suche in M-Files Dokumenten - 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.

Suche in M-Files Dokumenten - 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 erhalten, um gefundene Dokumente darin zu öffnen. Im Folgenden wird die Umsetzung beider Ansätze beschrieben.

Suche in M-Files Dokumenten - M-Files Volltextsuche - 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.



Im nächsten Schritt öffnen Sie die Registerkarte Abhängigkeiten in den Eigenschaften der Ansichtstabelle. Klicken Sie dort auf Abhängigkeit hinzufügen, um eine neue Abhängigkeit zu definieren. Zunächst wird ein auslösendes Ereignis benötigt. Klicken Sie dazu auf Ereignis hinzufügen und wählen Sie als Kontrolle das Eingabefeld und als Ereignis z.B. onclick aus.



Anschließend wird ein Filter benötigt. Klicken Sie dafür auf Filter im Expertmodus bearbeiten im Bereich Filter. Kopieren Sie nun folgendes XML-Fragment in den Editor innerhalb des <filter></filter> Elements:
de.uplanet.lucy.server.mfiles.connector.rtdata.RtDataGroupTableMFiles
<exp op="" type="in">
	<arg content="DAD4BDABD500CD3710605887224DBD48812B22D3" type="fieldguid"/>
	<arg content="de.uplanet.lucy.server.mfiles.connector.rendering.MFilesSearchFilterHandler" defaultReturnValue="0" mfilesCfgGuid="FDD463A8CFBE240F3F23CD8249418B2DE20321F5" mfilesVaultGuid="{C12E1F56-D69B-4F04-8EC8-BAE18B99532B}" objectProperty="ID" returnType="integer"searchControlName="textcontrol52ACE8C8" singleton="false"type="handlerClass"/>
</exp>
Passen Sie dann die Filter Argumente entsprechend Ihrer Applikation an: Bestätigen Sie nun den Dialog mit OK und veröffentlichen Sie die Applikation. Anschließend steht die Suche im Portal zur Verfügung.

Suche in M-Files Dokumenten - M-Files Volltextsuche - 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.

Suche in M-Files Dokumenten - 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:
<exp op="" type="in">
	<arg content="DAD4BDABD500CD3710605887224DBD48812B22D3" type="fieldguid"/>
	<arg content="de.uplanet.lucy.server.mfiles.connector.rendering.MFilesViewSearchFilterHandler" defaultReturnValue="0" mfilesCfgGuid="FDD463A8CFBE240F3F23CD8249418B2DE20321F5" mfilesVaultGuid="{C12E1F56-D69B-4F04-8EC8-BAE18B99532B}" objectProperty="ID" returnType="integer" viewPathControlName="textcontrol52ACE8C8" singleton="false"type="handlerClass"/>
</exp>
Die Bedeutung der Filter-Argumente sind die gleichen wie für die Volltextsuche mit Ausnahme des Arguments viewPathControlName. Tragen Sie hier entweder den Namen einer Eingabekontrolle ein, die den Pfad der zu verwendenden M-Files-View enthält. Alternativ können Sie auch einen fixen View-Path hier eintragen, 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 View MyProposals 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 befindet sich im Titel des Eigenschaften Dialogs. 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.

M-Files in Intrexx-Prozessen

Benutzerwechsel Aktion

Da in Prozessen keine interaktive Benutzeranmeldung an Fremdsystem möglich ist, muss im Prozess vor dem Auslösen von M-Files Aktionen zunächst eine Anmeldung an M-Files stattfinden. Dazu stehen zwei verschiedene Optionen zur Verfügung, über die ein in der M-Files Konfiguration hinterlegter zusätzlicher Benutzer für die Authentifizierung ausgewählt werden kann. Für Timer-gesteuerte Datengruppen-Prozesse kann der Benutzer direkt in der Timer Konfiguration gewählt werden.



Eine andere Möglichkeit bietet die Benutzerwechsel-Aktion. Mit dieser ist es möglich, innerhalb eines Prozesses auf den M-Files-User zu wechseln.



Dazu erstellen Sie eine neue Benutzerwechsel-Aktion und wählen unter Aktionstyp M-Files. Im nächsten Schritt kann dann der Benutzer ausgewählt werden, unter dem die folgenden Aktionen ausgeführt werden sollen.

Metadaten Synchronisation

Im Gegensatz zu Dateien werden die Metadaten eines über Intrexx in M-Files gespeicherten Dokuments in den Intrexx-Datengruppen-Feldern gespeichert. Wenn Metadaten eines Dokuments direkt in M-Files geändert werden, können diese nicht ohne weiteres unmittelbar automatisiert in Intrexx synchronisiert werden. Daher aktualisiert Intrexx die Metadaten eines M-Files-Objekts automatisch, sobald der Datensatz auf einer Ansichts- oder Eingabeseite geöffnet wird. Um die aktuellen Metadaten auch in Intrexx zu speichern, muss der Benutzer anschließend auf Speichern klicken. Dieser Vorgang lässt sich über einen Prozess auch automatisieren, so dass die Metadaten einer Intrexx-Datengruppe in regelmäßigen Abständen mit den Objekten in M-Files synchronisiert werden können. Erstellen Sie dazu einen neuen Prozess und legen Sie ein neues Timer-Ereignis an.



Wählen Sie im Timer-Konfigurationsdialog die M-Files-Datengruppe aus und definieren Sie ggfs. einen Filter. Im nächsten Schritt müssen Sie einen Benutzer auswählen, für den in der M-Files Konfiguration statische Anmeldedaten hinterlegt wurden.



Fügen Sie nun an den Timer-Ereignisbehandler eine neue Datengruppen-Aktion an und wählen Sie Datensatz ändern. Als Zieldatengruppe wird die gleiche Datengruppe wie im Timer und als Einfacher Filter die beiden ID-Felder ausgewählt. Im nächsten Schritt Feldzuordnung können Sie nun die Felder aus der Ausgangsdatengruppe der Zieldatengruppe zuweisen, für welchen die M-Files-Metadaten neu gelesen und gespeichert werden sollen. Bitte beachten Sie dabei, dass die Dateifelder hier nicht synchronisiert werden dürfen, da ansonsten eine neue Version in M-Files erstellt wird. Nach dem Beenden des Dialogs kann der Prozess gespeichert und ausgeführt werden. Durch das Einlesen der Datensätze aus der Ausgangsdatengruppe werden die Metadaten von M-Files neu gelesen und im nächsten Schritt wieder in den zugewiesenen Datenfeldern in Intrexx gespeichert.

Dateitransfer zwischen Intrexx und M-Files

Üblicherweise werden Dateien und Dokumente physisch nur auf dem M-Files-Server gespeichert und von Intrexx zur Laufzeit geladen, wenn ein Benutzer auf eine M-Files-Datei im Portal zugreift. Unter Umständen kann es auch sinnvoll sein, Dateien von M-Files nach Intrexx zu übertragen oder bestehende Dateien aus Intrexx Portalen nach M-Files zu kopieren. Dazu können in den Datengruppen-Aktionen Dateifelder zwischen Intrexx und M-Files-Datengruppen zugewiesen werden. Wird von einer M-Files-Datengruppe gelesen und in eine Intrexx-Datengruppe geschrieben, werden die Dateien aus M-Files auf den Intrexx-Portalserver kopiert. Umgekehrt können Dateien aus Intrexx-Applikationen nach M-Files kopiert werden, indem von einer Intrexx-Datengruppe gelesen und in eine M-Files-Datengruppe geschrieben wird. Über Filter auf die Ausgangsdatengruppe kann festgelegt werden, welche Datensätze und damit Dateien an das jeweilige Zielsystem übertragen werden sollen. Das folgende Beispiel verdeutlicht die Übertragung von Dateien aus Intrexx nach M-Files:



Zunächst werden die Datensätze Timer-gesteuert aus einer Intrexx-Datengruppe gelesen. Anschließend findet über eine Benutzerwechsel-Aktion eine Anmeldung am M-Files-Server statt. Danach werden die Dateien und Metadaten aus den Intrexx-Datengruppenfeldern über eine M-Files-Datengruppen-Aktion nach M-Files übertragen. Die Feldzuordnung sieht dabei wie folgt aus:

Import/Export von M-Files Konfigurationen

Alle Informationen zu diesem Thema finden Sie hier.

Troubleshooting

Request Tracing

Zur Fehleranalyse können die M-Files Anfragen und Antworten in der Portal Logdatei protokolliert werden. Aktiviert wird das Tracing wie folgt:
  1. Öffnen Sie die Datei log4.properties aus dem Portalverzeichnis /internal/cfg mit einem Texteditor Ihrer Wahl.
  2. Navigieren Sie zum Abschnitt logging for M-Files und ändern Sie den Wert von INFO auf DEBUG:
    # logging for M-Files
    log4j.logger.de.uplanet.lucy.server.mfiles.connector=INFO, File
    
  3. Führen Sie einen Neustart des Portal-Dienstes durch.
  4. Bei jeder M-Files Aktion werden nun die Request Details in der portal.log Datei protokolliert.
Beispiel für ein Request/Response Tracing Eintrag:
DEBUG MFilesHttpRequest[WebConnectorWorker-localhost:8102-3]
M-Files request: http://mfiles/REST/objects/0/112/latest
DEBUG MFilesHttpRequest[WebConnectorWorker-localhost:8102-3]
M-Files response: {"Title":"Test1","EscapedTitleWithID":"Test1(ID 112)","DisplayID":"112","ObjVer":{"Version":4,"ID":112,"Type":0}

SSL Verbindungen

Für SSL Verbindungen zwischen dem Intrexx Portal Server und einem M-Files Service muss das Zertifikat der Certificate Authority, die das Service Zertifikat ausgestellt hat, dem Zertifikatsspeicher des Intrexx Portal Servers hinzugefügt worden sein. Eine Ausnahme bilden selbstsignierte Zertifikate, die nicht von einer bekannten Certificate Authority ausgestellt wurden. Um SSL Verbindungen zu Diensten mit selbstsignierten Zertifikaten zu ermöglichen, muss in diesem Fall im Intrexx Server die Prüfung der "Certificate Chain" deaktiviert werden. Dies ist auf Service Ebene über eine System Property möglich. Öffnen Sie dazu die Datei <INTREXX_HOME>/org/<PORTAL_NAME>/internal/cfg/portal.cfg mit einem Texteditor und fügen Sie dem Abschnitt <environment> einen neuen <systemProperty> Eintrag hinzu:
<systemProperty name = " de.uplanet.lucy.server.mfiles.connector.ignoreServerCertificates" value="true"/>
Nach dem Speichern der portal.cfg Datei muss der Portal-Dienst neu gestartet werden, damit die Änderungen wirksam werden.