Questions tagged [bestpractice]

Referring to the use of recognized community and platform best practices. May relate to all areas of lifecycle and all development and administration activities.

Filter by
Sorted by
Tagged with
5
votes
2answers
116 views

lwc dataservice architecture best practices

While developing lwc components and lightning apps I always run into this design dilemma: When I have two children components that uses the same set of source data but in different forms what is the ...
14
votes
4answers
1k views

Lightning Framework vs Standard Client Side Frameworks (i.e. React) // Which to chose when, and why?

Disclaimer Keep it objective! This one can get a little opinionated, please try to keep your answer specific to the facts a developer should be considering when choosing between two viable options ...
4
votes
1answer
40 views

Whitelisting Salesforce IP In External Systems

I want to integrate with an external system. They need to whitelist my IP for permission to use their services. I looked at this post: https://help.salesforce.com/articleView?id=000321501&type=1&...
3
votes
0answers
30 views

Is usage of console.log/console.error in production code considered as bad/good practice?

Well I've seen a lot of code examples provided by Salesforce. In one blog post - Error Handling Best Practices for Lightning and Apex - they are using console.error to report errors on ui. They also ...
2
votes
2answers
63 views

with and without sharing with innerclass

I'm working on a project that needs to change a lot of data that the user shouldn't see in the backoffice. So I'm wondering if I should put my entire class "without sharing". For now I'm creating a "...
5
votes
1answer
366 views

Javascript Remoting vs Consuming Web Service

