Wednesday, November 12, 2014

Trigger + Write Once Data for Field + Salesforce

This trigger will prevent records from being deleted or fields from being changed once they have been set, so they are write-once. Note, the other fields can be written many times but the specific field's value can only be set when the record is created.

trigger Trigger_Account on Account (before delete, before update) {

    if (trigger.isDelete) {
        for (Account a : trigger.old) {
            a.addError('You can’t delete accounts');
        }
    } else {
        for (Account aNew : trigger.new) {
            Account aOld = Trigger.oldMap.get(aNew.ID);
            if (aNew.Phone != aOld.Phone) {
                aNew.Phone = aOld.Phone;
            }
        }
    }
}

No comments:

Post a Comment