Posts

Understanding the Salesforce Approval Process: A Step-by-Step Guide

Image
The Approval Process in Salesforce is an automated sequence of steps where a record is reviewed and approved (or rejected) by designated users based on predefined conditions. This ensures compliance, proper authorization, and consistency in business operations. Key Objects of an Approval Process 1. ProcessNode (Approval Step Definition) (04b) Defines the approval steps in a process. SELECT Id, Name, DeveloperName, ProcessDefinitionId, Description FROM ProcessNode 2. ProcessInstance (Approval Request) (04g) Created when a record is submitted for approval. Stores the current status and progress of the approval process for that record. Acts like a snapshot, tracking where the approval stands at any given moment. SELECT Id, ProcessDefinitionId, TargetObjectId, Status, CompletedDate, LastActorId FROM ProcessInstance 3. ProcessInstanceHistory  Keeps a record of all actions (audit trails) taken on a specific approval process instance. Logs approvals, rejections, reassignments, and recall...

Encrypt and Decrypt

NODEJS const express = require('express') const app = express() // Middleware to parse JSON request body app.use(express.json()); app.post('/', (req, res) => {   // Includes crypto module   const crypto = require('crypto');   // Defining algorithm   const algorithm = 'aes-192-cbc';   // Defining password   const password = 'bncaskdbvasbvlaslslasfhj';   // Defining key   const key = crypto.scryptSync(password, 'GfG', 24);   console.log(key);   // Defininf iv   const iv = Buffer.alloc(16, 0);    console.log(iv);   // Creating decipher   const decipher =        crypto.createDecipheriv(algorithm, key, iv);   // Declaring decrypted   let decrypted = '';   // Reading data   decipher.on('readable', () => {     let chunk;     while (null !== (chunk = decipher.read())) {       decrypted += chunk.toString('utf8');     }   }); ...

Headless action button using LWC (No Modals)

Image
  A headless quick action executes custom code in a Lightning web component. Unlike a screen action, a headless action doesn’t open a modal window. Expose invoke() as a public method for headless quick actions; the invoke() method executes every time the quick action is triggered. Return type of invoke() is void . Using async will make invoke()  execute asynchronously.  // js file import { LightningElement, api } from 'lwc'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; export default class DispatchEventHeadlessAction extends LightningElement {     @api recordId;      isExecuting = false;     @api async invoke() {           if (this.isExecuting) {           // This code uses a boolean flag to block a double execution            return;          }           this.isExecuting ...

Keyboard Shortcuts for salesforce developer console

Image
Ctrl + E Open the Execute Anonymous Window. Ctrl + O Open files. Ctrl + Shift + a Open Lightning Resources Ctrl + Shift + h Search in files Ctrl + ALT + / Close all tabs Ctrl + , Navigate backward through the view history Ctrl + . Navigate forward through the view history

Communication between unrelated components using LMS in salesforce

Image
Communication between unrelated components in salesforce using  Lightning Message Service (LMS) LMS is a publish and subscribe service that facilitates communication between Lightning web components, Aura components, and Visualforce pages.
 Step1: Create a Lightning Message Channel Create a folder named “messageChannels” under force-app/main/default Create a file under the "messageChannels" folder with the name <channel>.messageChannel-meta.xml Example: <?xml version="1.0" encoding="UTF-8" ?> <LightningMessageChannel xmlns="http://soap.sforce.com/2006/04/metadata">     <masterLabel>CountUpdated</masterLabel>     <isExposed>true</isExposed>     <description>Message Channel to pass Count updates</description>      <lightningMessageFields>         <fieldName>operator</fieldName>         <description>This is the operator type...

Path to Salesforce Technical Architect

Image
 Follow following path to achieve Salesforce Technical Architect All the Best!

Visual Force Email Templates being sent as blank by Automated Process User

This might happen if an automated process user updates a record and then uses the same record to send an email using the Visual Force email template. Example of email template: Hi, XYZ has submitted {!relatedTo.Name} for your re-approval. The following title of a known issues article in Salesforce is: VF Workflow Emails are Blank when the records are Last Modified by "Automated Process" user Solution: To replace/override the automated process user by any user who has required permissions. step 1: Login to workbench step 2: Use below POST endpoint /services/data/v58.0/tooling/sobjects/PlatformEventSubscriberConfig step 3: JSON body should appear below: {     "BatchSize" : "50",     "DeveloperName" : "",     "MasterLabel" : "",     "PlatformEventConsumerId" : "01qXXXXXX..", // APEX Trigger's ID     "UserId" : "005XXXX..." // User's ID } step 4: Hit Execute, that will ove...