通过触发器显示警报框 - salesforce

时间:2012-07-21 20:21:06

标签: salesforce apex-code force.com

是否可以通过触发器显示警告消息(而不是错误消息)?我写了一个触发器来检查系统中的重复帐户。此时的触发器向用户发出错误消息,告知存在重复的帐户。但是,如果用户更改字段的值“是否重复记录?”为YES,触发器允许用户保存记录。

但是,我想在警告弹出框中显示错误消息,例如“存在此帐户的帐户,您确定要继续”,然后用户单击是并创建记录。关于如何做到这一点的任何想法。我的代码如下:

for(Account account: System.Trigger.New)  
{  
 if(accountMap.containsKey(account.Physical_Street__c)==accountMap2.containsKey(account.Phone))
 if(accountMap.containsKey(account.Physical_Street__c)==accountMap3.containsKey(account.Name))  
 if(account.Is_record_near_to_duplicate__c.equals('No'))  
  {  
   account.addError('Account with this Name,Street and Phone Number already      exists. If you still wish to create the agency change the value of field "Is Record Near To Duplicate" to YES');  
  }  
}

3 个答案:

答案 0 :(得分:1)

如果您确实需要一个警告框,那么您可以创建一个自定义的javascript按钮,使用ajax toolkit替换标准保存按钮。

然而,正如Baxter所说,你的标准销售人员的外观与感觉相差甚远。我建议改为在复选框字段而不是对象上添加错误,以便用户清楚他们需要选择什么。

if(account.Is_record_near_to_duplicate__c.equals('No'))  
  {  
     account.Is_record_near_to_duplicate__c.addError('Agency with this Name, Physical Street and Phone Number already exists. If you still wish to create the agency change the value of field "Is Record Near To Duplicate" to YES');  
  }   

答案 1 :(得分:0)

除非您编写一个处理错误消息的自定义visualforce页面,然后将其显示为弹出窗口,否则无法执行此操作。

如果您希望警报修改数据,您可以使用ajax api将Is_record_near_to_duplicate__c字段设置为“是”,但无论哪种方式,您都会远离标准功能并与此接口。

答案 2 :(得分:0)

对于触发器错误实施弹出警报并不是直接的,并且弹出窗口在很久以前就已经过时了。如果您正在经历麻烦,您可以在VF页面上实现自定义灵魂。

从触发器中抛出自定义异常(对于欺骗帐户),并在控制器中捕获它。当您捕获此异常时,您可以在页面上动态显示部分,要求用户确认他/她的操作。当用户确认操作时,页面将完成剩下的工作。

希望这是有道理的!

阿努普