2013-03-28 51 views
1

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

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

任何人都可以在不进入实施细节的情况下帮助完成此设计?有没有更简单的方法来实现这一点?

回答

0

However my implementation is getting the error: java.lang.IllegalArgumentException: Illegal view ID cancel. The ID must begin with /

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

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

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); 
} 
相关问题