如何从自定义按钮调用APEX方法

时间:2011-12-03 12:59:23

标签: apex-code

我为salesforce的销售应用程序的“机会”标签添加了自定义按钮。按下该按钮后,我想导航一些新标签(我通过添加适当的URL完成它)并执行以下Apex方法。如何执行此方法。谢谢。

public class JobService {

private JobDao job_dao = new JobDao();

public void insertJob() {
Job__c newJob = new Job__c();
job_dao.insertJob(newJob); 
}
}

3 个答案:

答案 0 :(得分:2)

我已按照以下方式完成此任务,

将以下java脚本代码添加到自定义按钮的javaScript“onClick”部分。

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

//Get Opportunity id 
var opId= "{!Opportunity.Id}";

//Call insertJob method by passing that Opportunity id 
sforce.apex.execute("JobService","insertJob",{op_id:opId});

//Redirect to that tab 
window.location = 'https://ap1.salesforce.com/a0G/o';

注意:

  • 非常感谢Adam&杰里米罗斯是他们的导游,那些是 对我很有帮助。
  • 如果有人知道,请添加一些评论,我该如何检索 机会'对象而不是检索'Opportunity.Id',谢谢。

答案 1 :(得分:0)

你有几个选择:

VF页面

创建VF页面。在页面的控制器中,调用您的Apex方法,然后将用户转发到新选项卡

<强>的JavaScript

公开调用apex方法的简单Web服务。将按钮设为“onclick javascript”按钮并调用Web服务(有关如何执行此操作,请参阅Exposing Apex Classes as REST Web ServicesApex in AJAX)。将用户转发到新选项卡。

答案 2 :(得分:0)

创建一个精简的Visualforce页面,其中Opportunity作为您的控制器,自定义类作为扩展名:

<apex:page standardController="Opportunity" extensions="RedirectClass" action="{!redirect}"/>

扩展名(Apex)可能如下所示:

// On load, action="{!redirect}" takes us here
public PageReference redirect()
{
    return Page.YourVisualforcePageWithATab;
}

转到:名称|设置|自定义|机会|按钮和链接|新

在内容源中选择Visualforce页面,然后在“内容”字段中选择刚刚创建的visualforce“重定向”页面。应该这样做。