Konfigurationsdatei und allgemeine Einstellungsmöglichkeiten

Die meisten globalen Einstellungen zur Individualisierung von Sciformation ELN werden in der Konfigurationsdatei "serverConfiguration.properties" vorgenommen. Standardmäßig wird die Datei "glassfish-7.0.11/glassfish/domains/domain1/applications/SciELN/WEB-INF/configuration/serverConfiguration.properties" verwendet, aber es ist empfehlenswert, die Systemeigenschaft "sciformationConfigFolder" (über "Konfigurationen > server-config > Systemeigenschaften" in der Glassfish-Administrationskonsole) auf einen Pfad außerhalb der Glassfish-Domäne zu setzen und dort eine eigene "serverConfiguration.properties" zu pflegen, so daß bei erneutem Bereitstellen der Anwendung oder nach Updates keine Änderungen verloren gehen. Gelegentlich kann es sinnvoll sein, Unterschiede zwischen der Standardkonfiguration und der eigenen abzugleichen.

Die Konfigurationsdatei beeinflußt die folgenden Bereiche:

Sciformation ELN baut technisch auf dem Framework ZK auf, das für einige grundlegende Einstellungen die Konfigurationsdatei zk.xml verwendet, z.B.: die maximale Dauer eine Sitzung oder die maximale Dateigröße für Uploads. Um Änderungen gegenüber der Standarddatei "glassfish-7.0.11/glassfish/domains/domain1/applications/SciELN/WEB-INF/zk.xml" umzusetzen, kopieren Sie diese in ein Verzeichnis außer der Glassfish-Domäne, nehmen dort die Änderungen vor und setzen die Systemeigenschaft "org.zkoss.zk.config.path" auf den neuen Pfad, wie im vorigen Absatz beschrieben.

Gestaltung und Corporate Design

Sciformation ELN kann den Namen Ihrer Organisation und das Logo auf der Loginseite bzw. im Fenstertitel anzeigen. Setzen Sie dazu den Parameter organization_name auf den jeweiligen Text, und wählen Sie ein Logo aus dem Verzeichnis "src/main/webapp/images/logos", indem Sie den Parameter organization_logo auf "logos/xyz.png" setzen. Der Parameter organization_code kann genutzt werden, um Formulare oder Programmlogik anzupassen, ohne neue Dateiversionen zu erzeugen. title_color und title_bgcolor steuern Textfarbe des Firmennamens bzw. Hintergrundfarbe für Firmenname und Logo auf der Loginseite.

Internetzugriff durch den Server

Ihr Sciformation-ELN-Server sollte in der Lage sein, auf das Internet zuzugreifen, um in Onlinekatalogen zu suchen oder Literatur abzurufen. Durch die Parameter http_client_proxy_host und http_client_proxy_port können Sie - falls nötig - einen Proxyserver setzen. Durch Änderungen von http_client_socket_timeout oder http_client_connection_timeout können Sie einstellen, wie lange beim Verbindungsaufabu maximal gewartet werden soll, z.B. zur Anpassung an langsame Internetverbindugen. Der Parameter http_client_ua legt fest, als welcher Browser sich der Server zu erkennen geben soll.

Ein SMTP-Server muß angegeben werden, wenn Nutzer oder Lieferanten per Email durch das System kontaktiert werden sollen:

Für Zugriffe auf SSH-Server werden die Dateien ~/.ssh/known_hosts, ~/.ssh/id_rsa und ~/.ssh/id_rsa.pub verwendet, um die Identität der Gegenstelle zu prüfen oder die Authentifizierung durchzuführen. Durch die Konfigurationseinstellungen ssh.known_hosts, ssh.id_rsa bzw. ssh.id_rsa.pub können bei Bedarf andere Dateien angegeben werden.

Sicherheit

Die Sicherheit der in Sciformation ELN gespeicherten Forschungs- und Personendaten ist wichtig, unberechtigter Zugriff muß unterbunden werden. Da schwache Paßwörter ein hohes Sicherheitsrisiko darstellen, wird Sciformation ELN nur den Paßwortrichtlininen entsprechende Paßwörter akzeptieren mit:

Übersteigt die Anzahl fehlgeschlagener Loginversuche die mit login_max_retries definierte Grenze, so wird die betreffende IP-Adresse für eine Dauer vonban_ip_duration Sekunden blockiert, der jeweilige Benutzername für ban_user_duration Sekunden. Lokale Adressen (127.0.0.1, localhost oder 0:0:0:0:0:0:0:1) sowie IP-Adressen, die in der kommagetrennten Liste ban_ip_whitelist enthalten sind, werden nicht gesperrt. Gleiches gilt für Benutzernamen, die in ban_user_whitelist enthalten sind.

Ist pwd_reset_allowed auf "true" gesetzt, dann wird dem Nutzer die Möglickeit angeboten, über einen Link an die eigene Email-Adresse ein zufälliges Paßwort generieren zu lassen. Dieser Link hat eine Gültigkeitsdauer von pwd_reset_duration Millisekunden, der Standardwert ist 30 min. server_base_address muß auf die Basis-URL der betreffenden Sciformation-ELN-Installation gesetzt sein, damit diese Möglichkeit funktioniert. Darüber hinaus muß zum Emailversand der SMTP-Server korrekt konfiguriert sein.

Gruppenmitgliedschaften aus LDAP werden bei Verwendung von LDAP zur Benutzerauthentifizierung - d.h. wenn das entsprechende Sicherheits-Realm in der Glassfish-Administrationskonsole konfiguriert wurde - auf Gruppenmitgliedschaften in Sciformation ELN abgebildet. Als Ergänzung, oder wenn Ihr LDAP-Verzeichnis nicht zur Zuordnung von Gruppenmitgliedschaften eingerichtet ist, können statische Gruppen- und Rollenlisten kommagetrennt in der Konfigurationsdatei definiert werden (über groups_for_ldap_users bzw. roles_for_ldap_users), so daß neue Nutzer nach dem Login zumindest minimale Benutzerrechte erhalten. Sollen Mitgliedschaften nur neu hinzugefügten – nicht aber bereits bestehenden – Benutzern gegeben werden, dann verwenden Sie dafür die Parameter groups_for_new_auth_users bzw. roles_for_new_auth_users.

Um Inkonsistenzen durch konkurrierende Änderungen an Daten zu vermeiden, werden diese vor dem Öffnen zum Schreiben gesperrt. In seltenen Fällen, z.B. durch Verbindungsabbrüche oder Browserabstürze, kann es sinnvoll sein, diese Sperren außer Kraft zu setzen. Der Parameter lock_kick_timeout legt fest, nach wievielen Sekunden der Inaktivität ein anderer Benutzer eine Sperre zurücksetzen kann, lock_kick_timeout_self gilt für eigene Sperren. In jedem Fall muß vor dem Zurücksetzen einer Sperre eine Warnung quittiert werden.

Der Benutzername des Hauptadministrators kann mit dem Parameter admin_user definiert werden, dies sollte normalerweise "seadmin" sein. In admin_mail sollte die Email-Adresse des Administrators gespeichert werden.

Optimierung der Leistung

Beim Zugriff auf die Datenbank werden Ergebnisse zeilenweise durch die Komponente EclipseLink gelesen und in Objekte überführt. Zur Verringerung der Datenbank- und Prozessorlast kann eine Höchstzahl von entity_cache_size im Arbeitsspeicher zwischengespeichert werden. Durch Reduzierung dieser Zahl kann der Speicherbedarf verringert werden, dafür steigt der Rechenbedarf und die Datenbanklast, und umgekehrt.

Ergebnislisten und Darstellungsoptionen (Spaltenanordnung, Status klappbarer Gruppenfelder) werden für Zeiträume (in Sekunden) zwischengespechert, die durch result_cache_max_age bzw. view_cache_max_age vorgegeben werden. Dadurch kann auf bestehende Listen im Rahmen von Listenoperationen verwiesen werden, und die Darstellungsoptionen können beim Öffnen neuer Browser-Tabs weiter verwendet werden. Diese Zwischenspeicherung verbraucht Speicher, falls nötig, kann der Garbage-Collector diese auch schon vor Erreichen der Speicherfrist entfernen. Beim Ausloggen werden zwischengespeicherte Listen ebenfalls entfernt. Beim Suchen & Auswählen eines Datensatzes mit Hilfe der EmbeddedEditor-Komponente werden Verweise für eine Dauer von maximal select_cache_max_age zwischengespeichert.

Beim Sortieren von Ergebnislisten und beim Datenexport müssen alle enthaltenen Objekte im Speicher vorgehalten werden, was für große Listen zu Problemen führen kann. Deshalb kann über den Parameter sort_max_count eine Höchstzahl Listeneinträge eingestellt werden, bei deren Überschreitung die Sortiermöglichkeit deaktiviert wird. Der Standardwert ist 100 000. Analog dazu kann über den Parameter export_max_count die Anzahl exportierbarer Datensätze begrenzt werden, standardmäßig ebenfalls 100 000. Mit dem Parameter label_max_count kann die Zahl der Etiketten begrenzt werden, die auf einmal gedruckt werden können, standardmäßig 5 000. Die Benutzer werden auf die Beschränkung hingewiesen.

Zur Erkennung evtl. Fehler werden Datenbankabfragen auf dem Server protokolliert. Für ausgewählte Objekttypen kann dies deaktiviert werden, indem der Parameter query_log_blacklist mit einer kommagetrennten Liste von Klassennamen belegt wird. Dies ist insbesondere für "OrgMessage" empfehlenswert, da diese Tabelle in regelmäßigen Abständen abgefragt wird.

