Dokumente zuweisen

Typischerweise werden Dateiinhalte als Dokument in Lobster Data Platform / Orchestration hochgeladen, um sie einem bestimmten bestehenden Datenobjekt als Anhang zuzuweisen.

Das Herstellen dieser Zuweisung wird als Referenzieren bezeichnet. Dabei werden Eigenschaften des Dokuments in einer per Dokumentenreferenztyp vordefinierten Suchlogik verarbeitet, die das Ziel für die Zuweisung des Dokuments identifizieren soll.

Referenzen von Dokumenten auf Datenobjekte

Die Basis für diese Zuweisung bildet eine Referenz zum Datenobjekt, die sich aus zwei Eigenschaften des Dokument-Objekts zusammensetzt:

Eigenschaft

Inhalt

Beispiel

Referenziertes Objekt
referencedEntity

Klasse des referenzierten Objekts
(statische Aufzählung)

Benutzer (de.lobster.scm.base.security.user.User)
referencedEntity="base:User"

Referenziertes Objekt ID
referencedEntityId

interne ID des referenzierten Objekts
(Ganzzahl)

2701
referencedEntityId="2701"

Beide Eigenschaften werden automatisch mit Werten belegt, wenn das Referenzieren eines Dokuments erfolgreich verläuft.

►HINWEISE◄

  • Aufgrund der Datenstruktur kann ein Dokument-Objekt maximal einem Datenobjekt zugewiesen werden. Soll derselbe Inhalt als Anhang von mehreren Objekten erscheinen, sind mehrere Dokumente mit redundantem Inhalt erforderlich.

  • Im Zuge der Barcode-Erkennung werden automatisch Kopien des hochgeladenen Dokuments erstellt, falls dasselbe (Teil-)Dokument mehrere relevante Barcodes enthält.

  • Um dasselbe Dokument interaktiv unterschiedlichen Datenobjekten zuzuweisen, muss es also mehrfach hochgeladen werden.

Referenzieren eines Datenobjekts

Das Referenzieren wird immer dann angestoßen, wenn ein Dokument-Objekt gespeichert wird. Im Zuge der Barcode-Erkennung erfolgt das Referenzieren daher automatisch für jedes erstellte Dokument.

Die Eigenschaft Referenztyp (referenceType) des Dokuments muss zu diesem Zeitpunkt einen Dokumentenreferenztyp spezifizieren. Dieser beinhaltet die Definition einer Suche, die genau ein Datenobjekt liefern muss, damit das Dokument erfolgreich referenziert wird.

►WICHTIG◄ Die Suche erfolgt im Kontext der aktuellen Anmeldung und gibt nur Objekte zurück, für die Lesezugriff besteht. Die Zuweisung eines Dokuments kann also nur zu einem Datenobjekt erfolgen, das zum Zeitpunkt des Referenzierens gelesen werden darf. Ein Dokument mit einer Referenz auf ein Datenobjekt für das aktuell kein Lesezugriff besteht, erscheint zwar in der Übersicht für "Dokumente". Beim Versuch es zu selektieren erscheint allerdings eine Fehlermeldung.

►HINWEIS◄ Innerhalb der Suche kann der Parameter Maximale Ergebnisse auf den Wert 1 gesetzt werden. Falls die Suchkriterien auf mehrere Datenobjekte zutreffen, wird - ggf. unter Berücksichtigung einer angegebenen Sortierung - nur der erste Treffer zurückgegeben. Die Option Gesamtanzahl berechnen? muss in diesem Zusammenhang aber unbedingt deaktiviert werden, da sonst das Suchergebnis trotz der Beschränkung für Maximale Ergebnisse als mehrdeutig eingestuft wird sodass die Zuweisung fehlschlägt.

Der Wert der Eigenschaft Referenz (reference) wird für den Kontext der Suche als String-Variable "reference" übergeben. Typischerweise dient er das Schlüsselkriterium für die Zuweisung, ggf. als Ergebnis einer Barcode-Erkennung.

