Monday 10 December 2018

[#Blogged] My POV of #Ohana 2018 at a Glimpse!


As the Year-end approaches, it seems like every year is dubbed “a year like no other.” But 2018 truly has been more Productive than many other years in recent memory.  In the last 11 months, I have been part of amazing Dreamin Events/ Blogs/ Software Meetups/ Hackathons etc in an awe-inspiring journey with #SalesforceOhana.  Let's walk through the year gone by :
 
 January :
 
Your Virtual Experts (Salesforce Development and Consulting Firm).  
 
Your Virtual Experts is a leading expert when it comes to Salesforce CRM integration & customization. With Force.com and Apex, we can make SalesForce the platform for all your operations, human resources, claims management, resource management etc.
Read More:https://www.yourvirtualexperts.com/
 February :  
 
Trailblazer Voices: How Failure Can Point to the Right Path(Salesforce.com Blog)  
 
Think back to your 18-year-old self. You’re out of high school, expected to continue your education, and feeling excited about adult life. Now, imagine if you were faced with two choices: attend a four-year university with your friends, or get an internship in a technology you’ve never heard of. Which would you choose?           
Read More:https://sforce.co/2zEYagT
The year did start with a bang but it has iits cons like a month where I hadn't got any projects to work on.
 
But this quote by Lauren Conrad has kept me going.  “There is never just one thing that leads to success for anyone. I feel it always a combination of passion, dedication, hard work, and being in the right place at the right time.”
 
March:
 
 All About Lightning with Pritam Shekhawat (Salesforce Chandigarh Developer Group)  
 
Lightning includes the Lightning Component Framework and some exciting tools for developers. Lightning makes it easier to build responsive applications for any devices.           Read More:https://bit.ly/2E2HLqi
 13 Reasons Why You Need to Get Salesforce Certified. (Guest Blog).  
 
Are you looking to enhance your career, join a growing and vibrant community and travel the world? Then, it’s time to become Salesforce certified! And if you’re already certified, why not elevate your status to MVP? A Salesforce MVP is a valued thought leader recognized throughout the Salesforce community, always giving back by helping others.           
Read More:https://bit.ly/2FNr1Fb
April :
 
A month where I relaxed  and rejuvenating my brain cells for more focus and dedication towards work.
 
May:
 
Apexchamp 2018 ( Salesforce Virtual Hackathon)
 
ApexChamp is a community-led hackathon for professionals around Salesforce who love to code and challenge themselves. The aim is to revive the geek inside you by hosting an online contest in an upcoming month. Developers who get selected in this online contest would be invited for a programming challenge. Read More:http://www.apexchamp.com/
Trailhead Global Gathering with Naga Kiran(Salesforce Chandigarh Developer Group)
 
We feel privileged to welcome you to this very special meetup at Chandigarh Salesforce DUG along-with the Chandigarh Salesforce WIT & Chandigarh Salesforce UG where we are going to host our special guest Mr Naga Kiran Manyala (https://twitter.com/SfdcKiran) , Developer Advocate at Salesforce (India).
Read More:https://bit.ly/2mYj4Ry
Difficulty in getting sponsors for apexchamp.
 
June:
 
Special North India Joint Meetup with Erica Kuhl & Daniel Peter (Salesforce  Jaipur Developer Group)
 
Salesforce Jaipur Developer Group We're pleased to announce a very special meetup on June 19 featuring Erica Kuhl - Vice President, Community coming all the way from Salesforce HQ. Erica will be joined for this meetup by Kiran from Salesforce India Developer Relations team. AN EXCITING UPDATE - Daniel Peter, a Salesforce MVP & Organiser of Bay Area Developer User Group will also be joining us on this special occasion.
 
Sharing My #Trailblazer Story with  Audition in Hyderabad was amazing. I have spoken in many meetups but It was first Dreamin Event. I am more of a Setting up person so the Speaker can be comfortable and good with their presentation. Add-On was Sharing my Story Salesforce via Video Interview and Getting my trailblazer hoodie and picture :) Proud #Trailbalzer
Read More: http://hyderabadtrailblazin.com
Half a year is gone by till here and still, there is so much more to share with you guys.
 
July:
Service Cloud Consultant Certification (4X Salesforce Certified Professional after Force.com Got retired)
 
Candidates should be able to successfully design and implement maintainable and scalable Service Cloud solutions that meet customer business requirements and contribute to their long-term success.            Read More:https://sforce.co/2rbfTI8
Marc Benioff Follow Back.
 
Jaipur Dev Fest 2018(Attendee)
 
Salesforce events actually give you a chance to learn immense knowledge about the platform also meet people you usually interact via Twitter, Trailblazer Community or different Salesforce Question Forums etc. Attending the Jaipur events and Jumping from one technical session to another was best. Thanks to Salesforce Relations Team For Placing me in Top 10 Salesforce  Rockstars you should meet.           
 
Read More:https://bit.ly/2zuNpO6
It was a struggle to balance things when everyone was running in different directions to make Apexchamp happen.
 
August:
 
Equality in a Box (Salesforce Chandigarh Developer Group)
 
Salesforce wanted to provide an equal pathway for everyone to land a top job in the workforce of the future. Today, over 7 million badges have been earned, and people from all walks of life have been inspired to transform their careers. But there’s still a major equality gap in technology caused by many factors including the lack of accessible education. BAM! It’s time to bring education and opportunity to everyone. It’s time to Be A Multiplier.           
 
For every meetup, we work hard and yet sometimes people don't show up.
 
Salesforce Lightning Bolt Tattoo
 
Salesforce has been the turning point of my life. Now it's a part of me too! #Trailblazer #SalesforceOhana
 
September:
 
#Community Summit.
 
#ApexChamp Phase 1 Winners
 
Apexchamp Top 19 for Second Phase Apexchamp organised a Online Examination to select top 19 out of 800 participants to take part in Salesforce Hackathon.
 
Salesforce Saturday with Stephanie heerara ( Salesforce Learning Hours)
 
One time opportunity to meet virtually Stephanie Herrera (Director of Salesforce & Business Systems , Spredfast, Salesforce Saturday Founder, PepUp Tech Co-Founder, Salesforce MVP). She is inspiration, motivation to all of us, if you have any query regarding Salesforce as a Technology , Future this is the platform to get all you queries answered.          

 
A moment of disappointment came when my Visa got rejected for Salesforce DreamForce Event,San Francisco and I couldn't attend it irrespective of having all the information and documents.
 
October:
 
Apexchamp Winners Announcements

 
November:  
 
Dreamforce Global Gathering with Salesforce Amy(Salesforce Chandigarh Developer Group) Four days of inspiration, giving back, and having the time of your life with fellow Trailblazers — that only begins to describe the most innovative software conference in the world. With 2,700+ sessions to help every role in every industry succeed, opportunities to get hands-on with the latest product innovations, and thousands of Trailblazers to learn from, Dreamforce is not to be missed.

 
December:  
 
India Dreamin 2018.(Attendee)
 
India Dreamin, standing true to its name. The first day was just so inspirational whether the speakers talking or listening to different ideas over the community dinner This Year does seem to be full of aspirations. #IndiaDreamin18 was amazing Event full of knowledge along with amazing back-to-back Sessions of  #Speakers with interesting topics. Kudos to core team. See you next year :) 🐼 #PandaHugtoeveryone. #IndiaDreamin18 #Salesforce
 



This Year has made me learn, achieve, believe and understand a lot of things not just about Salesforce but also about me. So I, end this blog with this very determining quote by Pete Maravich - “There is nothing wrong with dedication and goals, but if you focus on yourself, all the lights fade away and you become a fleeting moment in life.”

Thursday 2 August 2018

[#Blogged] Glimpse of #JDF18

Its been almost a week, since #JDF18 had created magic.
#JDF18 - Jaipur Dev Fest, which is organised by an amazing Team - Ankit, Abhinv,Gaurav and Neetu.
If you guys don't know, #JDF17 was the first Dreaming Event organised by Salesforce Community in India (or maybe Asia-Pacific) and also first Salesforce event that I attended.

Salesforce events actually give you a chance to learn immense knowledge about the platform also meet people you usually interact via Twitter, Trailblazer Community or different Salesforce Question Forums etc.

Let me give you a glimpse through my lens of the #JDF18 Event. So I landed in Jaipur on 27 July 2018 which started off with an interactive session with the fellow community members at the hotel, sharing crazy excitement about the event that went on till 5 AM in the morning.

#JDF18 was held on 28th July 2018 at Jaipur Convention Center. The Keynote started by Salesforce Relation Team India Kiran and Shanshank ( I always miss the starting of the event) read that it was amazing via tweets that were buzzing at the speed of lightning.
I was there listed in the keynote with 9 other awesome people on the screen as the "10 Rockstars You Would Not Want To Miss Meeting". You should follow them all on Twitter! Like right now.




Its impossible to attend all the sessions, apologies. So, I attended a few sessions at # JDF18 but I'll catch up with the slides and ppt shared by #JDF18 team.
Sessions I attended:
1 - Connecting the Customer Success platform
2 - No code "IBM Watson"Integration Using External Services and flows
3 - Platform Events + BigObjects=(Big) Like!
4 - Design thinking principles
5 - Women in Tech Panel Discussion
6 - Panel: Fireside Chat with Top Salesforce Partners

7 - Panel: CTA Panel Discussion


Travelling to every session, you can't take your eyes off from Sponsors booth and #swags.Thanks to all Sponsors for being there at #JDF18.

Demo Jams are always amazingly done by #MVP Joshua who participated by Autorabit, 360 cloud Sms, iBirds, SMS- Magic. And Autorabit won again at #JDF18 after Hyderabad Trailblazing.

Did I forgot to tell about the Post - Event Party held into 3 Zones:
1- Haveli - Dancefloor
2 - Booze & Food floor
3 - Networking ground

With my #Volleyball sprain, I could only explore only last 2 zones. And when you connect with amazing people you learn a lot!

Nothing like such an event is possible without a team of leaders and volunteers. Kudos To All Of Them!

Thanks to whole #Ohana for an amazing event and hope to see everyone next year #JDF19.

Wednesday 1 August 2018

[#Blogged] Apex Test Class Best Practices

You have to cover at least 75% but getting 100% must be the prime focus.
Never code to get the percentage cover.

  • All test methods should reside in a separate class from the class in which the method being tested resides.
  • These classes should be appended with the word Test followed by the name of the class being tested, e.g. OpportunityServicesTest.Some people use Test in front which is confusing and would consume more time while deploying/packaging.
  • These classes should all use the @isTest annotation.
  • Each method in the production class should have, at a minimum, one corresponding test method in its test class and should be appended by “test.”
  • There should be a minimum of “Null Pointer Exception test” as part of negative testing for each method, especially the methods that accept parameters.
  • A method without an assert statement is not considered a test method. A large number of relevant assert statements increases confidence in the correct behaviour of business logic.
  • There should be a comment with each assert statement explaining what is being tested and what the expected output is
  • Only use isTest(SeeAllData = true) on class methods in exceptional cases where there are sobjects that don't allow DML operation e.g. PriceBook creation.
  • System.runAs will not enforce user permission or field level permission.
  • All test data creation should be done from a Utility class. This allows for a streamlined creation of test objects that adhere to all the validation rules.
Resources :
  

Thursday 12 April 2018

[#Blogged] First Code back in 2014 - Attachment Upload in Salesforce.

Hey #Ohana,

I am amazed to share the First apex class I wrote back in 10/17/2014.

Apex class used to upload an attachment referencing Parent Id in the Visualforce Page.
Salesforce attachment represents a file that a User has uploaded and attached to a parent standard or custom object record. If the user has created permission on a parent object, then only he/she can able to attach an attachment to the parent object.

You can have a look at the amazing video by Jeff Douglas

When Did you code first time and which functionality was that?

Saturday 17 March 2018

[#Blogged] How to capture Facebook leads in Salesforce?

Business Requirement - Client promotes his business on Facebook and would like to use Salesforce to store leads and contact them in future. What would be the solution to go ahead with it?

Solution- Rest API Integration/Data upload via Data Loader/Salesforce Lead Capture.

Let's go ahead easy Automation way, Salesforce Lead Capture.
Automate leads from Facebook Lead Ads directly into Sales Cloud
Lead Capture for Sales Cloud allows brands running demand generation campaigns on Facebook using Lead Ads to automate lead form submissions directly into Sales Cloud and map them to Lead Objects.

Screen Shot 2018-03-16 at 7.47.37 PM

This App is provided by Salesforce.

Let's start configuring it in our Developer Org.

Login to App-Exchange and download an app from the link below:

https://appexchange.salesforce.com/appxlistingdetail?listingId=a0N3A00000DrzmfUAB.

Install for Admins only, as we would need to setup it correctly. You can decide it according to your business requirements.

Screen Shot 2018-03-16 at 7.49.29 PM.png

After installing an Appexchange, we usually look in the Application tab for the app installed.

You can find a custom tab created as 'Lead Capture' in the All tabs in Salesforce.

Please authenticate your facebook account which has your business page.Make sure you are admin of the facebook page you wish to automate leads.

Screen Shot 2018-03-16 at 8.05.45 PM.png

Please select which business page(Facebook) you would like to link it.

You would be shown some active forms which fetch data from the Facebook business page.

Screen Shot 2018-03-16 at 8.05.56 PM.png

Map Form fields with Salesforce lead fields (Standard and Custom Fields).

Screen Shot 2018-03-16 at 8.06.05 PM

You can use Fixed Value for some required fields in the lead object.

Screen Shot 2018-03-16 at 8.06.30 PM

So whenever new lead would be submitted, It would be automatically transferred to Salesforce.

Screen Shot 2018-03-16 at 8.06.41 PM.png

How to differentiate between Normal leads and leads which would be inserted into Facebook?

Salesforce Lead Capture used an External ID field as Facebook lead ID ( External ID field is used to avoid duplicates in the records as it performs as a unique key ). You won't find it in the page layout but you can add it there.

Create a list view and in the criteria, you can use Facebook Lead Id not equal to NULL( Facebook_lead_id__c != NULL).List view would show all the leads which would be coming from Facebook.

As we installed the App in the developer org, How to test it if we configured it correct or wrong and lead is going correctly in Salesforce?

Thanks to Facebook, we have a Lead Ads Testing Tool.https://developers.facebook.com/tools/lead-ads-testing

Thursday 1 March 2018

[#Blogged]Transient Keyword in Salesforce

Declaring variables as transient reduces view state size. A common use case for the transient keyword is a field on a Visualforce page that is needed only for the duration of a page request, but should not be part of the page's view state and would use too many system resources to be recomputed many times during a request.
The transient variables are not passed to view state and therefore not stored in View State.

difference between transient instance variable and a static variable?

Static methods, variables, or initialization code are associated with a class and are only allowed in outer classes.
When you declare a method or variable as static, it's initialized only once when a class is loaded. All static member variables in a class are initialized before any object of the class is created.  Indeed they aren't transmitted as part of the view state for a Visualforce page.
Using static variables will cause only one instance of the variable to be loaded when the application loads and that variable will not go out of memory until the app is closed.  It holds information that is common to all instances on a class and It is shared between them instead of being created a new with each instance.
while
Transient keyword to declare instance variable that can not be saved and should not be transmitted as part of view state for visual force page.
Basically, View State is an encrypted, hidden field on a Visualforce page that keeps track of Apex controller state & Visualforce page state between server requests. This field is only generated when there is a tag present on a page.

ViewState is only used on a single page that handles postbacks. Once you redirect to the new page, the ViewState is lost.


The Whole Process of Calling is like this :

A. URL Requested
B. Apex Controller Instantiated on Server
C. Controller State Serialized & Encrypted to View State
D. Page Markup Sent to Browser & Rendered
E. View State Decrypted & Deserialized (for Postbacks)

View State Automatically keeps track of field values for you and Allows for easy AJAX functionality. In order to remove View State Error, we use 4 methods.

A. Reduce Number of Components
B. Use the transient Keyword
C. Use JavaScript Remoting
D. Use the Streaming API


References: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_keywords_transient.htm

Tuesday 20 February 2018

[#Blogged]Granular Locking in Salesforce

Granular Locking in Salesforce

The system employs additional logic to allow multiple updates to proceed simultaneously if there is no hierarchical or other relationship between the roles or groups involved.

For example: if you trying to edit the user details but on the other hand automated process is already doing that then you are not allowed to edit.

for this we use granular locking, this will not lock the entire table but only specific data.

What are the key advantages of granular locking?

1) Groups that are in separate hierarchies can be manipulated concurrently

2) Public groups and roles that do not include territories can be manipulated concurrently

3) Users can be added concurrently to territories and public groups

4) User provisioning can occur in parallel

5) A single-long running process, such as a role delete, only blocks a small subset of operations

Benefits to customers:

Customers who frequently experience locking that restricts their ability to manage manual and automated group maintenance operations.
Enable granular locking, which attempts to lock only the modified portions of the table. This can improve the performance of the following items:
1) Adding/deleting/transferring user from a territory
2) Re-parent a territory
3) Create or delete a territory within a hierarchy
4) Adding or removing a forecast manager