Substruktur- und Reaktionssuchen werden auf eine durch concurrent_threads vorgegebene Höchstzahl von Threads aufgeteilt, da diese Aufgabe sehr gut parallelisierbar ist. Bei der Rechtevererbung, die mit einer hohen Datenbanklast verbunden ist, dürfen maximal concurrent_inheritance_threads Threads parallel arbeiten. Standardmäßig wird - abhängig von der Zahl der CPU-Kerne - ein Wert zwischen 1 und 3 verwendet. Für Katalogabfragen, die hauptsächlich Netzwerklast erzeugen, werden Aufgaben auf maximal concurrent_network_threads Threads verteilt. Beim Schreiben ins angeschlossene Archivsystem werden maximal concurrent_archive_threads eingesetzt.

Über den Parameter max_sessions_per_user kann eine Höchstzahl an parallelen Sitzungen pro Benutzername festgelegt werden. Bei Überschreitung der Grenze werden Sitzung beendet, deren Nutzung am längsten in der Vergangenheit liegt.

Rechtevererbung

Zur Vereinfachung der Rechteverwaltung vererbt Sciformation ELN automatisch Benutzerrechte zwischen verknüpften Datenbankeinträgen, z.B.

Berechtigungen, die als "Nicht vererben" gekennzeichnet sind, werden nicht vererbt.

Grundsätzlich ist dieser Mechanismus wichtig, um Daten in konsistenter Weise darzustellen, da sonst manche Einträge nur indirekt sichtbar wären, aber nicht in regularen Suchergebnissen erscheinen. Sollten entsprechende Vererbungen in Einzelfällen nicht gewünscht sein, so kann dies durch Setzen von Parameter des Typs prevent_inheritance_XyzSourceEntity_XyzTargetEntity unterbunden werden. Anstelle bestimmter Klassennamen kann auch "*" als Platzhalter angegeben werden.

Speicherung von Binärdaten

Sciformation ELN kann Binärdaten wie Analytikdaten, Grafiken, etc. wahlweise

speichern. Die betreffenden Konfigurationsdateien befinden sich im für storage_config_folder angegebenen Ordner, dieser kann außerhalb der Glassfish-Domäne liegen, so daß bei erneutem Bereitstellen der Anwendung oder nach Updates Änderungen nicht verloren gehen. Analytikrohdaten werden komprimiert gespeichert, unter Verwendung des Formats, das für default_compress_format angegeben wurde. Zulässige Werte sind

Der Parameter hash_algo legt fest, nach welchem Verfahren Prüfsummen für Binärdaten berechnet werden. Der Standard-Algorithmus ist SHA-256.

Das durch Sciformation ELN zu verwendende Archivsystem kann über den Parameter archive_adapter_class eingestellt werden, derzeit:

Berichtserstellung

Sciformation ELN erzeugt Berichte im PDF- oder DOCX-Format mit Hilfe von OpenHTMLToPDF bzw. docx4j aus HTML, das durch JSP-Seiten generiert wird. Dabei wird eine Ergebnisliste mit einer Vorlage kombiniert, die Unterreports enthalten kann. Beim Eintragen einer angepaßten Vorlage in der Datenbank (über "System > Berichte & Export > Berichtsvorlage hinzufügen") können Sie eine Vorlagendatei angeben sowie einen Unterordner, aus dem Unterreports geladen werden sollen. Wenn Sie eigene Vorlagen oder angepaßte Unterreports für bestimmte Datenbankobjekte anlegen möchten, dann können Sie bei den Parametern report_folder_XyzEntity eigene Pfade angeben. Liegen beispielsweise Ihre Vorlagen in "/WEB-INF/clientSpecific/xyz/reports/ElnReaction", dann sollten Sie den betreffenden Parameter report_folder_ElnReaction auf "/WEB-INF/clientSpecific/xyz/reports" setzen. Für fehlende Unterreports werden, sofern vorhanden, die Standardrealisierungen verwendet. Häufig verwendete Unterreports, die nicht auf einen einzelnen Entity-Typ festgelegt sind, werden im Verzeichnis "common" abgelegt, für das mittels report_folder_common ein alternativer Pfad angegeben werden kann.

Spezielle Schriftarten werden (im TTF-Format) aus einem Verzeichnis geladen, das Sie mit dem Parameter font_folder angeben können. Im betreffenden JasperReport muß die Schriftart mit dem Attribut "pdfFontName" angegeben werden, "pdfEncoding" sollte in der jeweiligen JRXML-Datei auf "Identity-H" gesetzt sein sowie "isPdfEmbedded" auf "true".

Wenn der Parameter report_pdfa auf "true" gesetzt ist, dann werden Reports im PDF/A-Format generiert, d.h. alle Schriften werden eingebettet und jegliche Transparenz entfernt. Die Dateigröße kann bis zu zehnfach größer sein.

Barcodes

Barcodes könne in Sciformation ELN verwendet werden, um Chemikalien auszuleihen/zurückzugeben, zur Durchführung einer Inventur oder zur schnellen Suche nach dem betreffenden Datenbankeintrag. Präfixe können in der Konfigurationsdatei eingerichtet werden, um Barcodes leicht unterscheiden zu können, z.B. legt die Einstellung von barcode_1 auf "CdbContainer" fest, daß mit einer "1" beginnende Barcodes immer einer Chemikalie zugewiesen sind. Für einen Objekttyp können auch mehrere Präfixe erlaubt werden. Ist der Parameter auto_generate_barcodes auf "true" gesetzt, so werden automatisch einzigartige Barcodes in dem Format generiert, das durch barcode_item_format definiert ist, unter Verwendung des ersten Präfixes, sofern nicht auto_barcode_XyzEntity ausdrücklich ein zu verwendendes Präfix festlegt. Wenn das gewählte Format eine variable Länge aufweist, dann kann die gewünschte Länge über barcode_var_length gesteuert werden, ansonsten wird die fest vorgegebene Länge (8 für EAN8 oder 13 für EAN13) verwendet. Falls beim Drucken ein Barcode nicht im Standardformat barcode_item_format gedruckt werden kann, dann kann wird die über barcode_fallback_format vorgegebene Alternative verwendet. Hier sollte ein möglichst "tolerantes" Format wie "Code128" eingestellt sein.

Falls bestehende Barcodes keiner Präfix-Systematik folgen, dann können Sie global_barcodes auf "true" setzen, wodurch nach dem Scannen eines Barcodes eine größere Zahl an Tabellen zur Identifizierung durchsucht werden müssen.

Es ist auch möglich, mit mehreren Barcode-Formaten parallel zu arbeiten, die als kommagetrennte Liste für barcode_allowed_formats angegeben werden sollten. In diesem Fall sollte auch barcode_no_validation auf "true" gesetzt werden, außer wenn alle Formate eine Prüfziffer beinhalten. Die Validierung der Prüfziffer ist insbesondere bei Handeingaben sinnvoll, Barcodescanner führen i.d.R. bereits eine interne Prüfung durch.

Aktuell können

durch Barcodes markiert werden. Im Sinne der Einheitlichkeit und Interoperabilität sind folgende Standardeinstellungen für die Präfixe zu empfehlen (Fettdruck=automatische Erzeugung): Für einige Objekttypen ist bereits spezielle Verarbeitungslogik vorhanden, z.B. zum Ausleihen/Zurückgeben oder zur Zuordnung von Gebinden zu Lagern.

Darüber hinaus können Barcodes auch zur Eingabe bestimmter Befehle verwendet werden, z.B. zur Eingabe von Gebindegrößen oder Füllungsgraden ohne Tastatur oder Maus, einfach durch das Scannen bestimmter Barcodes. Um für diese Barcodes "99" als Präfix zu verwenden, setzen barcode_99 auf "ControlBarcode" und legen Befehlsarten fest, indem Sie barcode_cmd_xx auf einen der folgenden Werte setzen:

Dabei steht xx für zwei Ziffern, z.B. barcode_cmd_02.

Wenn Sie value_list_container_sizes_mass auf "1,5,10,25,50,100,250" setzen, dann definiert das eine Liste von 1 g, 5 g, 10 g,... für Gebindegrößen. value_list_container_sizes_vol und value_list_container_fill_level arbeiten analog, sie ergeben eine Liste, die durch "Chemikalien > Organisieren > Inventarisierungs-Barcodes drucken" aufgerufen werden kann, mit Barcodes im Format, das für barcode_cmd_format angegeben wurde. Setzen Sie Parameter vom Typ barcode_cmdcode_cmd auf Zahlen 0,1,..., so werden Befehle wie

zugewiesen. Ist value_list_barcode_cmds eine kommagetrennte Liste der cmd-Codes "del,cancel,inv_on,inv_off", so werden diese für "Inventarisierungs-Barcodes drucken" mit ausgegeben.

Ein Befehls-Barcode "99010058" wird auf folgende Weise ausgewertet:

  1. "99" drückt aus, daß der Barcode einen Befehl auslöst
  2. Aufgrund von "01", wird das System nach barcode_cmd_01 suchen, das auf "container_sizes_mass" gesetzt ist
  3. "005": Die nominale Größe des aktiven Gebindes wird auf 100 g gesetzt, weil Eintrag Nr. 5 (von Null beginnend gezählt) der Liste value_list_container_sizes_mass 100 ist
  4. "8": EAN8-Prüfziffer

