将列动态添加到Salesforce报表

时间:2012-11-19 04:27:24

标签: salesforce soql

我需要动态地(根据特定条件)向salesforce报表添加列。我打算用一个寻找我条件的触发器来做这件事。我的两个问题,

  1. 是否可以为报表动态添加列?
  2. 我们可以根据时间间隔而不是数据库更新来安排触发器吗?
  3. 谢谢,BR 马杜拉

1 个答案:

答案 0 :(得分:0)

我不知道有任何可能操纵Apex的报告。可以使用Metadata API(例如Eclipse IDE中使用的那个)检索和修改报告定义,但这意味着您必须使用hacks,因为Apex中不容易使用Metadata API。

这是一种“已知问题”,许多人已经研究过它:

  1. http://boards.developerforce.com/t5/Apex-Code-Development/Is-it-possible-to-call-Metadata-API-from-Apex-code-Getting-Error/td-p/119412
  2. https://github.com/financialforcedev/apex-mdapi - 看起来非常有趣我会说
  3. https://salesforce.stackexchange.com/questions/1082/has-anyone-ever-successfully-invoked-the-metadata-api-from-within-apex
  4. 您是否真的认为某种“动态报告”是针对业务需求的有效解决方案?我的意思是 - 如果用户在报告中添加了一些列,那么用户会感到困惑,第二天报告定义会改变他们的工作......


    至于另一个问题 - 你可能不应该使用“触发器”这个词;)如果你想让一些Apex在时间间隔内运行,你应该看看作业调度(写一个implements Schedulable的类)然后您可以安排它在特定时间运行。如果不进行特殊调整,工作甚至可以每小时一次。

    当然还有基于时间的工作流程选项可以执行字段更新并导致一些真正的触发器触发,但这是非常以数据为中心的 - 不能保证它会按时间间隔运行。