Monday, September 26, 2022

SOQL to view all permissions enabled for a Permisssionset

SELECT Id, Name, Label, LicenseId, ProfileId, IsOwnedByProfile, IsCustom, PermissionsEmailSingle, PermissionsEmailMass, PermissionsEditTask, PermissionsEditEvent, PermissionsExportReport, PermissionsImportPersonal, PermissionsDataExport, PermissionsManageUsers, PermissionsEditPublicFilters, PermissionsEditPublicTemplates, PermissionsModifyAllData, PermissionsManageCases, PermissionsMassInlineEdit, PermissionsEditKnowledge, PermissionsManageKnowledge, PermissionsManageSolutions, PermissionsCustomizeApplication, PermissionsEditReadonlyFields, PermissionsRunReports, PermissionsViewSetup, PermissionsTransferAnyEntity, PermissionsNewReportBuilder, PermissionsActivateContract, PermissionsActivateOrder, PermissionsImportLeads, PermissionsManageLeads, PermissionsTransferAnyLead, PermissionsViewAllData, PermissionsEditPublicDocuments, PermissionsViewEncryptedData, PermissionsEditBrandTemplates, PermissionsEditHtmlTemplates, PermissionsChatterInternalUser, PermissionsManageEncryptionKeys, PermissionsDeleteActivatedContract, PermissionsChatterInviteExternalUsers, PermissionsSendSitRequests, PermissionsOverrideForecasts, PermissionsViewAllForecasts, PermissionsApiUserOnly, PermissionsManageRemoteAccess, PermissionsCanUseNewDashboardBuilder, PermissionsManageCategories, PermissionsConvertLeads, PermissionsPasswordNeverExpires, PermissionsUseTeamReassignWizards, PermissionsEditActivatedOrders, PermissionsInstallPackaging, PermissionsPublishPackaging, PermissionsManagePartners, PermissionsChatterOwnGroups, PermissionsEditOppLineItemUnitPrice, PermissionsCreatePackaging, PermissionsBulkApiHardDelete, PermissionsInboundMigrationToolsUser, PermissionsSolutionImport, PermissionsManageCallCenters, PermissionsManageSynonyms, PermissionsOutboundMigrationToolsUser, PermissionsDelegatedPortalUserAdmin, PermissionsViewContent, PermissionsManageEmailClientConfig, PermissionsEnableNotifications, PermissionsManageDataIntegrations, PermissionsViewDataCategories, PermissionsManageDataCategories, PermissionsAuthorApex, PermissionsManageMobile, PermissionsApiEnabled, PermissionsManageCustomReportTypes, PermissionsManagePartnerNetConn, PermissionsEditCaseComments, PermissionsTransferAnyCase, PermissionsContentAdministrator, PermissionsCreateWorkspaces, PermissionsManageContentPermissions, PermissionsManageContentProperties, PermissionsManageContentTypes, PermissionsScheduleJob, PermissionsManageExchangeConfig, PermissionsManageAnalyticSnapshots, PermissionsScheduleReports, PermissionsManageBusinessHourHolidays, PermissionsManageDynamicDashboards, PermissionsManageInteraction, PermissionsViewMyTeamsDashboards, PermissionsModerateChatter, PermissionsResetPasswords, PermissionsFlowUFLRequired, PermissionsCanInsertFeedSystemFields, PermissionsActivitiesAccess, PermissionsManageKnowledgeImportExport, PermissionsEmailTemplateManagement, PermissionsEmailAdministration, PermissionsManageChatterMessages, PermissionsForceTwoFactor, PermissionsViewEventLogFiles, PermissionsManageNetworks,  PermissionsManageAuthProviders, PermissionsRunFlow, PermissionsViewGlobalHeader, PermissionsManageQuotas, PermissionsCreateCustomizeDashboards, PermissionsCreateDashboardFolders, PermissionsViewPublicDashboards, PermissionsManageDashbdsInPubFolders, PermissionsCreateCustomizeReports, PermissionsCreateReportFolders, PermissionsViewPublicReports, PermissionsManageReportsInPubFolders, PermissionsEditMyDashboards, PermissionsEditMyReports, PermissionsViewAllUsers, PermissionsAllowUniversalSearch, PermissionsConnectOrgToEnvironmentHub, PermissionsCreateCustomizeFilters, PermissionsContentHubUser, PermissionsModerateNetworkFeeds, PermissionsModerateNetworkFiles, PermissionsGovernNetworks, PermissionsSalesConsole, PermissionsTwoFactorApi, PermissionsDeleteTopics, PermissionsEditTopics, PermissionsCreateTopics, PermissionsAssignTopics, PermissionsIdentityEnabled, PermissionsIdentityConnect, PermissionsAllowViewKnowledge, PermissionsContentWorkspaces,  PermissionsManageSearchPromotionRules, PermissionsCustomMobileAppsAccess, PermissionsViewHelpLink, PermissionsManageProfilesPermissionsets, PermissionsAssignPermissionSets, PermissionsManageRoles, PermissionsManageIpAddresses, PermissionsManageSharing, PermissionsManageInternalUsers, PermissionsManagePasswordPolicies, PermissionsManageLoginAccessPolicies, PermissionsManageCustomPermissions, PermissionsCanVerifyComment, PermissionsManageUnlistedGroups, PermissionsStdAutomaticActivityCapture, PermissionsInsightsAppDashboardEditor, PermissionsManageTwoFactor, PermissionsInsightsAppUser, PermissionsInsightsAppAdmin, PermissionsInsightsAppEltEditor, PermissionsInsightsAppUploadUser, PermissionsInsightsCreateApplication, PermissionsDebugApex, PermissionsLightningExperienceUser, PermissionsConfigCustomRecs, PermissionsSubmitMacrosAllowed, PermissionsBulkMacrosAllowed, PermissionsShareInternalArticles, PermissionsModerateNetworkMessages, PermissionsManageSessionPermissionSets, PermissionsManageTemplatedApp, PermissionsUseTemplatedApp, PermissionsSendAnnouncementEmails, PermissionsChatterEditOwnPost, PermissionsChatterEditOwnRecordPost, PermissionsCreateAuditFields, PermissionsUpdateWithInactiveOwner, PermissionsWaveTrendReports, PermissionsWaveTabularDownload, PermissionsManageSandboxes, PermissionsAutomaticActivityCapture, PermissionsImportCustomObjects, PermissionsDelegatedTwoFactor, PermissionsChatterComposeUiCodesnippet, PermissionsSelectFilesFromSalesforce, PermissionsModerateNetworkUsers, PermissionsMergeTopics, PermissionsSubscribeToLightningReports, PermissionsManagePvtRptsAndDashbds, PermissionsAllowLightningLogin, PermissionsCampaignInfluence2, PermissionsViewDataAssessment, PermissionsRemoveDirectMessageMembers, PermissionsCanApproveFeedPost, PermissionsAddDirectMessageMembers, PermissionsAllowViewEditConvertedLeads,  PermissionsShowCompanyNameAsUserBadge, PermissionsAccessCMC,  PermissionsViewHealthCheck, PermissionsManageHealthCheck, PermissionsPackaging2, PermissionsManageCertificates, PermissionsCreateReportInLightning, PermissionsPreventClassicExperience, PermissionsHideReadByList, PermissionsUseSmartDataDiscovery, PermissionsGetSmartDataDiscovery, PermissionsCreateUpdateSDDDataset, PermissionsCreateUpdateSDDStory, PermissionsManageSmartDataDiscovery, PermissionsShareSmartDataDiscoveryStory, PermissionsManageSmartDataDiscoveryModel, PermissionsListEmailSend, PermissionsFeedPinning, PermissionsChangeDashboardColors, PermissionsManageRecommendationStrategies, PermissionsManagePropositions, PermissionsCloseConversations, PermissionsSubscribeReportRolesGrps, PermissionsSubscribeDashboardRolesGrps, PermissionsUseWebLink, PermissionsHasUnlimitedNBAExecutions, PermissionsViewOnlyEmbeddedAppUser, PermissionsAdoptionAnalyticsUser, PermissionsViewAllActivities, PermissionsSubscribeReportToOtherUsers, PermissionsLightningConsoleAllowedForUser, PermissionsSubscribeReportsRunAsUser, PermissionsSubscribeToLightningDashboards, PermissionsSubscribeDashboardToOtherUsers, PermissionsCreateLtngTempInPub, PermissionsTransactionalEmailSend, PermissionsViewPrivateStaticResources, PermissionsViewCustomerSentiment, PermissionsCreateLtngTempFolder, PermissionsApexRestServices, PermissionsEnableCommunityAppLauncher, PermissionsGiveRecognitionBadge, PermissionsCanRunAnalysis,  PermissionsLtngPromoReserved01UserPerm, PermissionsManageSubscriptions, PermissionsWaveManagePrivateAssetsUser, PermissionsCanEditDataPrepRecipe, PermissionsAddAnalyticsRemoteConnections, PermissionsManageSurveys, PermissionsRecordVisibilityAPI, PermissionsViewRoles,  PermissionsSmartDataDiscoveryForCommunity, PermissionsCanManageMaps, PermissionsStoryOnDSWithPredicate, PermissionsModifyDataClassification, PermissionsPrivacyDataAccess, PermissionsQueryAllFiles, PermissionsModifyMetadata,  PermissionsSandboxTestingInCommunityApp, PermissionsCanEditPrompts, PermissionsViewUserPII, Description, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, NamespacePrefix, HasActivationRequired, Type FROM PermissionSet

