Getting Started with Salesforce Quick Action APIs – Part 1 (Invoke using custom button)
For so long everybody requesting me to post on Salesforce Quick Action APIs
as there is very little documentation and often the documentation does not provide details on some critical features and
their implementation.
So here I am with Quick Action APIs – Part 1 where
we will focus on how to call/invoke any Quick Action from Custom Lightning
Aura Component.
Note:
For Quick Action APIs to work the requested component should be
present on the record current screen from where this action will invoke
else system will through error
☹️
Below is simple Lightning Aura Component - Screen and ControllerJS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<aura:component controller="QuickActionAPIScreenController" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" > | |
<!-- Attribute defination --> | |
<lightning:quickActionAPI aura:id="quickActionAPI" /> | |
<!-- Screen defination --> | |
<div> | |
<!- Add required screen components here..... --> | |
</div> | |
<br/> | |
<div> | |
<lightning:button label="Submit Quote" onclick="{!c.callCaseCloseAction}"/> | |
</div> | |
</aura:component> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
({ | |
callCaseCloseAction : function( component, event, helper ) { | |
var actionAPI = component.find("quickActionAPI"); | |
var fields = { | |
Status : {value : 'Closed'}, | |
Subject : { value : 'Case Ticket Resolved and Closed' }, | |
}; | |
var args = {actionName : "CloseCase", | |
entityName : "Case", | |
targetFields : fields }; | |
actionAPI.setActionFieldValues(args).then(function() { | |
// Call this if you donot want any other User interaction. This will automatically Submit the action. | |
actionAPI.invokeAction(args); | |
}).catch(function(e) { | |
console.log('Error upon calling Email Action: ', JSON.stringify(e)); | |
}); | |
}, | |
}) |
The key items are:
- lightning:quickActionAPI - Used for including Quick Action API in a component
- setActionFieldValues - Promise function used for calling and setting default values
- invokeAction - Its calls action submit automatically upon successful execution of method "setActionFieldValues"
Comments
Post a Comment