Пользовательское поле не найдено
Я пытаюсь самостоятельно изучить Salesforce и хочу добавить настраиваемое поле в учетную запись.
Для этого я сделал следующее:
Я добавил настраиваемое поле Total в Account:
Вот триггер:
trigger AccountTotalTrigger on Account (before insert) {
List<String> accountNames = new List<String>{};
//Loop through all records in the Trigger.new collection
for(Account a: Trigger.new){
//Concatenate the Name and billingState into the Description field
a.Description = a.Name + ':' + a.BillingState;
}
}
и сопутствующий тест:
@IsTest
private with sharing class AccountsTest {
@IsTest
static void testAccountTriggerViaDML()
{
// This example is simple, illustrates how to invoke the trigger code via DML (required),
// but can become complex and detract from TDD and more granularly testing of the Accounts class
Account testAccount = new Account( Name = 'Test Account' , Total = 100 );
insert testAccount;
testAccount = [select Id, Name from Account where Id = :testAccount.Id];
System.assertEquals(testAccount.Name, 'Test Account');
}
}
Но на вкладке Проблемы есть проблема:
появляется сообщение: Поле не существует: Всего на счете
Я неправильно настроил поле "Учетная запись"?
Должен ли тест быть провальным? Кажется, проходит:
2 ответа
Имя API поля (столбца базы данных):
Total__c
. "Итого" - это просто видимая метка. В вашем Salesforce могут быть говорящие на французском / немецком / испанском языках, и они предпочли бы, чтобы он был переведен, но код все равно должен работать нормально.
Большинство пользовательских действий, которые вы делаете с базой данных SF, заканчиваются этим суффиксом. Настраиваемые таблицы ("объекты"), например
Application__c
например, настраиваемые поля, такие как ваш
Total__c
. Есть еще суффиксы для полей геолокации, больших объектов, внешних данных... но это битва на другой день;)
Всякий раз, когда вы пытаетесь использовать настраиваемое поле в вершине, обязательно добавляйте
__c
в конце. В вашем случае вы должны использовать
Total__c
вместо
Total
в вашем тесте и триггере, где бы он ни использовался.