Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Definition Objektgenerierung

Menüaufruf: (AdministrationKonfigurations) - (Stammdaten) - (Sonstige) - (Objektgenerierung) Objektgenerator)

Objektgeneratoren Objektgenerierungen dienen dazu, aus einem Businessobjekt ein anderes, fachlich damit zusammenhängendes Businessobjekt zu erzeugen, Daten aus dem Quellobjekt in das Zielobjekt zu übertragen und Quell- und Zielobjekt miteinander zu verknüpfen.

Reiter:

...

Objektgenerator

Die Daten auf diesem Reiter dienen dazu, den Arbeitsschritt Objektgenerator im System zu verankern und dabei zu bestimmen, wo und wann er angezeigt und ausgeführt werden soll. Es muss ein eindeutiger Name angegeben werden. Die Beschriftung legt den Text fest, der später in der Combobox Arbeitsschritt Objektgenerator in der Detailmaske des Datensatzes angezeigt wird; falls . Es können folgende Flags gesetzt werden:

  • Nur intern verwenden

...

  • : dieser Objektgenerator wird nicht in der Combobox angezeigt, sondern kann nur von Regeln oder mittels eines Buttons angestoßen werden.
  • Gruppierung nach zu übernehmenden Attributen durchführen: wenn der Objektgenerator auf mehrere Datensätze angewandt wird, wird nur ein Zieldatensatz je Gruppe (erzeugt über "group by") generiert. Die Werte der zu übernehmenden Felder werden mittels der angegebenen Gruppierungsfunktionen aggregiert.
  • Zielobjekt mit Quellobjekt verknüpfen: wenn das Ziel-BO ein Referenzfeld auf das Quell-BO besitzt, wird diese Referenz zwischen generiertem Objekt und Quellobjekt hergestellt.
  • Generiertes Objekt bei Fehler nicht öffnen: wenn bei der Ausführung des Objektgenerators (also beim Ausführen einer Regel oder beim etwaigen Speichern) ein Fehler auftritt, wird das generierte Objekt nicht geöffnet (unabhängig vom Flag "Objekt anzeigen")
  • Objekt anzeigen: das generierte Objekt wird in einem neuen Tab angezeigt (greift nur im Richclient)
  • Quellobjekt aktualisieren: der Quelldatensatz wird nach der Generierung neugeladen um eventuelle Änderungen anzuzeigen
  • Generierung ohne Rückfrage: die Generierung wird ohne Bestätigung ausgeführt
  • Generiertes Objekt nicht speichern: das generierte Objekt wird im Anschluss nicht gespeichert. Eventuell vorhandene GenerateRules werden ausgeführt, GenerateAfterRules nicht.

Im Feld Quellbusinessobjekt wird das Businessobjekt ausgewählt, für das dieser Arbeitsschritt Objektgenerator angestossen werden soll. Im Unterformular kann der Arbeitsschritt Objektgenerator jetzt noch für gewisse Status bzw. Aktionen erlaubt werden oder nicht: unter Status wird der Status eingetragen, Bemerkung ist frei für eigene Notizen und unter Aktion kann auch noch die Aktion gesetzt werden. Nur wenn der Datensatz sich in diesem Zustand befindet, ist die Combobox für den Benutzer sichtbar.

...

Sowohl das Quellbusinessobjekt als auch das Zielbusinessobjekt sind nur auswählbar, wenn sie über ein Statusmodell verfügen einen Menüeintrag besitzen.

Das Parameterbusinessobjekt ermöglicht es, zusätzliche Felder aus diesem Parameterbusinessobjekt zu übernehmen. Ist ein Parameterbusinessobjekt angegeben, wird der Anwender bei Ausführung des Arbeitsschrittes Objektgeneratores aufgefordert, einen Datensatz aus diesem Parameterbusinessobjekt auszuwählen. Dieser wird dann per Definition entsprechend herangezogen.

Module objektgenerierung 1.gifImage RemovedImage Added

Reiter: Zu übernehmende Attribute

In diesem Unterformular werden alle Attribute zur Auswahl angeboten, die in den Layouts sowohl von Quell- als auch Zielobjekt vorhanden sind. Der entsprechende Wert wird beim Ausführen des Arbeitsschrittes Objektgeneratores von dem Quellobjekt in das Zielobjekt kopiert.

...

Soll das Quellattribut aus dem Parameterbusinessobjekt stammen, muss in der Spalte Quellobjekttyp zunächst 'parameter' ausgewählt werden. Im Quellattribut werden dann alle Felder des Parameterbusinessobjekts vorgeschlagen. Lässt man dieses Feld leer, so werden die Felder des eigentlichen Quellobjektes vorgeschlagen.

In der Spalte Gruppierungsfunktion kann bei Auswahl von "Gruppierung nach zu übernehmenden Attributen durchführen" die Funktion angegeben werden anhand derer die Quellattributwerte zusammengefasst werden (group by, sum, min, max).

Image AddedModule objektgenerierung 2.gifImage Removed

Reiter: Zu übernehmende Unterformulare

