Триггеры Апекса - Трейлхед

Сам код не выдает никаких ошибок, но каждый раз, когда я его запускаю, Trailhead выдает мне следующее сообщение:

"Задача еще не завершена... вот что не так: выполнение триггера не сработало так, как ожидалось".

Вот инструкции:

Для этой задачи вам нужно создать триггер, который перед вставкой или обновлением проверяет флажок. Если поле-флажок имеет значение true, устанавливается почтовый индекс доставки (имя API которого ShippingPostalCode) быть таким же, как платежный почтовый индекс (BillingPostalCode).

  • Триггер Apex должен быть вызван AccountAddressTrigger,
  • Объекту Account понадобится новый пользовательский флажок, который должен иметь метку поля "Match Billing Address" и имя поля Match_Billing_Address, Полученное имя API должно быть Match_Billing_Address__c,
  • С AccountAddressTrigger активен, если Учетная запись имеет платежный почтовый индекс и Match_Billing_Address__c Истинно, запись должна иметь почтовый индекс, соответствующий совпадению при вставке или обновлении.

Мой код:

trigger AccountAddressTrigger on Account (before insert,before update) {

    for(Account a : [SELECT Id FROM Account WHERE  Match_Billing_Address__c = TRUE AND BillingPostalCode != NULL])
    {
        a.ShippingPostalCode = a.BillingPostalCode;
        update a;        
    }//end for     
}

4 ответа

Решение

Ваш триггер похож на этот способ.

trigger AccountAddressTrigger on Account (before insert,before update) {

    //Iterate all accounts that is updated or inserted.
    for(Account acc :Trigger.New){
        //if match is true set values.
        if(acc.Match_Billing_Address__c){
            acc.ShippingPostalCode = acc.BillingPostalCode;
        }
    }
}

Вызвать AccountAddressTrigger для учетной записи (перед вставкой, перед обновлением) {

    for(Account a : Trigger.new){
    If (a.Match_Billing_Address__c == true && a.BillingPostalCode!=Null) {
        a.ShippingPostalCode = a.BillingPostalCode;
    }   
} 

}

Сначала необходимо создать поле флажка с именем Совпадает с адресом выставления счета на вкладке Учетная запись, затем откройте консоль разработчика, напишите код и сохраните его. Наконец, проверьте, работает ли он снова или нет в вашем экземпляре salesforce

вот код:

вызвать accountAddressTrigger для учетной записи (перед вставкой, перед обновлением) {

for(Account acct : trigger.new){

      if(acct.Match_Billing_Address__c == true)

      acct.ShippingPostalCode = acct.BillingPostalCode;
      }

}

Trigger Name_of_Trigger on Object (Событие 1, Событие 2) {

         for(Each Object's Event1/Event2) {
       if (Check box is selected) {
               Assign Billing address to Shipping address (i.e using '=' operator);
                                 }
                      }

}

Другие вопросы по тегам