自定义按钮,用于将数据从Opportunity复制到相关的自定义对象

时间:2011-03-17 03:33:30

标签: salesforce visualforce apex-code

我有一个自定义对象,用于映射到商机的产品设置。它是一对多关系 - 一个机会映射到许多设置对象,但一个设置对象仅映射到一个机会。

机会有一些设置字段需要充当相关自定义对象的默认值。不幸的是,我不能在公式中指定它们 - 得到错误。

我想要做的是有一个自定义按钮,允许用户点击并将机会中的所有相关设置字段复制到自定义设置对象中,然后根据需要进行编辑。

非常感谢任何指针或示例代码!

1 个答案:

答案 0 :(得分:3)

您可以在机会详情页面上的自定义对象的相关列表中使用自定义按钮来实现此目的。

标准Salesforce新/编辑屏幕上的所有字段都有与之关联的ID。您可以使用这些ID在URL上设置GET参数来指定字段的值。例如,如果商机名称字段上的ID为“opp3”,则以下网址将填充新商机页面上的名称字段:

https://na2.salesforce.com/006/e?opp3=Hello+World

您必须将na2更改为您的组织的正确服务器。

新记录页面网址包含特定对象的3个字符ID前缀,然后是“/ e”。 006是机会的前缀。您将不得不尝试创建新记录以查看自定义对象的3个字符。

您必须捕获要在自定义对象上填充的字段的ID。您可以通过查看新记录页面的来源来执行此操作。对于自定义字段,这些ID将采用Salesforce Id的形式(例如00N40000002QhEV)。

在自定义对象上创建一个新列表按钮,并将行为设置为不带标题和侧边栏,并将源设置为URL。使用由'&'分隔的id = value对构建您的网址使用您从页面源和插入字段功能获得的ID来选择您希望添加的机会字段。您应该最终得到这样的内容:

/a0U/e?00N40000002QhEV={!Opportunity.Name}&00N40000002QhEW={!Opportunity.StageName}

a0U应替换为自定义对象的正确前缀。然后将您的按钮添加到机会下自定义对象的相关列表中。