Skip to main content

Latest Post

Custom Metadata Types vs Custom Settings vs Custom Labels

  Custom Metadata Types vs Custom Settings vs Custom Labels 💬 In plain words:  Three lookalikes: Custom Metadata = configuration that DEPLOYS with your code (best for app settings). Custom Settings = org/user-specific values, changeable at runtime (hierarchy type is great for bypass switches). Custom Labels = translatable text for the UI. 📌 Example:  API endpoint URLs per environment → Custom Metadata (deploys with code, sandbox vs prod values). A 'Bypass_Automation__c' checkbox an admin flips during data load → hierarchy Custom Setting. The word 'Submit' translated to Hindi → Custom Label. 🎬 Real-Life Example: The Fee Table Trapped Inside Code  Skyline charges a different delivery fee per city. Apex needs those rates on every booking. The Old/Bad Way:  if (city == 'Delhi') fee = 50. Else if (city == 'Mumbai') fee = 65. … Every rate change is a code change, a test run, and a deployment. Why this is bad:  Business data is trappe...

Efficient LWC Auto Fill: Streamlining Data Entry with Smart Code

 To implement autofill functionality in a Lightning Web Component (LWC), you can use the 'lightning-input' component and handle the 'change' event to perform the autofill logic. Here's an example of how you can achieve this:

First Example :


<template>

  <lightning-input label="Search" onchange={handleSearchChange} value={searchTerm} autocomplete="off"></lightning-input>

</template>


JavaScript file (autofillExample.js):


import { LightningElement, track } from 'lwc';


export default class AutofillExample extends LightningElement {

  @track searchTerm = '';


  handleSearchChange(event) {

    this.searchTerm = event.target.value;


    // Perform autofill logic here

    // Example: Fetch suggestions based on the entered search term

    // and update the search input value with the first suggestion

    // You can use an API call or a predefined list of suggestions


    // Simulating API call to fetch suggestions

    const suggestions = ['apple', 'banana', 'cherry', 'grape', 'orange'];


    if (this.searchTerm && this.searchTerm.length > 1) {

      const firstSuggestion = suggestions.find(suggestion => suggestion.toLowerCase().startsWith(this.searchTerm.toLowerCase()));

      if (firstSuggestion) {

        // Set the value of the search input with the first suggestion

        this.searchTerm = firstSuggestion;

      }

    }

  }

}


This example demonstrates autofill functionality by fetching suggestions based on the entered search term and updating the input value with the first suggestion. You can modify the handleSearchChange method to implement your own autofill logic based on your specific requirements.


Remember to import and include the 'AutofillExample' component in your parent component or app to use it.


Second Example:


<template>

  <lightning-input label="Search" onchange={handleSearch}></lightning-input>

  <lightning-input-field field-name="Name" value={record.Name} disabled></lightning-input-field>

  <lightning-input-field field-name="Email" value={record.Email} disabled></lightning-input-field>

</template>


JavaScript (autofillExample.js):


import { LightningElement, wire } from 'lwc';

import { getRecord } from 'lightning/uiRecordApi';


const FIELDS = ['Contact.Name', 'Contact.Email'];


export default class AutofillExample extends LightningElement {

  recordId;

  record = {};


  @wire(getRecord, { recordId: '$recordId', fields: FIELDS })

  wiredRecord({ error, data }) {

    if (data) {

      this.record = {

        Name: data.fields.Name.value,

        Email: data.fields.Email.value

      };

    } else if (error) {

      // Handle error

      console.error(error);

    }

  }


  handleSearch(event) {

    this.recordId = event.target.value;

  }

}


This code demonstrates autofill functionality in LWC using Lightning Input and Lightning Input Field components. When a user enters a search value in the lightning-input field, the handleSearch method is triggered. It sets the recordId property with the entered value. The '@wire' decorator is used to call the 'getRecord' wire adapter from the Lightning Data Service, which retrieves the record information based on the 'recordI' property and the specified fields (Contact.Name and Contact.Email). The retrieved data is then assigned to the record property, which is bound to the value attributes of the lightning-input-field components to autofill the Name and Email fields.


Note: In this example, the component assumes a recordId is provided and handles the retrieval of the record data using Lightning Data Service. You may need to adapt the code to your specific use case, such as changing the field names or adjusting the logic for retrieving the data based on your application's requirements.

Popular Posts

Salesforce LWC Code for Multi-Select Lookup

Introduction: In Salesforce Lightning Web Components (LWC), implementing a multi-select lookup field can enhance the user experience and provide greater flexibility for selecting multiple related records. In this blog post, we will walk through the process of creating a multi-select lookup field using LWC. We will cover the required code snippets and provide step-by-step instructions to help you implement this functionality in your Salesforce org.