Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > Konfigurationen zu Metadaten > Beispiel-Metadatum mit einem JS-Handler definieren
In der metadata-collection.yml geben Sie an, für welche Bereiche (Verwendungsarten) innerhalb von agorum core die Metadaten gültig sein sollen. Hierzu dient die Angabe usage:
collection_04: displayName: Test Metadaten Sammlung 04 usage: - docform - acic
In diesem Beispiel ist die Kollektion collection_04 für docform und für die Suche (acic = agorum core information center) gültig.
Diese Verwendungsarten existieren:
Verwendungsart | Beschreibung | Link |
---|---|---|
common | Überschreibt die Parameter für alle angegebenen Verwendungsarten. | common |
docform | Erzeugt aus der Kollektion automatisch einen docform-Dokumententyp. | docform |
cmis | Erzeugt aus der Kollektion automatisch einen CMIS-Dokumententyp zur Nutzung von etwa cmissync oder PatOrg. Geben Sie zusätzlich zum hier definierten Namen das Präfix agorum: an. |
cmis |
acic | Erzeugt aus der Kollektion automatisch eine Suchkonfiguration für die Suche. | acic |
form | Erzeugt eine generische Eingabe und Anzeigemaske im Bereich Übersicht im Detailfenster des jeweiligen Objekts. | form |
mapping_source | Definiert die metadata collection samt deren Metadaten als Quellmapping. Mappings benötigen Sie etwa für die Knoten Daten konvertieren sowie für die DATEV-Knoten. |
mapping_source |
mapping_target | Definiert die metadata collection als Zielmapping. Mappings benötigen Sie etwa für die Knoten Daten konvertieren sowie für die DATEV-Knoten. |
mapping-target |
Bei jedem Metadatum können Sie mit common für alle Verwendungsarten Parameter überschreiben.
In folgendem Beispiel ist das Metadatum hervorgehoben:
-test_metadata_collection_01: displayName: Test Metadaten Sammlung 01 usage: - docform - cmis - acic docform: acic: # overwrite title of acic title: 'Metadaten 01' items: - test_string: acic: title: 'Ein tolles Suchfeld' # remove auto subquery subQuery: - test_string_multi: acic: # disable for search unavailable: true - test_date: docform: # disable for docform unavailable: true - test_date_multi: acic: # overwrite complete subquery query: '${subQuery} allfields:agorum_metadata_collection_test_date_multi' subQuery: - query: '${value}' queryPart: 'agorum_metadata_collection_test_date_multi:[${valueFrom} TO ${valueTo}]' name: 'agorum_metadata_collection_test_date_multi_from_to' type: 'date-range' titleFrom: 'x ab Datum (yyyy-mm-dd)' titleTo: 'x bis Datum (yyyy-mm-dd)' # convert: 'dateString' - test_long: acic: subQuery: - title: 'Eine Untersuche' name: 'test_long' query: 'irgendwas:(${value})' - test_long_multi: - test_double: - test_double_multi: - test_boolean: - test_boolean_multi: - invoice_number: docform: extractor: date optional: true - invoice_date: common: displayName: 'Das Rechnungsdatum' docform: extractor: date optional: true - invoice_items: # when entries are defined in items, then only these entries are used, in this case only number items: - number:
In diesem Beispiel wurde für das Metadatum invoice_date ein common angegeben. Der Parameter displayName gilt somit für alle oben angegebenen Verwendungsarten:
Die Felder für die Metadaten, etwa displayName, arbeiten mit einer Rangreihenfolge/Hierarchie.
Setzen Sie als Verwendungszweck docform, verwendet das System die Kollektion, etwa MusterfirmaEingangsRechnung wie im unteren Beispiel angegeben als docform-Dokumentyp. Der Dokumententyp enthält die angegebenen Metadaten.
# Defaults _group: agorum.metadata.collection.test _prefix: agorum_metadata_collection_test_ _default: type: string # Hier soll das _prefix nicht verwendet werden -MusterfirmaEingangsRechnung: displayName: Musterfirma Eingangsrechnung usage: - docform docform: items: - -acmf_rechnungsNummer: docform: extractor: string - -acmf_rechnungsDatum: docform: extractor: date - -acmf_betragBrutto: docform: extractor: currency - -acmf_betragNetto: docform: extractor: currency - -acmf_betragMwSt: docform: extractor: currency - -RgPosition: items: - acmf_positionsNummer: docform: extractor: string - acmf_artikelBezeichnung: docform: extractor: string - acmf_positionsBetrag: docform: extractor: currency - -MwStOK: displayName: Bruttobetrag entspricht nicht der Summe von Netto- und MwSt-Betrag docform: verifier: javascript verifierParameters: AC.eq(acmf_betragNetto+acmf_betragMwSt,acmf_betragBrutto) type: verify optional: false
Zusätzlich können Sie pro Kollektion und Metadatum weitere Angaben speziell für docform tätigen. In welcher Reihenfolge Sie diese im Skript angeben, ist irrelevant.
Parameter | Beschreibung | Beispiel/Werte |
---|---|---|
extractor (Pflicht) | Definiert einen Extraktor, der das Feld ausliest. Allgemeine Informationen zu den Extraktoren siehe agorum core docform - Extraktoren und Parameter |
Sie können entweder die Extraktoren aus der nachfolgenden Tabelle verwenden oder einen eigenen Extraktor anlegen. |
extractorParameters | Definiert weitere Parameter für den Extraktor, etwa bei boolean der Wert false oder true. Entspricht im docform-Dokumententyp dem Feld Parameter. |
false/true Beispiel eines JavaScript-Extraktors extractorParameters: "let ac = require('ac'); if (!value){ 1 } else{ ac.parseDouble(value,'de'); }" |
verifier | Definiert einen verifier. | javascript, fixeddatasource, onewrowdatasource, rowdatasource |
verifierParameters | Definiert weitere Parameter für den verifier, etwa bei javascript das enthaltene JavaScript. | AC.eq(acmf_betragNetto+acmf_betragMwSt,acmf_betragBrutto) |
type | Definiert den type (leer lassen oder verify). | verify |
optional | true Das Feld ist optional. false Das Feld ist verpflichtend.
|
true/false |
defaultValue | Definiert einen Standardwert für die Vorbelegung. Entspricht im docform-Dokumententyp dem Feld Vorbelegung. |
beliebiger Wert |
dataSource | Definiert einen MetaDB-Schlüssel zu einer Datenquelle (wird als Auswahlmenü in docform angezeigt). Entspricht im docform-Dokumententyp dem Feld Datenquelle. |
MAIN_MODULE_MANAGEMENT/customers/... |
dataType | Definiert einen Datentyp.
|
long, string, double, date, boolean |
handler | Definiert eine Handler.
|
agorum.zugferd.docform.ZugferdHandler |
unavailable | true Feld wird nicht verwendet. false Feld wird verwendet. |
true/false |
Als extractor können Sie alle Werte angeben, die im docform-Dokumententyp im Feld Extraktion zu finden sind. In der Spalte extractor stehen die Werte, die Sie als extractor in der metadata-collection.yml angeben können.
extractor | Entspricht im docform-Dokumententyp dem Feld „Extraktion“ |
---|---|
string | Zeichenkette |
numeric | numerische Zeichenkette |
alphanumeric | alphanumerische Zeichenkette |
integer | Ganzzahl |
double | Dezimalzahl |
date | Datum |
currency | Währung |
regexp | Regulärer Ausdruck |
datestrip | Datumsstreifen |
javascript | Javascript |
yesno | ja/nein-Wert |
Bsp2Decimals | Dezimalzahl (2 Nachkommastellen) |
BspBestellnummer | Bestellnummer |
BspDouble | Dezimalzahl (erweitert) |
BspIBAN | IBAN |
BspMengeneinheit | Mengeneinheit |
BspPreiseinheit | Preiseinheit |
BspTeilenummer | Teilenummer |
BspUStId | UStId |
BspWaehrung | Währung (mit Konvertierung) |
BspZahlungszielTageNetto | Zahlungsziel Tage netto |
dateEnd | Datum (letzte 8 Ziffern, ddMMyyyy) |
dateSpace | Datum (yy MM dd) |
Setzen Sie als Verwendungszweck acic, verwendet das System die Kollektion, etwa test_metadata_collection_01 wie im unteren Beispiel angegeben als Filter in der Suche. Der Filter enthält die angegebenen Metadaten.
-test_metadata_collection_01: displayName: Test Metadaten Sammlung 01 usage: - acic acic: # overwrite title of acic title: 'Metadaten 01' acl: 'ACL_test_metatdata_collection_01' items: - test_string: acic: title: 'Ein Suchfeld' # remove auto subquery subQuery: - test_string_multi: acic: # disable for search unavailable: true - test_date: - test_date_multi: acic: # overwrite complete subquery query: '${subQuery} allfields:agorum_metadata_collection_test_date_multi' subQuery: - query: '${value}' queryPart: 'agorum_metadata_collection_test_date_multi:[${valueFrom} TO ${valueTo}]' name: 'agorum_metadata_collection_test_date_multi_from_to' type: 'date-range' titleFrom: 'x ab Datum (yyyy-mm-dd)' titleTo: 'x bis Datum (yyyy-mm-dd)' # convert: 'dateString' - test_long: acic: subQuery: - title: 'Eine Untersuche' name: 'test_long' query: 'irgendwas:(${value})' - test_long_multi: - test_double: - test_double_multi: - test_boolean: - test_boolean_multi: - invoice_number: - invoice_date: - invoice_items: # when entries are defined in items, then only these entries are used, in this case only number items: - number:
Zusätzlich können Sie pro Kollektion und Metadatum weitere Angaben speziell für die Suche tätigen. Grundsätzlich können Sie hierbei alle Einstellungen verwenden, die auch bei Filterdefinitionenen möglich sind. Allerdings müssen Sie diese in yml-Schreibweise definieren. Zusätzlich können Sie optional den Parameter dataSourceParameter angeben. Das obige Beispiel zeigt einige Anwendungsfälle.
# ... -test_metadata_collection_01: displayName: Test Metadaten Sammlung 01 usage: - acic acl: published acic: # overwrite title of acic title: 'Metadaten 01' #additionalBaseQuery: 'weitere Einschränkung der baseQuery' listConfig: 'Standard' listType: 'detail' # oder 'explorer' favorite: true # disableDefaultFilter: true filterSelection: "agorum.metadata.collection.name.agorum_metadata_collection_test_string": value: true subQuery: "agorum.metadata.collection.filter.subquery.agorum_metadata_collection_test_string": value: - test sortConfig: - name: 'sortconfig_score_desc' text: 'Bester Treffer' sort: - property: score direction: DESC - name: 'sortconfig_name_asc' text: 'Name (A-Z)' sort: - property: name direction: ASC - name: 'sortconfig_createdate_desc' text: 'Erstelldatum (neu-alt)' sort: - property: createDate direction: DESC - name: 'sortconfig_lastmodifydate_desc' text: 'Zuletzt geändert (neu-alt)' sort: - property: lastModifyDate direction: DESC - name: 'sortconfig_updatedate_desc' text: 'Intern aktualisiert (neu-alt)' sort: - property: updateDate direction: DESC - name: 'sortconfig_lastaddeddate_desc' text: 'Hinzufügedatum (neu-alt)' sort: - property: lastAddedDate direction: DESC - name: 'sortconfig_contentsize_desc' text: 'Dateigröße (groß-klein)' sort: - property: contentSize direction: DESC sortConfigName: 'sortconfig_updatedate_desc'* exportConfig: - name: 'exportconfig_all_default' text: 'Suchergebnis exportieren ' export: output: resolveHeader: true exportMax: 100 metadataCollection: 'agorum_metadata_collection_test_test_metadata_collection_01' # ...
Parameter | Beschreibung |
---|---|
disableDefaultFilter | true Entfernt die Standardfilter wie Objektarten und Datumssuche aus dem Filter. false Belässt die Standardfilter wie Objektarten und Datumssuche im Filter. |
baseQuery | Überschreibt die Standardbasequery für die collection komplett. Weitere Informationen zu diesem Parameter siehe agorum.composite.search.filterResultDetails |
additionalBaseQuery | siehe agorum.composite.search.filterResultDetails |
sort | |
sortConfig | |
sortConfigName | |
filterSelection | siehe Namen für filterSelection definieren und agorum.composite.search.filterResultDetails |
filter | Überschreibt den Filter komplett und definiert einen eigenen.
|
favorite | true Benutzer können den Filter im Standard unter den Favoriten sehen. false Benutzer können den Filter im Standard nicht unter den Favoriten sehen. |
listType | siehe agorum.composite.search.filterResultDetails |
listConfig | Definiert die zu verwendende Listenkonfiguration.
|
exportConfig | siehe Den Export über das agorum core information center verwenden |
results | siehe agorum.composite.search.filterResultDetails |
Da das System die Namen der Collections automatisch bildet, müssen Sie diese in der Filterselection speziell angeben.
-test_metadata_collection_01: displayName: Test Metadaten Sammlung 01 usage: - cmis items: - test_string: - test_string_multi: - test_date: - test_date_multi: - test_long:
Für cmis-Dokumententypen existieren keine weiteren Einstellmöglichkeiten.
Geben Sie zusätzlich zum hier definierten Namen das Präfix agorum: an.
Das Ergebnis für CMIS sieht etwa so aus:
Dokumententyp: agorum:test_metadata_collection_01
Angabe von Propertys
agorum:agorum_metadata_collection_test_test_string
Angabe ohne Präfix der metadata collection
agorum:test_string
Setzen Sie als Verwendungszweck form, schalten Sie in der Bedienoberfläche im Detailfenster und dort in der Registerkarte Übersicht die angegebene Kollektion frei. Ein Benutzer kann dort etwa die Kollektion setzen oder bearbeiten:
daten: displayName: Beispiel Daten usage: - acic - form
Hinweise:
Bei diesem Verwendungszweck existiert kein Selektor zu Auswahl.
Benutzer können jede form-Collection über den Stift in der Registerkarte Übersicht eines Objekts wählen.
Mit den im nächsten Beispiel fett hinterlegten Angaben bei aon und deren Parameter können Sie des Weiteren die Bedienoberfläche beeinflussen:
# global _group: agorum.workflow.samples.metadata.collection _prefix: agorum_workflow_samples_metadata_collection_ # defaults _default: type: string daten: displayName: Beispiel Daten usage: - acic - agorum.workflow.samples.metadata.collection - form form: showEmpty: true items: - data_type: - data_description: - agorum.workflow.samples.metadata.collection: displayType: textArea - data_create_date: form: showEmpty: true - data_items: form: aon: showAppend: true showRowDelete: true showRowMove: true maxItems: 0 items: - pos_position: - pos_description: form: aon: label: 'Bezeichnung 1' actions: duplicate: true setColumnValues: true - pos_menge:
Parameter | Beschreibung |
---|---|
aon | Ergänzt oder überschreibt einzelne Eigenschaften der aon des jeweiligen Feldes. Sie können alle Propertys setzen, die bei dem jeweiligen Widget zur Verfügung stehen. |
showEmpty | true Das System zeigt das jeweilige Feld an, wenn es die form im readOnly-Modus anzeigt und das Feld keinen Wert besitzt. Wert nicht gesetzt Die globale Einstellung von showEmpty gilt. Parameter nicht gesetzt Das System blendet das Feld aus. |
Parameter | Beschreibung |
---|---|
showAppend | true Benutzer können weitere Positionen in der items-Liste eingeben. false Benutzer können keine weiteren Positionen in der items-Liste eingeben. |
showRowDelete | true Benutzer können weitere Positionen löschen. false Benutzer können keine weiteren Positionen löschen. |
showRowMove | true Benutzer können Positionen verschieben. false Benutzer können keine Positionen verschieben. |
maxItems | 0 Benutzer können die Liste blättern. 1 Benutzer können die Liste nicht blättern. |
Parameter | Beschreibung |
---|---|
label | Definiert eine Spaltenüberschrift für die Positionsbezeichnung. |
duplicate | Benutzer können eine Zelle duplizieren. Die Zustände der Zelle werden mitgenommen, etwa disabled, readOnly, hidden. trueAktiviert das Duplizieren. false Deaktiviert das Duplizieren. |
setColumnValues | Benutzer können den Wert im Feld Positionsbezeichnung mit der rechten Maustaste nach oben oder unten oder in beide Richtungen „vererben“. Tragen Benutzer etwa in der ersten Zeile im Feld Test1 etwas ein und klicken in diesem Feld auf die rechte Maustaste, erhalten sie diese Aktionen:
true Aktiviert die Vererbung nach oben oder unten. false Deaktiviert die Vererbung nach oben oder unten. |
Sie können des Weiteren alle Parameter der form.element.list setzen, siehe Eigenschaften.
Setzen Sie als Verwendungszweck mapping_source, können Sie die metadata collection samt deren Metadaten als Quellmapping definieren.
invoice_incoming: displayName: Eingangsrechnung usage: - mapping_source 1 mapping_source: 2 mapping: displayName: '${displayName} - [${name}]'
1
Setzen Sie bei der metadata collection invoice_incoming den usage mapping_source, taucht diese metadata collection im Mapping-Editor beim Erstellen eines neuen Mappings im Feld Quelle auf.
Ein neues Mapping erstellen Sie rechts über .
Tipp: Wenn Sie erstellte Mappings etwa von einem Testsystem in ein Produktivsystem übertragen möchten, verwenden Sie das Keyword MetaDb in der Datei export.yml und tragen Sie es dort ein.
Beispiel
# register mappings - MetaDB: /MAIN_MODULE_MANAGEMENT/mappings/[ agorum.invoice ]
2
Der Abschnitt mapping_source ist optional. Wenn Sie ihn nicht angeben, nimmt das System den definierten displayName aus der metadata.yml und zeigt diesen in der Bedienoberfläche an.
displayName (optional)
Definiert den Anzeigenamen der einzelnen Einträge im Mapping-Editor.
Beispiel
mapping_source: mapping: displayName: '${displayName} - [${name}]'
Setzen Sie als Verwendungszweck mapping_source, können Sie die metadata collections als Zielmapping definieren.
invoice_incoming:
displayName: Eingangsrechnung
# Kopfbereich
usage:
- mapping_target 1
mapping_target:
mapping:
displayName: '${name}'
transformation: 'ItemsToList' # oder ObjectToObject
validations:
- mandatory
...
...
# Positionsbereich
items:
- agorum_accounting_document_number:
mapping_target:
mapping:
mandatory: true # oder false
template: '${value:f}'
regex: '^([A-Z]{3})$'
help: '<p>Anzuzeigender Hilfetext für die Rechnungsnummer'
disabled: false # oder true
1
Setzen Sie bei der metadata collection invoice_incoming den usage mapping_target, taucht diese metadata collection im Mapping-Editor beim Erstellen eines neuen Mappings im Feld Ziel auf.
Ein neues Mapping erstellen Sie rechts über .
Tipp: Wenn Sie erstellte Mappings etwa von einem Testsystem in ein Produktivsystem übertragen möchten, verwenden Sie das Keyword MetaDb in der Datei export.yml und tragen Sie es dort ein.
Beispiel
# register mappings - MetaDB: /MAIN_MODULE_MANAGEMENT/mappings/[ agorum.invoice ]
# Kopfbereich usage: - mapping_target mapping_target: mapping: displayName: '${name}' transformation: 'ItemsToList' # oder ObjectToObject validations: - mandatory
displayName (optional)
Definiert den Anzeigenamen der einzelnen Einträge im Mapping-Editor.
Beispiel
mapping_target: mapping: displayName: '${name}'
Das System zeigt aufgrund des angegebenen displayNames jedes Metadatum mit seinem Namen im Mapping-Editor an.
validations (optional)
Definiert, dass das System entweder ausschließlich Pflichtfelder (- mandatory) oder ausschließlich reguläre Ausdrücke (- regex) bei Metadaten und deren Werte prüft.
Das System prüft im Standard sowohl Pflichtfelder als auch reguläre Ausdrücke, sofern Sie den Abschnitt validations nicht angeben.
Beispiel
mapping_target: mapping: displayName: '${name}' validations: - mandatory # oder - regex
So führen Sie die Prüfung durch:
transformation
Definiert einen dieser Konvertierungstypen:
Beispiel
mapping_target: mapping: displayName: '${name}' validations: - mandatory transformation: 'ItemsToList' # oder ObjectToObject
Dieser Typ erzeugt eine konvertierte Kopie des Quellobjekts.
Quellobjekt
{ "firstName": "Max", "lastName": "Mustermann" }
Im Mapping definieren Sie etwa, dass das System lastName in name konvertieren soll.
Ergebnis
{ "firstName": "Max", "name": "Mustermann" }
Dieser Typ fügt etwa Rechnungsdaten mit Positionen und Kopfdaten zu einer flachen Objektstruktur zusammen, sodass daraus ein flaches Array entsteht.
Quellobjekt
{ "invoiceID": "12345", "positions": [ { "net_amount": 24.00, "article_number": "248127381" }, { "net_amount": 3.00, "article_number": "333227381" } ] }
Im Mapping definieren Sie etwa, dass das System invoiceID, net_amount und article_number auf invoice_id, amount und articleNumber konvertieren soll.
Ergebnis
[ { "invoice_id": "12345", "amount": "24.00", "articleNumber": "248127381" }, { "invoice_id": "12345", "amount": "3.00", "articleNumber": "333227381" } ]
# Positionsbereich items: - agorum_doku_invoice_number: mapping_target: mapping: mandatory: true # oder false template: '${value:f}' regex: '^([A-Z]{3})$' help: '<p>Anzuzeigender Hilfetext für die Rechnungsnummer' depends: 'agorum_accounting_document_supplier_number' #disabled: false # oder true
mandatory
Wert | Beschreibung |
---|---|
true | Metadatum/ Feld ist verpflichtend. |
false | Metadatum/ Feld ist optional. |
Beispiel
# Positionsbereich items: - agorum_doku_invoice_number mapping_target: mapping: mandatory: true # oder false
template (optional)
Definiert ein Template für das Metadatum, das im Mapping-Editor als Ersetzungsausdruck dient.
Beispiel
# Positionsbereich items: - agorum_doku_document_id: mapping_target: mapping: template: '${value:f}'
regex (optional)
Definiert einen regulären Ausdruck für das Metadatum.
Beispiel
# Positionsbereich items: - agorum_doku_invoice_number: mapping_target: mapping: regex: ^[a-zA-Z0-9]+$
So führen Sie die Prüfung durch:
help (optional)
Zeigt einen Hilfetext zum jeweiligen Metadatum an.
Beispiel
# Positionsbereich items: - agorum_doku_invoice_number: mapping_target: mapping: help: '<p>Anzuzeigender Hilfetext für die Rechnungsnummer'
Klicken Sie im Mapping-Editor neben dem Metadatum auf , um den Hilfetext zu sehen.
depends (optional)
Definiert ein abhängiges Metadatum.
Geben Sie den vollständigen Namen des Metadatums an.
Beispiel
# Positionsbereich items: - agorum_doku_invoice_pos_number: mapping_target: mapping: depends: 'agorum_doku_invoice_description'
Wenn Sie im Mapping-Editor wie in diesem Beispiel das Metadatum agorum_doku_invoice_description als Zielfeld wählen, erzeugt das System darunter automatisch einen weiteren Eintrag mit dem Metadatum agorum_doku_invoice_pos_number.
disabled
Wert | Beschreibung |
---|---|
true | Benutzer können das Metadatum / Feld im Mapping auf der rechten Seite als Zielfeld nicht wählen. Steht der Parameter auf true, darf der Parameter mandatory nicht gleichzeitig auf true stehen. |
false | Benutzer können das Metadatum / Feld im Mapping auf der rechten Seite als Zielfeld wählen. |
Beispiel
# Positionsbereich items: - agorum_doku_invoice_pos_number: mapping_target: mapping: disabled: true # oder false