Tuesday, August 30, 2022

How to login to Salesforce using Session id

Replace host url and session id in url

 https://<endpoint host>/secur/frontdoor.jsp?sid=<session id>

Thursday, February 4, 2021

How to Run Schedule Apex only once or every few mins

Using Scheduled Apex in UI, you cannot set a scheduled class to run only once. It's always recurring. So, you'll need to use System.scheduled via the system log to implement a workaround.

Example code for running a job 10 minutes from now only once


String hour = String.valueOf(Datetime.now().hour());
String min = String.valueOf(Datetime.now().minute() + 10); 
String ss = String.valueOf(Datetime.now().second());

//parse to cron expression
String nextFireTime = ss + ' ' + min + ' ' + hour + ' * * ?';

MyScheduledJob s = new MyScheduledJob(); 
System.schedule('Job Started At ' + String.valueOf(Datetime.now()), nextFireTime, s);


Abort the job by adding a finish method to your class that implements the Schedulable Interface. This stops the job from running more than once.

Example code to abort the job


global void finish(Database.BatchableContext BC)
{
// Get the ID of the AsyncApexJob representing this batch job from Database.BatchableContext.
// Query the AsyncApexJob object to retrieve the current job's information.
AsyncApexJob a = [SELECT Id, Status, NumberOfErrors, JobItemsProcessed, TotalJobItems, CreatedBy.Email ..... FROM AsyncApexJob WHERE Id = 
:BC.getJobId()];

//then use the active job id and abort it
system.abortJob(a.id);
}