Check the below link for more information
https://resources.docs.salesforce.com/sfdc/pdf/draes.pdf

Saturday 10 February 2018

[#Blogged] Salesforce Non-Profit #Trailhead Badge158

Challenge #1: Accounting in nonprofit settings involves significant complexity.
Challenge #2: Nonprofits must be vigilant stewards of donated monies and carefully monitor what they spend on every initiative and program.
Challenge #3: No two funds or grants are alike, creating extraordinary complexity in nonprofit accounting.
Challenge #4: Nonprofits face stringent requirements for reporting and transparent operations – and those hurdles are multiplying.
Challenge #5: IT budgets and expertise are scarce and financial management software can sometimes seem like a distracting and risky headache.
What if I verbalize Salesforce can solve all the Challenges in a go.

Lets Quick Start on Salesforce Non-Profit with the Help of Trailhead.


A Salesforce edition is a selected set of features and functionalities that also specifies the amount of customization possible, as well as the data and file storage capacity, and the API access available.
With the Power of Us license donation program, Salesforce.org customers receive 10 "CRM Lightning"(which includes both Sales Cloud Lightning and Service Cloud Lightning) Enterprise Edition licenses at no cost. A license is attached to a single user, so with 10 licenses, you could have 10 users logged on to your Salesforce org at one time.

If you need additional licenses or products, you can purchase them at a deep discount from Salesforce.org.
In addition to your 10 Lightning Enterprise Edition (EE) licenses, you may have also chosen an App that will help you manage donations, grants and volunteers. On the Salesforce.org website, you can choose between two trials - the standard Enterprise Edition and the Nonprofit Success Pack (NPSP). The Nonprofit Success Pack App sits on top of your Lightning EE licenses.
Knowing what edition and what app you are using will be vital information for you to know as you review Salesforce documentation, log a tech support ticket, or ask for help from the community.


Sign Up for a free trial 

Astonishing Blog on NonProfit Success Pack from Salesforce.org by
Ines Garcia on Salesforce Ben.

Salesforce for Nonprofits: Start Minute, Dream Astronomically immenseTracy Kronzak

Product Stories by Salesforce

Salesforce Plus NPSP:

“The Salesforce Plus NPSP” house model looks kindred to “the Salesforce,” because the Nonprofit Success  Pack is just a pre-built version of the base Salesforce model, that integrates and transmutes a few things while leaving basic Salesforce functionality intact.
Accounts, contacts, and opportunities are still the major building blocks. However, each NPSP account represents a household. Each household can be associated with multiple donors (contacts) and donations (opportunities). And since nonprofits may need to track more than donors, they can utilize contacts to manage all kinds of people data—members, volunteers, clients, board members. And they can utilize opportunities to manage grants, in-kind gifts, and memberships—not just donations.


Data Management :

Utilizer Interface
Cognate Objects and Records
Security
Mobile Access

Tap Into the Nonprofit Community :

With your Salesforce.org grant, you get a set of no-cost subscriptions to NPSP, along with access to the Power of Us Hub (authenticate with your NPSP tribulation username and password). The Hub is a portal for members of the Salesforce nonprofit community to collaborate. Whether you implement NPSP on your own or with avail from an implementation partner, you can always turn to the Hub with your questions. Folks in the Hub are agog to learn from and avail other users.

References :
https://trailhead.salesforce.com/modules/nonprofit_salesforce_basics/units/nonprofit_salesforce_learn
http://www.excluserv.com/non-profit-starter-pack/

Tuesday 6 February 2018

[#Blogged] Quick Start: Heroku Connect - #Trailhead Badge157

Heroku is a container-based cloud Platform as a Service (PaaS). Developers use Heroku to deploy, manage, and scale modern apps. Our platform is elegant, flexible, and easy to use, offering developers the simplest path to getting their apps to market.
Heroku is fully managed, giving developers the freedom to focus on their core product without the distraction of maintaining servers, hardware, or infrastructure. The Heroku experience provides services, tools, workflows, and polyglot support—all designed to enhance developer productivity. 

Lets Quick Start on Heroku with the Help of Trailhead.

Prerequisites:

Heroku account
  • Before Deploying an application to Heroku, make sure you have an active Heroku Account.If not, Navigate to https://signup.heroku.com and create a Heroku account.
Contact Custom field  
  • Add a new field to the Contact Object:
  • In Setup, click the Object Manager tab next to the Home tab.
    Click the Contact object.
    Click Fields & Relationships.
    Click New.
    For Data Type, select Text, and click Next.
    Complete the custom field as follows:
    Field Label: External Phone ID
    Length: 10
    Field Name: External_Phone_ID
    Unique: Select Do not allow duplicate values
    External ID: Select Set this field as the unique record identifier from an external system
    Click Next.
Deploy an Application
  1. Login into Heroku Account.
  2.  Deploy the sample Phone Change Application.
  3. Select the United States as the Region, then click Deploy App.
  4. After the app has been deployed, you can manage it in the Heroku Dashboard by clicking the Manage App button and view the app by clicking the View button.

Provision the Heroku Postgres Add-on and Provision the Heroku Connect Add-on

Provision the Heroku Postgres Add-on
Connect, Use, and Develop
Databases are multi-ingress: use them from any cloud, PaaS, or your local computer. It is easy to connect with common languages & frameworks including Rails, Django, PHP, and Java: configuration strings are generated for them automatically.
Scale and Grow
Scale vertically by choosing from a range of plans. Plans differ based on the size of their hot-data-set, the portion of data available and optimized on-the-fly in high-speed RAM. When the time comes, scale horizontally by adding read-only followers that stay up-to-date with the master database.
Starter Steps :

  1.  Click the Manage App button to visit the Heroku Dashboard and click on your new application.
  2.  Click the Resources tab.
  3.  In the search area in the Add-ons section, type Heroku Postgres, click Enter and then click Provision. 
Provision the Heroku Connect Add-on
Seamless Heroku and Salesforce data synchronization
Heroku Connect makes it easy for you to build Heroku apps that share data with your Salesforce deployment. Using bi-directional synchronization between Salesforce and Heroku Postgres, Heroku Connect unifies the data in your Postgres database with the contacts, accounts and other custom objects in the Salesforce database. Easily configured with a point and click UI, it’s simple to get the service up and running in minutes – no coding or complex configuration is required. 
Starter Steps :
  1.  Click the Manage App button to visit the Heroku Dashboard and click on your new application.
  2.  Click the Resources tab.
  3.  In the search area in the Add-ons section, type Heroku Connect, click Enter and then click Provision 
Heroku Connect locates the Heroku Postgres database that you provisioned in the previous step.
  • Click Next and then click Authorize
  • Now set up Heroku Connect.
Authorize Heroku Connect to access your Salesforce Org. Log in to Salesforce with your Trailhead Playground /Developer Org credentials you collected above.
Create a mapping between the Contact object in Salesforce and a table in the Heroku Postgres database.

  • In Heroku, click Create Mapping. Select the Contact object.
    In the Database -> Salesforce section, select the Write database updates to Salesforce using -- None -- as the unique identifier option and choose External_Phone_ID__c from the dropdown list.
  • Click Save.When you've completed the mapping setup, the data begin synchronizing.  
Our application is now syncing (bidirectionally) a subset of the Contact object in Salesforce with a new table in the Heroku Postgres database associated with your app.
When the syncing is complete, open your Heroku app in a new browser tab, by entering http://APP_NAME.herokuapp.com and replacing APP_Name with your app name.

Complete the form and Since you had previously set up the bidirectional sync with Salesforce using Heroku Connect, this should also automatically update the contact record in Salesforce.

References :
 https://elements.heroku.com/addons/heroku-postgresql
https://trailhead.salesforce.com/projects/quickstart-heroku-connect/steps/qs-heroku-connect-1