UnofficialSF.com has added a new section devoted to Service Cloud channel functionality, which is increasingly driven by flow-based services.
Check it out here. If you know of a good post or page on the topic, don’t hesitate to let us know via the form on the home page.
https://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.png00Alex Edelsteinhttps://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.pngAlex Edelstein2022-01-20 16:34:202022-01-28 08:46:40UnofficialSF has a new Service Cloud Channels Section
OrgCheck is an easy-to-install and easy-to-use Salesforce application in order to quickly analyze your org and its technical debt. Flow users, note that some of what it reports on relates to your existing automations.
Identify permission sets and profiles correlations
List IP and Login Hours restrictions on all profiles
Role hierarchy
Check if your role hierarchy is not too deep
Show role hierarchy in a diagram with empty roles identification
List roles with bad practices
Users
List users that never logged
Key system permissions for each users
Public group and Queues
List groups and queues
Identify all users of groups and queues (recursive computation)
UI Composants
List Visual Force pages and components with bad practices
List Aura and LWC components with bad practices
Apex Composants
List Apex Classes with bad practices (old API version, no explicit sharing, etc.)
List Triggers with bad practices (contains logic, DML, SOQL, etc.)
Automations
Workflow rules without actions
Process Builders / Flows
Batches
Failed jobs
Scheduled jobs
https://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.png00Alex Edelsteinhttps://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.pngAlex Edelstein2021-05-28 15:49:142021-05-28 15:51:00From Vincent Finet: Analyze your Org with OrgCheck
ABOUT This is a Lightning Component that plays a sound effect. It can be used on Flow Screens and Lightning Pages. In order to play a sound, you have to upload the sound file as a Static Resource and then enter the name of the file to the “Sound File” parameter.
PARAMETERS Sound File – Enter the name of the sound file.
CONSIDERATIONS This component loads the sound file from Static Resources and plays it. So it is recommended to use smaller file sizes, otherwise it might take some time to load the file.
HOW TO USE 1- Upload the sound file as a Static Resource.
2- Add “SoundCMP” to your Flow Screen. 3- Enter the name of the sound file to the parameter called “Sound File”.
https://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.png00Yumi Ibrahimzadehttps://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.pngYumi Ibrahimzade2020-03-06 07:25:082020-03-06 07:39:29A Flow Screen Component that plays sounds
https://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.png00Alex Edelsteinhttps://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.pngAlex Edelstein2020-01-05 06:55:322020-01-05 06:55:33Tushar Sharma: Using an LWC to Close a Quick Action Modal
https://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.png00Tamar Erlichhttps://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.pngTamar Erlich2019-05-05 06:04:362019-05-05 06:04:37Displaying Map with markers in Flow screen using Lightning Components by Terence Chiu
I was looking to display Visualforce pages using the RecordId inside of my Lightning Record pages. After finding a very elegant solution to pass the RecordId from a Lightning Component container to a Visualforce page displayed in an iframe I decided it was time to move the solution from the Sandbox into Production.
What worked perfectly in the Sandbox gave me nothing but a blank component in Production. After spending way too much time trying to find a solution, I gave up and went to Plan B. (edit: my other component works once I adjusted my clickjack settings)
SANDBOXPRODUCTION
Plan B
I was able to use a Lightning Component to navigate to a URL, so I built a component to build the URL for the Visualforce page including the parameter for the RecordId of the page.
doInit : function(component, event, helper) {
var params = new Array();
params.push(component.get('v.recordIdVar') + '=' + component.get('v.recordId'));
params.push(component.get('v.otherParams'));
component.set('v.queryString', params.join('&'))
},
openPage : function(component, event, helper) {
// Show spinner once button is pressed
var spinner = component.find('spinner');
$A.util.removeClass(spinner, 'slds-hide');
// Build url for Visualforce page
var vfURL = 'https://' + component.get("v.domain") + '--c.visualforce.com/apex/';
vfURL = vfURL + component.get("v.pageName") + '?';
vfURL = vfURL + component.get("v.queryString");
console.log("VF URL: ",vfURL);
On a standard Lightning page, the component switches from the Record page to the Visualforce page, returning to the Record page when the Visualforce page exits.
// Handle non-console user
console.log("Not in Console");
var urlEvent = $A.get("e.force:navigateToURL");
urlEvent.setParams({
"url": vfURL
});
urlEvent.fire();
It is a bit different on a Console page where the Visualforce Page is loaded in a new Tab which reverts to the Record page Tab when exiting. This normally leaves a second “dead” Record page Tab behind so I made sure the component saved the ID of the Calling Tab or Subtab and closed the “dead” tab when finishing with the Visualforce page.
// Check to see if running in a Console
var workspaceAPI = component.find("workspace");
workspaceAPI.isConsoleNavigation().then(function(consoleResponse) {
console.log("IsConsole: ", consoleResponse);
if (consoleResponse) {
// Save current tab info
workspaceAPI.getFocusedTabInfo().then(function(tabResponse) {
var closeTabId = tabResponse.tabId;
var closeTitle = tabResponse.title;
var parentTabId = tabResponse.parentTabId;
var isSubtab = tabResponse.isSubtab;
console.log("Current Tab: ", closeTabId + " | " + closeTitle);
console.log("Is Sub: ",isSubtab," ParentId: ",parentTabId);
// Open Visualforce Page in a new tab
if (isSubtab) {
workspaceAPI.openSubtab({
parentTabId: parentTabId,
url: vfURL,
focus: true
}).then(function(openSubResponse) {
console.log("New SubTab Id: ", openSubResponse);
})
.catch(function(error) {
console.log(error);
});
} else {
workspaceAPI.openTab({
url: vfURL,
focus: true
}).then(function(openParResponse) {
console.log("New ParentTab Id: ", openParResponse);
})
.catch(function(error) {
console.log(error);
});
}
// Because exiting the VF page will reopen the object record,
// close the tab we started on
if (tabResponse.closeable && !tabResponse.pinned) {
workspaceAPI.closeTab({
tabId: closeTabId
}).then(function(closeResponse) {
console.log("Closed: ", closeTitle);
})
.catch(function(error) {
console.log(error);
});
} else {
console.log("Left Open: ", tabResponse.title);
}
})
.catch(function(error) {
console.log(error);
})
Rather than load the Visualforce page immediately, I display a button. On the button press, the component loads the Visualforce page.
I’ve made the component as generic as possible by providing the following attributes one can use when placing the component on their Lightning Record page.
Domain Name (Your Production or Sandbox domain name)
Visualforce Page Name (The API Name of the Visualforce Page)
RecordId Parameter Name (The name of the URL parameter for the RecordId)
Additional URL Parameters (Any other URL parameters & values)
Here’s the Component in Action
https://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.png00Eric Smithhttps://unofficialsf.com/wp-content/uploads/2022/09/largeUCSF-300x133.pngEric Smith2019-02-28 09:22:262019-09-27 02:50:32Load a Visualforce Page with Parameters in Lightning