Randomizing a transaction where a member's value is a function of the other members

I have a situation where I am describing a data packet as a transaction class. One of the packet’s fields is a CRC. The CRC is a function of a number of other fields in this packet (or rather, class members of the transaction).

When I call randomize() to populate the transaction object, is there a way a CRC-calculating function can be called in the background to correctly generate my CRC value? Or do I have to manually call it after the randomize()?

Thanks!

In reply to silverace99work:

This is what post_randomize() is for; it gets called automatically after randomize().

function void post_randomize();
  CRC_field = CRC_function(...);
endfunction