How to provide Roll-up Summary features to a lookup relationship

Mahesh Gaikwad

A Lookup Roll-up tool provides a roll-up summary feature to a lookup relationship. It also allow's you to specify various roll-up criteria (like list) which are not supported by a standard roll-up summary.

  1. What is Lookup Rollup?
  2. What Problem statement are we trying to address.
  3. How to use Lookup Rollup?
Read More
Topics: salesforce.com, Managed Services, Learning, How To

Manufacturing Solution: Tracking tenders/bids in Salesforce

Sandhya Kaithakkat

As a manufacturing sales manager, are you struggling with quantifying your win-rate and your team’s productivity. It’s time to make a change!

Most of your team’s time is spent in tracking project tenders and the quotes sent to the bidders rather than talking to the key stakeholders and closing deals. It's time for a solution which will enable them to spend less time on tracking tenders and quotes and more time on the field winning projects.

Read More
Topics: salesforce.com, Manufacturing Solutions, Bids and Tender processes, Sales Productivity

HTML Page Layout Basics

Manish Damle

 

Page Layouts are nothing but an arrangement of the various HTML components, elements in some containers. Every web page has containers; we call the body which is a standard HTML tag.

Read More
Topics: salesforce.com, How To, html, CSS, JavaScript

Custom Metadata Types

Yogiraj Sarode

Salesforce allows us to migrate standard configuration records like workflow, email templates, email alerts using change set.
But If we want to deploy the custom configuration records from one org to another org using change set or want to setup the custom configuration data automatically when a managed package is installed, then how can this  be achieved?
Custom Settings certainly will not be the right solution for this, because custom settings is just like any object i.e. metadata and we cannot migrate our custom settings records using Change sets.