Mit Hilfe von Barcode-Terminals können barcodeunterstützte Aktionen wie Ausleihen/Zurückgeben/Inventur mit einer vereinfachten Benutzeroberfläche ausgeführt werden. Ein Barcode-Terminal kann entweder über das Menü per "Chemikalien > Barcode-Terminal lokal starten" gestartet werden - dann kann nur der aktuell angemeldete Benutzer Aktionen vornehmen. Alternativ können die IP-Adressen dediziert für die Aufgabe genutzter Computer über "Chemikalien > Organisieren > Barcode-Terminal anlegen" eingerichtet werden, z.B. für die Anbringung des Geräts neben einem Chemikalienschrank. Die Startseite des Geräts sollte auf "[server]/bcterminal" gesetzt werden. Die Zeit bis zum automatischen Logout bei Inaktivität kann für diese Terminals durch den Parameter bct_logout_timeout (in Sekunden, Standard sind 60) gesetzt werden. Ist der Inventarisierungsmodus aktiv, dann gilt ein längerer Zeitraum, der über bct_logout_timeout_inv (Standard 600) eingestellt wird.

Registrierungsfunktion

Sciformation ELN bietet eine anpaßbare Registrierungsfunktion, um das Anlegen neuer Benutzerkonten zu vereinfachen, sofern diese Aufgabe nicht bereits durch eine LDAP-Anbindung übernommen wird. Die Funktion wird aktiviert, indem ein zuständiger Betreuer durch Angabe des Gruppennamens einer Administratorengruppe für den Parameter signup_group festgelegt wird, deren Mitglieder die Anfragen per Email an die hinterlegten Email-Adressen erhalten. Zur Registrierung öffnen zukünftige Nutzer die Seite "[server]/signup.jsp?language=de", machen die benötigten Angaben und bestätigen diese mit Klick auf "Konto beantragen". Der Betreuer erhält eine Email auf Basis der Vorlage "signupEmail.ftl" und kann einen Link anklicken, der das Formular zum Anlegen neuer Benutzer mit den angegebenen Daten im Browser öffnet. Nach Prüfung der Angaben kann er das Benutzerkonto anlegen, wobei idealerweise per Email ein zufällig generiertes Paßwort an die angegebene Email-Adresse des neuen Nutzer gesendet wird. Die Registrierungsseite kann entsprechend der jeweiligen Bedürfnisse angepaßt werden:

Verschmelzen von Datensätzen

Das Verschmelzen von Datensätzen kann hilfreich sein, um Doppeleinträge in der Datenbank aufzulösen. Vor dem Verschmelzen prüft der Controller, ob der aktive Benutzer

  1. den verbleibenden Datensatz bearbeiten darf,
  2. den zu entfernenden löschen darf und
  3. alle mit letzterem verbundenen Datensätze editieren darf.
Es kann vorkommen, daß Administratoren die letzte Bedingung in manchen Fällen aus praktischen Gründen ignorieren wollen. Diese kann deaktiviert werden.

Datenmigration

Import von open enventory-Datenbanken

Existierende open enventory-Datenbanken können über "System > Datenbank importieren" nach Sciformation ELN importiert werden (Benutzer, Laborbücher, Projekte, Literatur, Chemikalien). Voraussetzung ist, daß Sie eine Datenbankverbindung "jdbc/mysql" zu dem Server eingerichtet haben, auf dem open enventory betrieben wird. Stellen Sie sicher, daß "zeroDateTimeBehavior" für den betreffenden Connection Pool auf "convertToNull" gesetzt ist.

Es existieren zwei Importmodi:

  1. Der Import in einer einzelnen Transaktion: nur für kleine Datenbanken sinnvoll
  2. Der Import aufgeteilten Transaktionen: sollte für größere Datenbank unbdeingt genutzt werden, der Parameter import_keymap_folder gibt an, in welchem Ordner Dateien gespeichert werden sollen, die die Primärschlüssel-Zuordnung sichern, um bei Bedarf abgebrochene Importprozesse wieder aufnehmen zu können.

Export/Import von Sciformation ELN-Datenbankteilen

Um Teile der aktuellen Datenbank in eine andere Installation zu übertragen, öffnen Sie im Menü "System > Datenbankteil exportieren". Geben Sie einen Ordnernamen an - der Ordner wird auf dem Server erstellt in dem Verzeichnis, das durch den Parameter export_file_folder festgelegt wird. Wählen Sie Chemikaliendatenbanken und Laborjournale, die exportiert werden sollen. Klicken Sie dann , der nachfolgende Prozeß kann mehrere Stunden andauern.

Um auf diese Weise exportierte Chemikalien, Laborjournale und damit verknüpfte Daten in eine Sciformation-ELN-Installation zu importieren, legen Sie den exportierten Ordner im Serververzeichnis ab, das durch import_file_folder festgelegt wird. Öffnen Sie dann den Menüpunkt "System > Datenbankteil importieren" und wählen Sie den betreffenden Ordner aus. Nehmen Sie Einstellungen zur Deduplizierung von Daten vor und entscheiden Sie, welche Gruppen/Benutzer erstellt, bestehenden zugeordnet oder ignoriert werden sollen. Klicken Sie auf , um den Importprozeß zu starten, der mehrere Stunden andauern kann.

Diagnose und Testing

Der Parameter debug=true bewirkt zusätzliche Diagnoseausgaben, insbesondere zu Datenbankabfragen. Dies kann zu einer Verlangsamung des Systems führen. Mit dem Parameter debug_email_recipient können durch Sciformation ELN versendete Emails an eine andere Adresse umgelenkt werden, um Nutzer bei Tests nicht durch Nachrichten zu irritieren.

Oberflächendesigns

Die Optik der ZK-Komponenten kann durch sog. Themes angepaßt werden. Der Parameter themes gibt in der Kofigurationsdatei als kommagetrennte Liste an, zwischen welchen Themes Benutzer auswählen können. Das Standardtheme wird über default_theme eingestellt. Mit Hilfe des ZK Theme Roller können Administratoren auch eigene Designs umsetzen, die für Sciformation ELN verwendet werden können.

Portale

Portale dienen dem schnellen Zugriff auf häufig verwendete Anwendungsfälle, die Nutzer können diese bei Bedarf leicht umarrangieren. Die standardmäßig in den Registerkarten angebotenen Anwendungsfälle können Sie wie folgt konfigurieren:

Die Namen der Anwendungsfälle können Sie unter dem Menüpunkt "System > Liste der Anwendungsfälle" nachschlagen.

Formatierte Texteingabe

Im manchen Fällen kann es gewünscht sein, über reinen Text hinausgehende Benutzereingaben zu ermöglichen, die HTML-Formatierungen aufweisen. Für diesen Zweck können Komponenten wie tinyMCE verwendet werden. Benutzer können dies individuell einstellen, mit dem Parameter wysiwyg_editor kann in der Konfigurationsdatei ein globaler Standard gesetzt werden, aktuell nur "tinymce".

Generell wird die Verwendung von Wyzz empfohlen, das schneller ist und maßgeschneiderte Erweiterungen wie eine Formatierungshilfe für chemische Formeln wie H2SO4 oder griechische Buchstaben enthält. Mit Wyzz können abgelegte Dateien zur betreffenden Liste im Hauptformular hinzugefügt werden, die erzeugten Vorschaugrafiken werden automatisch eingefügt. Für noch nicht gespeicherte Dateien werden die Daten für eine Dauer von uuid_cache_max_age Sekunden im Speicher des Servers zwischengespeichert, so daß Benutzer diese wunschgemäß anordnen können.

Strukturbearbeitung

Wenn Benutzer mit chemischen Strukturformeln oder Reaktionsgleichungen arbeiten, dann benötigen sie hier für eine Editorkomponente. Diese kann als Plugin (wie "ChemDraw®"), als Java-Applet (wie "Marvin") oder als HTML5-basierter Editor wie das integrierte VectorMol ausgeführt sein. Die Auswahl hängt stark von persönlichen Vorlieben, technischen Beschränkungen (Browser, Java-Plugin) und der Verfügbarkeit von Lizenzen für Drittanbieterprodukte ab. Manche Komponenten können nur für Einzelmoleküle genutzt werden, nur einzelne beherrschan auch die Bearbeitung von Reaktionsgleichungen. Aus diesen Gründen können Nutzer unter "Persönliche Einstellungen" eine individuelle Wahl treffen.

Administratoren können einzelne Editoren ausblenden, indem sie den internen Code den kommagetrennten Listen molecule_editor_blacklist bzw. reaction_editor_blacklist anfügen. Externe Komponenten wie "Marvin" oder "MarvinJS" können von externen URLs geladen werden, die durch die Parameter applet_codebase_Marvin oder applet_codebase_MarvinJS eingestellt werden.

Bild- und Analytikdaten

In Sciformation ELN können Sie

Für all diese Funktionen müssen Dateien transferiert und meist konvertiert werden. Die Maximalgröße für hochgeladene Dateien können Sie in der zk.xml des zugrundeliegenden Frameworks einstellen. Unter Umständen möchten Sie aber sehr große Dateien hochladen und nur archivieren, weil der verfügbare Arbeitsspeicher des Servers für eine Konvertierung nicht ausreichend ist. In diesem Fall können Sie über den Parameter raw_data_processing_max_size in der "serverConfiguration.properties"-Datei eine Grenze in bytes festlegen - standardmäßig 150 MB. Darüber hinaus werden Dateien nur noch abgespeichert.