Example code for running a job every 2 mins


Integer frequency = 2;
Integer totalIterations = 60/frequency - 1;
for(Integer i = 0; i <= totalIterations; i++){
Integer count = i*frequency;
String minuteString = (count < 10) ? '0' + count : '' + count;
System.schedule('Scheduled Job ' + i, '0 ' + minuteString + ' * * * ?', new MyScheduledJob());
}

Sunday, December 20, 2020

How to start learning Salesforce

Salesforce.com is a company that leverages cloud computing to design Customer Relationship Management (CRM) software for organizations. This CRM software can be used by salespeople to track sales, support people to track the resolution of queries and cases, and the entire workforce of a company to collaborate with each other.

The best of SFDC is its vast documentation and publicly available resources to learn easily.

My goal is to help you learn Salesforce as quickly as possible!

Disclaimer: all the resources provided in this blog post are publicly available I am just guiding you to those resources.

Modules in the salesforce

1.     Admin
2.    Development
3.    Lightning Aura Components
4.    Lightning Web Components
5.    Integration

I would recommend start learning in this flow

Admin >> Development >> Lightning Aura Components (or) Lightning Web Components  >> Integration

Trailhead is the fun way to learn Salesforce, checkout about Trailhead here: 

https://trailhead.salesforce.com/content/learn/modules/trailhead_basics/get-started-with-trailhead

Click on each link to see details 

1.    Admin:

Trailhead:

https://trailhead.salesforce.com/content/learn/trails/force_com_admin_beginner

https://trailhead.salesforce.com/en/content/learn/trails/force_com_admin_intermediate

https://trailhead.salesforce.com/en/content/learn/trails/force_com_admin_advanced

Guide:

https://help.salesforce.com/articleView?id=basics_welcome_salesforce_users.htm&type=5

https://help.salesforce.com/articleView?id=overview.htm&type=5#quicktour_tips

 Blogs:

