从Salesforce中的Apex触发器向当前用户提供通知

时间:2011-08-12 02:18:09

标签: salesforce apex-code

我正在尝试找出一种用户友好的方式,通过我的Apex代码向用户传递消息。我有一个触发器,在插入/更新一个潜在客户之后触发,然后过滤更新列表并触发一个@future方法,该方法将前导数据推送到外部Web服务并使用一些返回的值更新转换后的帐户。

我想做以下事项(其中X,Y和Z是从1到50的任意数量的潜在客户)

  • 通知用户转换引导X,Y和Z的引线将被导出(我会在触发执行期间知道这一点)。
  • 通知用户导出成功或失败(当@future方法运行时,X,Y和Z中的每一个都会知道。)

将此信息传递给用户的推荐方法是什么?我更喜欢来使用电子邮件(因为这会触发每条记录一封电子邮件,这非常垃圾和令人不快)。是否有另一种方法将通知消息注入页面?我已经尝试了ApexPages.addMessage()但它似乎没有为我做任何事情(没有错误,但也没有注意)。

1 个答案:

答案 0 :(得分:1)

addMessage()在当前页面处于活动状态时与Visualforce页面和标准页面一起使用,因此如果用户从按钮/ VF页面触发操作,则在触发器中使用此选项应该可以正常工作。但是,使用此方法不适用于@future方法,因为它在后台异步运行。

也许最好的解决方案是使用自定义消息对象,该对象具有修改的字段列表,何时查找相应的用户(或将其用作所有者)。然后,您可以创建一个简单的VF页面和控制器,当查看该对象中与当前用户相关的记录时,可以选择删除它们(您可以在从数据库中提取它们后自动删除它们,但是您可能会冒险用户实际上没有注意到消息)。然后,您可以将此页面用作仪表板组件的一部分,因此,只要用户查看其主页,他们就可以看到通知列表。

最后另一种选择可能是利用Chatter,通过那些消息将消息传递给用户,然后也会显示在摘要电子邮件等中。