How to set Email Signature in Salesforce?

1. Go to My Settings.


2. Set the Email Signature in My Email Settings.


Cheers!!!

How to find who last modified the report in Salesforce?

1. Create a report with Reports report type.


2. Check Last Modified By and Last Modified to find who last modified the report and when.


Cheers!!!

Salesforce Support for Non System Administrators or Regular Users

1. Go to Login Access Policies.


2. Enable Available to Users.


Cheers!!!

Files Component in Community Builder in Salesforce

In Community Builder, drag the new Files List component onto a page. This gives your community members a one-stop view of all their files while letting them do useful things like uploading and previewing.

Use the Property Editor to customize the Files List display. Choose the number of records to display on the page at once. Try out different settings to get the look you want.


Cheers!!!

When manual sharing will be removed in Salesforce?

1. It is possible to manually share a record to a user or a group using Apex or the SOAP API. If the owner of the record changes, the sharing is automatically deleted. Salesforce currently removes all manual sharing from a record when the owner changes. If you are manipulating sharing via apex code or simply sharing to portal users, you might want the sharing to remain when the record owner is changed.

2. Changing your sharing model deletes any manual shares your users have created.

Vote for the below idea

https://success.salesforce.com/ideaView?id=08730000000BqA4

Cheers!!!

Simple Outbound SOAP API using Apex in Salesforce

1. Go to the below link.

http://ec.europa.eu/taxation_customs/vies/checkVatTestService.wsdl

2. Right click and save the XML.


3. Go to Apex Classes.


4. Click Generate From WSDL button.


5. Select the downloaded file from step 2.

6. Click Parse WSDL and Done.

7. Remove Test from the endpoint in the class which was generated.

Note:
Apex class - ecEuropaEuTaxudViesServicesCheckva


Sample Code:

Visualforce page:

<apex:page controller="TestingVAT">
    <apex:form >
        <apex:pageBlock >
            <apex:pageBlockSection >
                <apex:PageBlockSectionItem >
                    Enter Country Code<apex:inputText value="{!strCountryCode}"  />
                </apex:PageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    Enter VAT Number<apex:inputText value="{!strVATNum}"/>
                </apex:pageBlockSectionItem>
            </apex:pageBlockSection>
            <apex:pageBlockButtons location="bottom">
                <apex:commandButton value="Check VAT" action="{!checkVAT}" reRender="infoblock"/>
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>
        
    <apex:outputPanel id="infoblock">
        <apex:pageBlock rendered="{!NOT(ISBLANK(vatNumber))}" >
            <apex:pageBlockSection >
                <apex:pageBlockSectionItem >
                    Country Code
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    {!countryCode}
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    VAT Number
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    {!vatNumber}
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    Request Date
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    {!requestDate}
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    Valid
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    {!valid}
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    Name
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    {!name}
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    Address
                </apex:pageBlockSectionItem>
                <apex:pageBlockSectionItem >
                    {!address}
                </apex:pageBlockSectionItem>
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:outputPanel>
</apex:page>

Apex Class:

ppublic class TestingVAT {

    public String strCountryCode {get;set;}
    public String strVATNum {get;set;}
    public String countryCode {get;set;}
    public String vatNumber {get;set;}
    public Date requestDate {get;set;}
    public Boolean valid {get;set;}
    public String name {get;set;}
    public String address {get;set;}

    public TestingVAT() {
        strCountryCode = 'RO';
        strVATNum = '9311280';
    }
    
    public void checkVAT() {
        ecEuropaEuTaxudViesServicesCheckva.checkVatResponse_element res = new ecEuropaEuTaxudViesServicesCheckva.checkVatResponse_element();
        ecEuropaEuTaxudViesServicesCheckva.checkVatPort obj = new ecEuropaEuTaxudViesServicesCheckva.checkVatPort();
        res = obj.checkVat(strCountryCode, strVATNum);
        countryCode = res.countryCode;
        vatNumber = res.vatNumber;
        requestDate = res.requestDate;
        valid = res.valid;
        name = res.name;
        address = res.address;
    }
    
}

Output:



Cheers!!!

