<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Salesforce - Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</title>
	<atom:link href="https://vinodsebastian.com/tag/salesforce/feed/" rel="self" type="application/rss+xml" />
	<link>https://vinodsebastian.com</link>
	<description>Hi I&#039;m a Web Architect by Profession and an Artist by nature. I love empowering People, aligning to Processes and delivering Projects.</description>
	<lastBuildDate>Sun, 07 Dec 2025 22:51:01 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://vinodsebastian.com/wp-content/uploads/2020/12/cropped-Me-32x32.jpg</url>
	<title>Salesforce - Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</title>
	<link>https://vinodsebastian.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Types of Salesforce Flows</title>
		<link>https://vinodsebastian.com/types-of-salesforce-flows/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=types-of-salesforce-flows</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Sun, 07 Dec 2025 22:43:21 +0000</pubDate>
				<category><![CDATA[Salesforce Declarative Tools]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=4127</guid>

					<description><![CDATA[<p>Types of Salesforce Flows 1. Screen Flow Purpose: Screen Flows are interactive flows that guide users through a process with screens, forms, and inputs. Use Case: They are commonly used for onboarding new employees, guided case resolution, or step-by-step data entry. Key Feature: Screen Flows require user interaction and can be embedded in Lightning pages [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/types-of-salesforce-flows/">Types of Salesforce Flows</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Types of Salesforce Flows</h1>
<h2>1. Screen Flow</h2>
<p><strong>Purpose:</strong> Screen Flows are interactive flows that guide users through a process with screens, forms, and inputs.</p>
<p><strong>Use Case:</strong> They are commonly used for onboarding new employees, guided case resolution, or step-by-step data entry.</p>
<p><strong>Key Feature:</strong> Screen Flows require user interaction and can be embedded in Lightning pages or launched from buttons.</p>
<h2>2. Record-Triggered Flow</h2>
<p><strong>Purpose:</strong> Record-Triggered Flows run automatically when a record is created, updated, or deleted.</p>
<p><strong>Use Case:</strong> They are ideal for automating field updates, sending notifications, or creating related records.</p>
<p><strong>Key Feature:</strong> This type of flow can replace many use cases of Workflow Rules and Process Builder.</p>
<h2>3. Scheduled-Triggered Flow</h2>
<p><strong>Purpose:</strong> Scheduled-Triggered Flows execute at a specific time or on a recurring schedule.</p>
<p><strong>Use Case:</strong> They are commonly used for sending reminders, scheduled updates, or batch processing records.</p>
<p><strong>Key Feature:</strong> Scheduled-Triggered Flows are ideal for time-based automation without the need for Apex code.</p>
<h2>4. Autolaunched Flow (No Trigger)</h2>
<p><strong>Purpose:</strong> Autolaunched Flows run in the background without user interaction and are often invoked by Apex, REST API, or another automation process.</p>
<p><strong>Use Case:</strong> They are suitable for handling complex calculations, mass updates, or backend processes.</p>
<p><strong>Key Feature:</strong> Autolaunched Flows can be called from other flows or processes for creating modular automation solutions.</p>
<h2>5. Platform Event Flow</h2>
<p><strong>Purpose:</strong> Platform Event Flows respond to platform events published in Salesforce or external systems.</p>
<p><strong>Use Case:</strong> They are commonly used for real-time integrations, IoT event handling, or syncing data with external systems.</p>
<p><strong>Key Feature:</strong> Platform Event Flows enable event-driven architecture within Salesforce, allowing seamless integration with external systems.</p>
</article><p>The post <a href="https://vinodsebastian.com/types-of-salesforce-flows/">Types of Salesforce Flows</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Batch Apex</title>
		<link>https://vinodsebastian.com/salesforce-batch-apex/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-batch-apex</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 16:14:10 +0000</pubDate>
				<category><![CDATA[Salesforce Apex]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce Asynchronous Apex]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2645</guid>

					<description><![CDATA[<p>Salesforce Batch Apex Introduction Salesforce Batch Apex is a framework that allows you to process large amounts of data asynchronously in batches to avoid hitting governor limits. Syntax The syntax for Batch Apex in Salesforce involves creating a class that implements the Database.Batchable interface. This interface requires you to define three methods: start: This method [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-batch-apex/">Salesforce Batch Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<article>
<h1>Salesforce Batch Apex</h1>
<h2>Introduction</h2>
<p>Salesforce Batch Apex is a framework that allows you to process large amounts of data asynchronously in batches to avoid hitting governor limits.</p>
<h2>Syntax</h2>
<p>The syntax for Batch Apex in Salesforce involves creating a class that implements the Database.Batchable interface. This interface requires you to define three methods:</p>
<ul>
<li><strong>start:</strong> This method is used to start the batch job and return the records to be processed.</li>
<li><strong>execute:</strong> This method processes the records in the batch.</li>
<li><strong>finish:</strong> This method is called after all batches are processed.</li>
</ul>
<h2>Salesforce Batch Apex Example</h2>
<p>Here is an example of a Batch Apex class that updates the Account records:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
    global class AccountUpdateBatch implements Database.Batchable {
        global Database.QueryLocator start(Database.BatchableContext bc) {
            return Database.getQueryLocator(&#039;SELECT Id, Name FROM Account&#039;);
        }
        
        global void execute(Database.BatchableContext bc, List scope) {
            for(Account acc : scope) {
                acc.Name = &#039;Updated Name&#039;;
            }
            update scope;
        }
        
        global void finish(Database.BatchableContext bc) {
            // Any post-processing logic goes here
        }
    }</pre>
<h2>Test Classes for Above Example</h2>
<p>When writing test classes for Batch Apex, make sure to cover all scenarios including batch execution, governor limits, and error handling. Here is an example test class for the AccountUpdateBatch:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
    @isTest
    private class AccountUpdateBatchTest {
        @isTest
        static void testBatch() {
            // Test batch execution
            Test.startTest();
            AccountUpdateBatch batch = new AccountUpdateBatch();
            Database.executeBatch(batch);
            Test.stopTest();
            
            // Add assertions here
        }
    }</pre>
<h2>Purpose</h2>
<p>The primary purpose of using Batch Apex in Salesforce is to handle large data volumes efficiently without hitting governor limits. It allows you to process records in smaller chunks, improving performance and avoiding timeouts.</p>
<h2>Considerations</h2>
<p>When implementing Batch Apex, consider the following points:</p>
<ul>
<li>Batch size: Determine the optimal batch size based on the volume of data being processed.</li>
<li>Governor limits: Be mindful of Salesforce governor limits and ensure your batch job stays within these limits.</li>
<li>Error handling: Implement proper error handling mechanisms to address any issues that may arise during batch processing.</li>
<li>Testing: Thoroughly test your Batch Apex classes and ensure they cover all possible scenarios.</li>
</ul>
</article>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-batch-apex/">Salesforce Batch Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Queueable Apex</title>
		<link>https://vinodsebastian.com/salesforce-queueable-apex/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-queueable-apex</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 16:14:03 +0000</pubDate>
				<category><![CDATA[Salesforce Apex]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce Asynchronous Apex]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2642</guid>

					<description><![CDATA[<p>Salesforce Queueable Apex Introduction Salesforce Queueable Apex is an asynchronous Apex feature that allows you to offload non-urgent, long-running tasks to be processed in the background, reducing the load on the primary transaction thread. It is often used for tasks such as complex calculations, callouts to external systems, and other operations that do not need [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-queueable-apex/">Salesforce Queueable Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Queueable Apex</h1>
<h2>Introduction</h2>
<p>Salesforce Queueable Apex is an asynchronous Apex feature that allows you to offload non-urgent, long-running tasks to be processed in the background, reducing the load on the primary transaction thread. It is often used for tasks such as complex calculations, callouts to external systems, and other operations that do not need to be executed immediately.</p>
<h2>Syntax</h2>
<p>The syntax for defining a Queueable Apex class in Salesforce is as follows:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
public class MyQueueableClass implements Queueable {
    public void execute(QueueableContext context) {
        // Implementation logic goes here
    }
}</pre>
<h2>Salesforce Queueable Apex Example</h2>
<p>Let&#8217;s consider an example where we want to update a list of records asynchronously using Queueable Apex:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
public class UpdateRecordsQueueable implements Queueable {
    List&lt;Account&gt; accountsToUpdate;

    public UpdateRecordsQueueable(List&lt;Account&gt; accounts) {
        this.accountsToUpdate = accounts;
    }

    public void execute(QueueableContext context) {
        update accountsToUpdate;
    }
}</pre>
<h2>Test Classes for Above Example</h2>
<p>When writing test classes for Queueable Apex, you need to ensure that the Queueable job is executed synchronously so that you can assert the results. Here&#8217;s an example test class for the above Queueable Apex example:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
@isTest
private class UpdateRecordsQueueableTest {
    @isTest
    static void testQueueableApex() {
        List&lt;Account&gt; testAccounts = new List&lt;Account&gt;();
        // Add test account records

        Test.startTest();
        UpdateRecordsQueueable queueable = new UpdateRecordsQueueable(testAccounts);
        System.enqueueJob(queueable);
        Test.stopTest();

        // Assert results
    }
}</pre>
<h2>Purpose</h2>
<p>The main purpose of using Salesforce Queueable Apex is to ensure that long-running or non-urgent tasks do not impact the performance of the primary transaction. By offloading these tasks to be processed asynchronously, you can improve the overall efficiency and responsiveness of your Salesforce application.</p>
<h2>Considerations</h2>
<ul>
<li>Queueable Apex jobs can be submitted from triggers, batch classes, Visualforce pages, or Lightning controllers.</li>
<li>Queueable jobs can be monitored and managed through the Apex Jobs page in Salesforce setup.</li>
<li>There are limits on the number of Queueable Apex jobs that can be queued and executed in a given transaction.</li>
<li>Queueable Apex jobs are resilient to governor limits and are ideal for handling complex processing requirements.</li>
</ul>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-queueable-apex/">Salesforce Queueable Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Scheduled Apex</title>
		<link>https://vinodsebastian.com/salesforce-scheduled-apex/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-scheduled-apex</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 16:13:58 +0000</pubDate>
				<category><![CDATA[Salesforce Apex]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce Asynchronous Apex]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2643</guid>

					<description><![CDATA[<p>Salesforce Scheduled Apex Introduction Salesforce Scheduled Apex allows developers to schedule Apex classes to run at specific times. This feature is useful for automating repetitive tasks or processes in Salesforce. Syntax To schedule an Apex class in Salesforce, you need to use the following syntax: @isTest public class MyScheduledApexClass implements Schedulable { public void execute(SchedulableContext [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-scheduled-apex/">Salesforce Scheduled Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Scheduled Apex</h1>
<h2>Introduction</h2>
<p>Salesforce Scheduled Apex allows developers to schedule Apex classes to run at specific times. This feature is useful for automating repetitive tasks or processes in Salesforce.</p>
<h2>Syntax</h2>
<p>To schedule an Apex class in Salesforce, you need to use the following syntax:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
@isTest
public class MyScheduledApexClass implements Schedulable {
    public void execute(SchedulableContext sc) {
        // Add your apex logic here
    }
}</pre>
<h2>Salesforce Scheduled Apex Example</h2>
<p>Here is an example of how to schedule an Apex class in Salesforce:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
global class MyScheduledApexClass implements Schedulable {
    global void execute(SchedulableContext sc) {
        // Add your apex logic here
    }
}

MyScheduledApexClass myScheduledClass = new MyScheduledApexClass();
String sch = &#039;0 0 0 15 3 ?&#039;; // Executes at midnight on March 15th
System.schedule(&#039;My Scheduled Job&#039;, sch, myScheduledClass);</pre>
<h2>Test Classes for Above Example</h2>
<p>It is important to write test classes to ensure that your scheduled Apex class behaves as expected. Here is an example of a test class for the above scheduled Apex example:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
@isTest
private class MyScheduledApexClassTest {
    @isTest static void testSchedule() {
        Test.startTest();
        String jobId = System.schedule(&#039;My Scheduled Job&#039;,
                                       &#039;0 0 0 15 3 ?&#039;,
                                       new MyScheduledApexClass());
        Test.stopTest();
        // Add assertions here
    }
}</pre>
<h2>Purpose</h2>
<p>The purpose of Salesforce Scheduled Apex is to automate processes and tasks that need to run at specific times without manual intervention. This can help improve efficiency and reduce manual errors in Salesforce orgs.</p>
<h2>Considerations</h2>
<p>When using Salesforce Scheduled Apex, there are some important considerations to keep in mind:</p>
<ul>
<li>Ensure that your scheduled jobs do not exceed the daily limits set by Salesforce.</li>
<li>Handle any exceptions or errors in your scheduled Apex classes to prevent job failures.</li>
<li>Avoid long-running processes in scheduled Apex to prevent hitting governor limits.</li>
<li>Test your scheduled Apex classes thoroughly to ensure they work as expected.</li>
</ul>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-scheduled-apex/">Salesforce Scheduled Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Platform Events</title>
		<link>https://vinodsebastian.com/salesforce-platform-events/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-platform-events</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 16:13:51 +0000</pubDate>
				<category><![CDATA[Salesforce Apex]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce Asynchronous Apex]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2644</guid>

					<description><![CDATA[<p>Salesforce Platform Events Introduction Salesforce Platform Events provide a way to deliver secure, scalable, and customizable event notifications within the Salesforce ecosystem. They enable real-time integration between Salesforce and external systems, allowing developers to build event-driven architectures and streamline data processing. Syntax Platform events in Salesforce are defined using an event schema. The schema includes [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-platform-events/">Salesforce Platform Events</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Platform Events</h1>
<h2>Introduction</h2>
<p>Salesforce Platform Events provide a way to deliver secure, scalable, and customizable event notifications within the Salesforce ecosystem. They enable real-time integration between Salesforce and external systems, allowing developers to build event-driven architectures and streamline data processing.</p>
<h2>Syntax</h2>
<p>Platform events in Salesforce are defined using an event schema. The schema includes fields that describe the event data structure. Here is an example of a basic platform event schema:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
        {
            &quot;apiVersion&quot;: &quot;1.0&quot;,
            &quot;sobjectType&quot;: &quot;Custom_Event__e&quot;,
            &quot;Payload_Field_1__c&quot;: &quot;String&quot;,
            &quot;Payload_Field_2__c&quot;: &quot;Integer&quot;
        }</pre>
<h2>Salesforce Platform Events Example</h2>
<p>Let&#8217;s create a simple platform event in Salesforce called <code>Custom_Event__e</code>. This event will have two custom fields: <code>Payload_Field_1__c</code> of type String and <code>Payload_Field_2__c</code> of type Integer.</p>
<p>Here is how you can publish a platform event in Apex:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
        Custom_Event__e customEvent = new Custom_Event__e(
            Payload_Field_1__c = &#039;Example&#039;,
            Payload_Field_2__c = 123
        );
        Database.SaveResult result = EventBus.publish(customEvent);</pre>
<h2>Test Classes for Above Example</h2>
<p>When working with platform events in Salesforce, it&#8217;s essential to write test classes to ensure the functionality is working as expected. Here is an example of a test class for the above platform event:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
        @isTest
        private class CustomEventTest {
            @isTest
            static void testPublishEvent() {
                Custom_Event__e customEvent = new Custom_Event__e(
                    Payload_Field_1__c = &#039;Test&#039;,
                    Payload_Field_2__c = 456
                );
                Test.startTest();
                Database.SaveResult result = EventBus.publish(customEvent);
                Test.stopTest();
                System.assertEquals(true, result.isSuccess());
            }
        }</pre>
<h2>Purpose</h2>
<p>The primary purpose of Salesforce Platform Events is to facilitate real-time communication and data synchronization between Salesforce and external systems. They allow developers to build event-driven architectures that react to changes in Salesforce data or trigger actions in external systems based on Salesforce events.</p>
<h2>Considerations</h2>
<p>When implementing Salesforce Platform Events, there are several considerations to keep in mind:</p>
<ul>
<li>Platform Event Limits: Salesforce imposes limits on the number of events that can be published and processed within a specific time frame. It&#8217;s important to understand these limits and design your solution accordingly.</li>
<li>Event Schema Design: Careful design of the event schema is crucial for ensuring compatibility and scalability of your platform events. Consider the data types, field names, and relationships within the schema.</li>
<li>Error Handling: Implement robust error handling mechanisms to deal with event publishing failures or processing errors. This includes handling exceptions, retry logic, and monitoring mechanisms.</li>
<li>Integration Patterns: Choose the appropriate integration patterns for consuming platform events based on the requirements of your system. Consider options like CometD, REST API, or Salesforce Connect for seamless integration.</li>
<li>Security Considerations: Ensure that platform event data is transmitted and stored securely to prevent unauthorized access or data breaches. Implement encryption, access controls, and monitoring tools to enhance security.</li>
</ul>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-platform-events/">Salesforce Platform Events</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Future Methods</title>
		<link>https://vinodsebastian.com/salesforce-future-methods/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-future-methods</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 16:13:45 +0000</pubDate>
				<category><![CDATA[Salesforce Apex]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce Asynchronous Apex]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2640</guid>

					<description><![CDATA[<p>Salesforce Future Methods Introduction Salesforce Future Methods allow you to run processes asynchronously in the Salesforce environment. This means that the processes are executed in the background at a later time, rather than immediately when they are called. This can be useful for handling tasks that are time-consuming and don&#8217;t need to be completed in [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-future-methods/">Salesforce Future Methods</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Future Methods</h1>
<h2>Introduction</h2>
<p>Salesforce Future Methods allow you to run processes asynchronously in the Salesforce environment. This means that the processes are executed in the background at a later time, rather than immediately when they are called. This can be useful for handling tasks that are time-consuming and don&#8217;t need to be completed in real-time.</p>
<h2>Syntax</h2>
<p>The syntax for defining a future method in Salesforce is as follows:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">        @future
        public static void methodName() {
            // Method implementation
        }</pre>
<h2>Salesforce Future Methods Example</h2>
<p>Here is an example of how you can use Salesforce Future Methods:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">        @future
        public static void updateRecords(List&lt;Id&gt; recordIds) {
            List&lt;Account&gt; accts = [SELECT Id, Name FROM Account WHERE Id IN :recordIds];
            for(Account a : accts) {
                a.Name = &#039;Updated Name&#039;;
            }
            update accts;
        }</pre>
<h2>Test Classes for Above Example</h2>
<p>When writing test classes for methods that use Salesforce Future Methods, you need to ensure that the future method is called in a separate manner. Here is an example of how you can test the above future method:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">        @isTest
        private class UpdateRecordsTest {
            @isTest
            static void testUpdateRecords() {
                List&lt;Account&gt; accounts = [SELECT Id FROM Account LIMIT 5];
                
                List&lt;Id&gt; acctIds = new List&lt;Id&gt;();
                for(Account a : accounts) {
                    acctIds.add(a.Id);
                }
                
                Test.startTest();
                YourClass.updateRecords(acctIds);
                Test.stopTest();
                
                List&lt;Account&gt; updatedAccts = [SELECT Name FROM Account WHERE Id IN :acctIds];
                
                for(Account a : updatedAccts) {
                    System.assertEquals(&#039;Updated Name&#039;, a.Name);
                }
            }
        }</pre>
<h2>Purpose</h2>
<p>The main purpose of using Salesforce Future Methods is to improve the performance of your Salesforce application by offloading long-running tasks to be processed asynchronously. This can help in avoiding governor limits and timeouts that may occur when processing large volumes of data or performing complex operations.</p>
<h2>Considerations</h2>
<ul>
<li>Future methods have some limitations, such as not being able to return a result or take sObjects as arguments.</li>
<li>There is a limit to the number of future method invocations that can be made per Apex transaction.</li>
<li>Future methods are queued and executed on a first-come, first-served basis, so there may be a delay in their execution.</li>
<li>It&#8217;s important to handle any potential exceptions that may occur in future methods to prevent them from failing silently.</li>
</ul>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-future-methods/">Salesforce Future Methods</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Asynchronous Apex</title>
		<link>https://vinodsebastian.com/salesforce-asynchronous-apex/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-asynchronous-apex</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 16:08:53 +0000</pubDate>
				<category><![CDATA[Salesforce Apex]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce Asynchronous Apex]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2635</guid>

					<description><![CDATA[<p>Salesforce Asynchronous Apex Introduction Salesforce Asynchronous Apex refers to the ability to execute code outside the normal execution flow of a program. This allows developers to perform time-consuming operations such as callouts to external services, long-running processes, and batch processing without impacting the performance of the main transaction. Different Types of Asynchronous Apex There are [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-asynchronous-apex/">Salesforce Asynchronous Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Asynchronous Apex</h1>
<h2>Introduction</h2>
<p>Salesforce Asynchronous Apex refers to the ability to execute code outside the normal execution flow of a program. This allows developers to perform time-consuming operations such as callouts to external services, long-running processes, and batch processing without impacting the performance of the main transaction.</p>
<h2>Different Types of Asynchronous Apex</h2>
<p>There are several ways to implement asynchronous processing in Salesforce using Apex. Some of the common types include:</p>
<ul>
<li>Future Methods</li>
<li>Batch Apex</li>
<li>Queueable Apex</li>
<li>Scheduled Apex</li>
<li>Platform Events</li>
</ul>
<h2>Benefits of Asynchronous Apex</h2>
<p>Asynchronous Apex offers several benefits to Salesforce developers and administrators, including:</p>
<ul>
<li>Improved Performance: By offloading time-consuming operations to asynchronous processes, the performance of the main transaction is enhanced.</li>
<li>Scalability: Asynchronous processing allows for the handling of large volumes of data and complex operations without hitting governor limits.</li>
<li>Integration: It enables seamless integration with external systems by making callouts without blocking the main transaction flow.</li>
<li>Batch Processing: Asynchronous Apex is ideal for processing large data sets in batches, optimizing resource utilization.</li>
</ul>
<h2>Challenges of Asynchronous Apex</h2>
<p>While Asynchronous Apex provides significant advantages, there are also challenges to consider, such as:</p>
<ul>
<li>Error Handling: Managing errors and exceptions in asynchronous processes can be more complex than in synchronous operations.</li>
<li>Data Consistency: Ensuring data consistency across asynchronous transactions and the main transaction requires careful design and implementation.</li>
<li>Debugging: Debugging asynchronous Apex code can be more challenging compared to synchronous code execution.</li>
<li>Governor Limits: Although asynchronous processing helps avoid hitting governor limits in the main transaction, there are separate limits for asynchronous operations that need to be considered.</li>
</ul>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-asynchronous-apex/">Salesforce Asynchronous Apex</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Lightning Web Components Communication</title>
		<link>https://vinodsebastian.com/salesforce-lightning-web-components-communication/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-lightning-web-components-communication</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 12:52:07 +0000</pubDate>
				<category><![CDATA[Salesforce LWC]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2624</guid>

					<description><![CDATA[<p>Salesforce Lightning Web Components Communication Parent-Child Component Communication In Salesforce Lightning Web Components (LWC), communication between parent and child components is essential for building interactive and dynamic user interfaces. This communication can be achieved using public properties marked with @api to pass data from parent to child components. Child Component (receives data via @api) Let&#8217;s [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-lightning-web-components-communication/">Salesforce Lightning Web Components Communication</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Lightning Web Components Communication</h1>
<h2>Parent-Child Component Communication</h2>
<p>In Salesforce Lightning Web Components (LWC), communication between parent and child components is essential for building interactive and dynamic user interfaces. This communication can be achieved using public properties marked with <code>@api</code> to pass data from parent to child components.</p>
<h3>Child Component (receives data via <code>@api</code>)</h3>
<p>Let&#8217;s start with the child component, which receives data from the parent component through a public property.</p>
<p><strong>childComponent.js</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">import { LightningElement, api } from &#039;lwc&#039;;

export default class ChildComponent extends LightningElement {
  @api message; // public property, reactive
}</pre>
<p><strong>childComponent.html</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;template&gt;
  &lt;lightning-card title=&quot;Child Component&quot;&gt;
    &lt;p class=&quot;slds-p-around_medium&quot;&gt;
      Message from Parent: {message}
    &lt;/p&gt;
  &lt;/lightning-card&gt;
&lt;/template&gt;</pre>
<h3>Parent Component (passes data to child)</h3>
<p>Now, let&#8217;s look at the parent component, which passes data to the child component using the public property defined in the child component.</p>
<p><strong>parentComponent.js</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">import { LightningElement } from &#039;lwc&#039;;

export default class ParentComponent extends LightningElement {
  parentMessage = &#039;Hello from Parent!&#039;;
}</pre>
<p><strong>parentComponent.html</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;template&gt;
  &lt;lightning-card title=&quot;Parent Component&quot;&gt;
    &lt;p class=&quot;slds-p-around_medium&quot;&gt;
      Parent says: {parentMessage}
    &lt;/p&gt;

    &lt;!-- Pass data to child via @api property --&gt;
    &lt;c-child-component message={parentMessage}&gt;&lt;/c-child-component&gt;
  &lt;/lightning-card&gt;
&lt;/template&gt;</pre>
<h2>Child-Parent Component Communication</h2>
<p>In Salesforce Lightning Web Components, child components can communicate with their parent components by dispatching custom events. This mechanism allows child components to notify parent components of changes or trigger specific actions in the parent component.</p>
<p>Let&#8217;s explore how child components can dispatch custom events to communicate with their parent components.</p>
<h3>Child Component (dispatches event)</h3>
<p><strong>childComponent.js</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">import { LightningElement } from &#039;lwc&#039;;

export default class ChildComponent extends LightningElement {
  handleClick() {
    // Create and dispatch a custom event
    const myEvent = new CustomEvent(&#039;sendmessage&#039;, {
      detail: { text: &#039;Hello Parent, from Child!&#039; }
    });
    this.dispatchEvent(myEvent);
  }
}</pre>
<p><strong>childComponent.html</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;template&gt;
  &lt;lightning-card title=&quot;Child Component&quot;&gt;
    &lt;lightning-button label=&quot;Send Message to Parent&quot; onclick={handleClick}&gt;&lt;/lightning-button&gt;
  &lt;/lightning-card&gt;
&lt;/template&gt;</pre>
<h3>Parent Component (listens for event)</h3>
<p>In the parent component, we need to listen for the custom event dispatched by the child component to receive and handle the data sent by the child.</p>
<p><strong>parentComponent.js</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">import { LightningElement } from &#039;lwc&#039;;

export default class ParentComponent extends LightningElement {
  parentMessage;

  handleMessage(event) {
    this.parentMessage = event.detail.text;
  }
}</pre>
<p><strong>parentComponent.html</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;template&gt;
  &lt;lightning-card title=&quot;Parent Component&quot;&gt;
    &lt;p class=&quot;slds-p-around_medium&quot;&gt;
      Message received from Child: {parentMessage}
    &lt;/p&gt;

    &lt;!-- Listen for custom event from child --&gt;
    &lt;c-child-component onsendmessage={handleMessage}&gt;&lt;/c-child-component&gt;
  &lt;/lightning-card&gt;
&lt;/template&gt;</pre>
<h2>Publish-Subscribe Pattern</h2>
<p>The publish-subscribe pattern, also known as Pub/Sub pattern, is a messaging pattern commonly used for communication between multiple components in an application. In Salesforce Lightning Web Components, the Pub/Sub pattern can be implemented using a central event bus or a third-party library to facilitate communication between components that are not directly related.</p>
<p>Let&#8217;s dive into how we can implement the Pub/Sub pattern in Salesforce Lightning Web Components.</p>
<h3>Create a PubSub Utility</h3>
<p>First, we need to create a utility for the Pub/Sub pattern that allows components to subscribe to and publish events.</p>
<p><strong>pubsub.js</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">const events = {};

const subscribe = (eventName, callback) =&gt; {
  if (!events[eventName]) {
    events[eventName] = [];
  }
  events[eventName].push(callback);
};

const unsubscribe = (eventName, callback) =&gt; {
  if (events[eventName]) {
    events[eventName] = events[eventName].filter(listener =&gt; listener !== callback);
  }
};

const publish = (eventName, payload) =&gt; {
  if (events[eventName]) {
    events[eventName].forEach(callback =&gt; {
      try {
        callback(payload);
      } catch (error) {
        console.error(error);
      }
    });
  }
};

export default {
  subscribe,
  unsubscribe,
  publish
};</pre>
<h3>Publisher Component (publishes event)</h3>
<p>Next, we have a publisher component that publishes an event using the Pub/Sub utility created earlier.</p>
<p><strong>publisherComponent.js</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">import { LightningElement } from &#039;lwc&#039;;
import pubsub from &#039;c/pubsub&#039;;

export default class PublisherComponent extends LightningElement {
  handleClick() {
    pubsub.publish(&#039;messageEvent&#039;, { text: &#039;Hello from Publisher!&#039; });
  }
}</pre>
<p><strong>publisherComponent.html</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;template&gt;
  &lt;lightning-card title=&quot;Publisher&quot;&gt;
    &lt;lightning-button label=&quot;Publish Message&quot; onclick={handleClick}&gt;&lt;/lightning-button&gt;
  &lt;/lightning-card&gt;
&lt;/template&gt;</pre>
<h3>Subscriber Component (consumes event)</h3>
<p>Lastly, we have a subscriber component that subscribes to the event published by the publisher component and consumes the data sent through the event.</p>
<p><strong>subscriberComponent.js</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">import { LightningElement } from &#039;lwc&#039;;
import pubsub from &#039;c/pubsub&#039;;

export default class SubscriberComponent extends LightningElement {
  message;

  connectedCallback() {
    pubsub.subscribe(&#039;messageEvent&#039;, this.handleMessage.bind(this));
  }

  handleMessage(payload) {
    this.message = payload.text;
  }
}</pre>
<p><strong>subscriberComponent.html</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;template&gt;
  &lt;lightning-card title=&quot;Subscriber&quot;&gt;
    &lt;p class=&quot;slds-p-around_medium&quot;&gt;Received: {message}&lt;/p&gt;
  &lt;/lightning-card&gt;
&lt;/template&gt;</pre>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-lightning-web-components-communication/">Salesforce Lightning Web Components Communication</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Lightning Web Components Concepts</title>
		<link>https://vinodsebastian.com/salesforce-lightning-web-components-concepts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-lightning-web-components-concepts</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 12:30:35 +0000</pubDate>
				<category><![CDATA[Salesforce LWC]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2616</guid>

					<description><![CDATA[<p>Salesforce Lightning Web Components Concepts @track The @track decorator in Salesforce Lightning Web Components (LWC) marks a property as reactive. When a tracked property changes, the component&#8217;s template rerenders to reflect those changes. This decorator ensures that if a property changes, the component can react to that change and update the UI accordingly. All properties [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-lightning-web-components-concepts/">Salesforce Lightning Web Components Concepts</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Lightning Web Components Concepts</h1>
<h2>@track</h2>
<p>The <code>@track</code> decorator in Salesforce Lightning Web Components (LWC) marks a property as reactive. When a tracked property changes, the component&#8217;s template rerenders to reflect those changes. This decorator ensures that if a property changes, the component can react to that change and update the UI accordingly. <strong>All properties are reactive by default</strong> (no need for <code>@track</code> unless you want deep reactivity in nested objects/arrays).</p>
<h2>@api</h2>
<p>The <code>@api</code> decorator exposes a public property in a Lightning web component, allowing the property to be set from a parent component. This decorator marks a property as public and defines its behavior.</p>
<h2>@wire</h2>
<p>The <code>@wire</code> decorator enables the wiring of a Lightning web component to a wire adapter. Wire adapters are functions that receive configuration parameters and return data. By using the <code>@wire</code> decorator, a component can receive data from Salesforce without needing to write imperative Apex or JavaScript code.</p>
<h2>Wire to Salesforce Data (UI API)</h2>
<p>Fetch account records using the <strong>Lightning Data Service wire adapter</strong>:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
import { LightningElement, wire } from &#039;lwc&#039;;
import { getRecord } from &#039;lightning/uiRecordApi&#039;;
import NAME_FIELD from &#039;@salesforce/schema/Account.Name&#039;;
import INDUSTRY_FIELD from &#039;@salesforce/schema/Account.Industry&#039;;

export default class WireDemoRecord extends LightningElement {
    recordId = &#039;001XXXXXXXXXXXXXXX&#039;; // Example Account Id
    accountName;
    accountIndustry;

    @wire(getRecord, { recordId: &#039;$recordId&#039;, fields: [NAME_FIELD, INDUSTRY_FIELD] })
    wiredAccount({ error, data }) {
        if (data) {
            this.accountName = data.fields.Name.value;
            this.accountIndustry = data.fields.Industry.value;
        } else if (error) {
            console.error(error);
        }
    }
}</pre>
<p><strong>Apex Controller</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
public with sharing class AccountController {
    @AuraEnabled(cacheable=true)
    public static List getAccounts() {
        return [SELECT Id, Name, Industry FROM Account LIMIT 5];
    }
}</pre>
<h2>Example 2: Wire to Apex Method</h2>
<p>Fetch data from a custom Apex class:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
public with sharing class AccountController {
    @AuraEnabled(cacheable=true)
    public static List getAccounts() {
        return [SELECT Id, Name, Industry FROM Account LIMIT 5];
    }
}</pre>
<p><strong>LWC JavaScript</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
import { LightningElement, wire } from &#039;lwc&#039;;
import getAccounts from &#039;@salesforce/apex/AccountController.getAccounts&#039;;

export default class WireDemoApex extends LightningElement {
    accounts;
    error;

    @wire(getAccounts)
    wiredAccounts({ error, data }) {
        if (data) {
            this.accounts = data;
            this.error = undefined;
        } else if (error) {
            this.error = error;
            this.accounts = undefined;
        }
    }
}</pre>
<p><strong>Imperative Call</strong></p>
<p>In Lightning Web Components (LWC), an <strong>imperative call</strong> means you’re calling an Apex method directly from JavaScript instead of using <code>@wire</code>. This gives you more control (e.g., calling on button click, handling parameters dynamically, or chaining logic).</p>
<p><strong>Apex Controller</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
public with sharing class AccountController {
    @AuraEnabled
    public static List getAccounts(Integer limitSize) {
        return [SELECT Id, Name, Industry FROM Account LIMIT :limitSize];
    }
}</pre>
<p><strong>LWC JavaScript (Imperative Call)</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
import { LightningElement, track } from &#039;lwc&#039;;
import getAccounts from &#039;@salesforce/apex/AccountController.getAccounts&#039;;

export default class ImperativeCallDemo extends LightningElement {
    @track accounts;
    @track error;

    handleLoadAccounts() {
        getAccounts({ limitSize: 5 }) // Imperative call with parameter
        .then(result =&gt; {
            this.accounts = result;
            this.error = undefined;
        })
        .catch(error =&gt; {
            this.error = error;
            this.accounts = undefined;
        });
    }
}</pre>
<h2>ConnectedCallback</h2>
<p>The <code>connectedCallback</code> lifecycle hook in Lightning web components is called when a component is inserted into the DOM. This hook is useful for performing tasks such as initializing state, setting up event listeners, or fetching data when the component is connected to the DOM.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">
import { LightningElement, track } from &#039;lwc&#039;;

export default class ConnectedCallbackDemo extends LightningElement {
    @track message = &#039;Loading...&#039;;

    connectedCallback() {
        // This runs when the component is added to the DOM
        console.log(&#039;Component connected to the DOM&#039;);

        // Example: simulate fetching data
        setTimeout(() =&gt; {
            this.message = &#039;Data loaded successfully!&#039;;
        }, 2000);
    }
}</pre>
<h2>CustomEvent</h2>
<p>A <code>CustomEvent</code> in Salesforce Lightning Web Components is a way for a child component to communicate with its parent component. Custom events allow child components to dispatch events with data that parent components can listen for and handle.</p>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-lightning-web-components-concepts/">Salesforce Lightning Web Components Concepts</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Salesforce Lightning Web Components Basic Project</title>
		<link>https://vinodsebastian.com/salesforce-lightning-web-components-basic-project/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=salesforce-lightning-web-components-basic-project</link>
		
		<dc:creator><![CDATA[vinodsebastian]]></dc:creator>
		<pubDate>Tue, 02 Dec 2025 12:27:40 +0000</pubDate>
				<category><![CDATA[Salesforce LWC]]></category>
		<category><![CDATA[IT Made Easy]]></category>
		<category><![CDATA[Salesforce]]></category>
		<guid isPermaLink="false">https://vinodsebastian.com/?page_id=2603</guid>

					<description><![CDATA[<p>Salesforce Lightning Web Components Basic Project Project Structure A basic Salesforce Lightning Web Components (LWC) project typically follows a specific structure: lwc-project/ force-app/ main/ default/ aura/ lwc/ helloWorld/ helloWorld.html helloWorld.js helloWorld.js-meta.xml helloWorld.css classes/ sfdx-project.json README.md HelloWorld Component Files helloWorld.html The HTML file for the helloWorld Lightning Web Component: &#60;template&#62; &#60;lightning-card title=&#34;Hello World&#34;&#62; &#60;p class=&#34;slds-p-around_medium&#34;&#62;Hello, {greeting}!&#60;/p&#62; [&#8230;]</p>
<p>The post <a href="https://vinodsebastian.com/salesforce-lightning-web-components-basic-project/">Salesforce Lightning Web Components Basic Project</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></description>
										<content:encoded><![CDATA[<article>
<h1>Salesforce Lightning Web Components Basic Project</h1>
<h2>Project Structure</h2>
<p>A basic Salesforce Lightning Web Components (LWC) project typically follows a specific structure:</p>
<ul>
<li>lwc-project/
<ul>
<li>force-app/
<ul>
<li>main/
<ul>
<li>default/
<ul>
<li>aura/ <!-- Aura components (if any) --></li>
<li>lwc/ <!-- Lightning Web Components -->
<ul>
<li>helloWorld/
<ul>
<li>helloWorld.html</li>
<li>helloWorld.js</li>
<li>helloWorld.js-meta.xml</li>
<li>helloWorld.css</li>
</ul>
</li>
</ul>
</li>
<li>classes/ <!-- Apex classes --></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>sfdx-project.json <!-- Project configuration --></li>
<li>README.md <!-- Documentation --></li>
</ul>
<h2>HelloWorld Component Files</h2>
<h3>helloWorld.html</h3>
<p>The HTML file for the helloWorld Lightning Web Component:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;template&gt;
    &lt;lightning-card title=&quot;Hello World&quot;&gt;
        &lt;p class=&quot;slds-p-around_medium&quot;&gt;Hello, {greeting}!&lt;/p&gt;
        &lt;lightning-input label=&quot;Enter your name&quot; onchange={handleChange}&gt;&lt;/lightning-input&gt;
    &lt;/lightning-card&gt;
&lt;/template&gt;</pre>
<h3>helloWorld.js</h3>
<p>The JavaScript file for the helloWorld Lightning Web Component:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">import { LightningElement } from &#039;lwc&#039;;

export default class HelloWorld extends LightningElement {
    greeting = &#039;World&#039;;

    handleChange(event) {
        this.greeting = event.target.value;
    }
}</pre>
<h3>helloWorld.js-meta.xml</h3>
<p>The XML metadata file for the helloWorld Lightning Web Component:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;LightningComponentBundle xmlns=&quot;http://soap.sforce.com/2006/04/metadata&quot;&gt;
    &lt;apiVersion&gt;60.0&lt;/apiVersion&gt;
    &lt;isExposed&gt;true&lt;/isExposed&gt;
    &lt;targets&gt;
        &lt;target&gt;lightning__AppPage&lt;/target&gt;
        &lt;target&gt;lightning__RecordPage&lt;/target&gt;
        &lt;target&gt;lightning__HomePage&lt;/target&gt;
    &lt;/targets&gt;
&lt;/LightningComponentBundle&gt;</pre>
</article><p>The post <a href="https://vinodsebastian.com/salesforce-lightning-web-components-basic-project/">Salesforce Lightning Web Components Basic Project</a> first appeared on <a href="https://vinodsebastian.com">Vinod Sebastian - B.Tech, M.Com, PGCBM, PGCPM, PGDBIO</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
