使用自定义按钮更新标准Salesforce对象

时间:2013-03-28 01:48:53

标签: salesforce

我正在尝试更新标准salesforce合约对象的状态字段。由于我们使用的是自定义布局,因此最好只需在顶部设置一个按钮即可完成此操作。我尝试过使用http://sfdc.arrowpointe.com/2009/01/08/invoke-apex-from-a-custom-button-using-a-visualforce-page/

中描述的方法

但是我的实现是出错了: java.lang.IllegalArgumentException:非法视图ID取消。 ID必须以/

开头

是否有人能够在不了解实施细节的情况下帮助完成此设计?有没有更简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:0)

  

但是我的实现是收到错误:java.lang.IllegalArgumentException:非法视图ID取消。 ID必须以/

开头

这几乎肯定是控制器操作方法返回的对象的问题。

示例方法autoRun()返回一个PageReference。你的方法有什么回报?它应该是PageReference或null。

答案 1 :(得分:0)

更简单的方法是直接在自定义按钮中使用AJAX Toolkit,而不是使用Apex。也就是说,它会是这样的:

{!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}

var contractObj = new sforce.SObject("Contract");
contractObj.Id='{!Contract.Id}';
contractObj.Status='Your New Status Value Here';
var result=sforce.connection.update([contractObj]);

if (result[0].success=='false') {
    alert(result[0].errors.message);
} else {
    location.reload(true);
}