Development questions

When an Opportunity amount exceeds $100,000, automatically submit the record to an Approval Process using Approval.ProcessSubmitRequest from a trigger.

DevelopmentMediumAccentureWiproLTIMindtree

Use after insert/update (the record needs an Id) and Approval.ProcessSubmitRequest.

apex
trigger OppTrigger on Opportunity (after insert, after update) {
    List<Approval.ProcessSubmitRequest> reqs = new List<Approval.ProcessSubmitRequest>();
    for (Opportunity o : Trigger.new) {
        Boolean crossed = o.Amount > 100000 && (Trigger.isInsert || Trigger.oldMap.get(o.Id).Amount <= 100000);
        if (crossed) {
            Approval.ProcessSubmitRequest r = new Approval.ProcessSubmitRequest();
            r.setObjectId(o.Id);
            r.setComments('Auto-submitted: amount over $100,000');
            r.setProcessDefinitionNameOrId('Opp_High_Value_Approval');
            r.setSkipEntryCriteria(false);
            reqs.add(r);
        }
    }
    if (!reqs.isEmpty()) Approval.process(reqs);
}

Ensure the process isn't already pending to avoid ALREADY_IN_PROCESS errors.

apex-triggertriggercodingscenarioapproval