So generieren Sie Dokumente über die API

Geändert am Do, 20 Aug um 9:37 VORMITTAGS

So generieren Sie Dokumente über die API

Generieren von Dokumenten mit der Omnidocs Create API.

INHALTSVERZEICHNIS

Einführung

In diesem Leitfaden erfahren Sie, wie Sie Dokumente mit dynamischen Vorlagen über die Omnidocs Create API generieren.

Dynamische Vorlagen verwenden eine strukturierte JSON-Payload, um die Daten zu definieren, die in das Dokument eingefügt werden sollen. Jedes Feld in der Payload muss dem erwarteten Knoten-/Bausteintyp in der Vorlage entsprechen, z. B. Text, Zahl, Datum, Gruppe, Element, Auswahl, Wiederholung oder Tabelle.

Sie können dasselbe Schema für dynamische Vorlagen in zwei verschiedenen Abläufen verwenden:

  • Prepare-Ablauf
    Verwenden Sie den Prepare-Endpunkt, wenn Omnidocs Create den Generierungsablauf initialisieren und Informationen zurückgeben soll, die für die Fortsetzung des Prozesses benötigt werden. Dies ist nützlich, wenn die Integration die Dokumentgenerierung vorbereiten muss, bevor das endgültige Dokument erstellt wird.
  • Generate-Ablauf
    Verwenden Sie den Generate-Endpunkt, wenn Sie das Dokument direkt aus der bereitgestellten Payload generieren möchten.

Beide Endpunkte verwenden dasselbe Datenschema, sodass die Payload-Struktur für Text-, Zahlen-, Datums-, Gruppen-, Element-, Auswahl-, Wiederholungs- und Tabellenknoten in beiden Abläufen identisch ist.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Zugriff auf die Omnidocs Create API
  • Ein gültiges API-Token
  • Eine unitId
  • Eine templateId
  • Kenntnisse über das von der Vorlage verwendete Schema für dynamische Vorlagen

Endpunkte

Generierung vorbereiten

Verwenden Sie den Prepare-Endpunkt, um einen Generierungsablauf für dynamische Vorlagen zu initialisieren:

POST /api/v1/units/{unitId}/generate/prepare

Der Anfragetext enthält die von der dynamischen Vorlage benötigten Daten.

Dokument generieren

Verwenden Sie den Generate-Endpunkt, um ein Dokument direkt aus einer Vorlage zu generieren:

POST /api/v1/units/{unitId}/recipes/{templateId}/generate

Der Anfragetext verwendet dasselbe Schema wie der Prepare-Endpunkt.

Einfaches Anfragebeispiel

{
  "senderName": "Jane Doe",
  "recipientName": "John Doe",
  "amount": 1234.56,
  "date": "2025-10-10T00:00:00"
}

Jede Eigenschaft in der Payload muss einem Knotenschlüssel entsprechen, der in der dynamischen Vorlage konfiguriert ist.

Knotentypen

Textknoten

Verwenden Sie einen Textknoten, wenn die Vorlage einfachen Text erwartet.

{
  "senderName": "Jane Doe"
}

Der Wert muss ein JSON-String sein.


Zahlenknoten

Verwenden Sie einen Zahlenknoten, wenn die Vorlage einen numerischen Wert erwartet.

{
  "amount": 1234.56
}

Der Wert muss eine JSON-Zahl sein.


Datumsknoten

Verwenden Sie einen Datumsknoten, wenn die Vorlage einen Datumswert erwartet.

{
  "startDate": "2025-10-10T00:00:00"
}

Der Wert muss ein String sein, der das erwartete ISO-8601-Datumszeitformat verwendet.


Gruppenknoten

Verwenden Sie einen Gruppenknoten, wenn Sie ein verschachteltes Objekt senden müssen.

{
  "company": {
    "name": "Omnidocs",
    "address": "Wilders Plads 15A 1403 Copenhagen K Denmark",
    "cvr": 35679529
  }
}

Gruppen sind nützlich, um zusammengehörige Daten gemeinsam zu verwalten.


Elementknoten

Verwenden Sie einen Elementknoten, wenn die Vorlage Inline-Inhalte oder einen Verweis auf eine andere Vorlage erwartet.

{
  "employeeCard": {
    "referenceId": "000000000000",
    "data": {
      "firstName": "John",
      "lastName": "Doe"
    }
  }
}

Wenn referenceId ausgelassen wird, verwendet das Element die in der Vorlage konfigurierten Inline-Inhalte.


Auswahlknoten

Verwenden Sie einen Auswahlknoten, wenn die Vorlage vordefinierte Optionen enthält.

Die Eigenschaft option definiert, welche Elementoption ausgewählt werden soll.

Sie können die Option auf drei Arten referenzieren:

  • Über den Namen des Elements
  • Über den Index (0, 1, 2 usw.)
  • Über einen Objektwert (für zukünftige Unterstützung reserviert)
Bei Verwendung eines String-Werts referenziert die Eigenschaft option den Namen des Elements — nicht den Knotenschlüssel.

Wenn der Knoten mit Als Sichtbarkeit verwenden konfiguriert ist, werden alle Optionen eingefügt und die Daten jeder Option abgeglichen.

Wenn Ihre Vorlage beispielsweise Folgendes enthält:

  • Ein Element mit dem Namen Copenhagen Office
  • Ein Element mit dem Namen New York Office

Sie können das Element wie folgt über den Namen auswählen:

