Ist neues Datenobjekt

Die Verhaltensweise Ist neues Datenobjekt untersucht die Elementdaten des ausführenden Elements, um festzustellen, ob diese sich auf eine "neue" - also bisher ungespeicherte - Instanz einer Entität beziehen. Als Entität kommt ein Geschäftsobjekt (s. Sendungen, Bestellungen, Manifeste, Allgemeines Geschäftsobjekt), eine Position eines Geschäftsobjekts, ein Konfigurationsobjekt oder ein Stammdatenobjekt in Frage.

Oft stehen innerhalb eines Formulars mehrere Entitäten unterschiedlicher Typen in einer hierarchischen Beziehung. Ein Geschäftsobjekt kann Positionen enthalten und verweist über typisierte Attribute häufig auf Adressen oder Firmenkonten, die wiederum Adressen verwenden. Ausgehend vom ausführenden Element berücksichtigt die Verhaltensweise Ist neues Datenobjekt immer auf die nächstgelegene übergeordnete Entität.

Für Erfassungsmasken besteht mindestens der Bezug zu der Entität, die die Formulardaten bereitstellt. Portale und Dashboards weisen dagegen per Definition keine Bindung zu einer Entität auf, können aber Daten von Entitäten beinhalten, etwa wenn eine Erfassungsmaske eingebettet ist (s. Formulare einbetten (Sub-Formulare)) oder per Elementdaten setzen Daten einer Entität für einen Element Container gesetzt wurden.

Nur wenn das ausführende Element sämtliche der folgenden Bedingungen erfüllt, werden die Aktionen bei "falsch" ausgeführt, da dann ein Datenobjekt ermittelt wurde, das "nicht neu" erscheint:

  • Die Elementdaten stehen in direktem oder indirekten Zusammenhang mit einer Entität.

  • Die identifizierte Entität weist im Feld ID (id) einen von 0 abweichenden Long-Wert auf.

HINWEIS◄ Ob die Entität tatsächlich serverseitig existiert, ist nicht Gegenstand der Prüfung. Es werden nur die beim Client vorliegenden Formulardaten ausgewertet.

Umgekehrt werden die Aktionen bei "wahr" ausgeführt, wenn eine dieser Bedingungen nicht erfüllt ist, also entweder kein Bezug zu einer Entität besteht (z. B. in einem Portal) oder eine Entität ermittelt wurde, der noch keine ID (id) zugewiesen ist (Standardwert 0).

Die Verhaltensweise erwartet keine Eingabedaten ($input) und gibt diese ggf. direkt an die jeweiligen Aktionen weiter.

Beispiel

Innerhalb derselben Erfassungsmaske für Sendungen soll die Verhaltensweise Ist neues Datenobjekt zur Demonstration mit zwei unterschiedliche Entitäten eingesetzt werden:

  1. Auf Kopfebene ("Sendung") soll sichergestellt sein, dass die erforderlichen Kopfdaten (Pflichtfelder) ausgefüllt und gespeichert wurden, bevor Positionsdaten bearbeitet werden können.

  2. Beim Editieren von Positionen sollen seit dem letzten Speichern der Sendung hinzugefügte Positionen durch ein geeignetes Symbol (images/download/attachments/189432132/image2020-5-25_17-29-19-version-1-modificationdate-1727769117762-api-v2.png ) gekennzeichnet werden.

Laufzeit-Beispiele:

images/download/attachments/189432132/image2020-5-25_17-30-59-version-1-modificationdate-1727769117776-api-v2.png

  • Bei der Neuanlage einer Sendung erscheinen für die Positionen zunächst nur ein inaktiv gesetzter "Platzhalter".

Sind die Kopfdaten ausgefüllt, erreicht man durch "Speichern" Zugriff auf die Positionen (s. unten) und der Hinweis im Label verschwindet:

images/download/attachments/189432132/image2020-5-25_17-35-12-version-1-modificationdate-1727769117779-api-v2.png

Speichert man die Sendung nach dem Erfassen der ersten Position, verschwindet das Symbol (images/download/attachments/189432132/image2020-5-25_17-29-19-version-1-modificationdate-1727769117762-api-v2.png ) für die erste Zeile und man kann die gespeicherte von einer neu hinzugefügten Position unterscheiden:

images/download/attachments/189432132/image2020-5-25_17-39-34-version-1-modificationdate-1727769117781-api-v2.png

Konfiguration:

images/download/attachments/189432132/image-2024-10-1_9-52-7-version-1-modificationdate-1727769127993-api-v2.png

Für das Formular-Element wird ein Verhalten konfiguriert, wie links abgebildet:

  • Der Auslöser Formulardaten geladen wird beim Laden von Daten in das Formular aktiv.


  • Die Verhaltensweise Ist neues Datenobjekt kann dann prüfen, ob - z. B. durch Klick auf den Ribbon-Button "Neu" oder "Kopieren" ein neues Datenobjekt vom Typ "Sendung" bereitgestellt wurde.


  • Über die Aktionen bei "wahr" wird für ein neues Sendungsobjekt einerseits per Element deaktivieren-Aktion der Zugriff auf die Postionen gesperrt. Andererseits macht die Aktion Element anzeigen ein Label-Element sichtbar, das auf den Grund für die Sperre hinweist (s. o.).


  • Wurde das Sendungsobjekt gespeichert, was erst nach dem Ausfüllen aller aktiven Pflichtfelder möglich ist, dann wirken die Aktionen bei "falsch" in umgekehrter Weise: Eine Element aktivieren-Aktion ermöglicht die Anlage von Positionen und das Label mit dem Hinweis wird per Element verbergen unsichtbar gesetzt.

images/download/attachments/189432132/image-2024-10-1_10-1-17-version-1-modificationdate-1727769677734-api-v2.png

Das links abgebildete Verhalten wurde für das Textfeld "Positions Nr." (s. o.) im Wiederholendes Element-Container für die "Positionen" konfiguriert. Damit stellt die jeweilige Sendungsposition die ausschlaggebende Entität für die Verhaltensweise dar:

  • Der Auslöser Formulardaten geladen wird auf Positionsebene nicht nur beim Laden der Formulardaten sondern auch beim Hinzufügen jeder weiteren Zeile aktiv.


  • Die Verhaltensweise Ist neues Datenobjekt prüft damit jede angezeigte Position bzgl. der nur in den Daten sichtbaren id.


  • Über die Aktionen bei "wahr" wird für eine als neu erkannte Position das als Zielelement verknüpfte Bild/Icon per Element anzeigen-Aktion sichtbar gesetzt.


  • Über die Aktionen bei "falsch" wird für eine bereits gespeicherte Position das als Zielelement verknüpfte Bild/Icon per Element verbergen-Aktion unsichtbar gesetzt.

ANMERKUNG◄ Ob eine bereits gespeicherte Position geändert wurde ist dabei nicht ersichtlich.