(Source: Custom Settings Image by Trailhead

Here, ‘Custom Metadata Type’ comes into the play. Using custom metadata type we can easily migrate configuration data along with their associated records using change set and packages.

Read More
Topics: salesforce.com, How To, Metadata

Two ways to locate Markers on Google Maps

Luckey Kumar Sahu

Google Maps for those who don't know is a mapping service developed by Google. It offers satellite imagery, street maps, 360-degree panoramic views of streets, real-time traffic conditions, and route planning when traveling.
In this situation I am using google maps API to show buildings on google maps as per their locations. A Marker is used to plot buildings on google maps. But, when two or more markers are very close to each only then a single marker is displayed on google maps which makes it difficult to identify the number of available markers at the same point. To address this problem, there are two techniques for Markers, Spiderfier and Clustering.

Read More
Topics: salesforce.com, Learning, How To, Google Maps

3 automation solutions Not for Profits should consider right away!

Sandhya Kaithakkat

I have been working with lot of Not for profits to help them migrate their donor and fundraising management system to cloud. When I start the conversations, I am usually shocked to see how much work they do, especially with the limited team they have – and usually all manually.

Read More
Topics: salesforce.com, Not For Profit

NPS : A way to measure your customer satisfaction!

Kshipra Kankariya

“How likely are you to recommend our product to a friend or colleague?”  Almost everyone has answered this question at some point or another for a product or services survey. Ever wondered what the significance of this questions is! This question is asked to gather Net Promoter Score (NPS).

Read More
Topics: salesforce.com, NPS, Case, Customer Satisfaction

5 reasons why Salesforce NonProfit Starter Pack (NPSP) should be first choice for Not for Profits

Sandhya Kaithakkat

The 5 biggest concerns for a Not for profit when deciding to migrate from their legacy system like ThankQ, Raiser Edge, Supporter 360 or excel based tracking are:


Anxiety is understandable for Not for profits as they want to dedicate all their time helping make the world a better place rather than managing IT system. Hence, they need a right system that should let them spend the minimum time on computers managing their data. This is why we recommend they use Nonprofit Starter Pack (NPSP)  because it scores high on all above parameter.

Here's the detailed analysis on the top 5 reasons:

Read More
Topics: salesforce.com, Best Practices, Not For Profit, How To

How to update object CRUD permissions on multiple profiles on a single page/view

Jay Sheth

A very common business scenario, whenever we create a new Object in Salesforce, we also required to update the CRUD (Create, Read, Update, Delete) permissions for this new Object in multiple profiles, as this is one of the most important and crucial security requirement.

Another common scenario is when we have to grapple with understanding the as-is configuration for a specific standard or custom Object (or a set of Objects) for an existing org, where we need to get a birds-eye view of CRUD permissions given to all the profiles for these object/s.

This is usually a very time consuming process, particularly when there are many existing profiles in the Salesforce org. We are then having to go to each profile, go to the object CRUD settings for the object/s in question, and set the permissions as needed for each profile.

Most times we wish someone could build a page which would give us a view, and ideally an editable one, for seeing and setting object CRUD permissions for all the profiles at once.

But, there is an easy way out! Many of us are not aware of the very easy point-and-click customization to achieve this requirement.

Here are the simple steps (the snapshots assume a dummy custom object called Certification):

Read More
Topics: salesforce.com, Best Practices, Learning, How To

JavaScript: Understanding the unrevealed - Part I

Rajkumar Gaikwad
JavaScript is one of the most confusing/misunderstood programming language, but also it is one of the world’s most popular programming language.
Despite it's popularity, it is such a misunderstood programming language. What’s the secret behind this?
In this blog I am going to be listing the unrevealed parts of this language and I am sure it will help you to understand the language in a better way.

JavaScript has no block level scope

What do you mean by block level scope?

Block level scope means variable declared inside a block of code that is enclosed by curly {} braces and is only visible inside that block not the outside of that block.
If a variable is visible outside that block that means programing language doesn’t support block level scope.
JavaScript has only function level scope that means whenever a particular function gets called it creates the context execution and in that it creates scope chain and variable environment .
We will see what is context execution and the difference between scope level chains and variable environment and what would be the lifetime of a variable in my next post. For now just understand that it allocates new memory locations to all the variable declared in that function and variables are accessible in that function only, which are available in scope chain and variable environment .

                For example,

                 <script>    
                             var testVariable = 1;
        
                              if(true){
                                        var testVariable = 2;
                                        console.log (testVariable);  // logs 2 as output
                               }        
                              console.log (testVariable); // logs 2 as output
                 </script>

NOTE : in ECMAScript 6 we have let keyword which allows to declare variable which has block level scope.
 

It’s a Single threaded event based language

It's a very confusing part for most of us that JavaScript is a single threaded or multi-threaded language.

Single threaded - Only one thing at a time.
Multi-threaded - More than one thing at a time.

JavaScript is a single threaded event based language, so what does event based single threaded language mean?
Everything under the hood in JavaScript is a single threaded but there are some external dependencies which can block the single threaded execution,they are modelled as event. Whatever might block that single threaded execution is queued up for processing (i.e. put into the special queue called EVENT QUEUE).
 

Whenever execution stack is empty JavaScript engine looks into this queue and check is there any event in event queue if yes execute it as in FIFO order.
 
Let’s jump to the example,



 

Flow of execution

Global execution context created --> logs ‘ Hi welcome'  - -> now click on document event gets added into event queue --> waitfor3Secs function gets called --> new execution context created for function waitfor3Secs and added it in on top stack --> after 3 second it logs ‘ wait is finished.. ’ --> popped last execution context --> Logs ‘ Execution finished...!! ’ --> finished global execution context -->execution stack is empty --> will check event queue and process event based on FIFO order by pushing each event on top of the execution stack --> now event handler gets called --> new execution context created for event handler --> logs ‘ welcome ’.

It’s a Dynamic typed language 

What does static typed mean?

In other programming language like C, JAVA if we write a statement like
 
Integer numOfCount = ‘three’;
 
It gives the compile time exception, because compiler is expecting integer typed value in variable.
 
But in JavaScript it internally typecast the variable based on type of its value as:
            
            var numOfCount = ‘three’;
            console.log (typeof numOfCount) // it logs string

 

Coercion in JavaScript

As I said above that JavaScript automatically type cast variable based on its value, because of such coercion some times JavaScript language becoemes a nightmare for developers because it produces unexpected result which weren’t expected by developer.
               
Example:
                                If (1<2<3) {
                                                console.log (‘it’s working as expected’);
                                }
 
                                If (3>2>1) {
                                           console.log (‘working as expected’);
                                } else {
                                                console.log (‘this wasn’t expected’);
                                }          
 
 JavaScript is a truly object-oriented programming language and everything is an object in js.
 Here '<' is an overloaded operator.

In the exapmple execution starts from left to right and first it calls '<' function with 3 and 2 as a parameter.
                 
            function < (param1, parm2) {
                                //…….
             }
 
This function returns TRUE because 3>2.  and next time it pass TRUE<1;             
Because of dynamic nature of js language js engine convert TRUE to 1, so expression becomes 1>1 and it returns false and logs ‘this wasn’t expected’.

Basically all these are the omissions as a part of the language designer, but if we know all these ptifalls then it really save us lots of time in debugging and helps us to understand this language in a better way.
Read More
Topics: salesforce.com, Learning, How To, JavaScript