In modernen Browsern können Nutzer auch direkt Bilder der eingebauten Webcam hochladen. Um diese Möglichkeit zu deaktivieren, setzen Sie photo_upload_disabled auf "true".

Druckfunktion

Die Druckfunktion für Formulare und Etiketten benötigt Informationen über Papiergrößen. Wenn Sie neben den standardmäßigen Größen A4 und A4-quer noch weitere Formate anbieten möchten, dann können Sie die Formatdefinitionen im Ordner ablegen, der mit dem Parameter paper_folder angegeben ist. Mit dem Parameter default_paper_format kann eine Standard-Papiergröße zum Drucken eingestellt werden, z.B. "A4" oder "A4L" für das Querformat. Um die Liste der angebotenen Etikettenvorlagen anzupassen, setzen Sie den Parameter label_folder auf einen eigenen Ordner und plazieren Sie dort alle Konfigurationsdateien für verfügbare Etiketten.

Laborbuch und Literaturverwaltung

Sigel und Bezeichnung von Laborjournaleinträgen

Laborjournaleinträgen setzen sich normalerweise aus einem Code des betreffenden Laborjournals und einer fortlaufend vergebenen Nummer zusammen. Allgemein werden unterschiedliche Schreibweisen verwendet, z.B. "FR 063" oder "RUD-UA-123". Administratoren können durch den Parameter lab_notebook_entry_format einstellen, welches Format Sciformation ELN nutzen soll, in der MessageFormat-Syntax.

  1. Sigel
  2. Nummer des Eintrags im Laborjournal

Spezielle Zahlenformate können so realisiert werden: "{0}-{1,number,000}". In diesem Fall sollte auch lab_notebook_entry_number_format auf "{2,number,000}" gesetzt werden, weil dieses Muster zur Erzeugung von Pfaden im Archivsystem genutzt wird.

In den meisten Fällen wird beim Erzeugen von Sigeln automatisch ein freies aus dem Nachnamen des Benutzers erzeugt, allerdings kann es manchmal hilfreich sein, durch Setzen von sigel_enable_editing auf "true" manuelle Änderungen an Sigeln durch Administratoren zuzulassen.

Projekte

Das Trennzeichen innerhalb hierarchisch abgelegter Projekt ("Catalysis / cross-coupling / Palladium / Suzuki") kann durch hierarchy_separator_eln_project in der Konfigurationsdatei eingestellt werden.

Experimente

Der bei der Schnellsuche für Experimente angezeigte Text kann durch den Parameter quicksearch_eln_entry_pattern angepaßt werden, mit

  1. dem Laborjournaleintrag, formatiert wie durch lab_notebook_entry_format festgelegt,
  2. dem von Nutzer eingegebenen Titel und
  3. dem Namen des Ausführenden.

Experimentparameter, die in blacklist_ElnReactionProperty aufgelistet sind, werden nicht in Reports oder bei automatisierten Vergleichen aufgelistet.

Chemische Reaktionen

Beim Planen einer chemischen Reaktion kann auch nach Chargennummern gesucht werden, wenn reaction_component_search_lot_no auf "true" gesetzt ist (zusätzlich zu Namensteilen, CAS-Nr., Summenformel). Durch das Muster reaction_component_container_pattern wird festgelegt, durch welchen Text ein verwendetes Startmaterial in einer Reaktion beschrieben wird, mit

  1. kurzer Text zur Beschreibung der Substanz (Hauptname, Summenformel, CAS-Nr.)
  2. Menge (verfügbar/nominal)
  3. Lagerort (lang)
  4. Ausleiher (ggf.)
  5. Chargennummer
  6. Lagerort (kurz)
  7. eigene Bezeichnung
  8. Lösungsmittel
  9. Name der Abteilung
  10. Kurzname des Lagerorts (keine gesonderte Prüfung der Sichtbarkeitseinstellungen)
  11. voller Name des Lagerorts inkl. Hierarchie (keine gesonderte Prüfung der Sichtbarkeitseinstellungen)
  12. Fach
  13. Reinheit/Konzentration
  14. Behälterart
  15. Barcode
  16. Qualität/Reinheit
  17. Gebinde-ID
  18. Name des Herstellers
  19. Katalognummer des Herstellers
  20. Name des Lieferanten
  21. Katalognummer des Lieferanten
  22. Substanz-ID
Ist display_short_storage_name auf "true" gesetzt, so wird nur der Name des eigentlichen Lagers angezeigt, ohne übergeordnete Ebenen wie Gebäude oder Raum.

Um die stöchiometrischen Koeffizienten unter den betreffenden Komponenten in der Gleichung anzuzeigen, setzen Sie den Parameter reaction_stoich_below auf "true". Benutzer können isolierte Ausbeuten direkt editieren, wenn isolated_yield_editable "true" ist. Andernfalls können diese nur aus isolierter Produktmenge und dem Theoriewert berechnet werden.

Analyenaufträge

Das Zahlenformat zur Bezeichnung einzelner eingereichter Proben kann durch den Parameter ana_request_sample_format im Format String.format angegeben werden. Die Farben der jeweiligen Bearbeitungsstufen können mit Hilfe von Parametern des Typs ana_request_status_color_xx konfiguriert werden, wobei xx folgende Werte annehmen kann:

Analytikdaten

Die Skalierung von Vorschaugrafiken für Analytikmessungen kann über die Parameter eln_ana_data_max_width oder eln_ana_data_max_height gesteuert werden. Ein Wert von "800" für eln_ana_data_max_height ist empfehlenswert. Die Anzahl der Seiten eines PDF-Dokuments, für die eine Vorschaugrafik erzeugt wird, kann über den Parameter pdf_preview_pages geändert werden, der Standardwert ist 1. Analog dazu kann die Anzahl der Vorschau-Frames aus einem Video über den Parameter video_preview_frames gesteuert werden, der Standard ist 3. Wenn Analytikdaten mit einer Reaktionskomponente verknüpft sind, dann kann deren Beschreibungstext mit Hilfe von ana_assignment_eln_reaction_component_pattern erzeugt werden, mit folgenden Variablen:

  1. Hauptname der Substanz und CAS-Nr., oder ersatzweise der Laborjournaleintrag mit der Abkürzung der Komponente ("RUD-UA 123-R1")
  2. Hauptname der Substanz
  3. der Abkürzung der Komponente, wie "R1" oder "A"
  4. die Rollenbeschreibeung, wie "Reaktant R1"
Der Standardwert ist "{0}".

Wen aus den Rohdaten ein Graph generiert werden kann, dann kann dieser mit Hilfe des Dygraphs-Betrachters interaktiv angezeigt werden. Die Standardparameter für den Betrachter können mit dem Parameter dygraph_settings in der Konfigurationsdatei hinterlegt werden. Bitte beachten Sie, daß sich Änderungen nur auf neu abgespeicherte Datensätze auswirken.

Literatur

Sollte der automatisch Download von PDF-Artikeln bei ACS für Ihre Organisation mit Kosten verbunden sein, dann sollten Sie dies deaktivieren, indem Sie literature.acs.avoidAutoBuy auf "true" setzen.

Chemikaliendatenbank

Die Chemikaliendatenbank liefert Informationen über Chemikalien, d.h. verfügbare Mengen, Lagerorte oder Stoffdaten. Der Name ehemaliger Numerierungssysteme für Substanzen oder Gebinde kann durch legacy_id_CdbMolecule bzw. legacy_id_CdbContainer in der Konfigurationsdatei eingetragen werden. Um für eine Chemikalie eine Bezeichnung zu erzeugen, wird das Muster inventory_container_pattern mit folgenden Variablen genutzt:

  1. kurzer Text zur Beschreibung der Substanz (Hauptname, Summenformel, CAS-Nr.)
  2. Menge (verfügbar/nominal)
  3. Lagerort
  4. Ausleiher (ggf.)
  5. Chargennummer
Der Standardwert ist "{0} - {1} - {2}".

Beim Anlegen eines Gebindes wird als zugeordnete Abteilung standardmäßig jene des aktiven Nutzer gesetzt, während für Substanzen "everyone" gesetzt wird. Ist der Parameter set_own_dept_CdbMolecule auf "true" gesetzt, dann werden auch neue Substanzen standardmäßig der Abteilung des aktiven Nutzers zugeordnet.

Name und CAS-Nr. einer Substanz können beim Anlegen auf Basis der Strukturformel abgefragt werden, z.B. bei Diensten wie Cactus. Da hierdurch geheime Strukturformeln preisgegeben werden können, müssen diese Funktionen durch die Parameter auto_name_for_struct und auto_cas_for_struct explizit aktiviert werden. Die Abfragereihenfolge kann über die Parameter auto_name_query_order und auto_cas_query_order gesteuert werden.

Die Abfragereihenfolge, die beim Klick auf "Daten von Anbietern lesen" bzw. beim Datenimport genutzt wird, kann über den Parameter supplier_query_order eingestellt werden. Allgemein ist es vorteilhaft, mit Anbietern zu beginnen, die

