我正在尝试更新标准salesforce合约对象的状态字段。由于我们使用的是自定义布局,因此最好只需在顶部设置一个按钮即可完成此操作。我尝试过使用http://sfdc.arrowpointe.com/2009/01/08/invoke-apex-from-a-custom-button-using-a-visualforce-page/
中描述的方法但是我的实现是出错了: java.lang.IllegalArgumentException:非法视图ID取消。 ID必须以/
开头是否有人能够在不了解实施细节的情况下帮助完成此设计?有没有更简单的方法来实现这一目标?
答案 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);
}