Перенос процесса из Process Builder в Apex код

Перенос процесса из Process Builder в Apex код

Подскажите, как будет написан этот процесс в Apex коде, в триггере:

OR (
AND (
ISNEW(),
NOT(ISBLANK([Lead].Import_Lead_Owner__c ))
),

AND (
NOT(ISNEW()),
NOT(ISBLANK([Lead].Import_Lead_Owner__c)),
ISCHANGED([Lead].Import_Lead_Owner__c)
)
)

И результат, который выполяется, если выполяется условие, написанное выше:

Field: Import Lead Owner - Type:Formula - Value: ''
Field: Owner ID - Type:Field Reference - Value:[Lead].Import_Lead_Owner__r.Id

Спасибо большое заранее за помощь!

А есть уже хоть какой-то код? Где и что не работает?
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers_context_variables.htm

Andrii Muzychuk
А есть уже хоть какой-то код? Где и что не работает?
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers_context_variables.htm

Есть

if ((Trigger.isInsert
&& String.isNotBlank(lead.Import_Lead_Owner__r.Name))
|| (!Trigger.isInsert
&& String.isNotBlank(lead.Import_Lead_Owner__r.Name)
&& Trigger.oldmap.get(lead.id).Import_Lead_Owner__c !=
Trigger.newmap.get(lead.id).Import_Lead_Owner__c
&& Trigger.newmap.get(lead.id).Import_Lead_Owner__c == null )) {
lead.Import_Lead_Owner__c = null;
lead.OwnerId = lead.Import_Lead_Owner__c;

Вот часть, которую я сама написала, но я не понимаю, как её проверить и правильно ли я описала этот процесс.

Как минимум надо написать тесты на существующюю логику. А птм выключать PB и включать триггер.

Вместо

String.isNotBlank(lead.Import_Lead_Owner__r.Name))

достаточно
String.isNotBlank(lead.Import_Lead_Owner__с))

.

Andrii Muzychuk
lead.Import_Lead_Owner__с

Спасибо большое за помощь!

Буду изучать, как написать правильно тесты.

Interesting information? Help us, post link to social media..