在自定义对象字段中显示与机会相关的联系人

时间:2013-04-20 21:50:19

标签: salesforce apex-code soql

我有下一期。 我有一个名为'Application'的自定义对象,我有这个要求:

“显示与应用程序相关的所有联系人。在Application对象上创建一个字段,必须是只读”。

我用顶点代码解决它。 “应用程序”查找机会,机会账户,我的所有联系人都有AccountId,所以这样,我在触发器中使用顶点代码获取所有联系人。

但是,我一直要求将其更改为Application对象中的Formula字段。 那么,我的问题是下一个。我无法通过高级公式编辑器获得所有联系人,因为它们不属于任何对象。我没有主 - 细节关系。

有没有人知道如何使用配置实现这一目标?我不应该使用顶级代码来获取此请求。 提前谢谢你们。

1 个答案:

答案 0 :(得分:0)

我认为你不能这样做。

在公式/合并字段语法中,无法“向上,向上然后向下”(应用程序 - >机会 - >帐户 - >向下到联系人相关列表)。也没有任何东西可以让你循环通过联系人(并显示什么?Ids?名字?电子邮件?)。粗略地说,你只能通过点。

您可能想要探索“跨对象工作流程”规则的路径,但我想,当我向帐户添加新的联系人时,它应该以某种方式“传播”到所有相关的应用程序?在删除时也没有直接触发工作流的方法 - 所以你最终会得到不准确的列表。

我认为触发器是一个很好的解决方案。也许它没有被优化,但如果它必须在一个领域 - 艰难。


通过在Application页面布局中嵌入visualforce页面,可能有一种相当简单的方法可以实现这一点。

这应该适用于纯Visualforce(因此从技术上讲,没有Apex代码;)) 像

这样简单的东西

<apex:relatedList list="Contacts" subject="Application__c.Opportunity__r.AccountId" />

将是一个良好的开端(如果您想要自己的布局而不是rel。列表 - 您仍然可以使用<apex:repeat><apex:pageBlockTable>将其拉出来。

这里有一个但是:它不是一个字段,只是一个显示技巧。忘记在报告,移动应用程序等中使用它。

另一种方式 - 只需点击一下这些联系人即可接受吗?您可以生成一个报告“使用联系人帐户”,按一个帐户的ID过滤它,然后使用“URL黑客”更改过滤器,具体取决于您将单击它的应用程序。此链接可以是公式字段或实际自定义按钮/链接。从技术上讲 - 它是纯粹的配置,没有顶点和VF。

您可以在Ray Dehler's excellent post了解有关网址黑客攻击的更多信息,特别是动态报告herehere