As a prominent name in the cloud CRM space, Salesforce is being leveraged by organizations to manage customer relationships, as well as their business processes. Today, several forward-looking businesses including small and medium sized businesses are considering implementing this robust platform within their business ecosystem. By associating with an experienced Salesforce Consulting Partner, businesses are making the most of this platform to drive business growth and efficiency by automating processes, streamlining customer data and fortifying networks.
What is Salesforce Lightning?
Salesforce Lightning includes a set of applications, designed to help organizations manage their operations efficiently. Ever since the launch of this powerful and intuitive UI (user interface) framework i.e. Salesforce Lightning – businesses have enjoyed improved user experience, streamlined workflows, and augmented productivity. This component-based framework has helped businesses maintain their digital presence by helping them build applications on the Salesforce platform without any coding or development knowledge. This powerful, and enhanced version of CRM has the potential to maximize sales productivity, offer meaningful data insights, and transform the way people make a purchase.
What Should Businesses Consider Migrating from Salesforce Classic to Lightning?
While many organizations have already upgrade from Salesforce classic to Lightning, there are several others that are still hesitant to make a move. The reason might be ignorance about benefits of Salesforce Lightning, apprehension about missing features, and the fear of disrupting their business operations. While the Lightning platform had certain limitations, it has evolved significantly over the years. By providing a more visually pleasing, receptive, and adaptable user interface, Lightning offers a suite of powerful tools and features that enable businesses to streamline their businesses processes.
Augmented User Experience: Salesforce Lightning is known to have an intuitive interface, which is a noteworthy improvement over the classic version. While the changes might not seem obvious, the overall experience is strikingly smoother and faster. In fact, the interface is fully responsive, providing users with an optimum experience across different devices. The drag-and-drop functionality of the Lightning App builder allows users to tailor the platform as per their unique business needs.
Mobile-first: Salesforce Lightning can be easily accessed on mobile devices such as tablets and smartphones. In fact, users can easily access its functions even without the need for an internet connection. This advantage enables team members to work remotely or on the go. This not just boosts their output but also the overall performance of the organization.
Advanced Reporting and Analytics: With Salesforce Lightning, organizations can utilize the reporting and analytics capabilities of this platform, including Salesforce Einstein. Salesforce Einstein offers intelligent insights into their data. Lightning enables the creation of dynamic reports by conducting data analysis, and envisaging data through graphs and charts, which leads to more informed decision-making.
Improved Sales Productivity: Lightning equips sales teams with user-friendly features like customizable dashboards, automation tools and more. These functionalities help sales reps manage opportunities, leads and workflows thereby driving augmented productivity and better sales results.
Seamless Integration: Salesforce Lightning can easily integrate with a wide range of third-party system, applications, and services, enabling businesses to centralize their data and streamline operations. Recognizing evolving business needs, the platform offers Salesforce integration services to boost efficiency and provide a single view of customer related information.
Personalization: Salesforce Lightning allows businesses to tailor the platform to meet their unique needs. Users can create custom fields, dashboards, and pages to providing a personalized experience that supports their exclusive business processes.
What are Benefits of Utilizing Salesforce Lightning?
Customer satisfaction is at the heart of business success. Listed below are the business benefit of implementing this platform.
Time Efficiency: Salesforce Lightning offers several features for optimizing time usage, which enhances business efficiency through efficient time management.
Effective Sales Pipeline: Disorganized data is a major obstacle to an effectual pipeline. Salesforce Lightning offers an ingenious solution to this issue through its visual representation of the pipeline.
Better Collaboration: Salesforce Lightning offers features such as chatter that foster team collaboration through real-time information and document sharing.
The Bottom Line
Salesforce Lightning marks a major dive in the CRM landscape, transforming the way organizations handle customer relationships. Its user-friendly interface, wide range of features, and continual evolution make it a robust solution for all the teams. If you are still on the fence whether your business should migrate to Salesforce Lightning, make sure to get in touch with one of the best Salesforce Consultants.
INTRODUCTION
When working on any object in Salesforce and with records we want to edit we can do it however when another user is also editing the same record at the same time in same Salesforce org then both users will have the previous save details to edit. Here is the detail of the problem, the user who saves the record first will change the details then the other user editing the same record is still editing the previously saved record. This causes issues when the second user doesn’t know the first record has changes and they are just about to change an old record.
As a Salesforce Consultant I have had the QA team reject a piece of functionality due to changes to multiple changes to the same Salesforce object where I am either first, second or even the third user to make the changes to the same object. Girikon’s Salesforce Consulting services team is made up of hundreds of Salesforce consultants and as many as 10+ could be working on the same project at one time which sometimes makes it difficult for all consultants to know which objects the other consultants are editing.
THE SOLUTION IS EASIER THAN YOU THINK…
Now let’s think about the solution. We could lock the record for other users. This is a great feature so that second and third users must refresh in order to get the new details.
Whenever two or more users open the Salesforce object record to edit then the user who triggers the first save event has priority and will be able to save the record. When the second user saves the changes then user will get locked and the record will not get saved. To remove the lock, the second user will need to refresh and re-open the editing Window for that particular record. Now the user will be presented the new details which were saved by the first user. I have developed a practical guide below to assist with eliminating the problem.
FOLLOW THE STEP BY STEP SOLUTION BELOW…
First, the records of the object (that you want to edit) should be displayed on the screen through visual force page or lightning.
Now select a record whose details you want to edit .
If two or more users are editing the same record at the same time, then the user who will click on the save button on priority will only be able to save the record.
If other users click on the save button the they will get directed to a new page which will show the message to refresh the page.
For creating this you must add the below mentioned Visual Force code in your VF page.
<apex:page controller="lockingMachenismForAnyObject" sidebar="false">
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection>
<apex:inputText value="{!searchName}" label="ENTER THE NAME TO EDIT"/>
</apex:pageBlockSection>
<apex:commandButton value="search" action="{!search}">
</apex:commandButton>
<apex:pageBlockTable value="{!ReturningList}" var="v">
<apex:column headerValue="USER NAME" title="NAME">
<apex:outputField value="{!v.name}"/>
</apex:column
<apex:column headerValue="USER PHONE NUMBER" title="PHONE NO">
<apex:outputField value="{!v.phone}"/>
</apex:column
< apex:column headerValue="USER FAX NUMBER" title="FAX NO">
<apex:outputField value="{!v.fax}"/>
< /apex:column>
< apex:column headerValue="USER ID" title="ID">
< apex:outputField value="{!v.id}" />
</apex:column>
<apex:inlineEditSupport event="ondblClick">
< showOnEdit="saveButton,cancelButton"/>
</apex:pageBlockTable>
<apex:pageBlockButtons>
<apex:commandButton value="Save" action="{!save}" id="saveButton"/>
< apex:commandButton value="Cancel" action="{!cancel}" id="cancelButton"/>
</apex:pageBlockButtons>
< apex:pageBlockSection >
<apex:inputText value="{!newName}" label="Enter New NAME"/>
</apex:pageBlockSection>
<apex:pageBlockSection>
<apex:inputText value="{!newPhone}" label="Enter New PHONE"/>
</apex:pageBlockSection>
<apex:pageBlockSection >
< apex:inputText value="{!newFax}" label="Enter New FAX"/>
</apex:pageBlockSectio >
< /apex:pageBlock>
</apex:form>
For the above VF code below one is the apex code.
public without sharing class lockingMachenismForAnyObject
{
//Describing all the variables.
public string searchName{get;set;}
public string idOfSearchedName{get;set;}
public string newName{get;set;}
public string newPhone{get;set;}
public string newFax{get;set;}
// Fetching the list of Account records.
public List ob= new List([select name,phone,fax, id from account ]);
//initialising Method.
public list getReturningList() {
return ob;
}
//initialising Method.
public void search()
{
//Modifying the above list according to the name of the record which we want to edit.
ob= new List([select id,name,phone,fax from account where name = : searchName limit 1]);
idOfSearchedName = ob[0].id;
Account[] accountObject = [SELECT Id FROM Account where name = : searchName];
//Checking the locking condition.
if(Approval.isLocked(accountObject[0].id))
{
Approval.unLock(accountObject);
}
}
//initialising Method.
public pageReference save()
{
if(Approval.isLocked(idOfSearchedName))
{
//Sending the user to the locked page if the locking condition is satisfied.
pageReference pr=Name of the connected page to display.
return pr;
}
else
{
//Else saving the record and locking the same record for the other user.
List ob=new List();
Account updateObject=[select id,name,phone,fax from account where id = : idOfSearchedName];
updateObject.name=newName;
updateObject.phone=newPhone;
updateObject.fax=newFax;
ob.add(updateObject);
update ob;
Account[] accountObject = [SELECT Id FROM Account where name = : searchName];
Approval.lock(accountObject);
return null;
}
}
//initialising Method.
public pageReference cancel()
{
pageReference pr=page.pramodSirVF2;
return pr;
}
}
About Girikon
Girikon is a Salesforce consulting company,development team are based in the USA, in Noida, India and offices in Australia. Girikon’s global team in the USA, India and Australia, allows Girikon to respond at Lightning speed to customers across the globe and is known for its effective delivering and quality service. Girikon is made up of a team of certified Salesforce Consultants with experienced Project Managers, Business Analysts, Salesforce Architects, IT Developers, Consultants, and Administrators.
Girikon’s team of dynamic professionals are experienced in IT across many industries and business, their specialities include software development which includes design, QA testing (Manual and Automated, Support and Maintenance and have many resource model options. Our vision is to develop scalable and simplified solutions for our customers.
Here, I am displaying
salesforce lightning modal with a progress indicator in footer using lightning component.
In this article, you will be able to open modal on click button and close the modal and add progress indicator in a footer.
Let’s start process step by steps:
Step 1: Create lightning component “ProgressIndicator.cmp” and use below code.
<aura:component >
<aura:attribute name="showpage1" type="boolean" default="true"/>
<aura:attribute name="showpage2" type="boolean" default="false"/>
<aura:attribute name="showpage3" type="boolean" default="false"/>
<aura:attribute name="openModal" type="boolean" default="false"/>
<aura:attribute name="currentstep" type="String" default="step1"/>
<lightning:button variant="brand" label="Open" onclick="{!c.openModal}" />
<aura:if isTrue="{!v.openModal}">
<div class="demo-only" style="height: 640px;">
<section role="dialog" tabindex="-1" aria-labelledby="modal-heading-01" aria-modal="true" aria-describedby="modal-content-id-1" class="slds-modal slds-slide-up-open">
<div class="slds-modal__container">
<header class="slds-modal__header">
<button class="slds-button slds-button_icon slds-modal__close slds-button_icon-inverse" title="Close" onclick="{!c.hideModal}">
<lightning:icon iconName="utility:close" size="small" alternativeText="Close"/>
</button>
<h2 id="modal-heading-01" class="slds-text-heading_medium slds-hyphenate">Modal Header</h2>
</header>
<div class="slds-modal__content slds-p-around_medium" id="modal-content-id-1">
<aura:if isTrue="{!v.showpage1}">
<p>Step 1</p>
</aura:if>
<aura:if isTrue="{!v.showpage2}">
<p>Step 2</p>
</aura:if>
<aura:if isTrue="{!v.showpage3}">
<p>Step 3</p>
</aura:if>
</div>
<footer class="slds-modal__footer slds-modal__footer_directional">
<lightning:progressIndicator currentStep="{!v.currentstep}">
<lightning:progressStep label="Step 1" value="step1" onclick="{!c.page1}"/>
<lightning:progressStep label="Step 2" value="step2" onclick="{!c.page2}"/>
<lightning:progressStep label="Step 3" value="step3" onclick="{!c.page3}"/>
</lightning:progressIndicator>
</footer>
</div>
</section>
<div class="slds-backdrop slds-backdrop_open"></div>
</div>
</aura:if>
</aura:component>
Step 2: Create lightning component controller “ProgressIndicatorController.js” and use this code.
({
openModal : function(component, event, helper) {
component.set("v.openModal",true);
},
page1 : function(component, event, helper) {
component.set("v.showpage1",true);
component.set("v.showpage2",false);
component.set("v.showpage3",false);
component.set("v.currentstep","step1");
},
page2 : function(component, event, helper) {
component.set("v.showpage2",true);
component.set("v.showpage1",false);
component.set("v.showpage3",false);
component.set("v.currentstep","step2");
},
page3 : function(component, event, helper) {
component.set("v.currentstep","step3");
component.set("v.showpage3",true);
component.set("v.showpage2",false);
component.set("v.showpage1",false);
},
hideModal: function(component, event, helper) {
component.set("v.openModal",false);
}
})
Step 3: Create lighting app for preview the components.
<aura:application extends="force:slds" >
<c:ProgressIndicator/>
</aura:application>
You can check – Salesforce consulting Services – Girikon Salesforce implementation partner & Services