I am accessing a service side function through a javascript button on a visualforce page and I wanted to know; what is a better solution - Javascript Remoting or the AJAX toolkit (consuming a web ...
1
vote
1answer
44 views

Best practice for a query inside a batch and Mapping

I'm working on a batch which getting a params from another batch in the finish method. The Params are : A Map - Map<Sobject,Set<String>> A Set - Set<String> I lost the values of ...
9
votes
3answers
6k views

What controls the 'severity' of ApexPages.addMessages(exception)?

I'm trying to crystallize out some 'best practises' for Visualforce Page exception handling. I think, at a minimum, a page should look something like this: <apex:page controller="PageController"&...
7
votes
1answer
2k views

SOQL: prevent SOQL injection - best practices

I have a query string that is as follows(no bulkification required)... String qryString = 'SELECT Id FROM Contact WHERE (IsDeleted = false and Name like \'%' + searchText+ '%\')'; searchText is a ...
0
votes
1answer
611 views

How to mark a Salesforce Contract record as canceled or terminated?

I understand once a contract has been Activated, the status cannot be changed. However, there are times when a contract is terminated (ends early) and there needs to be a way to indicate this. Are ...
3
votes
2answers
77 views

Batch - Sending data from one batch to another

I having a little issue to understand the concept of passing params via batches. I have two batches which I would like to send data between them. Batch A creates a Map<sObject,Set<String>&...
2
votes
1answer
29 views

Get component value directly

This is a general question aimed at finding best approach to do some task. Now I interested in how should I get values from inputs in lightning components. Let's say I have a component: Example.cmp &...
3
votes
1answer
53 views

How should I schedule multiple job of the same class?

I need to have a job that runs every 15 minutes. I checked out the documentation for Apex Scheduler and I came up with two solutions: 1-st: ScheduledJob job = new ScheduledJob(); System.schedule('...
0
votes
1answer
89 views

Best approach for handling preventing Parent trigger when updated from multiple child objects

I need some suggestions in improving the 'prevent trigger' logic. I have parent 'Lead' object and couple of child objects. I have Trigger Helpers on each of these objects. When these child object ...
1
vote
0answers
28 views

Bulk Job Status - Failed vs Not Processed?

What are the use cases for setting a Bulk (version 1) job to a status of Failed vs Not Processed? Salesforce documentation gives the same description for both The batch failed to process the full ...
8
votes
1answer
154 views

Most efficient way to switch on SObjectType?

It is a bit odd we can't evaluate a switch statement directly on SObjectType, so I am trying to determine conclusively which workaround is the most efficient. Just to verify, I tried to compile this ...
2
votes
1answer
62 views

Enterprise Patterns for Consuming non-trivial REST services in Apex [closed]

Communication from Apex with huge REST Apis feels cumbersome to me as there is so much repetitive work involved with building Apex Objects that function as callout request params or responses. This ...
0
votes
0answers
33 views

best practice to find the duplicate contact using apex trigger (not using duplicate rules)

I am using the below handler class in contact trigger to find the duplicate contacts, it checks only the lastName now if I want to check more than 2 or 3 filed then the only option I have is to create ...
1
vote
2answers
93 views

Using String Object or Field Names instead of literals. Using object prefixes

Is there any benefit of getting sobject type using Schema.getGlobalDescribe().get('Lead'); instead of Lead.sObjectType; Also what is the benefit of using 3 char prefixes of known IDs like Id ...
1
vote
0answers
30 views

Validate inputs on server side

BACKGROUND I am working on a lightning component which is a simple form that takes from, to emails and a message body as user input and passes this data to an apex controller. Apex Controller ...
1
vote
1answer
76 views

Restricting Access to All Subscribers

For compliance reasons, we need to restrict our user's access to All Subscribers but still allow them the ability to look up activity and engagement information for specific contacts. We use the multi ...
31
votes
0answers
690 views

Best practices for designing and maintaining Global classes?

We've always been conservative when it comes to exposing Globals for use by extension packages or subscriber extensions, and perhaps too conservative. We're considering being more proactive wth our ...
3
votes
3answers
82 views

Array notation for List<List<Sobject>>

In an attempt to be as byte pinching as possible(personal goal), I have a question some time on Google has not been able to answer. I did look at some Java documentation to try and resolve the issue ...
2
votes
1answer
46 views

Validating Apex method parameters

Is it a good practice to validate method parameters in Apex methods? In C# and Java you generally validate against nulls and throw argument exceptions to prevent usage errors. I don't seem to see that ...
4
votes
6answers
15k views

Is it advisable to call Batch from trigger

I was thinking of calling a batch class from my trigger. Is is advisable to do that? As batch will have asynchronous execution with respect to trigger.
2
votes
2answers
341 views

Hosting images in SFMC - is it a good idea?

In my company, we store all the images we use in our emails in a separate FTP server; an FTP we know that can handle the load. But since SFMC has the functionality of hosting images itself; that ...
0
votes
0answers
27 views

Dynamic client side Search for Accounts in VF page

I need to make a search input - which every character that printed on the keyboard will show the closest result. for example : If I printed "uni" all accounts that they names starting with "uni" ...
63
votes
5answers
17k views

What is a good set of naming conventions to use when developing on the Force.com platform?

I've looked in the Apex developer's guide and a saw the Naming Conventions section which has basically only has this: We recommend following Java standards for naming, that is, classes start with a ...
3
votes
1answer
72 views

Combining similar code with different objects

I have 4 very similar code blocks in a trigger that deal with synchronizing record type changes from Opportunity to its children. The only difference between them is that they do work on different ...
2
votes
1answer
83 views

Best way to save a API integration password

I am building an integration between Salesforce and other application with REST API calls. The Salesforce will be consuming data from that other app on in interval. I am writing my code and it is ...
3
votes
2answers
258 views

What is the best practice to store custom configuration for a managed package application?

We are working on an application in managed package, and we need to store app configuration. Generally, we want to allow users to turn on/off some features in our app. For example, on the settings ...
0
votes
0answers
25 views

CTI and Record Lock

I have an issue where records are being locked while my reps are using them. The basic steps are like this: Navigate to Opportunity Contact information is pulled via an Action Layout Editor Rep ...
29
votes
2answers
12k views

Post Sandbox Refresh Steps

What steps should be taken after a sandbox refresh to avoid filling up the sandbox storage, sending emails, or outbound messages? I'm looking for steps to take such as disable scheduled Apex jobs, ...
0
votes
2answers
65 views

Email Marketing: sending ID in email

This is a 'best practice' question: Should we be sending a Salesforce GUID in an email? We have a button in an email to ask them for consent (to a thing). That button links to a VF Page or a ...
3
votes
1answer
61 views

False matches in a SQL query activity

I am trying to automate updates to the All Subscribers list whenever the preferred e-mail in Salesforce changes. I created a SQL query activity that compares our Salesforce data extension to the e-...
2
votes
1answer
58 views

Workflow or Process Builder?

I'm creating a scenario where upon a Queue change: The resolution (text area) is updated with "XYZ text" The Staff member (ticket owner) is changed to "XYZ user" Those are technically 2 field ...
0
votes
0answers
39 views

Version control for Salesforce CPQ

Does anyone know what the most technically feasible approach is currently for managing Salesforce CPQ configuration in a version control system (e.g., Git)? We currently have most of our metadata ...
4
votes
4answers
703 views

Is it okay to create Test records on the Production?

Okay, we have a major release coming next week. So, I would like to know if this a good/best practice: After the successful deployment using Change sets, some other manual deploying steps(sObject's ...
1
vote
2answers
183 views

A/B Testing in Marketing Cloud - what does the “Remainder” get sent?

When doing A/B testing in Marketing Cloud, the options here are to send a certain percentage to Email A, a certain percentage to Email B, then the "Remainder". My question is "what exactly does the ...
1
vote
1answer
223 views

What is clearReference(“v.attribute”) used for?

Did anyone ever use cmp.clearReference("v.attribute")? The documentation says it should be called before resetting attributes with component.set(), what sounds kind of useless to me. There are no use ...
0
votes
0answers
21 views

How to handle Group emails as contact records

Good afternoon SFDC Exchange, Sorry to bother you, and ask such basic questions but would love to know your solutions on how to handle group “emails” as contact records. For example I have my own ...
4
votes
3answers
2k views

Lightning Component Best Practices

Inspired from this question General trigger bulkification - best practices I wanted to ask what are the best practices when it comes to lightning components development?
1
vote
2answers
88 views

How to properly decouple database layer from service layer in Apex?

I came to Salesforce from the world of Java and have been working with Apex and Salesforce for a year now. I am constantly trying to implement Java (and OOP in general) programming practices in my ...
22
votes
2answers
7k views

Which one is better : Loop with SOQL or create a List then Loop?

Some of code I read in trigger is like this for(account a: [select id from account where id in: mapAccount.keySet()]) { //code } some are like List<Account> listAccount = [...
8
votes
2answers
595 views

@testSetup vs DataFactory?

When testing, how/when will @TestSetup annotation be preferable to a "DataFactory"? I understand how both works, but I don't see any case where I'd rather use the @testSetup annotation. I use this ...
2
votes
2answers
151 views

Test a schedulable class with callout by directly invoking `execute`

I have a Schedulable class. My execute method has a future callout in it, and running it by using System.schedule doesn't run that callout: Test.startTest(); MySchedulableClass msc = new ...
1
vote
1answer
94 views

Reply to two addresses?

I've been asked to research solutions to a scenario where when a subscriber replies to an email it goes to the sender an additional 3rd party, without the subscriber having to "reply-all". My plan to ...
0
votes
1answer
77 views

Mass Update Records - AWS S3

Currently, I utilize an AWS endpoint that returns a small JSON response based on my request. I am considering updating all of my records (300,000+) daily. My AWS counterparts can generate a JSON ...
0
votes
0answers
29 views

Data Designer: Add Links to Email Data Object?

I have a co-worker that wants to link a data extension with an email address field in it to our system-provided Email Data attribute group in Data Designer. I don't think that linking Keys will behave ...
0
votes
2answers
518 views

Best Practice to schedule a Batch

I am looking to find a best practice/framework to implement a schedulable batch. I don't know if create an Apex Class that implements Schedulable and Batchable interfaces is the correct way or create ...