2

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

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

  • 在 apex:pageBlockButtons 元素上添加一个附加按钮。或者,一般来说,在基本包的 visualforce 页面中添加额外的 html 片段(我们可以称它们为小部件)。
  • 在基础包的控制器上执行附加逻辑。

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

4

1 回答 1

0

您可能会看看使用最近引入的 [apex 反射][1](阅读:新功能,当心错误!)。

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

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

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

于 2012-06-27T02:51:29.073 回答