►HINWEIS◄ Es sind Zuweisungslogiken per Dokumentenreferenztyp denkbar, die ohne eine individuelle Referenz auskommen, etwa um Dokumente pauschal dem im Kontext der Anmeldung verwendeten Firmenkonto (s. Firma der Session) zuzuweisen. Allerdings wird ohne Angabe einer Referenz die im Dokumentenreferenztyp definierte Suche nicht gestartet, sondern der Referenz-Status "Nicht referenziert" gesetzt. Mindestens ein Dummy-Wert sollte für die Referenz also auch in diesen Sonderfällen angegeben werden.

Die Angabe eines Objekttyps per Eigenschaft Referenziertes Objekt (referencedEntity) wird bei der Suche nur berücksichtigt, falls der Dokumentenreferenztyp dazu keine eigene Festlegung trifft, weil er mit unterschiedlichen Objekttypen verwendbar sein soll. Ist dies der Fall, sollte die Angabe im Dokument allerdings nicht fehlen, sonst wird dem Dokument der Referenz-Status "Nicht referenziert" zugewiesen.

Ergebnisse des Referenzierens

Beim Referenzieren werden folgende Eigenschaften des Dokuments verändert:

Eigenschaft

Inhalt

Änderung

Referenziertes Objekt
referencedEntity

Klasse des referenzierten Objekts
(statische Aufzählung)

Unabhängig vom Erfolg des Referenzierens:

Wert aus Dokumentenreferenztyp, falls dort vorhanden
(Schreibschutz wird beim Speichern gesetzt)

Referenziertes Objekt ID
referencedEntityId

interne ID des referenzierten Objekts
(Ganzzahl)

Wert wird (nur) bei Erfolg geschrieben

Referenz-Status
referenceStatus


Statuswerte (statische Aufzählung)

Bedeutung

Referenziert (REFERENCED)

Zuweisung erfolgreich (s. Referenziertes Objekt/ID)

Nicht referenziert (NOT_REFERENCED)

Referenzierungsparameter unvollständig (Referenz, Referenziertes Objekt)

Zuordnung fehlgeschlagen (UNRESOLVED)

Suchergebnis beim Referenzieren leer oder mehrdeutig

Sofern das Referenzieren exakt ein Datenobjekt liefert, gilt der Referenz-Status "Referenziert" und das Ereignis Dokument zugewiesen wird ausgelöst. Wenn die dadurch ggf. angestoßenen Ereignisbehandlungen ohne Abbrechen bzw. Fehler durchlaufen, ist das Dokument danach dem Datenobjekt zugewiesen.

Mit den anderen Referenz-Status ("Nicht referenziert" oder "Zuordnung fehlgeschlagen"), wird das Dokument ebenfalls gespeichert. In der Übersicht für "Dokumente" besteht damit auch Zugriff auf die nicht erfolgreich referenzierten Dokumente, so dass Fehlerquellen analysiert und ggf. Korrekturen vorgenommen werden können.

►HINWEISE◄

  • Das Referenzieren erfolgt nicht nur beim Erstellen eines Dokument-Objekts, sondern auch bei jedem erneuten Speichern (Update) des Dokuments, mit den dann gültigen Parametern.

  • Einerseits ermöglicht dies nach dem Fehlschlag einer Zuweisung interaktive Korrekturen an der Referenz bzw. oder für den Dokumentenreferenztyp, um eine gültige Zuweisung zu erreichen.

  • Andererseits kann eine gültige Referenz durch entsprechende Manipulationen auch ungültig werden. Wurde etwa der Wert für die Referenz von einem gültigen auf einen ungültigen Schlüssel geändert, lautet nach dem Speichern der Referenz-Status "Zuordnung fehlgeschlagen", obwohl die Eigenschaft Referenziertes Objekt ID unverändert auf das vorher erfolgreich aufgelöste Datenobjekt verweist. Für dieses Datenobjekt erscheint das betreffende Dokument nicht mehr als zugewiesen. Die ursprüngliche Zuweisung kann nur wiederhergestellt werden, indem eine korrekte Referenz eingegeben und per Speichern "aufgelöst" wird.

  • Etwas anders ist das Verhalten, wenn nach einer erfolgreichen oder fehlgeschlagenen Zuweisung der Wert für die Referenz gelöscht wird, was die Referenzierungsparameter unvollständig macht. Während einem "neuen" Dokument der Status "Nicht referenziert" zugewiesen würde, bleibt ein bestehender Status unverändert erhalten. Eine valide Referenz bleibt wirksam, eine fehlgeschlagene unwirksam.