Zum Inhalt springen

Datentabellen

Eine Datentabelle hält Stammdaten, in denen Ihre Workflows nachschlagen: eine Lieferantenliste mit Kostenstellen, eine Preisliste, ein Projektbudget. Ein Workflow-Skript liest ihre Zeilen mit ctx.tables, und eine Bedingung im Workflow kann prüfen, ob es zu einem Feld des Dokuments eine Zeile gibt. Sie füllen eine Tabelle, indem Sie eine Datei importieren, oder über die API aus Ihrem eigenen System.

Sie finden die Datentabellen in den Einstellungen unter Ablage › Datentabellen. Für Daten, die in einem anderen System bleiben und bei jedem Aufruf geholt werden, nutzen Sie stattdessen eine Datenquelle.

Datentabellen gehören zu den Tarifen Business und Enterprise und zur Testphase. Sie brauchen das Recht Datentabellen, ihre Spalten, Uploads und Zeilen anlegen und ändern, das die eingebauten Rollen Inhaber und Admin haben. Ohne den Tarif zeigen die Einstellungen die Seite nicht.

Tarif Business Enterprise Testphase
Tabellen 20 100 20
Zeilen, in allen Tabellen 100.000 1.000.000 100.000

Endet oder schrumpft Ihr Tarif, bleiben Ihre Tabellen und Zeilen, und veröffentlichte Workflows schlagen weiter in ihnen nach. Über das Kontingent Ihres Tarifs hinaus können Sie keine Tabellen anlegen und keine Zeilen hinzufügen; Ihr Tarif fasst keine weiteren Datentabellen. oder Die Zeilen würden das Kontingent Ihres Tarifs überschreiten. sagt es Ihnen.

  1. Wählen Sie Neue Tabelle.
  2. Geben Sie die Bezeichnung (Deutsch) und die Bezeichnung (Englisch) ein, jede höchstens 100 Zeichen.
  3. Geben Sie den Schlüssel ein: So nennen Skripte die Tabelle, etwa lieferanten. Er beginnt mit einem Kleinbuchstaben, enthält nur Buchstaben und Ziffern und hat höchstens 40 Zeichen. Er lässt sich später nicht ändern.
  4. Geben Sie unter Spalten jeder Spalte einen Schlüssel (nach denselben Regeln), ihre Bezeichnungen und ihren Typ: Text, Zahl, Betrag, Datum oder Ja/Nein. Weitere fügen Sie mit Spalte hinzufügen hinzu; eine Tabelle hat höchstens 50 Spalten.
  5. Wählen Sie die Schlüsselspalte: Über ihren Wert werden Zeilen gefunden und aktualisiert, deshalb hat jede Zeile einen, und keine zwei Zeilen haben denselben. Die Schlüsselspalte enthält einen Text, eine Zahl oder ein Datum.
  6. Wählen Sie Tabelle anlegen.

Wie Werte gelesen werden. Text wird genau verglichen, führende Nullen bleiben also: Eine Kostenstelle 0100 ist ein Text, nicht die Zahl 100. Eine Zahl darf einen Dezimalpunkt haben oder, ohne ihn, ein Dezimalkomma (1234,5); Tausendertrennzeichen werden nicht angenommen. Ein Betrag hat höchstens zwei Nachkommastellen. Ein Datum ist 2026-10-23 oder 23.10.2026. Ja/Nein nimmt true/false, ja/nein, yes/no, wahr/falsch und 1/0 an. Eine Textzelle hat höchstens 4.000 Zeichen, eine Zeile höchstens 64 KB.

Öffnen Sie eine Tabelle aus der Liste. Ihre Seite hat die Reiter Zeilen, Spalten und Importe:

  • Zeilen listet die Zeilen nach Schlüssel. In Zeilen suchen findet einen Text im Schlüssel oder in einem beliebigen Wert.
  • Spalten listet die Spalten. Spalte hinzufügen fügt eine hinzu; der Typ einer Spalte lässt sich später nicht ändern, an ihre Stelle tritt eine neue Spalte. Bezeichnungen bearbeiten ändert nur die Bezeichnungen. Entfernen löscht eine Spalte und ihre Werte in allen Zeilen; die Schlüsselspalte lässt sich nicht entfernen.
  • Importe hält jeden Import aus einer Datei fest: Importiert von, Wann, Zeilen, Art und Datei (SHA-256), die Prüfsumme der Datei.

Exportieren lädt die Tabelle als CSV-Datei herunter, die Excel so öffnet, wie sie ist: Semikolons zwischen den Werten, die Schlüssel der Spalten als Kopfzeile. Ein Text, der mit =, +, - oder @ beginnt, bekommt ein ' vorangestellt, so dass eine Tabellenkalkulation ihn als Text zeigt und nicht als Formel ausführt.

  1. Wählen Sie auf der Seite der Tabelle Zeilen importieren.
  2. Datei wählen: eine XLSX-, CSV- oder JSON-Datei (ein Array von Objekten oder ein Objekt je Zeile), bis 20 MB und 100.000 Zeilen. Aus einer Arbeitsmappe liest Acriva das erste Blatt.
  3. Wählen Sie die Art des Imports:
    • Ergänzen und aktualisieren: Neue Schlüssel kommen hinzu, vorhandene werden aktualisiert. Nichts wird gelöscht, und eine Spalte, die Sie nicht übernehmen, behält ihren Wert.
    • Ersetzen: Alle Zeilen werden durch die Zeilen der Datei ersetzt. Schlägt der Import fehl, bleiben die alten Zeilen.
  4. Spalten zuordnen: Acriva schlägt für jede Spalte der Datei die Spalte der Tabelle vor, deren Schlüssel oder Bezeichnung sie trägt. Wählen Sie eine andere oder Nicht übernehmen. Die Schlüsselspalte muss zugeordnet sein.
  5. Vorschau: die ersten Zeilen der Datei und ihre Fehler. Was der Import ändert zählt die Zeilen, die neu, aktualisiert, unverändert und, beim Ersetzen, gelöscht sind.
  6. Wählen Sie im Schritt Übernehmen … Zeilen importieren mit der Zahl der Zeilen. Solange eine Zeile einen Fehler hat, wird der Import nicht ausgeführt: Korrigieren Sie die Datei und laden Sie sie neu hoch.

