Home › Forum › Nuclos Entwicklung › Makros und Regeln › Zugriff auf andere Entität ohne Beziehung
- Dieses Thema hat 5 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 12 Jahre, 6 Monaten von
Claudia Mangstl.
-
AutorBeiträge
-
2 November 2010 um 17:32 Uhr #2682
Jan Smiesko
TeilnehmerHallo,
könnte mir jemand bitte einen Tipp geben, wie ich Nachstehendes am besten lösen kann:
Ich möchte beim Speichern eine Regel ausführen, die sich aus einer Config-Entität (Name z.B. „Config“) einen Wert holt (z.B. fortlaufende Nummer), diesen anpasst (erhöht) und den Wert in der aktuellen Enität und in der Config-Entität speichert.
In der Config-Entität muss zuerst nach der richtigen Zeile (Datensatz) gesucht werden und dann der gewünschte Wert ausgelesen.
FG
Jan2 November 2010 um 18:44 Uhr #2684Claudia Mangstl
TeilnehmerHallo Jan,
um das umzusetzen können Sie folgendermassen vorgehen:
Passenden Datensatz in Config suchen:
CollectableComparison cond = org.nuclos.common.SearchConditionUtils.newMDComparison(MasterDataMetaCache.getInstance().getMetaData(„“), „“, ComparisonOperator.EQUAL, „“);
Entsprechend dazu gibt es noch:
ComparisonOperator.GREATER_OR_EQUAL, ComparisonOperator.GREATER, ComparisonOperator.LESS_OR_EQUAL, ComparisonOperator.LESS.Collection collErgebnisdaten = server.getMasterDataIds(„“, new org.nuclos.server.genericobject.searchcondition.CollectableSearchExpression(cond));
In der Ergebnismenge erhalten Sie die Id des Config Datensatzes.
Wert auslesen:
Object wert = (Object)server.getFieldValue(„“, , „“);
Wert nach der Erhöhung wieder setzen:
server.setFieldValue(„“, , „“, );Ich hoffe das hilft Ihnen weiter ?
Viele Grüße,
Claudia M.3 November 2010 um 16:31 Uhr #2688Jan Smiesko
TeilnehmerHallo Claudia!
Vielen Dank für die ausführliche Darstellung!
zur Info:
Bei Integer-Collection hat der Compiler einen Fehler gebracht.
‚Collection collErgebnisdaten = server.getMasterDataIds…‘
Deshalb habe ich wie verlangt ‚Collection‘ verwendet und später in (Integer) umgewandelt. Das hat dann funktioniert.
Woran kann das liegen, dass ich explizit umwandeln muss?
FG
Jan3 November 2010 um 17:58 Uhr #2692Claudia Mangstl
TeilnehmerHallo Jan,
kurz und knapp: das ist historisch gewachsen :dry:
In einer Vorgängerversion sollten die Schlüssel der sogenannten MasterData Objekte nicht auf Integer festgelegt sein, anders als bei GenericObject Objekten. Diese Trennung existiert nun nicht mehr, die Methoden im Ruleinterface basieren aber zum Teil noch auf dem alten Mechanismus.
Viele Grüße,
Claudia M.3 November 2010 um 18:53 Uhr #2697Jan Smiesko
TeilnehmerHallo Claudia,
erlauben Sie mir eine Frage zum Unterschied zwischen GenericObject- und MasterData-Objekten.
Bei MasterData-Objekte glaube ich zu wissen, dass es sich um die angelegten/konfigurierten Entitäten/Tabellen handelt.
Was sind grundsätzlich GenericObject Objekte und wann braucht der Programmierer diese zum Unterschied zu MasterData Objkekten?
Danke für Ihre Bemühungen!
FG
Jan3 November 2010 um 19:22 Uhr #2698Claudia Mangstl
TeilnehmerMasterData und GenericObject Objekte wurden zusammengelegt. Früher wurden für die GenericObjects keine eigenen Tabellen erzeugt, sondern die Attribute nur über die Metadaten unterschieden. Alle Daten wurden in einer Tabelle gespeichert und über Views entsprechend zu den Modulen gejoint. Diesen Mechanismus gibt es nicht mehr, es gibt nur noch die Variante mit den eigenen Tabellen (also MasterData). Das heute noch erkennbare Unterscheidungsmerkmal ist das Flag für das Statusmodell.
Statusmodell = ja -> war mal GenericObject
Statusmodell = nein -> MasterdataDas RuleInterface wurde noch nicht überall auf den neuen Mechanismus angepasst, daher gibt es hier ein paar Differenzen. Das o.g. Merkmal können Sie aber prinzipiell für die Auswahl der richtigen Methode heranziehen.
Bitte zögern Sie nicht, dazu jederzeit Fragen im Forum zu stellen !
-
AutorBeiträge