如果现有记录然后根据您的需要更新某些字段,又如何创建新记录,如何在帐户对象上编写触发器?

时间:2018-11-10 02:49:50

标签: salesforce

如果现有记录随后根据您的要求更新某些字段,如何在帐户对象(salesfroce)上编写触发器?

谢谢

2 个答案:

答案 0 :(得分:0)

如何使用upsert?它允许您插入记录或更新记录(如果已存在)。一条智能命令中的insertupdate。 您想要更新记录,如果它不存在,则创建一个新记录。 使用upsert,您可以首先尝试获取记录(如果未找到任何记录,则创建新实例),然后设置字段,最后,对其进行向上插入。

赞:

Account myAcc;
try {
    myAcc = [ SELECT Id, Name FROM Account where Id='someIdImLookingFor'];
    myAcc.Name = 'My desired name';
catch (Exception e) {
    myAcc = new Account(Name='My desired name');
}
upsert myAcc

答案 1 :(得分:0)

“ Upsert”是实现此目的的最佳方法。如果有记录,则可以帮助您更新记录,否则可以创建新记录。

Account[] acctsList = [SELECT Id, Name, BillingCity FROM Account WHERE BillingCity = 'Bombay'];
 for (Account a : acctsList) {
    a.BillingCity = 'Mumbai';
}
Account newAcct = new Account(Name = 'Acme', BillingCity = 'San Francisco');
  acctsList.add(newAcct);
try {
   upsert acctsList;
} catch (DmlException e) {
  // Process exception here
}