Der Import wird auf dem Reiter Importe festgehalten, und laufende Workflows lesen die neuen Zeilen ab ihrem nächsten Schritt.

Welche Dateien Acriva liest. Der Typ einer Datei ergibt sich aus ihrem Inhalt, nicht aus ihrem Namen. Acriva liest die Werte, die Excel für Formeln gespeichert hat, und führt nie eine Formel aus. Alte .xls-Dateien, binäre Arbeitsmappen (.xlsb) und Arbeitsmappen mit Makros (.xlsm) werden abgelehnt: Speichern Sie sie als .xlsx. Eine CSV-Datei darf Semikolon, Komma oder Tabulator zwischen den Werten haben, in UTF-8 oder in der Windows-Kodierung, die Excel schreibt.

Der Upload selbst. Die Datei wird nicht gespeichert, nur ihre Prüfsumme. Die gelesenen Zeilen bleiben 24 Stunden für die Vorschau und werden dann gelöscht. Bis zu 5 Uploads des Arbeitsbereichs dürfen auf ihren Import warten. Es wird immer nur ein Upload des Arbeitsbereichs gelesen: Läuft gerade einer, bittet Acriva Sie, es in einigen Sekunden erneut zu versuchen.

  • Zeilen nach Schlüssel löschen (im Menü der Tabelle) löscht bis zu 1.000 Zeilen auf einmal, nach ihren Schlüsseln, einer pro Zeile. Die Zeilen werden sofort und endgültig gelöscht, etwa um die Daten einer Person zu löschen.
  • Tabelle löschen löscht die Tabelle mit allen ihren Zeilen und Importen.

Eine Tabelle oder Spalte, die ein veröffentlichter Workflow oder eine laufende Instanz verwendet, lässt sich nicht löschen: Ein veröffentlichter Workflow oder eine laufende Instanz verwendet diese Tabelle.

Ein Skript liest nur die Tabellen, die sein Schritt als Eingaben nennt; der Skript-Schritt zeigt sie unter Eingaben › Datenquellen und Datentabellen als Datentabelle. Dann schlägt es eine Zeile nach ihrem Schlüssel nach oder fragt Zeilen nach ihren Spalten ab:

const lieferant = await ctx.tables.lookup('lieferanten', ctx.document.fields.lieferantennummer);
if (lieferant == null) {
ctx.hint('Der Lieferant steht nicht in der Lieferantenliste. Bitte kontieren Sie von Hand.');
return;
}
ctx.setField('kostenstelle', lieferant.kostenstelle);
const gleicheKostenstelle = await ctx.tables.query('lieferanten', { kostenstelle: '4400' });
  • lookup gibt die Zeile zurück, deren Schlüssel passt, oder null. Der Schlüssel wird in der Form der Spalte verglichen: 1.50 findet 1.5, 23.10.2026 findet 2026-10-23.
  • query gibt die Zeilen zurück, deren Spalten den angegebenen Werten gleichen, in bis zu 3 Spalten: höchstens 100 Zeilen, nach Schlüssel geordnet. null findet leere Zellen.
  • Ein Lauf schlägt höchstens 50-mal nach, lookup und query zusammen. Eine Tabelle, die der Schritt nicht nennt, oder das 51. Nachschlagen beendet den Lauf (table-not-declared, limit-table-lookups), siehe Grenzen überschritten.

Der Designer bietet eine Datentabelle noch nicht als Eingabe an. Ein Workflow bekommt sie über seine Datei workflow.yaml, in der der Skript-Schritt sie unter seinen Eingaben nennt:

inputs:
- kind: field
key: lieferantennummer
type: text
- kind: table
key: lieferanten

Eine Bedingung kann prüfen, ob die Tabelle eine Zeile hat, deren Schlüssel ein Feld des Dokuments ist, und, wenn gewünscht, eine Spalte dieser Zeile mit festen Werten vergleichen. Der Designer zeigt eine solche Bedingung als Schlägt in der Datentabelle „lieferanten“ nach; wie eine Eingabe aus einer Tabelle kommt sie über die Datei des Workflows:

- kind: condition
name: bekannterLieferant
label: Bekannter Lieferant?
branches:
- when:
kind: tableLookup
table: lieferanten
keyField: lieferantennummer
column: gesperrt
operator: equalTo
constants: ['true']
next: gesperrterLieferant
default: freigabe

Ohne column ist die Bedingung erfüllt, wenn es die Zeile gibt. Beim Veröffentlichen prüft Acriva, dass es die Tabelle und die Spalte gibt und dass der Typ des Felds zu dem der Schlüsselspalte passt (ein Textfeld zu einem Text-Schlüssel, eine Zahl oder ein Betrag zu einem Zahlen-Schlüssel, ein Datum zu einem Datums-Schlüssel). Ein Workflow schlägt in höchstens 20 verschiedenen Paaren aus Tabelle und Feld nach. Lässt sich eine Tabelle gerade nicht lesen, gilt die Bedingung als ohne Zeile; den Schritt lässt sie nie scheitern.