http://www.apexhours.com/introduction-to-salesforce/

Video Tutorial:

https://www.youtube.com/playlist?list=PLaGX-30v1lh1BaUKgXa05gqrOP0vUg_6i

https://www.youtube.com/c/Salesforce/playlists

https://www.youtube.com/watch?v=bOzlOkPU0cI&list=PLdYQMTciVWO9xjvh1J7SXjhzpnzWvLih4

https://www.youtube.com/watch?v=nUARw_Yci3Y&list=PLy9U5GDpYZVPfD-kJg_hceKPo6JZi5BpT

 

2.    Development:

Trailhead:

https://trailhead.salesforce.com/content/learn/trails/force_com_dev_beginner

https://trailhead.salesforce.com/en/content/learn/trails/force_com_dev_intermediate

https://trailhead.salesforce.com/en/content/learn/trails/force_com_dev_advanced

Guide:

https://resources.docs.salesforce.com/228/latest/en-us/sfdc/pdf/salesforce_apex_language_reference.pdf

https://resources.docs.salesforce.com/228/latest/en-us/sfdc/pdf/salesforce_pages_developers_guide.pdf

Blogs:

https://www.sfdc-lightning.com/p/triggers.html

https://www.sfdc-lightning.com/p/apexvisualforce.html

Video Tutorial:

https://www.youtube.com/playlist?list=PLaGX-30v1lh1e8roeCUumUEel5ukdPubj

https://www.sfdc99.com/video-tutorials/

https://www.sfdc99.com/apex-academy/

https://www.youtube.com/c/SalesforceDevelopers/playlists

https://www.youtube.com/watch?v=iPlfPKBXhAw&list=PLdYQMTciVWO8D1lxAzLdEwmt1k8f8ic0t

 

3.    Lightning Aura Components:

Trailhead:

https://trailhead.salesforce.com/en/content/learn/trails/lex_dev

Guide:

https://resources.docs.salesforce.com/228/latest/en-us/sfdc/pdf/lightning.pdf

Blogs:

https://www.sfdc-lightning.com/p/salesforce-lightning.html

Video tutorial:

https://www.youtube.com/watch?v=FrnmcH0Lrkw&list=PLQXsHnNZgiNe35JsuHAb-PsDmD4kwEIsg

https://www.youtube.com/watch?v=CiqCfsTrlLA&list=PLV3ll8m0ZlppQBGJUItatmL8HU2UtmByd

 

4.    Lightning Web Components:

Trailhead:

https://trailhead.salesforce.com/en/content/learn/trails/build-lightning-web-components

Guide:

https://developer.salesforce.com/docs/component-library/documentation/en/lwc

Blogs:

https://www.sfdc-lightning.com/p/lightning-web-components.html

Video Tutorial:

https://www.youtube.com/playlist?list=PLaGX-30v1lh2R0DmV94hqMtPSpiIT7xmO

https://www.youtube.com/watch?v=dcRM7Mq541Y&list=PLV3ll8m0Zlpog5kPVuyYc1d3CzbsNqPxK

https://www.youtube.com/watch?v=7hhdKS-yChs&list=PLgIMQe2PKPSJ0hK7DInqhLlw7QK5Pt6fD

https://www.youtube.com/watch?v=6p2Ia4XWnNw&list=PL-JzyFWuCbkKcFSOCRlCUk79YbET5QvZC

 

5.    Integration:

Trailhead:

https://trailhead.salesforce.com/en/content/learn/modules/apex_integration_services

Guide:

https://resources.docs.salesforce.com/228/latest/en-us/sfdc/pdf/api_rest.pdf

https://resources.docs.salesforce.com/228/latest/en-us/sfdc/pdf/apex_api.pdf

Blogs:

https://www.sfdc-lightning.com/p/integration-topics.html

Video Tutorial:

https://www.youtube.com/playlist?list=PLaGX-30v1lh2Y-TZgeQWSnGQWgWHP9mPH

https://www.youtube.com/watch?v=Jcmw5WqjNwU&list=PLV3ll8m0ZlpqVOJCTFJu8uNJ-f2OppInR

https://www.youtube.com/watch?v=H7k3zlPGlkA&list=PLuL63vr-9xHzI83rrXaXHDcsfVqzrp0iO

 

 Data Loader:

