我可以从扩展包中向salesforce base package页面添加元素吗?

时间:2012-06-26 19:47:23

标签: design-patterns package salesforce

我们正在开发一个具有扩展功能的Salesforce包。我们的想法是在基础包中提供基本功能,并提供单独的额外功能作为包扩展(具有自己独立的许可和价格)。

但是,当我们安装扩展时,我们需要在基础包中注入一些额外的元素。这种需求的例子是:

  • 在apex:pageBlockButtons元素上添加其他按钮。或者,通常,在基础包的visualforce页面中添加额外的html片段(我们可以称之为小部件)。
  • 在基础软件包控制器的进程中执行其他逻辑。

问题是:Salesforce上是否有标准功能可以让我们实现这些结果?如果没有,是否有可以应用的设计模式来实现这样的目标?

1 个答案:

答案 0 :(得分:0)

你可以看一下使用最近推出的[apex reflection] [1](阅读:新功能,谨防错误!)。

对于其他逻辑,请在基础包中定义接口。扩展包添加了一个新实现,并在自定义设置(基础包的一部分)中“注册”类名。然后让代码检查任何条目的自定义设置,如果有,则运行处理附加逻辑所需的任何方法。

对于visualforce页面,您可以执行类似的操作,但扩展包接口类将使用动态visualforce来添加按钮。

更简单,只需在扩展包中创建一些工件,也许是静态资源,但可以是基础包可检查的任何东西。如果基础包查找工件并找到它,请打开增强功能。希望让大脑流动起来。