1

我正在尝试更新标准 salesforce 合同对象的状态字段。由于我们使用的是自定义布局,因此最好在顶部简单地放置一个按钮来完成此操作。我尝试使用以下描述的方法:http ://sfdc.arrowpointe.com/2009/01/08/invoke-apex-from-a-custom-button-using-a-visualforce-page/

但是我的实现出现错误:java.lang.IllegalArgumentException: Illegal view ID cancel。ID 必须以 / 开头

有没有人能够在不涉及实现细节的情况下帮助这个设计?有没有更简单的方法来实现这一点?

4

2 回答 2

0

一种更简单的方法是直接在自定义按钮中使用AJAX 工具包,而不是使用 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);
}
于 2013-04-04T00:31:43.373 回答
0

但是我的实现出现错误:java.lang.IllegalArgumentException: Illegal view ID cancel。ID 必须以 / 开头

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

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

于 2013-03-28T03:02:11.373 回答