Search the FirstSpirit Knowledge Base
Hallo,
ich würde gerne mit einen Skript einen Datensatz in Tabelle A und den damit verbundenen Datensatz aus Tabelle B freigeben. Referenzierte Medien kann ich mit meinen Skript schon freigeben nur, habe ich leider noch keinen Weg gefunden, um an den Datensatz aus Tabelle B zu kommen. Hätte da jemand vllt. einen Hinweis?
Vielen Dank
Andreas Friesicke
Im beigelegten Schema ist die Benennung der Attribute unglücklich gewählt. Das Attribut, welches auf "Tabelle B" zeigt, heißt "TabelleA"
Ich setze im folgenden mal vorraus, das du das Attribut nach "b" umbenennst, dann wird es klarer
Session s = ...;
Entity a = .... ; // Entity aus "Tabelle A"
s.release(a);
if (a.getValue("b") != null) {
s.release( (Entity) a.getValue("b"));
}
s.commit();
Im beigelegten Schema ist die Benennung der Attribute unglücklich gewählt. Das Attribut, welches auf "Tabelle B" zeigt, heißt "TabelleA"
Ich setze im folgenden mal vorraus, das du das Attribut nach "b" umbenennst, dann wird es klarer
Session s = ...;
Entity a = .... ; // Entity aus "Tabelle A"
s.release(a);
if (a.getValue("b") != null) {
s.release( (Entity) a.getValue("b"));
}
s.commit();
Vielen Dank für die schnelle Antwort. Gibt es auch eine Möglichkeit, das auch dynamisch zu machen? Also ohne "b", bei den Medien konnte ich z.B. über getReferencedObject darauf zugreifen.
Du meinst "generisch"? Die beste Option ist es, die Kante "aggregierend" zu definieren. Aggregierte Datensätze bilden eine "Komposition" und wenn der "Haupt"-Datensatz freigegeben wird, werden die "zugehörigen" Datensätze automatisch mit freigegeben (analog beim Löschen).
Allerdings muss man für abhängige Datensätze auch die Pflegemaske entsprechend gestalten, im obigen Beispiel kann für die Kante nach "B" z.B. dann DATASET statt CMS_INPUT_COMBOBOX verwendet werden. Ist aber in der Doku alles beschrieben.
Genau. Danke, für den Hinweis.
Mal sehen ob ich das so machen kann, da ich das löschen unabhängig von einander machen möchte.