Auf dieser Reiterkarte werden die Unterformular-Businessobjekte sowohl vom Quell- als auch vom Zielobjekt zur Auswahl angeboten. Die zu übernehmenden Spalten können im unteren abhängigen Unterformular angegeben werden. Eine Gruppierung ist ebenso wie im Hauptobjekt möglich.

Es werden alle Spalten übernommen, deren Feldnamen in beiden Businessobjekte identisch sind. Soll das Quellattribut aus der Parameterbusinessobjekt stammen, muss in der Spalte Quellobjekttyp zunächst 'parameter' ausgewählt werden. Im Quellattribut werden dann alle Felder des Parameterbusinessobjekts vorgeschlagen. Lässt man dieses Feld leer, so werden die Felder des eigentlichen Quellobjektes vorgeschlagen.

Module objektgenerierung 3.gifImage RemovedImage Added

Reiter: Auszuführende Regeln

Es gibt Fälle, in denen es nicht ausreicht einfach ein Attribut oder Unterformular zu kopieren; z.B. wenn einzelne Felder aus einem Unterformular in Attribute oder umgekehrt kopiert oder Werte berechnet oder aus anderen Objekten ermittelt werden müssen.

Dafür können an einen Arbeitsschritt Objektgenerator Geschäftsregeln angehängt werden, die eben diese Operationen durchführen. Mittels der Schaltflächen mit den Pfeilen nach oben und unten lässt sich die Reihenfolge der Ausführung der Regeln festlegen.

Tipp.pngImage RemovedTipp: Markieren Sie den Namen der Regel mit "OG" für Objektgenerierung, damit sie von anderen Regeln schnell unterscheidbar sind.

In der Regel gilt das Serverobjekt immer für das neu zu erzeugende Objekt (Zielobjekt).

Module objektgenerierung 4.gifImage Removed

Ids von Quell- /Ziel- oder Parameterbusinessobjekte setzen

Anwendungsfall: Im Zielobjekt befindet sich ein ID-Feld (Combobox oder LOV), dass eine Referenz zum Quellobjekt darstellen soll.

Aus technischen Gründen ist es (noch) nicht möglich, diese ID automatisch vom Arbeitsschritt eintragen zu lassen. Das setzen dieser ID kann aber über eine Regel durchgeführt werden. Nachfolgend einige Codebeispiele für die einzelnen Fälle.

ID von Quellobjekt setzen

Codeblock
// Id des Quellobjektes
Integer probandId = server.getSourceObjectContainerCVO().getGenericObject().getId();
// Wert eines Feldes im Quellobjekt
String probandName = (String)server.getAttribute(probandId, "name").getValue();
 
//Id in Zielobjekt in dafür vorgesehenes ID Feld eintragen
server.setField("Kandidat", "proband", probandId, probandName);


...

Codeblock
// Id der Parameterbusinessobjekt
Integer kandidantenlisteId = server.getParameterObjectContainerCVO().getGenericObject().getId();   
// Wert eines Feldes in der Parameterbusinessobjekt
String kandidatenliste = (String)server.getAttribute(kandidantenlisteId, "namederliste").getValue();
 
//Id in Zielobjekt in dafür vorgesehenes ID Feld eintragen
server.setField("Kandidat", "kandidatenliste", kandidantenlisteId, kandidatenliste);


ID von Parameterbusinessobjekt setzen -> Parameterbusinessobjekt besitzt KEIN Statusmodell !

...

Image Added

Details zum Umgang mit der Regel-API im Fall der Objektgenerierung finden sich in Event - Objektgenerierung.

Objektgenerierung starten / ausführen

Im Detaildatensatz des entsprechenden Entitätsobjekts steht im definierten Status eine Combobox Arbeitsschritt Objektgenerator zur Verfügung.

Image Added

Auslösen von Arbeitsschritten Objektgeneratoren für mehrere Datensätze: In der Listenauswahl alle auszulösenden Datensätze markieren und mit rechter Maustauste Dropdown Menu aufrufen. Der Befehl Arbeitschritte Objektgeneratoren steht zur Verfügung und wird für jeden Datensatz ausgeführt.

Module objektgenerierung 5.gifImage RemovedImage Added

Nach Betätigung wird ein Objekt vom Typ des definierten Zielobjektes erzeugt. Die definierten Attribute und Unterformulardaten werden dabei übernommen und die definierten Regeln ausgeführt. Das Objekt wird, sofern alle Pflichtfelder durch die Übernahme gefüllt wurden, gleich gespeichert (solange "Generiertes Objekt nicht speichern" nicht gesetzt ist). Sind nicht alle Pflichtfelder gefüllt, so erscheint eine Hinweismeldung das nachzuholen (solange "Generiertes Objekt nicht speichern" nicht gesetzt ist). Das Objekt muss anschließend gespeichert werden.

Objektbeziehungen / Relationen

Durch den Arbeitsschritt wird automatisch eine Beziehung (Nachfolgebeziehung) zwischen den Objekten hergestellt.

Um diese Beziehungen sichtbar zu machen, muss in Businessobjektenwizard das Flag für das Anzeigen von Relationen gesetzt werden (Zeige Relationen). Nur wenn dieses Flag gesetzt ist, können die Objektbeziehungen in der Baumnavigation dargestellt werden.Module objektgenerierung 6.gifImage Removed