Spezialanbieter oder sehr langsame Datenbanken sollten zuletzt abgefragt werden, da in diesen Fällen der Datensatz bereits vorher komplettiert ist. Für die Funktionen "Chemikalien > Substanz bei Anbietern suchen" bzw. "Bestellwesen > Verbrauchsmaterial online suchen" könen bestimmte Anbieter standardmäßig abgewählt werden, indem die internen Codes zur Liste supplier_blacklist als kommagetrennte Liste hinzugefügt werden. Über den Parameter supplier_hitlist_order kann eine vom Alphabet abweichende Reihenfolge der Abfrage festgelegt werden. Die Parameter supplier.lang, supplier.country und supplier.currency können genutzt werden, um eine Standardsprache, ein Land sowie eine Standardwährung für die Anbietersuche zu setzen, sofern der Anbieter dies unterstützt. Um bei einzelnen Anbietern abweichende Werte zu setzen, können Parameter wie supplier.xx.country, etc. ergänzt werden, wobei xx für den internen Code des Anbieters steht, z.B. "sial" für Sigma-Aldrich. In der gleichen Weise können Logindaten hinterlegt werden, über Parameter wie supplier.xx.username und supplier.xx.password.

Wird ein Chemikaliengebinde gelöscht, so wird dieses nur als "entsorgt" markiert, außer der Parameter allow_delete_CdbContainer ist auf "true" gesetzt.

Benutzer können Chemikaliengebinde ausleihen oder zurückgeben, mit Hilfe der Knöpfe in der Liste bzw. der Symbolleiste, oder mit Hilfe eines Barcode-Terminals. Diese Möglichkeit kann vollständig deaktiviert werden, indem borrowing_disabled auf "true" gesetzt wird. Ist borrowing_strict_return_policy auf "true" gesetzt, dann können Gebinde nur erneut ausgeliehen werden, wenn derzeit kein Entleiher eingetragen ist.

Die Sprachen für Sicherheitsdatenblätter können über den Parameter sdb_langs als kommagetrennte Liste von ISO-639-Codes festgelegt werden. Das Ersetzungsverhalten für Sicherheitsdatenblätter kann über den Parameter sdb_replacement_behavior eingestellt werden:

Durch das Setzen von restrict_poison_cabinets auf "true" können giftige Chemikalien nur noch Lagern zugewiesen werden, die als Giftschrank ausgewiesen sind. Der Parameter use_trgs erlaubt es, die Eignung von Lagerplätzen für Lagerklassen gemäß TRGS-510 zu erfassen, oder alternativ mittels generischer Kriterien. Ist use_trgs nicht gesetzt, wird die Funktion aktiviert, sofern supplier.country=DE gesetzt ist. Das Trennzeichen für hierarchisch organisierte Lager wie "Gebäude / Etage / Raum / Schrank" kann über den Parameter hierarchy_separator_org_storage festgelegt werden.

Setzt man old_safety_disabled=true, so wird das Auslesen alter R/S-Sätze und entsprechender Gefahrensymbole unterbunden.

Die in einem Experiment verbrauchten Chemikalienmengen können automatisch vom Bestand abgezogen werden, wenn der Status von "geplant" auf "begonnen" geändert wird. Diese Funktion kann explizit an-/abgeschaltet werden

Um gewisse Verlustmengen abzuschätzen, kann der Parameter bilancing_factor auf eine Fließkommazahl gesetzt werden, z.B. wird für "1.1" ein zusätzlicher Verlsut von 10 % eingerechnet.

Datenabfrage

Durch die Online-Datenabfrage müssen Stoffdaten nur selten manuell eingetragen werden, vielmehr werden die Daten aus Online-Katalogen extrahiert. Ferner können auch Preise für Chemikalien und Verbrauchsmaterial abgefragt werden. Dabei stehen u.a. folgende Parameter zur Verfügung, um die Ergebnisse anzupassen:

Bestellsystem

Das integrierte In-house-Bestellsystem stellt eine gute Ergänzung des Chemikalieninventars dar, und es nutzt Webrobots zum Auslesen von Katalogdaten (siehe Chemikalieninventar für Einstellungsmöglichkeiten). Einfache Anpassungen können in der Konfigurationsdatei erfolgen:

Wenn force_whs_bill_recipient auf "true" gesetzt ist, dann muß beim Eintragen von Kostenstellen ein Abrechnungsempfänger angegeben werden.

Benutzer können Bestellungen für Chemikalien und Verbruachsmaterial aufgeben, die zu Warenkörben gebündelt und an die Lieferanten weitergegeben werden. Der betreffende Workflow kann durch eigene Implementierungen von whs.DefaultWhsIndivOrderController und whs.DefaultWhsSupplierOrderController komplett umgebaut werden, aber in vielen Fällen dürften die nachfolgend aufgeführten Parameter ausreichende Möglichkeiten zur Feinsteuerung bieten:

Für Warenkörbe kann ein kundenspezifischer Wert erfaßt werden, der zur Identifizierung von Lieferscheinen und Rechnungen genutzt wird. Diesem Feld kann über den Parameter legacy_id_WhsSupplierOrder ein Name gegeben werden. Sind Warenkörbe nach delivery_warning_days noch nicht auf "ausgeliefert" gesetzt, so werden sie in der Ansicht "Lieferzeit überschritten" gelistet, damit evtl. Probleme geklärt werden können.

Ist whs_generate_supplier_order_pdf auf "true" gesetzt, dann werden aus Warenkörben Bestell-PDFs erzeugt, wenn der Nutzer den Status von "geplant" auf "bestellt" ändert. Der Nutzer kann das PDF prüfen und die Statusänderung ggf. nicht durchführen. Liegt für den Lieferanten eine gültige Email-Adresse vor, dann kann das PDF auch direkt an den Lieferanten versendet werden, zusammen mit einem automatisch erzeugten Emailtext. Vorlagen für Betreff und Inhalt der Email können für jeden Anbieter individuell eingegeben werden. Die Parameter ordering_mails_subject_xx und ordering_mails_content_xx in der betreffenden Sprache (bzw. ersatzweise ordering_mails_subject und ordering_mails_content) werden genutzt, falls für den betreffenden Anbieter nichts eingetragen ist. Die folgenden Parameter dienen der Feinsteuerung des Emailversands:

Das Modul "Chemikalienverkauf aus Bestand" kann genutzt werden, um Chemiklaien hausintern an Gruppen auszugeben und entsprechende Kosten abzurechnen. Die Funktionalität, insbesondere die Bepreisung, kann durch Python-Skripte individuell angepaßt werden. Abnehmer müssen Angaben zum Zielgebinde machen, sofern nicht der Parameter whs_allow_no_dest_container auf "true" gesetzt ist. Werden ganze Gebinde abgegeben und der Parameter chemical_purchase_whs_set_storage ist "true", dann kann das Chemikalienlager direkt das Ziel-Lager festlegen. Andernfalls muß dies der Empfänger selbst tun, oder das Gebinde ist nicht mehr zugehörig zu einem Lager.

Beim Erstellen hausinterner Abrechnungen kann über den Parameter indiv_order_bill_assignment_date_field eingestellt werden, welches Datum des Bestellprozesses als Stichtag herangezogen wird. Dies ist standardmäßig das Datum, an dem die Ware durch den Lieferanten vollständig geliefert wurde ("supplierDeliveryDate").

Geräteverwaltung

Die Geräteverwaltung erlaubt die Erfassung von Laborgeräten und unterstützt bei deren regelmäßiger Wartung. In der Datei "serverConfiguration.properties" können Sie bestimmte Standardwerte vorgeben:

Tags

Durch Tags können Datenbankobjekte in Kategorien eingeteilt werden. Im Normalfall sind diese Tags als Liste organisiert. Sie können eine Hierarchie mit Eltern/Kind-Beziehungen aktivieren, indem Sie den Parameter tag_hierarchy auf "true" setzen. Dies wird das Formular zum Anlegen bzw. Bearbeiten von Tags ändern, ebenso viel Suchformulare. Mit dem Parameter hierarchy_separator_sys_tag können Sie steuern, wie die Namen verschachtelter Tags aufgebaut werden.

Nachrichten

Das Nachrichtensystem ermöglicht, Nachrichten zwischen Beutzern einer Sciformation-ELN-Installation auszutauschen. Anders als bei Emails kann der Nachrichteninhalt nachträglich durch den Absender bearbeitet werden, ebenso können bereits gesendete Nachrichten zurückgezogen werden. Beim Login wird Nutzern die Zahl der ungelesenen Nachrichten angezeigt, wenn message_display_startup auf "true" gesetzt ist. Ansonsten erfolgen regelmäßig Aktualisierungen alle 2 min, so wie in Ihrer "menu.zul" eingestellt. Für eine Höchstzahl von ungelesenen message_display_count Nachrichten wird eine kurze Vorschau gezeigt. Durch Klick auf die betreffende Zahl gelangen Nutzer immer zur Liste der ungelesenen Nachrichten.

Weitere Einstellungen

Wenn personal_data_self_editing auf "true" gesetzt ist, dann können Nutzer die eigenen persönlichen Daten aktualisieren, ohne daß weitergehende Änderungen z.B. der Benutzerechte möglich sind.

Analytikgeräte und Untersuchungsgegenstände können hierarchisch organisiert werden (wie Projekte oder Lager), die Ebenen werden durch ein Trennzeichen wie in hierarchy_separator_ana_device bzw. hierarchy_separator_eln_exp_object angegeben getrennt.

Configuration file and general options

