Zum Inhalt

Datensatz (Record-View-Widget)

Das Widget „Datensatz“ zeigt einen einzelnen Datensatz schreibgeschützt an, im Formular seines Datenschemas. Welcher Datensatz erscheint, bestimmt ein anderes Widget auf dem Dashboard: Derzeit ist das ein Start-Widget mit eingebettetem Formular, das seine Eingaben auf einem Kanal sendet. So sind beim Ausfüllen eines Formulars die Details des gewählten Kunden, Projekts oder der gewählten Rechnung sofort daneben sichtbar, ohne Wechsel in die Datenbank.


Typische Einsatzbereiche

Einsatz Beschreibung
Kunde beim Auftrag Im Startformular „Auftrag erfassen“ wird ein Kunde gewählt; daneben stehen Adresse und Ansprechpartner des Kunden.
Rechnung prüfen Im Startformular wird eine Rechnung gewählt; daneben stehen Beträge und Fälligkeit der Rechnung.
Projekt-Stammdaten Beim Erfassen einer Tätigkeit zeigt das Widget das gewählte Projekt mit Budget und Verantwortlichen.

So funktioniert die Verbindung

  1. Ein Widget Start mit dem Verhalten Formular im Widget anzeigen sendet bei jeder Änderung den Inhalt seines Formulars auf einem Kanal. Der Kanal wird dort unter Modell auf Kanal senden als Kanalname festgelegt; Standard ist modelChangeChannel.
  2. Das Widget „Datensatz“ hört auf diesem Kanal mit.
  3. Ein JSONata-Ausdruck holt aus der Nachricht die Referenz heraus – meist einfach der technische Name des Referenzfelds im Formular, zum Beispiel rechnung.
  4. Ergibt der Ausdruck einen Datensatz (mit id und data_schema_id), ein Objekt mit id, dataObjectId oder data_object_id oder nur die Id als Text, lädt das Widget diesen Datensatz und zeigt ihn an. Auch ein Widget, das erst später lädt, bekommt die letzte Nachricht des Kanals.

Ist das Ergebnis leer, bleibt der zuletzt angezeigte Datensatz stehen.


Einrichten

  1. Widget Start hinzufügen, Prozess und Startereignis wählen, Verhalten: Formular im Widget anzeigen.
  2. Bei Modell auf Kanal senden einen Kanalname eintragen, zum Beispiel rechnungAuswahl, oder den Standard lassen.
  3. Widget Datensatz hinzufügen und im Eigenschaftenpanel Anzeige konfigurieren wählen. Der Dialog Datensatz-Anzeige konfigurieren öffnet sich.
  4. Kanal wählen. Angeboten werden die Kanäle der Start-Widgets dieses Dashboards mit eingebettetem Formular; bei genau einem ist er vorbelegt. Ohne ein solches Start-Widget lässt sich der Dialog nicht speichern.
  5. JSONata-Ausdruck eintragen, zum Beispiel rechnung.
  6. Optional unter Ausdruck testen eine Beispiel-Nachricht (JSON) eintragen; das Extrahierte Ergebnis zeigt, was der Ausdruck liefert.
  7. Speichern und das Dashboard veröffentlichen.

Beispiel-Nachricht eines Startformulars mit dem Referenzfeld rechnung:

{ "rechnung": { "id": "01HXYZ", "data_schema_id": "documents/app_accounting/app_invoices" }, "bemerkung": "Bitte prüfen" }

Der Ausdruck rechnung liefert hier den Rechnungsdatensatz, das Widget zeigt die Rechnung an.


Anzeige im Dashboard

  • Solange nichts gewählt ist, steht im Widget „Noch keine Auswahl getroffen.“
  • Der Datensatz erscheint im Formular seines Datenschemas, alle Felder schreibgeschützt.
  • Die Schaltfläche In der Datenbank öffnen öffnet den Datensatz in der Datenbank in einem neuen Tab, sofern die Person Datensätze lesen darf.
  • Ein ungültiger Ausdruck wird als „Ungültiger JSONata-Ausdruck in der Konfiguration.“ gemeldet.

Grenzen

  • Ein Klick in einer Tabelle zeigt den Datensatz hier nicht an, denn Tabellen senden nichts auf einem Kanal.
  • Im Dialog werden derzeit nur die Kanäle von Start-Widgets mit eingebettetem Formular angeboten. Die Planungstafel kann mit dem Schritt „Auf Kanal veröffentlichen“ ebenfalls senden; ein Kanal der Tafel lässt sich im Dialog derzeit aber nicht auswählen.
  • Die Anzeige des Datensatzes, der in einem Filter-Container gewählt ist, lässt sich derzeit nicht im Designer einrichten.
  • Ohne Ausdruck wird die ganze Nachricht ausgewertet. Ein Formularinhalt hat selbst keine Id – dann wird nichts angezeigt.
  • Änderungen am angezeigten Datensatz erscheinen erst nach dem Neuladen der Seite; die Aktualisieren-Schaltfläche des Dashboards lädt dieses Widget nicht neu.