Home › Forum › Nuclos Konfiguration › Vorgänge und Objekte › Objektgenerator Zugriff auf Unter-Unterformular
- Dieses Thema hat 7 Antworten und 5 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren von
Ramin Goettlich.
-
AutorBeiträge
-
21 Juli 2014 um 12:44 Uhr #7733
Matthias KÖPER
TeilnehmerHallo allerseits,
ich stecke in einer Sackgasse mit meinem Objektgenerator Auftrag->Lieferschein.
Die Lieferscheinpositionen übertrage ich per Regel und das funktioniert auch.
Jetzt habe ich meine Auftrags- und Lieferscheinpositionen noch um Stücklistenpositionen erweitert. D.h. zu jeder Auftrags- bzw. Lieferschein gibt es noch eine zugehörige Menge an Unterpositonen, die als Unterformular in das Layout eingebunden werden. Die Unterpositionen haben entsprechend eine Referenz auf die Auftrags- bzw. Lieferscheinpositionen.
Mein Problem ist folgendes: Ich weiß nicht, wie ich die neuen Lieferscheinunterpositionen einfügen kann, da die Intid der neuen Lieferscheinpositionen noch nicht festzustehen scheinen. Der Aufruf von lieferscheinposition.getId() liefert null zurück und ohne die Referenz auf die Lieferscheinposition nützen mir die Unterpositionen nichts.
Die Lieferscheinpositionen selber füge ich mit lieferschein.insert(newLieferscheinposition) ein, wobei lieferschein das Target-Objekt aus dem Kontext ist.
Eine ähnliche Funktion für die Unterpositionen des Lieferscheins habe ich nicht gefunden und mit BusinesObjektProvider.insert() bekomme ich die Unterposition nicht eingefügt, weil die Referenz auf die Lieferscheinposition fehlt.Ich hoffe das war verständlich…
Hat jemand eine Idee?Danke
mkoeper22 Juli 2014 um 01:37 Uhr #7735Ramin Goettlich
TeilnehmerWenn Sie aus der GenerateRule eine GenerateFinal-Rule machen (die wird nach dem tatsächlichen Speichern in der DB ausgeführt, dann stehen die IDs fest), sollte es klappen.
22 Juli 2014 um 10:21 Uhr #7737Matthias KÖPER
TeilnehmerDanke!
30 Oktober 2016 um 21:27 Uhr #8993Dieter Mennig
TeilnehmerHallo zusammen,
gibt es eigentlich in der aktuellen Version eine Möglichkeit Unter-Unterformulare über den Objektgenerator zu übertragen?
Ich habe mal versucht das mit einem Unterformular „Auftragsposition“ (referenziert auf den Auftrag) und einem Unter-Unterformular „Stückliste“ (referenziert auf die Auftragsposition) in einer Objektgenerierung „Lieferschein aus Auftrag“ darzustellen (Also Unterformular und Unter-Unterformular vom Auftrag in den Lieferschein zu übertragen). Wenn ich den Objektgenerator ausführe wird das Unterformular Auftragsposition übertragen, das Unter-Unterformular „Stückliste“ aber nicht, obwohl die „Stückliste“ im Objektgenerator als zu übertragendes Unterformular im Quell- und Zielobjekt ausgewählt werden konnte.
Oder können Unter-Unterformulare generell nur per Regel übertragen werden?
Vielen Dank und viele Grüße aus Mainfranken.
31 Oktober 2016 um 00:20 Uhr #8994Thomas Hempel
TeilnehmerMeines Wissens kann ein Objektgenerator das nicht, sondern man braucht für Unter-Unterformulare eine Regel, die das zu Fuß erledigt.
3 November 2016 um 13:19 Uhr #9001Nick Röder
TeilnehmerGeht nur über eine Regel im Objektgenerator
15 November 2016 um 10:48 Uhr #9031Dieter Mennig
Teilnehmerok, danke für die Antwort. Das hatte ich vermutet. Wie greife ich nun auf die Datensätze des Unterformulars, also in diesem Fall auf die Datensätze der Artikelstückliste, zu? Konkret:
Die Struktur ist ja so, dass die Artikelposition auf den Auftrag referenziert und die Artikelstückliste auf die Artikelposition. Die Stückliste hat also keine Referenz auf den Auftrag. Wenn ich nun mit der Anweisung
List lstPositionen = curAuftrag.getAuftragsposition();
auf die Artikelposition zugreife funktioniert das. Wenn ich nun genauso, also mit der Anweisung
List lstStuecklistenartikel = curAuftrag.getStueckliste();
auf die Stücklistenartikel zugreifen möchte funktioniert das leider nicht.
Geht das nur über einen QueryProvider? Das würde aber bedeuten, dass immer erst abgespeichert werden muss, bevor ein Zugriff erfolgen kann.Ich habe auch zusätzlich mal die Stueckliste auf den Auftrag referenziert. Allerdings wird das Referenzfeld „Auftrag“ in der Stückliste beim Abspeichern nicht gefüllt (bei der Artikelposition wird es gefüllt).
Hat da jemand einen Tipp? das wäre super. Danke schon mal.
15 November 2016 um 12:34 Uhr #9036Ramin Goettlich
TeilnehmerDa die Stückliste an der Position hängt, müssen Sie sich die auch von dort holen, also Artikelposition.getArtikelstueckliste().
Im Verzeichns /data/codegenerator kann man sich die generierten BusinessObjekt-Klassen (und andere) übrigens auch ansehen, darüber findet man manchmal, was man sucht, wenn es sich einem nicht direkt intuitiv erschliesst.
Ergänzende Anmerkung: Die Getter für die Unterformulare sind genau genommen Getter für die referenzierenden Entitäten. Man kann sich damit immer diejenigen BusinessObjekte abholen, die ein Referenzfeld auf das aktuelle BO haben (wie z.B. eben die Stückliste zur Artikelposition, oder die Artikelpositionen zum Auftrag). Das funktioniert ganz unabhängig davon, ob das jeweilige BO tatsächlich als Unterformular in die Maske eingebaut ist.
Das Referenzfeld „Auftrag“ in der Stückliste ist mE überflüssig und sollte entfernt werden.
-
AutorBeiträge