Most global settings to customize your installation of Sciformation ELN can be made in the main configuration file "serverConfiguration.properties". By default, the file "glassfish-7.0.11/glassfish/domains/domain1/applications/SciELN/WEB-INF/configuration/serverConfiguration.properties" is used, but is it highly advisable to set the System property (via "Configurations > server-config > System properties" in the Glassfish Administration Console) "sciformationConfigFolder" to a path outside the Glassfish Domain and to maintain a copy of "serverConfiguration.properties" there, to avoid that any changes to "serverConfiguration.properties" are lost after redeployment or updating. From time to time, it may be helpful to check for differences between your configuration and the default one, to merge any new parameters into the actually used file.

The configuration can affect the following areas:

ZK, the GUI framework used to create Sciformation ELN, uses an additional configuration file zk.xml to control basic parameters like the duration of sessions or the maximum file size allowed for upload. If you want to use settings different to the default ones in "glassfish-7.0.11/glassfish/domains/domain1/applications/SciELN/WEB-INF/zk.xml", copy the default file to a location to a path outside the Glassfish Domain, make the required changes and set the System property "org.zkoss.zk.config.path" to that path, like described above.

Styling and corporate design

Sciformation ELN can display your organization's name and logo on the login screen or in the window title. Set the parameter organization_name to the respective text, and choose a logo from the directory "src/main/webapp/images/logos" by setting the parameter organization_logo to "logos/xyz.png". The organization_code can be used to customize forms or business logic without creating completely new file versions. title_color and title_bgcolor control the text color of the company name and background color of logo and company name on the login screen.

Internet connectivity of the server

To search in online catalogs or to retrieve literature data, the server running Sciformation ELN must be able to connect to the internet. In some cases, it may be required to configure a proxy server, which can be done by parameters http_client_proxy_host and http_client_proxy_port if required. Use parameters http_client_socket_timeout and http_client_connection_timeout to change timeouts if required, .i.e. if connections take longer. http_client_ua defines the user agent string sent by the server.

To interact with users or suppliers via email, an SMTP server must be configured:

When accessing SSH servers, the files ~/.ssh/known_hosts, ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub are used for host verification and authentication. By setting the configuration parameters ssh.known_hosts, ssh.id_rsa and ssh.id_rsa.pub, respectively, you can define other files which should be used instead.

Security

Security of research and personal data stored within your Sciformation ELN database is an important issue, any unauthorized access to the data must be prevented. As weak passwords can impose a high security risk, Sciformation ELN will only accept passwords with

After a number of failed login attempts higher than login_max_retries, the originating IP address will be banned for ban_ip_duration seconds and the affected username will be banned for ban_user_duration seconds. Local addresses (127.0.0.1, localhost or 0:0:0:0:0:0:0:1) as well as IP addresses contained in the comma-separated list ban_ip_whitelist will not be banned. The same applies to user names listed in ban_user_whitelist.

If pwd_reset_allowed is "true", the user will be offered to receive a link via email to reset his/her account to a random-generated password. The reset line will be valid for pwd_reset_duration milliseconds, 30 min by default. To generate the link, it will be required that server_base_address points to the base URL of the given Sciformation ELN installation. Furthermore, the SMTP server must be configured properly in order to let the server send emails.

If the user authentication is done using LDAP, by configuring a security realm in the Glassfish Administration Console, group memberships of users will be mapped to group memberships within Sciformation ELN. In addition (or if your LDAP directory does not define group memberships), you can configure static comma-separated lists for groups (groups_for_ldap_users) and roles (roles_for_ldap_users), to give new users that log into Sciformation ELN static group memberships holding a minimum set of permissions. Set the parameters groups_for_new_auth_users or roles_for_new_auth_users accordingly if memberships shall only be given to new users – but not to existing ones.

To prevent inconsistencies by concurrent data manipulation, data sets are locked internally before users can start any editing. In some cases like network disconnections or browser crashes, it may be helpful that users can override existing locks. The parameter lock_kick_timeout defines after how many seconds of inactivity, a user may override a lock for a data set opened by a different user, while lock_kick_timeout_self applies to data sets opened by the own user. In any case, before overriding a lock, users must confirm a warning message.

The user name of the head administrator can be defined using admin_user, usually, it should be "seadmin". admin_mail should be set to this user's email address.

Performance optimization

When accessing the database, the EclipseLink component will read lines from the database and create objects based on the data read. To reduce database and CPU load, a maximum number of entity_cache_size objects will be stored in memory. Reducing the number will reduce memory comsumption, at the cost of higher CPU and database load, and vice versa.

Result lists and view settings (customized column arrangements, open status of groupboxes) will be cached for time periods (in seconds) defined by result_cache_max_age and view_cache_max_age. This allows to refer to these lists for combination operations and to re-use the view settings when opening detail view in new browser tabs. These cached lists consume some of the server's memory and can be garbage-collected before reaching the standard cache duration if necessary. They will also be removed from memory if the user's session is terminated. select_cache_max_age defines the maximum cache duration of EmbeddedEditor references when they are used to search & select an existing entity from the database.

When sorting result lists, all contained objects must be stored in the server's memory, which may cause problems for large lists. The parameter sort_max_count defines a maximum number of list entries where sorting is possible. The default value is 100,000. In the same way, the parameter export_max_count limits the number of exportable datasets, by default 100,000 as well. The parameter label_max_count controls how many labels can be printed in one operation, 5,000 by default. The system will notify users about these limits.

Database queries will be logged on the server for diagnostic purposes. However, it can be disabled for selected entities by setting the parameter query_log_blacklist to a comma-separated list of entity class names. This is especially recommended for "OrgMessage", as this table will be polled regularly.

Substructure and reaction searches will be executed using multiple threads as defined by concurrent_threads, as these CPU intensive tasks are well suitable for parallelization. concurrent_inheritance_threads defines the maximum number of threads used for permission inheritance, which may put high load on the database. By default, the number will be between 1 and 3, depending on the number of available CPU cores. For catalog querying, which is mainly creating high network load, a number of threads defined by concurrent_network_threads will be used at maximum. When transferring data into the external archive system, a maximum number of concurrent_archive_threads will be used.

The parameter max_sessions_per_user can be used to define a maximum number of sessions per username. When the limit is exceeded, sessions whose date of last use lie further in the past will be terminated.

Permission inheritance

To facilitate the permission management, Sciformation ELN inherits permissions automatically between related entities, e.g.

Permissions marked as "Do no inherit" will not be inherited.

In general, the inheritance is important to display data sets in a consistent way, as otherwise entries might be visible indirectly, but would not be found when searching directly. However, if such inheritance operations are not desired in some cases, they can be disabled by setting parameters of type prevent_inheritance_XyzSourceEntity_XyzTargetEntity. Instead of specific class names, it is also possible to use "*" as wildcard.

Binary data storage

Sciformation ELN can be configured to store binary data like analytical raw data, images files, etc. either

The configuration files to control this are located in storage_config_folder which can be changed to a folder outside the Glassfish Domain, to avoid that custom configurations are lost after redeployment or updating. Raw analytical data is compressed using the format as defined by default_compress_format. The following values can be used

The configuration option hash_algo defines which algorithm is used to compute checksums. The default algorithm is SHA-256.

The archive system Sciformation ELN should use can be defined by setting the parameter archive_adapter_class, currently:

Report generation

Sciformation ELN generates reports in PDF or DOCX format with the help of OpenHTMLToPDF or docx4j from HTML, which was previously generated by JSP pages. The report generation combines a result list and a template, which may include sub-report components. When creating a custom report template in the database, via "System > Reports & exporting > Add report template", you can choose a report template file to use and additionally specify a subdirectory from which subreports should be loaded. To create custom reports or to customize certain subreports for given entities, you can specify paths using parameters of type report_folder_XyzEntity. If the templates to generate reports for experiments are stored in "/WEB-INF/clientSpecific/xyz/reports/ElnReaction", you should set the parameter report_folder_ElnReaction to "/WEB-INF/clientSpecific/xyz/reports". For any missing subreports, the default ones will be used if present. Common subreports, which are used by more than one entity type, are stored in the directory "common", for which an alternative location can be defined using the parameter report_folder_common.

Special fonts used in the reports will be loaded from a folder defined by the parameter font_folder (in TTF format). These fonts must be specified in JasperReports using the "pdfFontName" attribute, "pdfEncoding" should be set to "Identity-H" and "isPdfEmbedded" to "true" in the respective JRXML file.

If parameter report_pdfa is set to "true", reports will be generated in PDF/A format, i.e. all fonts will be embedded, and any image transparency removed. The report file size will be up to ten times higher.

Barcode use

In Sciformation ELN, you can use barcodes to borrow/return chemicals, for stock-keeping, and for quick navigation to data sets associated the a barcode. To quickly distinguish barcodes associated to different entity types, you can define prefixes in the configuration file, e.g. setting barcode_1 to "CdbContainer" will indicate that all barcodes starting with a "1" will belong to a chemical. One entity type can have multiple prefixes. If the parameter auto_generate_barcodes is set to "true", unique barcodes will be generated in the format as defined by barcode_item_format, always using the first prefix, unless auto_barcode_XyzEntity explicitly defines a certain prefix to use. The length of auto-generated barcodes will be barcode_var_length characters if the chosen barcode type supports a variable length, otherwise the barcodes default length (8 for EAN8 or 13 for EAN13) will be used. If a barcode cannot be printed in the barcode_item_format due to format restrictions, barcode_fallback_format will be used instead, which should be a more "lenient" format, like "Code128".

