Posts

Salesforce EntityParticle

Image
Entity Particle  Represents each element of a field that can be presented in a user interface. Contrast EntityParticle with FieldDefinition, which represents each element of a field defined in the Metadata API. EntityParticle has parity with describe, which returns API-accessible fields only for an entity. EntityParticle Let's say there is a requirement to fetch all picklist fields along their label, API Name. SOQL query using Entity Particle  SELECT EntityParticle.DeveloperName, Label, Value, IsActive, EntityParticle.IsDependentPicklist, EntityParticle.FieldDefinition.ControllingFieldDefinition.DeveloperName FROM  PicklistValueInfo  WHERE EntityParticle.EntityDefinition.QualifiedApiName = 'Case'  AND EntityParticle.IsDependentPicklist = TRUE  ORDER BY EntityParticleId, Label Results Retrieve all the fields of the 'Phone' data type

Salesforce EntityLimit

Image
EntityLimit EntityLimit is used to retrieve Limits displayed in the Setup UI for an object. EntityLimit Considerations SOQL Limitations SOSL Limitations Here's an example to retrieve the limits of an Object

@TestVisible Annotation in Apex

In Salesforce, the @TestVisible annotation makes private or protected variables and methods visible in test classes. This annotation allows you to access and manipulate these elements for testing purposes without changing their access modifiers, thereby maintaining encapsulation and security in production code while enabling thorough testing. Here is an example  public class MyClass {     // Private member variable     @TestVisible private Integer myPrivateVariable = 09; } @isTest  private class TestVisibleClassTest {     @isTest static void testExample() {         // Access private variable annotated with TestVisible         Integer i = MyClass. myPrivateVariable;         System.assertEquals(09, i);     }  } Here are the key points about the @TestVisible annotation: Visibility : @TestVisible makes private or protected variables, properties, and methods visible in test...

@testSetup annotation in Apex

In Salesforce, the @ testSetup annotation is used in Apex tests to create test data that can be reused across multiple test methods within the same test class. This annotation is especially useful for making common test data required for various test methods, reducing redundancy, and improving test efficiency. Here's an example of how you can use the @ testSetup method in Salesforce: @isTest private class MyTestClass {          // Define test data setup method     @testSetup     static void setupTestData() {         // Create test records         Account acc = new Account(Name='Test Account');         insert acc;                  Contact con = new Contact(LastName='Test Contact', AccountId=acc.Id);         insert con;                  // You can create more test records as ...

Dynamically Calling JavaScript Functions

Dynamically invoking JavaScript functions enhances code flexibility and efficiency. By dynamically calling JavaScript functions, we can create more flexible and efficient applications that adapt to various scenarios. Dynamic Functionality : Dynamically calling JavaScript functions allows your code to adapt to different scenarios and conditions at runtime. This flexibility lets you execute functions based on user interactions, system events, or data-driven logic. Code Reusability : By dynamically invoking JavaScript functions, you can reuse standard functions across multiple components or modules within your application. This promotes code modularity, reduces duplication, and leads to cleaner and more maintainable code. Conditional Logic: Dynamically invoking functions allows you to apply conditional logic to determine which functions to execute based on specific conditions or criteria. This enables you to build more intelligent and adaptive applications that respond dynamically to cha...

Trigger Logic with Apex Switch

Switch Statements Apex provides a switch statement that tests whether an expression matches one of several values and branches accordingly. Switch Statements Rethink Trigger Logic with Apex Switch Trigger Context Variables The context variable Trigger.operationType is used to get the current System.TriggerOperation enum value. The following are the values of the System.TriggerOperation enum: AFTER_DELETE AFTER_INSERT AFTER_UNDELETE AFTER_UPDATE BEFORE_DELETE BEFORE_INSERT BEFORE_UPDATE trigger customerTrigger on Account (before insert, after insert) { switch on Trigger.operationType { when BEFORE_INSERT { System.debug('Before Insert'); } when AFTER_INSERT { System.debug('After Insert'); } when else { System.debug('Something went wrong'); } } }

Managed vs Unmanaged in Salesforce

Image
Managed Packages in Salesforce are a way for developers to package and distribute their custom applications and components to other Salesforce organizations. These packages encapsulate custom objects, fields, Apex code, Visualforce pages, Lightning components, and other metadata components developed on the Salesforce platform. Unmanaged packages in Salesforce are collections of metadata components that are bundled together for distribution and deployment. Unlike managed packages, which provide IP protection and versioning capabilities, unmanaged packages are primarily used for sharing customizations within a single Salesforce organization or for simple deployments.  Here is a comparison between Managed and Unmanaged packages. Managed Packages: Packaging and Distribution: Managed packages are packaged and distributed by Salesforce developers or ISVs (Independent Software Vendors) through the Salesforce AppExchange or other distribution channels. Developers can package custom object...