Home › Forum › Nuclos Entwicklung › Makros und Regeln › Zugriff auf Kollektionen von beliebigen Objekten
- Dieses Thema hat 4 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 13 Jahren, 2 Monaten von
Carsten Hof.
-
AutorBeiträge
-
20 September 2010 um 19:05 Uhr #2569
Carsten Hof
TeilnehmerHallo,
ich habe eine Entität A mit einer n:1-Beziehung zu einer Entität B. B wiederum hat eine 1:n Beziehung zu einer Entität S.
Nun will ich von einem Datensatz von A aus auf eines der S von dessen B zugreifen.
Habe versucht dies mit server.getDependants(Id von B, „S“) zu machen und dabei folgenden Fehler bekommen:
org.nuclos.common.NuclosFatalException: Das Feld genericObject ist in der Entität S nicht vorhanden.Ist dies der richtige Weg?
Viele Grüße,
GP-
Dieses Thema wurde geändert vor 5 Jahren, 3 Monaten von
caf.
21 September 2010 um 14:58 Uhr #2573Claudia Mangstl
TeilnehmerHallo Herr GP,
habe ich das richtig verstanden, dass Sie demnach eine Entität B mit zwei Unterformularen (A und S) haben ?
Sie können auf A und S jeweils über die Methode getDependants zugreifen.
Also
Collection collmdvo_A = server.getDependants(„A“);
bzw.
Collection collmdvo_S = server.getDependants(„S“);A und S haben aber im Grunde nichts miteinander zu tun. Sie müssen aber beide einen Fremdschlüsselwert auf B besitzen.
Sie greifen also immer vom „Vaterobjekt“ B aus auf A oder S zu.Die „Id von B“ müssen Sie in diesem Fall in getDependants nicht übergeben, da es sich bei B eh schon um das jeweilige Objekt handelt.
Konnte ich helfen ?
Viele Grüße,
Claudia M.-
Diese Antwort wurde geändert vor 5 Jahren, 7 Monaten von
Claudia Mangstl.
-
Diese Antwort wurde geändert vor 5 Jahren, 3 Monaten von
caf.
21 September 2010 um 15:44 Uhr #2575Carsten Hof
TeilnehmerHallo Frau Mangstl,
danke für die schnelle Antwort. Die Beziehungen zwischen den Entitäten sind so wie von Ihnen beschrieben. Allerdings schreiben wir die Regel für A. Das heisst, man muss erst zu B, dann von dort zu S navigieren.
Die ID des Datensatzes von B lässt sich ermitteln. Dann bräuchte man aber die Kollektion der S von diesem B aus, daher der Versuch mit der ID im Funktionsaufruf.Viele Grüße,
GP-
Diese Antwort wurde geändert vor 5 Jahren, 7 Monaten von
Carsten Hof.
-
Diese Antwort wurde geändert vor 5 Jahren, 3 Monaten von
caf.
21 September 2010 um 17:58 Uhr #2579Claudia Mangstl
TeilnehmerHallo Herr GP,
bitte versuchen Sie mal diesen Aufruf:
server.getDependants(iId, sEntityName, sForeignKeyFieldName)Früher war der Referenzname „genericObject“ fest vergeben und die Methode ist von diesem Namen ausgegangen.
In obigem Aufruf können Sie einen anderen Referenznamen mitgeben.Gibt es einen speziellen Grund, warum Sie die Regeln für das Unterformular ausführen ? Der Anstoss für der Regelausführung (Speichern, Benutzer, etc.) wird nämlich immer für das Vaterobjekt ausgeführt.
-
Diese Antwort wurde geändert vor 5 Jahren, 7 Monaten von
Claudia Mangstl.
-
Diese Antwort wurde geändert vor 5 Jahren, 3 Monaten von
caf.
23 September 2010 um 11:45 Uhr #2582Carsten Hof
TeilnehmerHallo Frau Mangstl,
übertragen wir das Beispiel auf die Aufträge:
– A ist ein Auftrag
– B ist ein Basisauftrag (das mag nicht so sinnvoll sein)
– S sind die Auftragspositionen des BasisauftragsDer gesamte Auftragswert von A ergibt sich aus der Summe der Auftragspositionen des Basisauftrags sowie weiterer Daten. Bei jeder Änderung dieser weiteren Daten auf der GUI von A muss der gesamte Auftragswert neu berechnet werden.
Daher die gewählte Vorgehensweise, eine Regel für A zu schreiben, welche die Kollektion S von B einbezieht.Die von Ihnen vorgeschlagene Funktion macht genau das richtige, vielen Dank!
-
Dieses Thema wurde geändert vor 5 Jahren, 3 Monaten von
-
AutorBeiträge