When working with legacy barcodes that do not follow any prefix scheme, you can set global_barcodes to "true", which highly increases the number of database tables to scan for an unknown barcode.

It is possible to work with mixed barcode formats, they should be listed in barcode_allowed_formats, separated by commas. In this case, barcode_no_validation should be set to "true", unless a checksum validation is possible for all formats used. Checksum validation is particularly important if data is entered manually, as scanner hardware usually performs internal validation already.

Currently,

can be marked with barcodes. For the sake of simplicity and interoperability, we recommend the following default settings for prefixes (bold=automatic generation): For some entities, special barcode handling logic is already implemented, e.g. to borrow/return or to assign chemicals to storages.

Moreover, barcodes can also be used to enter specific commands, e.g. to set container sizes or fill levels without using keyboard or mouse, just by scanning barcodes. To use "99" as prefix for such barcodes, set barcode_99 to "ControlBarcode" and define types of commands by setting barcode_cmd_xx to one of

with xx standing for two digits, e.g. barcode_cmd_02.

value_list_container_sizes_mass set to "1,5,10,25,50,100,250" defines a list of 1 g, 5 g, 10 g,... for container sizes offered. value_list_container_sizes_vol and value_list_container_fill_level work accordingly, they will be printed as a list when opening "Chemicals > Organize > Print barcodes for stock-keeping", in the format as defined by barcode_cmd_format. Parameters of type barcode_cmdcode_cmd set to numbers like 0,1,... will assign commands, like

If value_list_barcode_cmds is a comma-separated list of the cmd codes "del,cancel,inv_on,inv_off", they will be printed on the "barcodes for stock-keeping" sheet as well.

A command code "99010058" will be processed in the following way:

  1. "99" indicates that the barcode represents a command
  2. Due to "01", the system will search for barcode_cmd_01, being set to "container_sizes_mass"
  3. "005": The container's mass will be set to 100 g, as entry #5 (zero-based) of value_list_container_sizes_mass is 100
  4. "8": EAN8 check digit

Barcode terminals offer barcode-supported borrowing/returning/stock-keeping functionality with a simplified user interface. It can either be started from the menu via "Chemicals > Start barcode terminal locally", in this case, only the current user can act. Alternatively, a dedicated computer's IP address can be registered via "Chemicals > Organize > Create barcode terminal" to serve only for this purpose, e.g. when attached next to a cabinet. For a dedicated barcode terminal, the start page of the browser should be set to "[server]/bcterminal". The duration in seconds before a user is automatically logged off from a dedicated barcode terminal can be defined using the parameter bct_logout_timeout (in seconds, default is 60). If the stock-keeping mode is active, a longer period as defined by bct_logout_timeout_inv (default is 600) is granted.

Signup screen

Sciformation ELN offers a customizable signup screen to facilitate the creation of new user accounts, unless the LDAP integration serves for this purpose already. To activate the feature, set the parameter signup_group to the name of an administrator group, whose members will receive requests using his/her email account. To register, users open the URL "[server]/signup.jsp?language=en", enter the required data and confirm by clicking "Apply for account". The administrator will receive an email based on the template "signupEmail.ftl" and can open a link leading to a pre-filled user creation form in the browser. After review of the data entered, he/she can create the new user account – if possible, the new random password should be sent to the new user's email address. The signup page can be customized depending on the requirements:

Merging data sets

Merging data sets can be useful to keep the database clean from duplicate entries. Before merging, the controller checks if the current user may

  1. edit the data set that will remain,
  2. delete the one to be removed and
  3. edit all data sets associated to the one that will be be removed.
In some cases, administrators may want to disable the checks of the last point for practical reasons. It can be disabled

Data migration

Import of open enventory databases

By opening "System > Import open enventory database", you can import existing open enventory databases (users, lab notebooks, projects, literature, chemicals) into Sciformation ELN. First, you will have to establish a database connection "jdbc/mysql" to the server running open enventory. Make sure "zeroDateTimeBehavior" is set to "convertToNull" for this connection pool.

There are two import modes:

  1. Import using a single transaction: this is useful only for smaller databases
  2. Import using a split transactions: should be used for larger databases, parameter import_keymap_folder defines a folder where primary key mapping files will be stored, to continue interupted import operations.

Export/import of Sciformation ELN database parts

To export parts of the current database to a different installation, open "System > Export database part" in the menu. Enter a folder name. The folder will be created in the server directory defined by export_file_folder. Then select the chemical databases and the lab notebooks to export. Then click , the process may take several hours.

To import any exported chemicals, lab notebooks and related data to a Sciformation ELN installation, locate the exported folder in the server directory defined by import_file_folder. Then open the menu item "System > Import database part" and select the respective folder. Choose the options for data deduplication, and decide which groups and users should be created, mapped to existing ones or skipped. Then click to start the import process, which may take several hours.

Debugging and testing

The parameter debug=true activates additional diagnostic logging, especially of database queries. This may lead to reduced performance. By setting the parameter debug_email_recipient, emails sent by Sciformation ELN will be sent to the given address, to avoid that users are confused by messages emitted during tests.

GUI themes

The design of ZK components can be modified using themes. The configuration parameter themes stores a comma-separated list of themes offered to the user for selection. The server's defaut theme can be set via default_theme. The ZK Theme Roller may help administrators to create custom designs that can be used for Sciformation ELN.

Portals

With portals, users can quickly access common use cases, the arrangement can easily be adjusted when necessary. You can use the following parameters to configure which use cases are offered in tabs by default:

Xou can look up the names of the use cases via "System > Show all use cases" in the menu.

Formatted text editing

In addition to plaintext entry, it may be desired in some cases to let users enter text with HTML formatting elements. For this purpose, editor components like tinyMCE can be used. Users can change their preference individually, the default editor can be defined with the parameter wysiwyg_editor in the configuration file, currently only "tinymce".

The use of Wyzz is generally recommended as it is much faster and contains specific additions like a formatting help for chemical sum formulas like H2SO4 or Greek letters. Wyzz also passes dropped files to the respective list within the form and inserts the preview image automatically. Unsaved binary data will be cached for uuid_cache_max_age seconds in the server's memory, to let users arrange the formatted text according to their requirements.

Structure editing

Users working with chemical structure formulas or reaction equations require a molecular editor component. This can be realized a plugin (like "ChemDraw®"), as Java applet (like "Marvin") or an HTML5-based editor like the integrated VectorMol. The choice of a molecular editor is highly affected by personal preference, technical constraints (browser platform, Java plugin) and the availablility of licenses for 3rd-party components. Some editors only support to edit single molecular structures, only some also support editing whole equations. Therefore, users can change their editors of choice in the "Personal settings" dialog.

Administrators can disable some editors by setting molecule_editor_blacklist and reaction_editor_blacklist to comma-separated lists of the respective internal codes. External components like "Marvin" or "MarvinJS" can be loaded from an external base URL, as set by parameters applet_codebase_Marvin or applet_codebase_MarvinJS.

Images and analytical data

In Sciformation ELN, you can

All this requires files to be transferred and usually converted. The maximum size for uploads is controlled in the zk.xml of the underlying framework. However, you may want to upload very large files just to be archived, as the server's memory is too small for a conversion. In this case, you can define a maximum size in bytes using the parameter raw_data_processing_max_size in the "serverConfiguration.properties" file - the default is 150 MB. Beyond this limit, files will be stored without further processing.

In modern browsers, user can upload images taken with the built-in webcam. To deactivate this option, set photo_upload_disabled to "true".

Printing

The function to print forms and labels require information about paper dimensions. To add sizes beyond the usual A4 and A4 landscape formats, place the format definitions in the folder defined by the parameter paper_folder. The parameter default_paper_format allows to set the default paper format selected for printing, e.g. "A4" or "A4L" for landscape format. Set the parameter label_folder to a custom location and place all label definitions that shall be available within, if you want to modify the list of label templates offered.

ELN and literature database settings

Sigles and entry identification

Lab journal entries usually compromise of a code for the respective lab journal and a number within the continuous sequence of entries. The overall format is written differently at different institutions, like "FR 063" or "RUD-UA-123". Administrators can set the parameter lab_notebook_entry_format to the format Sciformation ELN should use, in the MessageFormat syntax.

  1. sigle
  2. number of the entry within the lab journal

Special number formats can be applied like this: "{0}-{1,number,000}". In this case, lab_notebook_entry_number_format should be set to "{2,number,000}" accordingly, the pattern is used to generate paths in the archive system.

In most cases, when creating sigles, an unused one will be generated from the user's last name, but some cases, it may be useful to make sigles editable by the group administrator by setting sigel_enable_editing to "true".

Projects

The separator used to concatenate the parts of a project hierarchy ("Catalysis / cross-coupling / Palladium / Suzuki") can be defined by hierarchy_separator_eln_project in the configuration file.

Experiments

The text describing candidates in the quicksearch functionality for experiments can be customized using the parameter quicksearch_eln_entry_pattern, with

  1. the lab journal entry, formatted according to lab_notebook_entry_format,
  2. the title entered by the user and
  3. the scientist's name.

Property key as listed for blacklist_ElnReactionProperty will not be included in reports or automated comparisons.

Chemical reactions

