Introduction to HTML Web Components

Introduction to HTML Web Components

Modern browsers have become so advanced and powerful that there is almost no or minimal need of Javascript libraries these days. There was time when web developers rely heavily on frameworks like JQuery, Angular or React. Same for Salesforce, when it launched Aura framework in 2014.

In last 5 years, web browsers have evolved so much that we need to revisit and check ourselves that do we really need libraries or frameworks for every small functionalities ? Considering rich feature set browsers, Salesforce already revisited aura framework and decided that it’s time to make it more lightweight and use native browser capabilities as much as possible. Welcome Lightning Web Components !!! Before we jump into ocean of Lightning Web Components, it’s important to understand what is supported by browsers natively ? Out of many features supported by modern browsers, one of most important one is Web Component.

Below are 4 pillars of Web Components

  1. Templates
  2. Custom Element
  3. Shadow DOM
  4. Imports

Get Current User Id in Salesforce

Quick Code Snippets of how to get Current logged in user ids in Salesforce

Apex

System.debug('Current User Id - '+UserInfo.getUserId());

Visualforce

<apex:page>
  <h1>Visualforce Page</h1> 
   <p>UserId: {!$User.Id}</p>
   <p>User Email: {!$User.Email}</p>
</apex:page>

Aura Component

let currentUser = $A.get("$SObjectType.CurrentUser.Id");
Console.log(currentUser);

Lightning Web Components (LWC)

Using wire

import USER_ID from '@salesforce/user/Id';
import NAME_FIELD from '@salesforce/schema/User.Name';
import EMAIL_FIELD from '@salesforce/schema/User.Email';

Formula Fields

$User.Id

Use pipe delimited file to upsert record in Mulesoft 3

Upsert record in Salesforce using Mulesoft

Processing Comma Separated file is out of box but what if text file is delimited using comma.

In this post, we will read Pipe delimited file and upsert record in Salesforce. Instead of upserting record in Salesforce, you can do anything else you want to.

This is how final job will look like :

Send Salesforce Survey Without Code

Send Salesforce Survey using Flow and Process Builder

Salesforce Survey is available in Health Cloud & Financial Service Cloud otherwise its paid. Community Cloud is also required to use Survey.  If you need to practice Survey, create a 30 day trial org from this URL (mentioned in this trailhead module). One Survey can be created and used in Enterprise and Unlimited edition, so if you need only one survey then its free. In my case, I had to send same question to every customer on Case close , so it was free.

Prerequisite to use Salesforce Survey

Step 1 – Enable & create Community. Once community setup is done, we would need to activate it. Community can be created by any template. It can be blank as well, if it’s being created only for survey.

Step 2 – Enable Salesforce survey by navigating to Admin setup. You would need to select Community, which would be used by Survey to compute public unique link.

Salesforce - Enable Survey
Salesforce – Enable Survey

Build a Salesforce DX Plugin in 15 Min

Build a Salesforce DX Plugin in 15 Min

Before deploying metadata in Sandbox of production, have you felt that how great it would be to generate configuration workbook ? Or compare sandboxes for difference ? Or check if fields are used on any page layouts or not ? Dear reader, you are in need of custom Salesforce DX plugin.

You heard it right, Salesforce DX allows custom plugin development. So now question is, how do you connect to Salesforce Org ? Do you need to know about OAuth or Single Sign On (SSO) ?

Complete source code is available on my Github repository here.

Read Query Parameter in Lightning Component

Launch Lightning Component using formula

Before Summer 18, to read parameter in Lightning Component, we had to wrap Lightning Component in Lightning Application. After Summer 18, it has changed for good.

In this blog post we would create a formula field to launch Lightning Component (yes, you read it right). And then we would read URL parameter in Lightning Component using pageReference provided by interface lightning:isUrlAddressable.

Create a formula field on Account to launch Lightning Component and read its parameter.

Frequently Used Git Commands

Set Git to store credentials

Below command can be executed from anywhere in your system.

git config --global credential.helper wincred

Turn off Warning _LF will be replaced by CRLF_

git config core.autocrlf true
or
git config --global core.autocrlf true

In Unix systems the end of a line is represented with a line feed (LF). In windows a line is represented with a carriage return (CR) and a line feed (LF) thus (CRLF). when you get code from git that was uploaded from a unix system they will only have an LF.

Published
Categorized as Tech Tips Tagged

Summary of Attachment, Document, Content Library and Files in Salesforce

Summary :

  • Files is new way to store file in Salesforce
  • Content from external file service like Google, Box appears in Files
  • Files from Content Library displayed in file
  • CRM Content Library cannot be created in Lightning experience yet
  • Attachment and Files are two different objects, so two different related lists.
  • Attachment can be viewed in Lightning in Notes & Attachment related list
  • Attachments cannot be created in Lightning Experience, we should not use Attachments in future
  • To migrate existing Attachment to Files, use this AppExchange from Salesforce Labs
  • Document tab is not available in Lightning Experience
  • Documents should be replaced by File
  • Files yet does not support being used as attachment in Email Templates. If you are using Document in Email template, then keep it in Document
  • CRM Content delivery not available in Lightning but File can be shared with external user using Link
  • External user can only view or download file but cannot edit or update
  • File supports versioning
  • File can be related with multiple records.
  • File supports granular level sharing. It would be shared with anyone who has access to parent record. If you want to share with broad audience, it can be shared on chatter.