:= always has an information field on its left (domicile, risk_level, etc.), and any kind of expression on its right side.
Attaching a condition with
:= to a field, means the field will only be assigned a value based on this condition if it doesn't already have a value. If a user has already provided a value for the field, the system will not override that value.
p is Person---p.tax_country := p.domicile
domicile will be assigned the same value as the field
tax_country, unless another value for
domicile has already been provided.
c is Contract---c.service := asset_management
The service attached to this contract will be 'Asset Management', unless another service has already been entered in the field
p is Person---p.full_name := CONCAT(p.first_name, ' ', p.last_name)
full_name will receive a value that is the combination of the values in the fields
last_name, separated by a space. Again: only if the field
full_name hasn't already been assigned a value.