{
  "office": {
    "option": "Copenhagen Office",
    "data": {
      "name": "Copenhagen Office",
      "location": "Wilders Plads 15A 1403 Copenhagen K Denmark",
      "agent": "John"
    }
  }
}

Sie können auch über den Index auswählen:

{
  "office": {
    "option": 0,
    "data": {
      "name": "Copenhagen Office",
      "location": "Wilders Plads 15A 1403 Copenhagen K Denmark",
      "agent": "John"
    }
  }
}

Wenn der Auswahlknoten so konfiguriert ist, dass mehrere Auswahlen zulässig sind, geben Sie ein Array von Optionsobjekten an:

{
  "offices": [
    {
      "option": 0,
      "data": {
        "name": "Copenhagen Office"
      }
    },
    {
      "option": 2,
      "data": {
        "name": "New York Office"
      }
    }
  ]
}

Wiederholungsknoten

Verwenden Sie einen Wiederholungsknoten, wenn derselbe Inhalt mehrfach mit unterschiedlichen Daten generiert werden soll.

{
  "locations": [
    {
      "name": "Copenhagen Office",
      "location": "Wilders Plads 15A 1403 Copenhagen K Denmark",
      "cost": "$$$",
      "agent": "John"
    },
    {
      "name": "New York Office",
      "location": "World Trade Center",
      "cost": "$$$",
      "agent": "John"
    }
  ]
}

Sie können auch eine referenceId angeben, um eine referenzierte Vorlage zu wiederholen:

{
  "locations": {
    "referenceId": "000000000000",
    "items": [
      {
        "name": "Copenhagen Office",
        "location": "Wilders Plads 15A 1403 Copenhagen K Denmark"
      },
      {
        "name": "New York Office",
        "location": "World Trade Center"
      }
    ]
  }
}

Tabellenknoten

Verwenden Sie einen Tabellenknoten, wenn die Vorlage eine Tabelle aus strukturierten Daten generieren soll.

Das einfachste Format ist ein Array von Zeilenobjekten:

{
  "officesTable": [
    {
      "name": "Copenhagen Office",
      "location": "Wilders Plads 15A 1403 Copenhagen K Denmark",
      "cost": "$$$",
      "agent": "John"
    },
    {
      "name": "New York Office",
      "location": "World Trade Center",
      "cost": "$$$",
      "agent": "John"
    }
  ]
}

Sie können auch Spalten explizit definieren:

{
  "officesTable": {
    "columns": [
      {
        "title": "Name",
        "fraction": 1,
        "bindingConfiguration": {
          "bindingType": "text",
          "bindingKey": "name"
        }
      },
      {
        "title": "Location",
        "fraction": 1,
        "bindingConfiguration": {
          "bindingType": "text",
          "bindingKey": "location"
        }
      }
    ],
    "items": [
      {
        "name": "Copenhagen Office",
        "location": "Wilders Plads 15A 1403 Copenhagen K Denmark"
      },
      {
        "name": "New York Office",
        "location": "World Trade Center"
      }
    ]
  }
}
Verwenden Sie das Array-Format, wenn die Tabellenstruktur bereits in der Vorlage konfiguriert ist. Verwenden Sie das Objektformat, wenn die API-Anfrage auch die Tabellenspalten definieren soll.

Vollständiges Payload-Beispiel

{
  "title": "Office overview",
  "createdDate": "2025-10-10T00:00:00",
  "company": {
    "name": "Omnidocs",
    "address": "Wilders Plads 15A 1403 Copenhagen K Denmark",
    "cvr": 35679529
  },
  "selectedOffice": {
    "option": "Copenhagen Office",
    "data": {
      "name": "Copenhagen Office",
      "location": "Wilders Plads 15A 1403 Copenhagen K Denmark",
      "agent": "John"
    }
  },
  "locations": [
    {
      "name": "Copenhagen Office",
      "location": "Wilders Plads 15A 1403 Copenhagen K Denmark",
      "cost": "$$$",
      "agent": "John"
    },
    {
      "name": "New York Office",
      "location": "World Trade Center",
      "cost": "$$$",
      "agent": "John"
    }
  ]
}

Häufige Validierungsprobleme

Häufige Gründe, warum eine Anfrage fehlschlagen kann, sind:

  • Ein erforderlicher Knoten fehlt in der Payload
  • Ein Wert verwendet den falschen JSON-Typ
  • Ein Datumswert entspricht nicht dem erwarteten Format
  • Ein Auswahlknoten verweist auf eine Option, die nicht existiert
  • Ein Wiederholungs- oder Tabellenknoten erhält ein Objekt, obwohl ein Array erwartet wird
  • Eine referenzierte Vorlagen-ID ist ungültig oder nicht verfügbar

Zusammenfassung

Dynamische Vorlagen ermöglichen es Ihnen, Dokumente aus strukturierten JSON-Payloads zu generieren.

Um ein Dokument erfolgreich zu generieren, stellen Sie sicher, dass jede Eigenschaft in Ihrer Anfrage dem erwarteten Knotentyp und dem Binding Key in der Vorlage entspricht.

Verwenden Sie:

  • Strings für Text und Datumswerte
  • Zahlen für numerische Werte
  • Objekte für Gruppen und Elemente
  • Arrays für Wiederholungen, Mehrfachauswahlen und einfache Tabellen
  • Explizite Spaltendefinitionen, wenn die API die Tabellenstruktur steuern soll

War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren