Триггеры Апекса - Трейлхед
Сам код не выдает никаких ошибок, но каждый раз, когда я его запускаю, 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);
}
}
}