Регистрация  |  Вход

Перенос процесса из 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

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

Подскажите, как будет написан этот процесс в 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

А есть уже хоть какой-то код? Где и что не работает?
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;

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

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

Есть

       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__с))

.

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

Вместо
[code]String.isNotBlank(lead.Import_Lead_Owner__r.Name))[/code]
достаточно 
[code]String.isNotBlank(lead.Import_Lead_Owner__с))[/code]
.

Andrii Muzychuk
lead.Import_Lead_Owner__с

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

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

[quote="Andrii Muzychuk"]lead.Import_Lead_Owner__с[/quote]

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

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