{! } and {# } delimiters in Salesforce Lightning

Anything inside the {! } or {# } delimiters is evaluated and replaced when the component is rendered or when it uses the value. Unbound attributes are designated by {# } and do not update if the underlying object or attribute has changed.

Unbound Attribute Example:

Child Component

<aura:component>
    <aura:attribute name="childAttr" type="String" />
    <p>childAttr: {!v.childAttr}</p>
</aura:component>

Parent Component

<aura:component>
    <aura:attribute name="parentAttr" type="String" default="parent attribute"/>

    <!-- Instantiate the child component -->
    <c:childComponent childAttr="{#v.parentAttr}" />
    <br/><br/>
    <p>parentAttr: {!v.parentAttr}</p>
    <br/><br/>
    <p><lightning:button label="Update parentAttr" onclick="{!c.updateParentAttr}"/></p>
</aura:component>

({
    updateParentAttr: function(cmp) {
        cmp.set("v.parentAttr", "updated parent attribute");
    }
})

App

<aura:application >
    <c:parentComponent />
</aura:application>

Output:

Before clicking Update parentAtt:


After clicking Update parentAtt:



Bound Attribute Example:

Child Component

<aura:component>
    <aura:attribute name="childAttr" type="String" />
    <p>childAttr: {!v.childAttr}</p>
</aura:component>

Parent Component

<aura:component>
    <aura:attribute name="parentAttr" type="String" default="parent attribute"/>

    <!-- Instantiate the child component -->
    <c:childComponent childAttr="{!v.parentAttr}" />
    <br/><br/>
    <p>parentAttr: {!v.parentAttr}</p>
    <br/><br/>
    <p><lightning:button label="Update parentAttr" onclick="{!c.updateParentAttr}"/></p>
</aura:component>

({
    updateParentAttr: function(cmp) {
        cmp.set("v.parentAttr", "updated parent attribute");
    }
})

App

<aura:application >
    <c:parentComponent />
</aura:application>

Output:

Before clicking Update parentAtt:


After clicking Update parentAtt:


Check the below link for more information

https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/expr_data_binding.htm

Cheers!!!

How to use JAVASCRIPT file stored in Static Resources in custom Lightning component?

Sample Code:

<aura:component implements="flexipage:availableForAllPageTypes" access="global"> 
<ltng:require scripts="{!$Resource.myJavaScriptLib}"/> 
<div class="main-content"> 
<aura:outputText value="Hello World!">
</div> 

</aura:component>

Cheers!!!

JavaScript in Strict Mode

JavaScript code that runs in a browser can access a user's private information. To protect this information, LockerService requires you to use ECMAScript (ES5) strict mode, and enforces it in your code. This mode makes it easier to write secure JavaScript. A few code tweaks to comply with ES5 can substantially reduce the need for checking data at runtime.

Here’s a simple example of how strict mode prevents JavaScript from traversing the call-stack and modifying other functions. Without strict mode, the following function would have returned the name of the function that called primaryFunction().

JavaScript code:
function primaryFunction() {
  'use strict'
  console.log("The function calling the current method is: “+ primaryFunction.caller.name);
}
function callerFunction() {
  return primaryFunction(); 
}
callerFunction();

Output:
Uncaught TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context.
at primaryFunction (<anonymous>:3:72) at callerFunction (<anonymous>:6:10) at <anonymous>:8:1

Strict mode restricts access to several other entities. When it is enforced, you can no longer reference the window object through the JavaScript variable this, for example. These restrictions eliminate a lot of potential security vulnerabilities.

Cheers!!!

Salesforce Lightning Inspector Chrome Extension

The Salesforce Lightning Inspector is a Google Chrome DevTools extension that enables you to navigate the component tree, inspect component attributes, and profile component performance. The extension also helps you to understand the sequence of event firing and handling.

1. Go to https://chrome.google.com/webstore/detail/salesforce-lightning-insp/pcpmcffcomlcjgpcheokdfcjipanjdpc.

2. Install it by clicking "Add to Chrome".


3. Right-click Lightning Component and select Inspect.


4. Click Lightning Tab.


Cheers!!!

Lightning Login for Password-Free Logins in Salesforce

Say goodbye to the hassle of weak passwords, forgotten passwords, and locked-out accounts. Give your users the enhanced speed, convenience, and security of password-free logins. Enable Lightning Login, assign the required permission to your users, and encourage them to individually enroll in Lightning Login.

Lightning Login isn’t limited to orgs using Lightning Experience. It works in Salesforce Classic, too.

1. Go to Session Settings.


2. Enable Allow Lightning Login.


3. Enroll Lightning Login.


4. Click Register.

5. Enter the code received.

6. Download Salesforce Authenticator app.

7. Click + New account to add an account.

8. Enter the two words shown in the App.

9. Click Connect and Approve.

10. You will see success message.


11. Go to login.salesforce.com or your domain.


12. You will see Login Approval Required.


13. Go to Salesforce Authenticator Mobile app to approve the login.

Check the below link for more information

https://help.salesforce.com/articleView?id=security_ll_enable.htm&type=0

Cheers!!!

Salesforce Service Cloud

Key Features of Salesforce Service Cloud

1. Case Management - http://www.infallibletechie.com/2014/12/case-management-in-salesforce.html

2. Knowledge - http://www.infallibletechie.com/2014/12/salesforce-knowledge.html

3. Live Agent Web Chat - http://www.infallibletechie.com/2013/06/live-agent-implementation-in-salesforce.html

4. Entitlement Management - http://www.infallibletechie.com/2013/06/entitlement-management-in-salesforce.html

5. Chatter for Agent & Team Collaboration

6. Email to Case - http://www.infallibletechie.com/2012/10/email-to-case-in-salesforce.html

7. Web to Case - http://www.infallibletechie.com/2012/12/web-to-case-in-salesforce.html

8. Case Management (Auto-assignment, rules & queues)

9. Customizable Service Console - http://www.infallibletechie.com/2013/04/service-cloud-console-in-salesforce.html

10. Self-Service Portal - http://www.infallibletechie.com/2013/06/self-service-portal-in-salesforce.html

11. Snap In Chat - http://www.infallibletechie.com/2017/05/service-cloud-snap-ins-salesforce.html

12. Case Escalation - http://www.infallibletechie.com/2013/08/escalation-rule-in-salesforce.html

13. Omni Channel - http://www.infallibletechie.com/2017/04/omni-channel-in-salesforce.html

14. Macros - http://www.infallibletechie.com/2015/07/implementing-macros-in-salesforce.html

Cheers!!!

How to change the color in apex:toolBar?

Sample Code:

<apex:page sidebar="false">
    <apex:form >
        <apex:toolbar style="background-color:red;background-image:none;">
            <apex:inputText /> 
            <apex:commandButton value="Search"/>
        </apex:toolbar>
    </apex:form>

</apex:page>

Output:


Cheers!!!

How to change the color in apex:panelBar?

Sample Code:

<apex:page sidebar="false">
    <apex:panelBar style="background-color:pink;" headerStyle="background-color:gray;background-image:none;">
        <apex:panelBarItem label="Test 1">
            Test 1
        </apex:panelBarItem>
        <apex:panelBarItem label="Test 2">
            Test 2
        </apex:panelBarItem>
        <apex:panelBarItem label="Test 3">
            Test 3
        </apex:panelBarItem>
    </apex:panelBar>

</apex:page>

Output:


Cheers!!!

Grant Access Using Hierarchies in Public Group in Salesforce

When selected, any records shared with users in this group are also shared with users higher in the role hierarchy.

Grant Access Using Hierarchies for public group Determine whether users have access to records they don’t own, including records to which they don’t have sharing access, but someone below them in the hierarchy does.


Note:
If an user is added to the public group. All the users above his role hierarcy will all also be added to the public group with Reason For Membership as "Manager of Group Member".

Cheers!!!

Debugging and Troubleshooting Lightning components Salesforce

JavaScript Is Case-Sensitive. If the API name of your object is Expense__c and a field is Amount__c, and you try to reference it with expense__c.amount__c (which works in Visualforce), it’s going to fail in JavaScript.

JSON.stringify() gives you a human-readable representation of even complex structured data. The console.log() command outputs a string in your browser’s JavaScript console.

JavaScript Controller in Lightning

1. This isn’t a class. It’s a JSON object containing a map of name:value pairs. It can contain only action handlers, which you’ll never invoke directly.

2. Your action handlers are declared as anonymous functions assigned to the action name (here, myAction and anotherAction). Your functions can accept up to three parameters, and only these parameters (component, event, and helper though you can name them differently). The framework supplies them when it calls the handler.

3. Most importantly, you separate your name:value pairs with a comma.

Handling Server-Side Errors

If your Apex code encounters an error, you can create and throw an AuraHandledException. Catching other exceptions, such as a DML exception, and rethrowing them as an AuraHandledException also results in much better experience on the client side.

Cheers!!!