1

我正在尝试自学 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');  
        }
    
    }

但是“问题”选项卡上有一个问题:

在此处输入图像描述 消息是:字段不存在:帐户总计

我没有正确设置帐户字段吗?

测试不应该失败吗?它似乎通过了:

习惯

4

2 回答 2

2

字段(数据库列)的 API 名称是Total__c. “总计”只是可见的标签。您的 Salesforce 可能有讲法语/德语/西班牙语的人,他们希望看到它被翻译,但代码应该仍然可以正常运行。

您对 SF 数据库执行的大多数自定义操作都以这个后缀结尾。自定义表格(“对象”)Application__c,例如自定义字段,如您的Total__c. 地理定位字段、大对象、外部数据有更多后缀……但这是另一天的战斗;)

于 2020-09-11T13:38:26.463 回答
1

每当您尝试在 apex 中使用自定义字段时,请务必在末尾附加__c。在您的情况下,您应该在使用的地方使用Total__c而不是Total在测试和触发器中使用。

于 2020-09-15T14:00:42.210 回答