如何设置Salesforce对象的必填字段?

时间:2019-08-19 05:01:25

标签: salesforce

我有一个Salesforce对象,可以说是联系人。
如果我尝试通过使用代码设置“名称”字段:

   Contact testAccount = new Contact();
   testAccount.Name ='TestAccountContact';        
   insert testAccount;  

出现错误:

  

Line: 2, Column: 20 Field is not writeable: Contact.Name

通过在Salesforce中导航对象,我发现Name是FirstName,LastName的组合。
我如何确定该字段是否可写,如果不能,则获得该字段的共同代表。在这种情况下,串联的FirstName和LastName组成了Name。

1 个答案:

答案 0 :(得分:1)

Contact / Lead / User Name是一个特殊字段,Salesforce在运行时根据数据中所包含的内容以及正在寻找的人来组成。源字段可以是:

  1. 敬礼(先生,夫人...)
  2. 名字
  3. MiddleName(if you have them enabled
  4. 姓氏
  5. 后缀(如果已启用)

“谁在看”?有些文化使用“姓氏名字”,通常被称为CJK(中文,日文,韩文),但也有匈牙利语。由user's locale定义。

要检查字段是否可以在插入时写入,请使用“描述”调用,特别是isCreateable

System.debug(Schema.sObjectType.Contact.fields.Name.isCreateable()); // false

出于实际目的-尽量不要在Apex或报告中使用过多的Contact.Name。您会忘记这个怪癖,而2年后,将收到一个“有趣”的错误报告,该报告针对某些Name equals to John Doe用户报告不会返回特定用户的任何结果,您将为我“所有工作”