Überblick
Die Aktion „Daten schreiben“ (WriteData) ermöglicht es, Feldwerte eines Datensatzes zu ändern, ohne DynamicCode schreiben zu müssen. Typische Anwendungsfälle:
- Statuswechsel per Button: z. B. „Freigeben“, „Abschließen“, „Zurückweisen“
- Bearbeiter und Zeitstempel setzen: automatisch den aktuellen Benutzer und Zeitpunkt eintragen
- Cross-Entity-Schreibvorgänge: aus Entität A heraus Felder in Entität B ändern
- Neue Datensätze anlegen: z. B. einen Protokolleintrag in einer anderen Entität erzeugen
Wir erstellen eine Aktion, die direkt in der Tabellenansicht als RowAction erscheint. Per Klick wird der Status von „Entwurf“ auf „Freigegeben“ gesetzt, der aktuelle Benutzer als Bearbeiter eingetragen und der Zeitpunkt protokolliert — alles ohne Code.
Schritt 1: Job anlegen
-
Job-Verwaltung öffnen
Navigieren Sie im Admin-Client zu „Jobs / Aktionen“ und klicken Sie auf „Hinzufügen“.
-
Grunddaten eingeben
Vergeben Sie einen Namen (z. B.
Freigeben) und eine optionale Beschreibung. -
Art und Kontext festlegen
Wählen Sie:
- Art: Interaktiv (Benutzer löst die Aktion per Button aus)
- Kontext: Ansichtselement (Aktion erscheint in der Tabelle)
- Ansichtselement: Wählen Sie das gewünschte Grid
-
RowAction aktivieren
Aktivieren Sie „Ist RowAction“, damit die Aktion pro Zeile (nicht global in der Toolbar) erscheint.
Schritt 2: Aktionstyp „WriteData“ konfigurieren
-
Tab „Aktion“ öffnen
Wechseln Sie zum Tab „Aktion“ des Jobs.
-
Aktionstyp wählen
Wählen Sie „WriteData“ aus der Auswahlliste. Es erscheinen drei Konfigurationsabschnitte.
Abschnitt „Ziel“
| Feld | Erklärung | Beispiel |
|---|---|---|
| Ziel-Entität | Leer = gleiche Entität wie der Job. Bei Cross-Entity: Ziel-Entität auswählen. | (leer) |
| Zieldatensatz-Modus |
Aktueller Datensatz: ändert den Datensatz, auf dem die Aktion ausgelöst wurde. Verknüpfter Datensatz: ändert einen Datensatz in einer anderen Entität, der über ein FK-Feld verlinkt ist. Neuer Datensatz: legt einen neuen Eintrag in der Ziel-Entität an. |
Aktueller Datensatz |
| FK-Feld | Nur bei „Verknüpfter Datensatz“: Der Feldname im Quell-Datensatz, der den PK des Zieldatensatzes enthält. | bestellungs_id |
| Max. betroffene Datensätze | Sicherheitslimit bei Cross-Entity. Die Aktion bricht ab, wenn mehr Datensätze betroffen wären. | 1 |
Abschnitt „Feld-Zuordnungen“
Hier definieren Sie, welche Felder auf welchen Wert gesetzt werden sollen. Klicken Sie auf „Feld hinzufügen“ und konfigurieren Sie pro Zeile:
| Zielfeld | Quelle | Wert |
|---|---|---|
status | Statisch | Freigegeben |
bearbeitet_von | Aktueller Benutzer | (automatisch) |
bearbeitet_am | Aktuelles Datum | (automatisch) |
- Statisch: Ein fester Wert, den Sie eingeben (z. B.
Freigegeben,42,true) - Aktueller Benutzer: Die ID des angemeldeten Benutzers wird automatisch eingetragen
- Aktuelles Datum: Der aktuelle Zeitpunkt (UTC) wird automatisch eingetragen
- Quellfeld: Ein Wert aus einem anderen Feld des Quell-Datensatzes wird übernommen
Abschnitt „Meldungen“
| Feld | Erklärung |
|---|---|
| Bestätigungsfrage | Optional: Text der Sicherheitsabfrage vor der Ausführung (z. B. „Soll der Vorgang wirklich freigegeben werden?“) |
| Erfolgsmeldung | Optional: Eigener Text nach erfolgreicher Ausführung. Leer = Standardmeldung vom Server. |
Schritt 3: Sichtbarkeit und Erscheinungsbild
-
Ausführungsbedingung definieren (optional)
Im Tab „Ausführungsbedingung“ können Sie festlegen, wann die Aktion sichtbar/aktiv ist. Für unser Beispiel: „Nur anzeigen, wenn
status = Entwurf“. -
Erscheinungsbild konfigurieren
Im Tab „Erscheinungsbild“ können Sie Button-Text, Icon, Farbe und Tooltip festlegen.
-
Berechtigung zuweisen (optional)
Im Tab „Berechtigung“ können Sie die Aktion auf bestimmte Benutzerrollen einschränken.
Schritt 4: Speichern und testen
-
Job speichern
Speichern Sie den Job. Die Aktion ist sofort im UserClient verfügbar.
-
Im UserClient testen
Öffnen Sie die Tabellenansicht und suchen Sie einen Datensatz mit Status „Entwurf“. In der Zeile sollte die Aktion „Freigeben“ erscheinen. Nach dem Klick ändert sich der Status auf „Freigegeben“.
| BelegNr | Titel | Status | Aktion |
|---|---|---|---|
| RE-2026-101 | Beratungsleistung Q1 | Entwurf | Freigeben |
| RE-2026-102 | Lizenzen Service-Pack | Entwurf | Freigeben |
| RE-2026-100 | Wartungspauschale | Freigegeben | — |
Der Anwender kann jetzt mit einem Klick den Status eines Datensatzes ändern — direkt aus der Tabelle heraus, ohne einen Dialog öffnen zu müssen. Gleichzeitig werden Bearbeiter und Zeitstempel automatisch gesetzt.
Schneller Weg: Der Feld-Aktions-Wizard
Statt alle Schritte manuell durchzuführen, können Sie den Wizard „Feld-Aktion einrichten“ verwenden. Der Wizard führt Sie in 4 Schritten durch die Konfiguration und erstellt den UdmJob automatisch.
So starten Sie den Wizard:
- Aus dem Kontextmenü: Markieren Sie ein Datenobjekt in der Übersicht und wählen Sie im Kontextmenü „Feld-Aktion einrichten“
- Aus dem Aktionen-Tab: Öffnen Sie ein Ansichtselement, wechseln Sie zum Tab „Aktionen“ und klicken Sie auf „Neue Aktion via Wizard“
Der Wizard deckt die häufigsten Fälle ab (Statuswechsel, Felder setzen). Für erweiterte Konfigurationen (z. B. komplexe Bedingungen, mehrere Ausführungsschritte) können Sie den Job nach dem Wizard jederzeit manuell anpassen.
Erweitert: Cross-Entity-Schreibvorgänge
WriteData kann auch in eine andere Entität schreiben. Typische Anwendungsfälle:
- Aus einem Auftrag heraus den Status einer verknüpften Bestellung ändern
- Aus einem Ticket heraus einen Protokolleintrag in einer anderen Tabelle anlegen
Dafür konfigurieren Sie im Abschnitt „Ziel“:
- Wählen Sie die Ziel-Entität aus
- Wählen Sie den Modus „Verknüpfter Datensatz“ oder „Neuer Datensatz“
- Bei „Verknüpfter Datensatz“: Geben Sie den FK-Feldnamen an
- Setzen Sie das Sicherheitslimit (Max. betroffene Datensätze)
Bei Cross-Entity-Vorgängen ist das Sicherheitslimit Pflicht. Es verhindert, dass bei einer Fehlkonfiguration versehentlich viele Datensätze geändert werden. Die Aktion bricht ab, wenn das Limit überschritten würde.
Im Dialog (Bearbeitungsformular) ist WriteData auf den eigenen Datensatz nicht sinnvoll, da der Datensatz bereits geöffnet und bearbeitbar ist. Im Dialog eignet sich WriteData nur für Cross-Entity-Vorgänge (Schreiben in eine andere Entität).
Häufige Fragen
- Was passiert, wenn der Zieldatensatz nicht gefunden wird?
- Die Aktion bricht mit einer Fehlermeldung ab. Der Quell-Datensatz bleibt unverändert.
- Kann ich WriteData mit einer Bestätigungsfrage kombinieren?
- Ja. Tragen Sie im Feld „Bestätigungsfrage“ den gewünschten Text ein. Der Anwender muss dann vor der Ausführung bestätigen.
- Brauche ich für WriteData DynamicCode?
- Nein. WriteData ist rein deklarativ. Für komplexere Logik (Berechnungen, Bedingungen) verwenden Sie stattdessen den Aktionstyp „ExecuteCode“.
- Kann ich auch Lookup-Werte setzen?
- Ja. Tragen Sie bei „Statisch“ den technischen Wert des Lookups ein (z. B. die ID oder den Schlüssel).