Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core dms importer
Hinweis: Diese Dokumentation bezieht sich auf die aktuellste Version des Plug-ins. Aktualisieren Sie das hier beschriebene Plug-in, um die Dokumentation verwenden zu können.
Mit diesem Plug-in importieren Sie zur Verfügung gestellte Exportdaten aus anderen Systemen nach agorum core.
Der Import der Daten läuft innerhalb des agorum core-Servers ab. Die Dateien / Daten müssen in dem Installationspfad von agorum core liegen, indem Sie diese dorthin kopieren oder mounten.
Dabei kann es sich um Dateien wie Word-, Excel- oder PDF-Dateien handeln, aber auch um Adressdaten oder andere Informationen.
Das Format der Daten ist abhängig von der Ursprungssoftware.
Planen Sie den Datenimport, damit Ihre Daten korrekt und problemlos in agorum core abgelegt werden können.
Um welche Daten handelt es sich?
Welche Daten importieren Sie? Handelt es sich etwa um Bilder, PDFs oder Word-Dokumente? Oder möchten Sie Adressdaten oder anderweitige Informationen in agorum core importieren?
Um welche Dokumententypen handelt es sich?
Handelt es sich bei den Daten, die Sie importieren möchten, um Rechnungen, Lieferscheine, Zeugnisse oder Verträge?
Wo sollen die Daten abgelegt werden?
In welcher Ordnerstruktur sollen die Daten abgelegt werden? Wird ein Objekttyp gebraucht, der etwa Adressdaten als Adressen darstellt? Oder sollen Dokumente in bestimmte Ordner abgelegt werden?
Existieren Metadaten?
Besitzen Ihre Dokumente Metadateninformationen? Welches Format haben diese und welche möchten Sie auf die Dokumente setzen? Müssen dazu neue Metadaten in agorum core definiert oder können bereits vorhandene verwendet werden? Haben die Dokumententypen verschiedene Metadaten? Etwa liegen nur bei Rechnungen die Rechnungsnummer, das Rechnungsdatum und der Rechnungsbetrag vor, während bei Verträgen ganz andere Metadaten greifen.
Wie können Ihre Benutzer die Daten finden?
Benutzer haben über die Suche einen schnellen Zugriff auf Dokumente und Informationen. Stellen Sie bei einem Import neuer Daten sicher, dass ein neuer Filter im System vorhanden ist oder bereits vorhandene auch die neuen Dokumente finden.
Welches Berechtigungsmodel benötigen Sie?
Falls Sie eine neue Ordnerstruktur erstellen, benötigen Sie neue ACLs. Möchten Sie die zu importierenden Dokumente mit Flags versehen, damit das System diese Dokumente etwa auf revisionssicher oder unlöschbar setzt?
Je besser und detaillierter Ihre Planung ist, desto weniger Korrekturen müssen Sie vornehmen. Änderungen können Sie als Administrator / Entwickler jederzeit durchführen, allerdings erfordert dies nachträglichen Aufwand.
Durch eine Regeldatei steuern Sie den Import Ihrer Daten nach agorum core und legen darin etwa fest:
Sie haben sich Ihre Dokumente angeschaut und wissen, welche Dokumententypen Sie nach agorum core importieren möchten. Diese Informationen bilden Sie in der CSV-Regeldatei ab.
Beispiel für den Dokumententyp „Rechnung“
Auszug der enthaltenen Spalten
Spalte | Beschreibung |
---|---|
name | Definiert die Bezeichnung für den Dokumententypen. |
scr_doctype | Definiert eine Abkürzung für Source Doctype, d. h. wie die Ursprungssoftware den Dokumententypen nennt. |
scr_metadata | Definiert die Metadaten des Dokuments. |
scr_format | Definiert das Format des Metadatums. |
ac_metadata | Definiert, welches agorum core-Metadatum das System auf das Source-Metadatum setzt. |
ac_type | Definiert den Datentyp des Metadatums. |
ac_staticvalue | Definiert einen festen Wert für ac_metadata. Haben Sie optional ein src_metadata definiert und liegt dahinter kein Wert, verwendet das System ac_staticvalue als Standard. |
ac_save_on_doc | true Das System setzt ac_metadata auf das Dokument. false Das System setzt ac_metadata NICHT auf das Dokument. |
ac_destfolder_start | Definiert den Ablageordner des Dokuments. Schreiben Sie den Pfad nicht aus, sondern bauen Sie ihn dynamisch auf: <Lieferant>/Rechnungen/<Rechnungsdatum:Jahr>/<Rechnungsdatum:Monat> |
ac_systemflags | Definiert Systemflags, die das System auf das Dokument setzt. |
ac_revisonyears | Definiert in Jahren, wie lange das System ein Dokument auf revisionssicher setzt. |
Eigene Dateien/Administration/customers/dmsimporter/samples
Beispiel 1
Eigene Dateien/Administration/customers/dmsimporter/samples/migration-table-test-1/undefined>migrationtable.csv
Beispiel 2
Eigene Dateien/Administration/customers/dmsimporter/samples/migration-table-test-fs/migrationtable-fs.csv
Dokumentinhalt
name;description;src_doctype;ac_condition;src_metadata;src_format;ac_metadata;ac_type;ac_staticvalue;ac_save_on_doc;ac_function;ac_destfolder_start;ac_destfolder;ac_asa_record;ac_name;ac_systemflags;ac_ac_revisionyears Datei;;file;;name;;dmsimporter_name;string;;true;;FS/${dmsimporter_parent:f};Dateien/${dmsimporter_lastmodified:yyyy}/${dmsimporter_lastmodified:MM};dmsimporter_fs;${originalName}.${extension};0; ;;;;lastmodified;dd.MM.yyyy;dmsimporter_lastmodified;date;;true;;;;;;; ;;;;;;dmsimporter_doctype;string;File;true;;;;;;; ;;;;size;;dmsimporter_size;long;;true;;;;;;; ;;;;parent;;dmsimporter_parent;string;;;;;;;;; ;;;;parent;;dmsimporter_dummy;string;;;;;;;;;
Spaltenname | Beschreibung |
---|---|
name | Definiert pro Dokumententyp einen beliebigen Namen. |
description | Definiert beliebige Einzelheiten für diesen Dokumententypen. |
src_doctype | Definiert den Wert der Ursprungssoftware, der beschreibt, um welchen Dokumententyp es sich handelt.
|
ac_condition | Definiert Unterkategorien pro Dokumententyp. Beispiel Sie haben ein Dokument vom Typ Angebot. Dabei unterscheidet Ihre Firma zwischen Angebotstyp1 und Angebotstyp2. Diese Information hält das System im Metadatum dmsimporter_offertype pro Dokument fest. Sie können:
Hinweis: Die Metadaten kommen als Return-Wert aus der read-Methode ihres Skripts. |
src_metadata | Definiert pro Dokument eigene Metadaten, sofern die Ursprungssoftware diese angehängt hat.
|
src_format | Definiert das Quell-Metadatum aus der Spalte src_metadata. Tragen Sie JavaScript-Formate ein, etwa dd.MM.yyyy. |
ac_metadata | Definiert das Ziel-Metadatum von agorum core, auf welches das System das Quell-/Ursprungsmetadatum mappt. Legen Sie die genutzten Metadaten vorab über die Datei metadata.yml in agorum core an. |
ac_type | Definiert den Datentyp des Metadatums aus ac_metadata. Sie können diese Typen angeben:
Wählen Sie denselben Wert, den Sie in der Datei metadata.yml definiert haben. |
ac_staticvalue | Diese Spalte können Sie verwenden, um:
Diese Spalte verwendet das System als Standard, wenn Sie ein src_metadata angegeben haben, aber dafür kein Wert vorhanden ist (siehe Beispiele). |
ac_save_on_doc | true Das System speichert das Metadatum auf das Dokument. false (Standard) Das System speichert das Metadatum NICHT auf das Dokument.
|
ac_function | Definiert zwei Varianten, damit das System weiß, was zu tun ist, wenn Sie ein Metadatum aus agorum core mehrmals verwenden und setzen. Priorisieren Sie teilen dem System eine Priorität mit, sollten mehrere auf ein und dasselbe Metadatum zugreifen.
Mergen
|
ac_destfolder_start | Definiert den Ordner, der ab dem agorum core base folder aus den Importeinstellungen stammt. Das System verwendet diesen Parameter zusätzlich für die Überprüfung der Ausführung des Parameters ac_asa_record. |
ac_destfolder | Basiert auf dem ac_destfolder_start und definiert den darauffolgenden Pfad.
|
ac_asa_record | Spricht ein Template im undefined>agorum core smart assistant konfigurator an. Ist der angegebene Ordner im Parameter ac_destfolder_start nicht vorhanden, führt das System das angegebene Template nicht aus. |
ac_name | Passt den Namen Ihrer Dokumente an.
Re_${dmsimporter_invoicenumber}_${originalName}.${extension} |
ac_systemflags | Definiert die zu setzenden Systemflags. Beispiel 28 |
ac_ac_revisionyears | Definiert die Anzahl an Jahren, die ein Dokument im System verbleiben muss (siehe Revisionssicherheit und GoBD im agorum core basic archive). Das System:
|
Zeile | src_doctype | ac_condition |
---|---|---|
1 | offer | dmsimporter_offertype=Angebotstyp1 |
2 | .. | |
3 | offer | dmsimporter_offertype=Angebotstyp2 |
4 | .. |
Einen festen Wert zuweisen
Tragen Sie in dieser Spalte einen Wert ein, den das System dem Metadatum aus der Spalte ac_metadata fest zuweist.
Beispiel
Bei der Regel offer handelt es sich immer um ein Angebot. Sie weisen dem Metadatum dmsimporter_doctype deshalb immer den Wert Angebot zu. Tragen Sie dazu in dieser Spalte Angebot ein.
Einen Wert mappen (mapping csv)
Mit dieser Variante stellen Sie sicher, dass das System einen übergebenen Wert anhand einer Mapping-Tabelle anpasst.
Tragen Sie dazu in die Spalte ac_staticvalue diesen Wert ein:
${match:<Basisname der Mapping-Datei>:<Name des zu mappenden Metadatums>}
Parameter | Beschreibung |
---|---|
${match | Legt den Beginn fest und deutet dem System an, dass es eine Definition einleitet. |
: | Dient als Trenner und verweist auf einen neuen Wert in der Definition. |
<Basisname der Mapping-Datei> | Definiert den Dateinamen der Mapping-Datei.
Beispiel eines Eintrags dmsimporter-demo-mapping-customernumber Die Datei selbst hat den Namen dmsimporter-demo-mapping-customernumber.csv. |
<Name des zu mappenden Metadatums> | Definiert den Namen des Metadatums, dessen Wert das System durch die Mapping-Tabelle ändert.
|
} | Legt das Ende fest und deutet dem System an, dass die Definition abgeschlossen ist. |
Beispiel
Eintrag in der Spalte ac_staticvalue:
${match:dmsimporter-demo-mapping-customernumber:dmsimporter_customernumber}
Aufbau der Mapping-csv:
value;mapping default; K999;Kunde 999 K0002;Kunde 02 K0003;Kunde 03
Spalte | Beschreibung |
---|---|
value | Definiert Werte, die das Metadatum dmsimporter_customernumber vor dem Mapping haben kann. |
mapping | Definiert Werte, die das Metadatum dmsimporter_customernumber nach dem Mapping annimmt. |
Findet das System den Wert von dmsimporter_customernumber in der Spalte value NICHT, mappt es den Wert von default. In diesem Fall ist der Wert leer.
Default-Wert
Sie definieren in src_metadata ein Metadatum für die Quelle und in ac_staticvalue einen festgelegten Wert, den das System verwenden soll, wenn der ausgelesene Werte später beim Import für das definierte src_metadata leer ist.
Hinweise:
Die Mapping-CSV-Datei muss mindestens einen Default-Wert aufweisen.
Das System setzt das Metadatum, in diesem Beispiel dmsimporter_customernumber, nicht auf das importierte Objekt, wenn default nicht existiert.
Die Dateien liegen im Installationspfad von agorum core, und Sie haben im Konfigurationsprojekt dmsimporter eine Regeldatei angelegt. Noch existieren diese beiden Einheiten unabhängig voneinander. Auch das System weiß noch nicht, wie diese zusammengehören.
Sie erstellen im nächsten Schritt ein JavaScript, das den Import steuert. Das JavaScript besitzt die Funktionen:
Verarbeitet nacheinander jedes Dokument in dem zu importierenden Pfad.
Beispiel
Anschreiben.doc
Name der zu importierenden Datei.
Anschreiben.doc.json
In dieser Datei stehen die dazugehörigen Metadaten.
Dieses Beispiel zeigt, wie die Metadaten Ihrer Ursprungsdatei aussehen müssen, damit agorum core diese bearbeiten und annehmen kann:
data = { name: 'Anschreiben.doc' filesize: 123456 }; return data;
Diese Formatierung können Sie per JavaScript in der Funktion read verwenden.
Sollte Ihnen in einer einzigen Datei alle Metadaten für alle zu importierenden Dokumente vorliegen, müssen Sie dieses JavaScript anpassen und sicherstellen, dass Metadaten dem passenden Dokument zugeordnet werden.
Für das Return-Object existieren einige Metadaten, die von der Schreibweise her fest definiert sind.
Metadatum | Beschreibung |
---|---|
ac_ignore | true Ignoriert diese Datei. false Berücksichtigt diese Datei. |
ac_note | Füge eine Notiz als String an das Objekt. Der Wert stellt den Notizinhalt dar. |
src_doctype | Definiert ein Metadatum als String. Das Metadatum:
|
ac_version | Definiert optional einen Integer-Wert (1-n) zur Sortierung der Versionen. |
ac_versionlabel | Definiert einen Wert (als String) zur Anzeige der Versionsnummer. |
ac_versioncomment | Definiert einen Wert (als String) zur Angabe eines Versionskommentars. |
Beispiel
data = { name: 'Anschreiben.doc', size: 123456, //Fest definierte Metadaten src_doctype: 'file', // ist ein Pflichtfeld, // durch diese Info greifen die Ablageregeln aus der Regeldatei ac_note: 'Enthält Text der als Notiz an das agorum-Object angehängt wird', ac_ignore: false, // false: Datei wird nach agorum core importiert // true: Datei wird NICHT nach agorum core importiert // Dies können Sie etwa für die Metadaten-Datei <Filename>.json nutzen, // sollten Sie keinen anderen Weg im JavaScript verwendet haben // die folgenden Werte sind nur im Rahmen versionierter Dateien notwendig ac_version: 1, // optionale Versionsnummer für Sortierung ac_versionlabel: 'V1', // optionale anzeigbare Versionsnummer ac_versioncomment: 'Dies ist Version 1' // optionales Versionskommentar };
Beispiel für die Funktion „read“
function read(file) { data = {}; // .. // .. return data; }
Hinweise:
Die zu importierenden Dateien bleiben in dem Installationspfad bestehen.
Das System kopiert sie nach agorum core und schneidet sie nicht aus.
Sobald der Import erfolgreich verlaufen ist, können Sie diese Dateien wieder entfernen oder die Mount-Verbindung auflösen.
Nimmt nachträgliche Anpassungen vor oder aktiviert Aktionen wie das Starten eines Workflows, nachdem die Dokumente mitsamt Ihren Metadaten durch die Funktion read nach agorum core importiert wurden.
Das System ruft die Funktion update für jedes importierte Objekt auf.
Die Funktion besitzt die Übergabeparameter:
object
Stellt das importierte agorum core-Objekt dar. Die komplette agorum core JavaScript API steht zur Verfügung.
rule
Stellt die Informationen aus der Regeldatei dar, die das System als JSON-Struktur weiterreicht.
Die Datei enthält die Werte der gesetzten Metadaten und den Originalnamen der Datei (Metadatum originalName) sowie die Dateiextension (Metadatum extension).
Beispiel zum rule-Object
{ "name": "offer", "condition": "dmsimporter_offertype=Angebotstyp2", "description": "Angebot Variante 2", "description2": "Angebot vom Typ 2", "metadata": [{ "srcMetadata": "src_offertype", "acMetadata": "dmsimporter_offertype", "type": "string", "static": "", "acFunction": "", "format": "", "saveOnDoc": "" }, { "srcMetadata": "src_offernumber", "acMetadata": "dmsimporter_offernumber", "type": "string", "static": "", "acFunction": "", "format": "", "saveOnDoc": "true" }, { "srcMetadata": "src_offerdate_1", "acMetadata": "dmsimporter_offerdate", "type": "date", "static": "", "acFunction": "prio1", "format": "dd.MM.yyyy", "saveOnDoc": "true" }, { "srcMetadata": "src_offerdate_2", "acMetadata": "dmsimporter_offerdate", "type": "date", "static": "", "acFunction": "prio2", "format": "dd.MM.yyyy", "saveOnDoc": "true" }, { "srcMetadata": "", "acMetadata": "dmsimporter_doctype", "type": "string", "static": "Angebot", "acFunction": "", "format": "", "saveOnDoc": "true" }, { "srcMetadata": "src_customernumber", "acMetadata": "dmsimporter_customernumber", "type": "string", "static": "", "acFunction": "", "format": "", "saveOnDoc": "" }, { "srcMetadata": "src_customername", "acMetadata": "dmsimporter_customername", "type": "string", "static": "", "acFunction": "", "format": "", "saveOnDoc": "" } ], "destFolderStart": "Kunden/${dmsimporter_customername:f}", "destFolder": ["Angebote/${dmsimporter_offerdate:yyyy}/${dmsimporter_offerdate:MM}", "/Alle Angebote/${dmsimporter_offerdate:yyyy}/${dmsimporter_offerdate:MM}"], "asaRecord": "dmsimporter_kundenakte", "fileName": "An_${dmsimporter_offernumber}.${extension}", "sysFlags": "", "fileNameSet": "An_666777.txt", "destFolderStartSet": "Kunden/Testkunde 456", "destFolderSet": ["Angebote/2019/09", "/Alle Angebote/2019/09"], "values": { "src": { "src_offertype": { "value": "Angebotstyp2", "type": "string", "srcMetadata": "src_offertype", "acMetadata": "dmsimporter_offertype", "use": false }, "src_offernumber": { "value": "666777", "type": "string", "srcMetadata": "src_offernumber", "acMetadata": "dmsimporter_offernumber", "use": "true" }, "src_offerdate_1": { "value": "2019-09-18T10:00:00.000Z", "type": "date", "srcMetadata": "src_offerdate_1", "acMetadata": "dmsimporter_offerdate", "use": "true" }, "src_customernumber": { "value": "K456", "type": "string", "srcMetadata": "src_customernumber", "acMetadata": "dmsimporter_customernumber", "use": false }, "src_customername": { "value": "Testkunde 456", "type": "string", "srcMetadata": "src_customername", "acMetadata": "dmsimporter_customername", "use": false } }, "agorum": { "dmsimporter_offertype": { "value": "Angebotstyp2", "type": "string", "srcMetadata": "src_offertype", "acMetadata": "dmsimporter_offertype", "use": false }, "dmsimporter_offernumber": { "value": "666777", "type": "string", "srcMetadata": "src_offernumber", "acMetadata": "dmsimporter_offernumber", "use": "true" }, "dmsimporter_offerdate": { "value": "2019-09-18T10:00:00.000Z", "type": "date", "srcMetadata": "src_offerdate_1", "acMetadata": "dmsimporter_offerdate", "use": "true" }, "dmsimporter_doctype": { "value": "Angebot", "type": "string", "acMetadata": "dmsimporter_doctype", "use": "true" }, "dmsimporter_customernumber": { "value": "K456", "type": "string", "srcMetadata": "src_customernumber", "acMetadata": "dmsimporter_customernumber", "use": false }, "dmsimporter_customername": { "value": "Testkunde 456", "type": "string", "srcMetadata": "src_customername", "acMetadata": "dmsimporter_customername", "use": false }, "extension": { "value": "txt", "type": "string", "acMetadata": "extension", "use": false }, "originalName": { "value": "test3", "type": "string", "acMetadata": "originalName", "use": false } } } }
Um in der Funktion update auf eines der Metadaten zugreifen zu können, sprechen Sie die verschiedenen Kategorien an. Sie greifen etwa auf das Metadatum dmsimporter_customernumber wie folgt zu:
rule.values.agorum.dmsimporter_customernumber
In der Funktion update können Sie jetzt weitere Anpassungen am importierten Objekt vornehmen. Sie können damit Prozesse starten oder weitere Metadaten setzen.
Beispiel der Funktion „update“
function update(object, rule) { // .. }
Zum Schluss müssen Sie die Funktionen read und update freigeben, damit diese aufrufbar sind:
module.exports = { read: read, update: update };
Beispiel eines JavaScripts mit den Funktionen „read“ und „update“ ohne zusätzliche Datei
let InputStreamReader = Packages.java.io.InputStreamReader; let File = Packages.java.io.File; let BufferedReader = Packages.java.io.BufferedReader; let FileInputStream = Packages.java.io.FileInputStream; let sdf = new Packages.java.text.SimpleDateFormat('dd.MM.yyyy'); // Dieses Script wird für den Export einmal geladen. // Sie können hier global z.B. auch Globale Daten schon mal einlesen, // die Sie dann in den beiden Methoden read und update verwenden können function read(file) { // Hier eine Beispielimplementierung let data = {}; let f = new File(file); if (f.exists()) { let name = f.getName(); if (name.indexOf('.') !== -1) name = name.substring(0, name.lastIndexOf('.')); data.name = name; data.lastmodified = sdf.format(f.lastModified()); data.size = f.length(); data.parent = f.getParentFile().getName(); data.src_doctype = 'file'; // special case note // data.ac_note = 'A Note Object for: ' + data.name; return data; } return null; } function update(object, rule) { } module.exports = { read: read, update: update };
Beispiel eines Importer-Skripts, bei dem die Infos in einer mitgelieferten JSON-Datei abgelegt sind
let InputStreamReader = Packages.java.io.InputStreamReader; let File = Packages.java.io.File; let BufferedReader = Packages.java.io.BufferedReader; let FileInputStream = Packages.java.io.FileInputStream; /** * internal fields: * - ac_ignore: true/false - ignore this file * - ac_note: string: Add note to object with the given text * - src_doctype: has to be given, is used to identify the rule in the migrariontable */ // read in metadata file, contains json function read(file) { let data = {}; let f = new File(file + '.json'); if (f.exists()) { let stream = new FileInputStream(file + '.json'); let br = new BufferedReader(new InputStreamReader(stream, 'UTF-8')); try { let lines = []; let line = null; while ((line = br.readLine()) !== null) { lines = lines.concat(line); } let data = JSON.parse(lines.join('\n')); data.dmsimporter_createdate = new Date('1978/09/17 12:00:00'); return data; } finally { br.close(); } } else if (new File(file).getName().toLowerCase().endsWith('.not')) { return { ac_ignore: true }; } return null; } function update(object, rule) { // e.g. // object.createDate = rule.values.agorum.ac_createdate.value; if (rule.values.agorum.dmsimporter_createdate) { // throw 'date: ' + JSON.stringify(rule.values.agorum.dmsimporter_createdate); object.createDate = rule.values.agorum.dmsimporter_createdate.value; } } module.exports = { read: read, update: update };
Beispiel-Skript für d3
let InputStreamReader = Packages.java.io.InputStreamReader; let BufferedReader = Packages.java.io.BufferedReader; let FileInputStream = Packages.java.io.FileInputStream; /** * internal fields: * - ac_ignore: true/false - ignore this file * - ac_note: string: Add note to object with the given text * - src_doctype: has to be given, is used to identify the rule in the migrariontable */ // read in jpl an return a map with the data function read(file) { let jplData = {}; let stream = new FileInputStream(file + '.jpl'); let br = new BufferedReader(new InputStreamReader(stream, 'UTF-8')); try { let line = null; while ((line = br.readLine()) !== null) { if (line.indexOf(' = ') !== -1) { let name = line.substring(0, line.indexOf(' = ')).toLowerCase(); let value = line.substring(line.indexOf(' = ') + 4); value = value.substring(0, value.length - 1); jplData[name] = value; } } } finally { br.close(); } return jplData; } module.exports = { read: read };
Sie können eine einzelne Datei in verschiedenen Versionen importieren und diese Versionierung in agorum core nachbilden.
Beispiel
Unterhalb dieses Verzeichnisses liegen die einzelnen Versionen der Datei.
Sie können:
Für jede einzelne Versionsdatei muss das Import-JavaScript diese Werte zurückgeben:
Wert | Beschreibung | Pflicht |
---|---|---|
ac_version | Definiert eine Ganzzahl, beginnend bei 1.
|
ja |
ac_versionlabel | Definiert eine Zeichenkette für die lesbare Versionsnummer, die in agorum core in der Objektinfo steht. | nein |
ac_versioncomment | Definiert eine Zeichenkette als Versionskommentar (intern: description). Sie können jedes andere Metadatum verwenden, da das System alle Metadaten versioniert. |
nein |
Ausschnitt aus dem Beispiel-JavaScript zur Verdeutlichung der Pfad-Operation
// .... // Achtung: Versionsdateien sind in einem Unterordner, deswegen muss der letzte Ordner ignoriert werden if (data.ac_version) { path = path.substring(0, path.lastIndexOf('/')); } // ....
Ein Beispiel für einen Import finden Sie unter Die Filestruktur mit Metadaten aus den Dateinamen importieren.
Für die Konfiguration der Grundeinstellungen des Imports steht ein User-Interface (UI) zur Verfügung.
Schaltfläche | Bedeutung |
---|---|
New |
|
Load | Lädt eine bereits gespeicherte Import-Definition, sodass Sie diese weiterbearbeiten oder ausführen können. |
Save | Speichert Ihre aktuelle Eingabe.
|
Einstellung | Bedeutung | Pflicht |
---|---|---|
Config name | Definiert den Namen der Konfiguration. | ja |
Max amount to import | Begrenzt die Anzahl der zu importierenden Daten, etwa für Tests. | nein |
Simulated | Aktiviert den Simulationsmodus für Importe.
|
nein |
Skip Errors | Aktiviert Ignoriert beim Import auftretende Fehler und fährt mit dem Import fort. Deaktivieren Sie diese Einstellung und finden und beheben Sie die Fehler. Deaktiviert Der Import stoppt bei Fehlern. |
nein |
Output folder | Definiert einen lokalen Ordner auf dem Server, auf dem agorum core installiert ist, und schreibt die Protokolle des Imports in diesen Ordner. | ja |
Import folder | Definiert das Verzeichnis / die Verzeichnisse, in denen sich die zu importierenden Daten befinden. Geben Sie mehrere Verzeichnisse an, arbeitet das System diese der Reihe nach ab. |
ja |
agorum core base folder | Definiert einen Startordner innerhalb der agorum core-Struktur. Dieser Ordner stellt für alle Pfadangaben die Basis dar. |
ja |
Set revision flags | Aktiviert Berücksichtigt Flags in der Regeldatei. Deaktiviert Ignoriert Flags in der Regeldatei. |
nein |
Migration csv | Definiert den Pfad zur Import-Konfigurationsdatei. Die Import-Konfigurationsdatei muss in agorum core gespeichert sein. |
ja |
Path to mapping csvs | Definiert den Ordner, in dem Mapping-CSVs vorhanden sind. Sie können beliebig viele Mapping-Dateien unter diesem Pfad zur Verfügung stellen. |
nein |
Import Script (JS) | Definiert das JavaScript mit den Funktionen read und update. Die Handler fs, json und jpl (d3-Exportdateien) existieren. |
ja |
Name of src_doctype field | Definiert eine andere Ausdrucksweise der Ursprungssoftware für das Feld src_doctype, um die Dokumententypen voneinander zu unterscheiden. Das System weiß, dass es die Werte für den src_doctype in diesem Metadatum findet. |
nein |
Extension metadata file | Definiert die Endung der Metadaten-Dateien.
|
nein |
Extensions to ignore | Definiert die Dateiendungen, die das System während des Imports überspringt. Beispiel Beim Import existiert zu jeder Datei, die Sie importieren möchten, eine Steuerdatei mit der Dateiendung json. Tragen Sie hier ein, dass das System alle Dateien mit der Dateiendung json nicht für den Import berücksichtigt. Diese müssen Sie in Ihrem Skript berücksichtigen. |
nein |
In diesem Bereich starten Sie den Import. Das System gibt Statusinformationen aus, während es den Import ausführt.
Schaltfläche | Beschreibung |
---|---|
Run | Startet und protokolliert den Import. |
Stop | Stoppt den Import. |
Delete imported | Löscht den Import aus agorum core.
|
Hinweise:
Das System löscht das dazugehörige Protokoll nicht, damit Sie Fehlermeldungen erneut prüfen können.
Das System benennt den von Ihnen angegebenen Output folder um und fügt dessen Ordner-ID an den Dateinamen ein.
Sie können diese Protokolle manuell löschen, wenn Sie sie nicht mehr benötigen.
Angezeigte Werte
Wert | Beschreibung |
---|---|
Start | Zeigt Datum / Uhrzeit des gestarteten Imports. |
Step | Scanning Das System sammelt alle zu importierenden Daten und erstellt eine Liste, die es im 2. Schritt abarbeitet. Importing Das System importiert die eingescannten Daten. |
Duration | Zeigt die Dauer des Imports an. |
Amount | Zeigt den Status der importieren Daten. Sie sehen anhand der Werte Ist / Soll, wie viele Dokumente das System bereits importiert hat. Beispiel 10/100 |
Skipped | Zeigt die übersprungenen Objekte. Das System überspringt Daten, die es nicht einlesen konnte (weil schon importiert, per JavaScript als zu überspringend markiert oder weil die Dokumente fehlerhaft sind). |
Errors | Zeigt, wie viele Fehlermeldungen während des Imports aufgetreten sind. |
Current | Zeigt in path das aktuell importierte Objekt mit dessen agorum core-Pfad. |
Das System protokolliert den kompletten Import und legt das Protokoll in den Ordner Output folder ab.
Aufbau eines Protokolls
<Pfad des Output folder>/done.txt <Pfad des Output folder>/error.txt (wird nur erstellt, wenn Fehler vorhanden sind) <Pfad des Output folder>/audit/audit_dd_MM_yyyy-HH_mm_ss.csv
Enthält jede Datei, die das System erfolgreich importiert hat.
Beispiel
/opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 2/folder 3/folder 4/test4.txt /opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 2/test2.txt /opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 5/test5.txt /opt/agorum/agorumcore/dmsimporter-demo/import-folder/test.txt
Anhand dieser Einträge weiß das System bei einer Importunterbrechung, welche Dokumente es bereits importiert hat, und überspringt diese.
Enthält Fehlermeldungen, die während des Imports aufgetreten sind. Der Inhalt der Datei ändert sich, wenn Sie die Einstellung Skip errors aktiviert haben.
Einstellung „Skip errors“ aktiviert
In der Datei error.txt stehen alle Fehlermeldungen, die während des Imports aufgetreten sind.
Einstellung „Skip errors“ deaktiviert
Der Import wird durch einen Fehler aufgehalten und zeigt diesen Fehler in der Datei an.
Die Datei ist wie folgt aufgebaut (zur besseren Sichtbarkeit wurde Source File fett dargestellt, die Fehlermeldung normal):
<Source File> <Fehler-Text> <Source File> <Fehler-Text>
Beispiel
/opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 2/folder 3/test3.txt Metadatum dmsimporter_dt kann nicht generiert werden es fehlt scr_dt /opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 1/test1.txt Datum ist falsch belegt {"value":"1978-09-17T11:00:00.000Z","type":"date","acMetadata":"dmsimporter_createdate","use":false}
Unterhalb des Ordners audit legt das System eine CSV-Datei an, die das audit-Protokoll enthält.
Der Dateiname basiert auf folgendem Format:
audit_dd_MM_yyyy-HH_mm_ss.csv
Beispiel: audit_09_09_2019-11_06_26.csv
Spalte | Beschreibung | Beispiel |
---|---|---|
source name | Zeigt den Dateinamen vor Import. | test4.txt |
date | Zeigt das Importdatum im Format dd.MM.yyy HH:mm. | 09.09.2019 09:06:01 |
source file | Zeigt den kompletten Pfad, in dem sich die Datei innerhalb der Importstruktur befand. | /opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 2/folder 3/test3.txt |
destination name | Zeigt den Dateinamen nach dem Import in agorum core. | Angebot_666777.txt |
destination folder | Zeigt die Ablagepfade innerhalb von agorum core. Das System trennt die Pfade durch \n auf und listet sie einzeln auf, wenn die Importdatei in mehreren Pfaden liegen (Verlinkungen). |
Kunden/Testkunde 456/Angebote/2019/09 |
metadata | Zeigt die Metadaten, die der importierten Datei in agorum core zugeordnet worden sind. Das System protokolliert die Metadaten inklusive des Mappings. |
dmsimporter_offernumber (src_offernumber)=38493 dmsimporter_offerdate (src_offerdate)=Sat Sep 21 2019 12:00:00 GMT+0200 (CEST) dmsimporter_doctype=Angebot dmsimporter_customernumber (src_customernumber)=K999 dmsimporter_customername=Kunde 999 |
systemflags | Zeigt die Systemflags der importierten Datei. | |
revision years | Zeigt die Anzahl der Jahre, auf welche die importierte Datei auf revisionssicher gesetzt ist. | 11 |
success | siehe Spalte Beispiel | true |
info | Zeigt die Fehlermeldung, wenn der Import fehlschlägt. | Beispieldatei: Beispielinhalt: |
Beispiel der Audit-Datei undefined>audit_09_09_2019-11_23_34.csv mit folgendem Inhalt
source name;date;source file;destination name;destionation folder;metadata;systemflags;revision years;success;info "test3.txt";"09.09.2019 11:23:35";"/opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 2/folder 3/test3.txt";"?";"?";"";"";"";false;"Metadatum dmsimporter_dt kann nicht generiert werden es fehlt scr_dt" "test4.txt";"09.09.2019 11:23:35";"/opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 2/folder 3/folder 4/test4.txt";"An_34343.txt";"Kunden/Testkunde 456/Angebote/2019/09 /Alle Angebote/2019/09";"dmsimporter_offernumber (src_offernumber)=34343 dmsimporter_offerdate (src_offerdate)=Fri Sep 20 2019 12:00:00 GMT+0200 (CEST) description (src_description1)=Teil 1 Teil 2 dmsimporter_doctype=Angebot ";"";"";true;"" "test2.txt";"09.09.2019 11:23:36";"/opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 2/test2.txt";"An_98765.txt";"Kunden/Testkunde 456/Angebote/2019/09 /Alle Angebote/2019/09";"dmsimporter_offernumber (src_offernumber)=98765 dmsimporter_offerdate (src_offerdate)=Tue Sep 17 2019 12:00:00 GMT+0200 (CEST) dmsimporter_doctype=Angebot ";"";"";true;"" "test1.txt";"09.09.2019 11:23:36";"/opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 1/test1.txt";"?";"?";"";"";"";false;"Datum ist falsch belegt {""value"":""1978-09-17T11:00:00.000Z"",""type"":""date"",""acMetadata"":""dmsimporter_createdate"",""use"":false}" "test5.txt";"09.09.2019 11:23:36";"/opt/agorum/agorumcore/dmsimporter-demo/import-folder/folder 5/test5.txt";"An_38493.txt";"/Alle Angebote/2019/09";"dmsimporter_offernumber (src_offernumber)=38493 dmsimporter_offerdate (src_offerdate)=Sat Sep 21 2019 12:00:00 GMT+0200 (CEST) dmsimporter_doctype=Angebot dmsimporter_customernumber (src_customernumber)=K999 dmsimporter_customername=Kunde 999 ";"";"";true;"" "test.txt";"09.09.2019 11:23:37";"/opt/agorum/agorumcore/dmsimporter-demo/import-folder/test.txt";"Re_12345_test.txt";"Kunden/Testkunde 123/Rechnungen/2019/09";"dmsimporter_invoicenumber (src_invoicenumber)=12345 dmsimporter_invoicedate (src_invoicedate)=Tue Sep 17 2019 12:00:00 GMT+0200 (CEST) dmsimporter_doctype=Rechnung ";"";"";true;""
Globale agorum core-Metadaten existieren, die Sie verwenden können.
Metadatum | Beschreibung |
---|---|
originalName | Entspricht dem Dateinamen (baseName) des eingelesenen Files. |
extension | Entspricht der Dateiendung des eingelesenen Files. |
Der agorum core dms importer liefert Beispiele mit, die die Funktionsweise des Imports vorstellen.