Home › Forum › Nuclos Bedienung › Administration und Installation › Referenzfeld als berechnetes Attribut
- Dieses Thema hat 4 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 12 Jahre, 3 Monaten von
Carsten Hof.
-
AutorBeiträge
-
23 Februar 2011 um 20:02 Uhr #3244
Carsten Hof
TeilnehmerHallo,
irgendwie lassen mich die Referenzfelder zur Zeit nicht los 😉
Diesmal hätte ich gerne ein berechnetes Attribut mit Datentyp Referenzfeld. Die Berechnungsvorschrift habe ich erstellt und bin mir ziemlich sicher, dass die so stimmt.
Soweit so gut. Auf Datenbankseite schaut das auch gut aus. In der View ist die Spalte vorhanden, in der Tabelle nicht, wie erwartet.
Will ich nun aber einen neuen Datensatz anlegen, so bekomme ich die Meldung, dass der Datensatz nicht gespeichert und auch nicht erzeugt werden konnte, da „T“.“INTID_STRBEZEICHNUNG“ ungültiger Bezeichner ist. (ORA-00904). Bezeichnung ist hierbei der Feldname des Referenzfeldes das ich berechnen lassen will.
Was mache ich falsch?Vielleicht noch zum Hintergrund: Das Feld soll ein Referenzfeld sein, damit ich von dem Feld aus über eine Layoutregel eine weiteren Wert nachschlagen lassen kann. Ein berechnetes Attribut soll es sein um doppeltes Abspeichern in der Datenbank zu vermeiden.
Vielen Dank schonmal,
Bettina Sieber23 Februar 2011 um 21:31 Uhr #3255Claudia Mangstl
TeilnehmerHallo Frau Sieber,
das wird über ein berechnetes Attribut nicht möglich sein. Ein Referenzfeld verlangt immer eine Spalte INTID_T_EO_xxx in der Tabelle, weil darin die ID des referenzierten Objektes gespeichert wird.
Hinweis: das Übertragen eines Wertes über eine Layoutregel ist im Grunde auch doppelte Datenhaltung, weil dieser Wert anschließend in diesem Objekt (in das er übertragen wurde) gespeichert wird. Häufig ist das so gewollt, z.B. um eine Art Historie zu haben.
Für Ihren Fall würde ich vorschlagen, alle zu übertragenen Felder als berechnetes Attribut abzubilden. Dann haben Sie immer den aktuellen Wert und müssen keine Daten übertragen. Auf das Referenzfeld müssten Sie aber wegen o.g. Grund verzichten.
Viele Grüße,
Claudia25 Februar 2011 um 11:46 Uhr #3281Carsten Hof
TeilnehmerHallo Claudia,
ok, dann werde ich mir diese Möglichkeit aus dem Kopf schlagen. Schade, es hätte so schön ausgesehen, wenn die berechneten Felder gleich mit befüllt werden, sobald sich der Wert eines (normalen) Referenzfeldes der Entität ändert.
Was mich jedoch wundert ist Ihr Hinweis über die doppelte Datenhaltung bei Layoutregeln. Habe im Moment die betreffenden Felder als Textfelder mit Berechnungsvorschrift angelegt. Eines der Felder soll sich in Abhängigkeit eines (normalen) Referenzfeldes aktualisieren. Wenn ich nun eine Layoutregel auf diesem Referenzfeld definiere, die mir einen Wert in das berechnete Attribut überträgt, so funktioniert das wunderbar. In der Datenbank erscheint die Spalte nur (wie gewünscht) in der View.
Deswegen bin ich auch erst auf die Idee mit dem Referenzfeld gekommen. Hatte die Hoffnung, dass das was mit Textfeldern so schön klappt auch mit Referenzfeldern geht.Viele Grüße
Bettina Sieber25 Februar 2011 um 11:56 Uhr #3283Claudia Mangstl
TeilnehmerHallo Frau Sieber,
wenn Sie ein berechnetes Attribut einsetzen, brauchen Sie eigentlich keine Layoutregel um einen Wert zu übertragen. Das Ergebnis wird ja immer dynamisch über die DB-Funktion berechnet. Den Effekt, den sie hier sehen, kommt evtl. nur von dem clientseitigen Kopiervorgang des Wertes in das andere Feld. Danach greift aber die Berechnungsvorschrift.
Die Verwendung von Layoutregeln ist nur dann „doppelte Datenhaltung“, wenn das Zielfeld kein berechnetes Attribut sondern ein normales Textfeld ist. Denn nur dann wird dieser Wert auch in der Datenbank gespeichert.Viele Grüße,
Claudia25 Februar 2011 um 11:58 Uhr #3284Carsten Hof
TeilnehmerOk, sowas habe ich mir schon fast gedacht. Schaut trotzdem schön aus, dass sich das Feld gleich füllt 😉
Vielen Dank für die schnelle Hilfe!Liebe Grüße
Bettina Sieber -
AutorBeiträge