https://resources.docs.salesforce.com/228/latest/en-us/sfdc/pdf/salesforce_data_loader.pdf

https://www.youtube.com/watch?v=fnPXaq5A-2c

 

ANT Migration Tool:

https://resources.docs.salesforce.com/sfdc/pdf/salesforce_migration_guide.pdf

https://www.youtube.com/watch?v=i_FwNDegf_o

 

Marketing Cloud:

https://www.youtube.com/playlist?list=PLaGX-30v1lh34rpIP_g1Daabqq7_xvcmp

 

Community Cloud:

https://www.youtube.com/playlist?list=PLaGX-30v1lh0yjm8UbB-4smaykJzCsH2y

 

Useful Blog URLs

https://jenwlee.com/

https://automationchampion.com/

http://vinaychaturvedi.com/

https://www.simplysfdc.com/

https://www.asagarwal.com/

http://www.miraforce.net/

https://salesforceweek.ly/

https://salesforcediaries.com/

https://www.salesforceblogger.com/

https://www.sfdc-lightning.com/

https://www.apexhours.com/blog/

https://www.sfdc99.com/

https://www.jitendrazaa.com/blog/

https://blog.enree.co/

https://sfdcfanboy.com/

https://hellosnl.blogspot.com/

https://www.brcline.com/blog/category/programming/salesforce

http://www.sfdcpanda.com/

http://santanuboral.blogspot.com/?m=0

https://www.auraforce.ca/

https://sfdcmonkey.com/

http://theblogreaders.com/

https://www.sfdcpanther.com/

https://www.sfdcstuff.com/?m=0

https://nitinindora.wordpress.com/

https://www.srinivas4sfdc.com/?m=0

https://bobbuzzard.blogspot.com


Friday, June 21, 2019

Custom permissions in Salesforce

Custom permissions let you define access checks that can be assigned to users via permission sets or profiles, similar to how you assign user permissions and other access settings. For example, you can define access checks in Apex that make a button on a Visualforce page available only if a user has the appropriate custom permission.

1. Create a Custom Permission.


2. Assign it to your profile.


3. Use the sample code.

Visualforce Page:

<apex:page controller="Sample">
    Checking Custom Permission in Visualforce page - {!$Permission.Create_Account}
    <br/><br/>
    Checking Custom Permission from Apex Class - {!accessBool }
</apex:page>

Apex Controller:

public with sharing class Sample { 
    
    public Boolean accessBool {get;set;}
    
    public Sample() {
        accessBool = checkUserHasCustomPermissionAccess('Create_Account', UserInfo.getUserId());
    }
    
    public static Boolean checkUserHasCustomPermissionAccess(String permissionName, Id userId) {
        Set < Id > permissionSetIds = new Set < Id >();
        List < User > userList = new List < User >();
        for ( SetupEntityAccess access : [ SELECT ParentId FROM SetupEntityAccess 
                                           WHERE SetupEntityId IN ( SELECT Id 
                                                                    FROM CustomPermission 
                                                                    WHERE DeveloperName = :permissionName )
        ]) 
            permissionSetIds.add(access.ParentId);
        userList = [ SELECT Username FROM User WHERE Id IN (
                SELECT AssigneeId FROM PermissionSetAssignment
                WHERE PermissionSetId IN :permissionSetIds AND AssigneeId =: userId ) ];
        return userList.isEmpty() ? false : true;
    }
    
}

Output:


Thursday, June 21, 2018

Closing window in Visualforce

Using JavaScript:

<apex:page showChat="false" wizard="true" sidebar="false" >
<!-- Javascript -->
<script type = "text/javascript">
    function winClose()
    {
        self.close();
    }
</script>
<!-- End of Javascript-->

<apex:commandButton onComplete = "winClose();">

</apex:page>

Using Apex PageReference :

public PageReference method(){
        if(variable== null || variable == ''){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'Please enter variable'));
            return null;

        }else{
return new PageReference('javascript:window.close()');
}

Wednesday, June 13, 2018

Difference between deactivate and freeze user in salesforce

In some cases, you can’t immediately deactivate a user such as when a user is selected in a custom hierarchy field or a user that’s assigned as the sole recipient of a workflow email alert. To prevent users from logging into your organization while you perform the steps to deactivate them you can freeze users.
  • Freezing user doesn’t make their user licenses available for use in your organization.
  • Deactivating a user will be available user licenses available for use in your organization.