Sunday, December 18, 2022

Using Hierarchy Custom Settings in Salesforce

1. Create a hierarchy custom setting like below

- As per the above screen shot create a custom field of data type check box
Note: App Setup > Develop > Custom Settings (To open custom settings)

2. Click on Manage button

- As per the above screen shot set the OWD value for isBypassed as 'False'
- Add two users by clicking on New button, set isBypassed as 'True' for one user and 'False' for another user

3. Create a page called 'Change Owner'
<apex:page tabStyle="Case" standardController="Case">
<apex:form >
<apex:sectionHeader title="Change Case Owner"/>
<p>This screen allows you to transfer cases from one user or queue to another. When you transfer ownership, the new owner will own:</p>
<ul><li>all open activities (tasks and events) for this case that are assigned to the current owner</li></ul>
<p>Note that completed activities will not be transferred. Open activities will not be transferred when assigning this case to a queue.</p>
<apex:pageBlock mode="Edit">
<apex:pageBlockButtons location="bottom">
<apex:commandButton value="Save" action="{!save}"/>
<apex:commandButton value="Cancel"/>
</apex:pageBlockButtons>
<br/><apex:pageBlockSection title="Select New Owner" collapsible="false" columns="3">
<apex:pageBlockSectionItem >
<apex:outputLabel value="Owner"></apex:outputLabel>
<apex:inputField value="{!Case.ownerId}"/>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>

- Design a visualforce page from the above code

4. Create custom button for the Case Object like below:


if ({!$Setup.Disable_Change_Owner__c.isBypassed__c}) {

window.location = "/apex/changeowner?id={!Case.Id}";

}

else {

alert("You don't have the permission");

}


- Use the above script for OnClick JavaScript
- Add the above custom button 'Change Owner' to Case Page Layout.
- "{!$Setup.Disable_Change_Owner__c.isBypassed__c}" is the way to refer the hierarchy custom setting in JavaScript.
- According to the above button one user can access the page and navigate to the 'Case Owner' page

- Another user is not able to access the page, it will throw JavaScript alert


Note: Above scenario helps to create custom change owner functionality for the case record

***
We can create multiple fields for the hierarchy custom settings and we can assign different values according to the business requirement.
***

No comments:

Post a Comment

Understanding Wire vs Imperative Apex Method Calls in Salesforce Lightning Web Components (LWC)

Understanding Wire vs Imperative Apex Method Calls in Salesforce Lightning Web Components (LWC) Introduction: Salesforce Lightning Web ...