Ciao.
Anzichè:
NEW."Description" = NEW."Marca";
devi scrivere:
NEW."Description" = (select "Description" from "LookUp" where "Id" = NEW."Marca");
CMDBuild Team
Grazie mille, funziona!
No, funzionerebbe anche con un dominio 1:N fra le classi A e B nell'ordine, ed in modo molto simile se nella classe B ci fosse un campo reference alla classe A basato su quel dominio.
Basterebbe ad esempio scrivere nel trigger una riga tipo:
NEW."Totale" = (select sum("ClasseB"."Addendo") from "ClasseB" where "ClasseB"."Campo_reference_alla_classeA" = NEW."Id");
CMDBuild Team
Previously Tecnoteca wrote:
Ho provato, ma se non aggiungo lo "Status" = 'A' mi risulta un dato sballato.No, funzionerebbe anche con un dominio 1:N fra le classi A e B nell'ordine, ed in modo molto simile se nella classe B ci fosse un campo reference alla classe A basato su quel dominio.
Basterebbe ad esempio scrivere nel trigger una riga tipo:
NEW."Totale" = (select sum("ClasseB"."Addendo") from "ClasseB" where "ClasseB"."Campo_reference_alla_classeA" = NEW."Id");
CMDBuild Team
Confermo la necessità della condizione sullo stato
Avendo scritto la risposta senza aver fatto nessun test era purtroppo sfuggita la mancanza di quel controllo.
CMDBuild Team
Questo è normale.
Il trigger descritto nei post precedenti era solo un esempio di trigger che calcola una somma basandosi su un dominio.
Se l'obiettivo è quello di mantenere quella somma sempre aggiornata bisogna che il trigger venga definito non sulla classe A ma sulla classe B, forzando il ricalcolo sulla classe A ad ogni variazione (inserimento, modifica, cancellazione) del campo "Campo_reference_alla_classeA" e / o del campo "Addendo" su una delle righe della classe B.
CMDBuild Team