How to convert sforce.apex.execute to Lightning

The idea is to convert a Salesforce Javascript button to Lightning Experience

Original JS button


sforce.apex.execute("JSMMyExecuteClass", "myExecuteMethod", {param1:"Im param1",param2:"Im param2"}); 
window.location = '';

We have to create a Lightning component:


<aura:component implements="force:lightningQuickAction" controller="JSMMyExecuteClass" >

  <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>



  doInit : function(component, event, helper) {
    var action = component.get("c.myExecuteMethodAura");
      "param1": 'Im param1',
      "param2": 'Im param2'
    action.setCallback(this, function(response) {
    var state = response.getState();

    if(state == "SUCCESS" && component.isValid()){
      console.log("success") ;
      var result = response.getReturnValue();

      var urlRedirect = ""+result;
      var urlEvent = $A.get("e.force:navigateToURL");
        "url": urlRedirect
      console.error("fail:" + response.getError()[0].message); 

In JSMMyExecuteClass we need to create an equivalent method to call from our js controller:

public class JSMMyExecuteClass {

  public String myExecuteMethod(String param1, String param2){
    return 'ok '+param1+' - '+param2;

  public static String myExecuteMethodAura(String param1, String param2){
    return new JSMMyExecuteClass().myExecuteMethod(param1, param2);

Create a quick action that points to our component

Add the quick action to the layout(s)

Photo by Artem Sapegin on Unsplash


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s