When planning a chemical reaction, setting reaction_component_search_lot_no to "true" will activate the search for lot numbers (in addition to name parts, CAS No., sum formula). The format how a chemical is named when used in a chemical reaction is defined by reaction_component_container_pattern, with

  1. short text describing the substance (first name, sum formula, CAS No.)
  2. amount (still available/nominal)
  3. storage name (long)
  4. borrowed by
  5. lot No.
  6. storage name (short)
  7. custom name
  8. solvent
  9. department name
  10. short storage name (no additional check of visibility)
  11. full storage name incl. hierarchy (no additional check of visibility)
  12. compartment
  13. purity/concentration
  14. type of container
  15. barcode
  16. quality/purity
  17. container ID
  18. manufacturer name
  19. catalog No. of the manufacturer
  20. supplier name
  21. catalog No. of the supplier
  22. substance ID
If display_short_storage_name is set to "true", only the name of the actual storage will be displayed, without higher hierarchy levels like building or room.

If the stoichiometric coefficients should be rendered below the respective components in the equation, reaction_stoich_below can be set to "true". Setting isolated_yield_editable to "true" allows users to enter or change the isolated yields directly. Otherwise, it can only be calculated based on the amount of isolated product and the theoretical value.

Requests for analyses

The number format used to identify individual samples submitted as part of a request for analyses is defined by the parameter ana_request_sample_format, using String.format syntax. The colors associated with the different stages of the request workflow can be configured using parameters of type ana_request_status_color_xx, where xx may be:

Analytical data

To control the stretching of analytical data preview images, the parameters eln_ana_data_max_width or eln_ana_data_max_height can be used. A value of "800" for eln_ana_data_max_height is recommended. The number of pages of a PDF document for which a preview image is generated, can be controlled by setting the parameter pdf_preview_pages - the default value is 1. In the same way, number of preview frame for a video file can be controlled by setting the parameter video_preview_frames - the default is 3. If analytical data is associated with a reaction component, the description text can be controlled using ana_assignment_eln_reaction_component_pattern, with the following variables:

  1. the first name of the substance and the CAS No., or the lab journal entry and the abbreviation ("RUD-UA 123-R1") if no name or CAS No. present
  2. the first name of the substance
  3. the abbreviation, like "R1" or "A"
  4. the role description, like "Reactant R1"
The default value is "{0}".

If a graph can be extracted from raw analytical data, it can be display interactively using a dygraphs viewer. Default settings for the viewer can be defined with the parameter dygraph_settings in the configuration file. Please note that the setting affects only data newly saved to the database.

Literature

If the automatic download of PDF articles from ACS is associated with costs for your organization, it can be disabled by setting literature.acs.avoidAutoBuy to "true".

Chemical inventory settings

The chemical inventory informs about chemicals, e.g. available amounts, storage locations or substance data. The name of legacy identifiers for substances or chemicals can be defined in the configuration file by legacy_id_CdbMolecule and legacy_id_CdbContainer, respectively. To identify a chemical, a name is generated according to the pattern defined by inventory_container_pattern, with

  1. short text describing the substance (first name, sum formula, CAS No.)
  2. amount (still available/nominal)
  3. storage
  4. borrowed by
  5. lot No.
The default is "{0} - {1} - {2}".

When adding a chemical to the database, it is assigned to the department of the current user by default, while substances will be assigned to "everyone" unless the value is changed. By setting the parameter set_own_dept_CdbMolecule to "true", the department of the current user will also be used as default value for new substances.

When creating a substance, name and CAS No. can be determined for a drawn structure, using services like Cactus. As this may reveal secret structure formulas, these features need to be activated using the parameters auto_name_for_struct and auto_cas_for_struct. The query order can be controlled with parameters auto_name_query_order and auto_cas_query_order, respectively.

The query order used when users click "Read data from suppliers" or during import operations is determined by the parameter supplier_query_order. Generally, it is recommended to begin with suppliers providing

Specialized suppliers or slow websites should be queried last, as in most cases, the data set will already be complete before. For the catalog search functionality available via "Chemicals > Search substance at suppliers" and "Ordering > Search consumables online", certain suppliers can be deselected by default, by adding them to supplier_blacklist as a comma-separated list. The parameter supplier_hitlist_order can be used to define a non-alphabetic query order. Parameters supplier.lang, supplier.country and supplier.currency can be used to define language, location and currency to be used in general where possible. To set different values for certain suppliers, parameters like supplier.xx.country, etc. can be used, where xx stands for the internal code of the supplier, like "sial" for Sigma-Aldrich. In the same way, login data can be stored in the configuration, by defining parameters like supplier.xx.username and supplier.xx.password.

When deleting a chemical, it is actually not deleted, but marked as "disposed of", unless the parameter allow_delete_CdbContainer is set to "true".

Users can borrow and return chemicals, using the buttons in the list rows or the toolbar, or with the help of a barcode terminal. This functionality can be completely disabled by setting borrowing_disabled to "true". If borrowing_strict_return_policy is set to "true", containers which were borrowed and not yet returned cannot be borrowed by anyone else.

The languages to be used for material safety data sheets (MSDS) can be defined by setting sdb_langs to a comma-separated list of ISO 639 language codes. The replacement behavior für MSDS can be controlled by the parameter sdb_replacement_behavior:

Setting restrict_poison_cabinets to "true" forces that chemicals which are toxic may only be stored in storages marked as poison cabinet. The parameter use_trgs allows to classify storages according to German TRGS-510, or using generic criteria alternatively. If use_trgs is not set, TRGS-510 will be used if supplier.country=DE is set. The separator used in storage hierarchies like "Building / floor / room / cabinet" can be defined by hierarchy_separator_org_storage.

By setting old_safety_disabled=true, you can disable automatic extraction of old R/S clauses and safety symbols.

The amounts of a chemical used in an experiment can automatically be deduced from the actual amount of the respective container when the status is changed from "planned" to "started". This feature can be activated/deactivated

To approximate additional losses, the parameter bilancing_factor can be set to a floating point number, e.g. "1.1" would subtract an additional 10 %.

Online data extraction

By querying online catalogs, Sciformation ELN can extract substance data, making manual data entry mostly obsolete. Moreover, it allows to gather prices for chemicals and consumables. The following parameters can be used to customize the results:

Ordering system settings

The integrated in-house ordering system integrates well with the chemical inventory, and it makes use of web robot data extraction technology (see Chemical inventory for configuration options). Basic parameters can be set in the configuration file:

If force_whs_bill_recipient is set to "true", any cost center entered must have a group assigned who will receive bills assigned to the particular cost center.

Users can order chemicals and consumables, which will be packaged to shopping carts and passed to suppliers. This workflow can be completely modified using custom implementations of whs.DefaultWhsIndivOrderController and whs.DefaultWhsSupplierOrderController, but in many cases, it will be sufficient to set selected parameters for fine-tuning:

For the shopping carts, a custom number can be stored to identify deliveries and bills. A custom name can be set using the parameter legacy_id_WhsSupplierOrder. If shopping carts are not set to "delivered" after delivery_warning_days, they will apear in the "Delivery overdue" list so that any problems can be actively resolved.

If whs_generate_supplier_order_pdf is "true", ordering PDFs will be created when trying to change the status of a shopping cart from "planned" to "ordered". The user can still choose not to make the status change, if the order needs to be changed. If a valid email address is defined for the supplier, the PDF can be sent to the supplier directly, together with a generated email text. Subject and email text templates can be set per supplier, the parameters ordering_mails_subject_xx and ordering_mails_content_xx for the given language (or ordering_mails_subject and ordering_mails_content as last resort) can be used as fallback. Additional parameters can be used to fine-tune the emailing:

The module "Sale of stock chemicals" can be used to transfer chemicals from an in-house shop to groups, and to charge the respective fees. The functionality, especially the pricing, can be customized using Python scripts. Clients must provide information about the destination container if chemicals are transferred to new containers, unless the parameter whs_allow_no_dest_container is set to "true". If a whole container is transferred and chemical_purchase_whs_set_storage is "true", the in-house shop will be able to set the destination storage directly. Otherwise, the recipient will have to make the assignment, or the container will no longer be assigned to a storage.

When creating bills for in-house settlement, the date field as defined by indiv_order_bill_assignment_date_field will be used to determine when to include orders. By default, the "supplierDeliveryDate" will be used.

Device management

The device management allows to track laboratory equipment and facilitates regular maintenance tasks. In the configuration file "serverConfiguration.properties", you can define some default values:

Tags

Tags are used to assign database objects to categories. Normally, these tags are organized as simple list. However, you can set the parameter tag_hierarchy to "true" to allow enable parent/child relationships between tags, i.e. forming a hierarchy. This will change the detail form to create/add tags and many search forms. Use the parameter hierarchy_separator_sys_tag to configure how names of such nested tags are generated.

Messaging system settings

The messaging system allow to send internal messages to users of this Sciformation ELN installation. Unlike email messages, the sender can change the message content subsequently or withdraw messages. When logging in, messages will be presented to users on the right side of the menu, if message_display_startup is "true". Otherwise, messages will be polled in intervals of 2 min, as set in your "menu.zul". For up to message_display_count messages, a short preview will be displayed. In any case, users can navigate to the list by clicking the number of unread messages.

Other settings

If personal_data_self_editing is set to "true", users can keep personal data like email address or telephone number updated, without having the right to make any other changes to their respective users, like changing permissions.

Analytical devices and specimens can be organized as hierarchies (like projects or storages), and the separator to use can be defined via hierarchy_separator_ana_device or hierarchy_separator_eln_exp_object, respectively.