Skip to content

Instantly share code, notes, and snippets.

View Sunil02kumar's full-sized avatar

Sunil Kumar Sunil02kumar

View GitHub Profile
@Sunil02kumar
Sunil02kumar / Ultimate_Account_Id__c formula
Created October 12, 2022 05:50
Formula Field to Ultimate Account Id in Account Hierarcy
IF(ISBLANK(ParentId), Id,
IF(
/* Parent Level 10 */
NOT(ISBLANK(Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ParentId))
,Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Id
,IF(
/* Parent Level 9 */
NOT(ISBLANK(Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.ParentId))
,Parent.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Id
,IF(
@Sunil02kumar
Sunil02kumar / gist:81a6e61ca74ad3f725462666c5e74009
Created July 26, 2020 15:42
Compare CRUD (OLS) for a profile in 2 different environment
string sourceOrgDomainURL = 'https://xxxxzzzxxxxx.salesforce.com';
string sourceOrgSessionId = UserInfo.getSessionID(); //specify source org sessionid URL
string targetOrgDomainURL = 'https://xxxvvvvvxxxxx.salesforce.com';
//specify target org sessionid or access_token
string targetOrgSessionId ='00DxxxxxxxxxxxxxxxxxxxxeeeeeeeeeeeeezzzzzzzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbMD7q__aWFV3XmO3CNLdyqsY';
string profileName = 'System Administrator';
profileName = profileName.replaceAll(' ','+');
//First fetch CRUD permission for profile from Source Org
string sourceEndPointURL = sourceOrgDomainURL+'/services/data/v48.0/query/?q=SELECT+Id,ParentId,SobjectType,PermissionsCreate,PermissionsRead,PermissionsEdit,PermissionsDelete,PermissionsViewAllRecords,PermissionsModifyAllRecords+FROM+ObjectPermissions+WHERE+ParentId+IN+(SELECT+PermissionSetId+FROM+PermissionSetAssignment+WHERE+PermissionSet.Profile.Name=\''+profileName+'\')+ORDER+BY+SobjectType';
@Sunil02kumar
Sunil02kumar / SK_PromiseAllDemoApp.app
Created April 27, 2020 12:45
Javascript Promise.all : Way to perform action when Multiple Parallel enqueued Actions are Completed
<aura:application extends="force:slds">
<c:SK_PromiseAllDemo/>
</aura:application>
@Sunil02kumar
Sunil02kumar / SK_BoxAPIUtilityClass.cls
Created April 17, 2020 03:01
Get the content (Blob) of file from Box and store/manipulate it in Salesforce
/*
Author: Sunil Kumar
Purpose: To get file content from BOX
*/
public class SK_BoxAPIUtilityClass {
//method to get file details from box
public static string findFileNameFromBox(string boxFileId,string access_token){
string filename='';
string endPointUrl='https://api.box.com/2.0/files/'+boxFileId;
@Sunil02kumar
Sunil02kumar / SK_PromisePatternDemo.cmp
Created April 10, 2020 20:49
Using JavaScript Promises in Lightning Components
<aura:component controller="SK_PromisePatternDemoController">
<aura:attribute name="ltngAccList" type="List"/>
<aura:attribute name="ltngTaskList" type="List"/>
<aura:attribute name="ltngClickedAction" type="String" default=""/>
<aura:attribute name="ltngAccInfoString" type="String" default=""/>
<aura:attribute name="ltngTaskInfoString" type="String" default=""/>
<lightning:button label="Fetch 2 records using callback pattern" onclick="{!c.findDataUsingNormalCall}"/>
<lightning:button label="Fetch 3 records using promise pattern" onclick="{!c.findDataUsingPromise}"/>
<br/>
// ===========================================================================
// Entity: SK_EmailAlertJSONParser
// Author: Sunil Kumar
// Purpose: wrapper class to parse emailalert response JSON using tooling api
// '/services/data/v47.0/tooling/sobjects/WorkflowAlert/01W380000xxxxbs'
// ===========================================================================
public class SK_EmailAlertJSONParser {
public string Id;
public String CcEmails ;
public String Description ;
@Sunil02kumar
Sunil02kumar / gist:396b9ec81b59a23aee29e5ca41a28202
Created January 8, 2020 10:19
Find All Content Version Ids from Library and Generate File download URLs
string LibraryName='Demo Download Library';
ContentWorkspace ws = [SELECT Id, RootContentFolderId FROM ContentWorkspace WHERE Name = :LibraryName LIMIT 1];
Set<string> fileNameList = new Set<string>();
List<ContentDocumentLink> filesToDelete= new List<ContentDocumentLink>();
string csvString='';
String domainUrl=URL.getSalesforceBaseUrl().toExternalForm();
for(ContentDocumentLink con:[select id,LinkedEntityId,ContentDocumentId ,ContentDocument.LatestPublishedVersion.Title from ContentDocumentLink where LinkedEntityId=:ws.Id]){
csvString = csvString +domainUrl+'/sfc/servlet.shepherd/version/download/'+con.ContentDocument.LatestPublishedVersionId+'\n';
}
@Sunil02kumar
Sunil02kumar / SK_ConvertNotesForLightningBatch.apxc
Created November 19, 2019 10:16
How to Convert Salesforce Classic Notes into Lightning Notes
public class SK_ConvertNotesForLightningBatch implements Database.Batchable<sObject>,Database.Stateful{
public string qString;
string errorDetailsString = 'Parent Record Id ,Note Id, Error deatils \n';
string successRecordString='Parent Record Id ,Note Id,ContentNote Id \n';
long jobStartTime= 0;
long jobEndTime= 0;
public SK_ConvertNotesForLightningBatch(string qStr){
qString = qStr;
}
@Sunil02kumar
Sunil02kumar / SK_PrepopulateFieldsDemo.cmp
Last active November 14, 2019 12:05
Pre-populate Field Values on Standard Pages in Lightning
<aura:component implements="force:appHostable,flexipage:availableForRecordHome,force:hasRecordId" >
<lightning:button name="Create Quick Contact" label="Create Quick Contact" onclick="{!c.createQuickContact}"/>
</aura:component>
@Sunil02kumar
Sunil02kumar / SK_ConvertAttachmentsToFilesBatch.apxc
Created November 7, 2019 08:13
Convert Salesforce Attachments into Salesforce Files
public class SK_ConvertAttachmentsToFilesBatch implements Database.Batchable<sObject>,Database.Stateful{
public string qString;
string errorDetailsString = 'Parent Record Id ,Attachment Id, Error deatils \n';
string successRecordString='Parent Record Id ,Attachment Id,ContentVersionId \n';
long jobStartTime= 0;
long jobEndTime= 0;
public SK_ConvertAttachmentsToFilesBatch(string qStr){
qString = qStr;
}