Monday, April 29, 2019

Real facts about some company behavior with their employees in salesforce

Disclaimer: It's a real story and no character is imaginary in this story even they are Salesforce Community Leaders who travel around the world to present themselves and hire people.

I want to share a story of someone of my known and need inputs from you. It’s a good content in size so be patient and think to help.

When a candidate joins a company he joins with lot of expectation to learn. some basic things which I have in my mind (what he could expect) is:
1.) Good Projects
2.) Competitive Salary as per the current profile and market
3.) Yearly appraisals
4.) A Fix schedule for salary credit
5.) At least acknowledgement or appreciations if not Rewards
6.) Whenever he found some issues and send emails to Account/Financial/IT or Colleagues he could expect reply on the emails at least.

Now If, company want the candidates to be responsive on the client emails on internal emails than the departments in the company should also be responsible to answer candidate's email.

other than this what if company doesn't listen to candidate like:
1.) candidate got some project and if client is postponing the meeting. Candidate is not getting requirements and request to senior that he has bandwidth to work on other projects, senior says "No, focus only on this project.", then from some other source candidate heard that Senior is asking justification on his salary and time-sheets what should candidate do.
2.) Salary is not on time, mostly after 20th of the month, sometimes 3rd of the month, no fixed schedule.
3.) At the time of joining, HR commit to provide appraisal in next 6 months and after 1.5 years HR is not responding emails about appraisals neither responding to any other emails.
4.) No Reimbursements on committed expenses, unnecessary tax deductions and no justifications
5.) When the person resigns, no one responds for 1.5 months and no salary after submitting resignation, no confirmation on the relieving.
6.) After 1.5 months, someone in the Panel reply on phone than resignation got accepted but candidate has not written confirmation.
7.) Suddenly HR calls to candidates ask said ok we will release your 1.5-month salary on relieving, and I will clear your FNF in a month, please do the KT properly. your last day in company is so and so date.
8.) Candidate did KT multiple times and when ask for Salary and FNF details no one answer.
9.) on last day of the candidate he got 1-month salary and HR said we will send all the document and FNF detail which will be cleared after 2 months of your relieving, please sign all the documents for your clearance and relieving so I could help you.
10.) Later when candidate submitted the document and asked for Relieving Letter, Experience Letter and Pay slips on urgent basis, HR don't respond.

Please share your thoughts if the candidate is wrong somewhere.

Amit Goyal

Sunday, October 8, 2017

Salesforce DX [Develper Experience] Introduction

Hi All,

This is my first post about SFDX as I planned with you, this is an introductory post as per my understanding, please feel free to contact if you have some correction / updates or any other scenarioes which you want me to cover.

Pre-Requisite is Get Started with Salesforce DX to install the CLI and related software and some knowledge of GitHub.

What is SFDX [Salesforce Developer Experience]?

A new experience for Developer / Coder to develop application faster and test in a separate organization or individual test environment same as in developer sandbox.

One of the most important changes with Salesforce DX is that, by externalizing more of the metadata and the org shape, we can shift the app’s “source of truth” from the Salesforce org to a version control system. This standard source-driven development approach has been used by developers for years, and it’s now a core part of the Salesforce developer experience.

Another key innovation for Salesforce DX is something we call the scratch org. The scratch org is a brand new org type built specifically for developers and automation. It’s ephemeral, built quickly from your source and metadata, and makes it easy to build your app consistently over and over again, which is great for team collaboration and test automation.

It’s worth noting that scratch orgs aren’t a replacement for sandboxes. Sandboxes are an important part of the larger development lifecycle, and work with our new source-driven development process as the destination for packages built directly from source. All sandbox types, from developer to full, offer the ability to act as user acceptance testing (UAT) and staging environments of the production org.

This following link of Salesforce Blog could get you more idea about SFDX:

 Salesforce Blog

This above article from Salesforce has a recorded session and article from Dreamfore 2016, which could be more helpful for you.

Salesforce has provided a powerful tool for learning and for getting started on SFDX, here is the source which will help you to setup and install your machine for SFDX:
Get Started with Salesforce DX

Dev Hub?
A Developer Hub (Dev Hub) provides you and your team with the ability to create and manage scratch orgs. Scratch orgs are temporary Salesforce environments where you do the bulk of your development work in this new source-driven development paradigm.

Scratch Orgs?Salesforce DX introduces a new type of Salesforce environment, the scratch org, a source-driven and disposable deployment of Salesforce code and metadata. Scratch orgs are fully configurable, allowing developers to emulate different editions with different features and preferences, playing a critical role in driving developer productivity and collaboration during the development process. They can also be used as part of automated testing and the implementation of a full continuous integration suite.

How to create Dev Hub Org?
To create a Dev Hub Environment, click hereFor App Development hands on with Salesforce DX, click here

How to manage Scratch Orgs?

We could do create and delete scratch org from CLI and from Dev-Hub we could manage scratch orgs as well. Here is the screen shot for Dev-Hub.

some commands for start up:

-> Create a Dev-Hub org first.
-> Authorize the devhub by web login flow:
sfdx force:auth:web:login -d -a DevHub

here -d defines that the org by which u will login is a devhub org. without -d that will be some sandbox or other org from which u will retrieve the project or so.

-> open you devhub organization:
sfdx force:org:open -u DevHub
-> view all orgs:
sfdx force:org:list
sfdx force:org:list —verbose

-> create a SFDX project on your local machine:
sfdx force:project:create -n geolocation

-> Go to the geolocation project folder
-> Create a scratch org:
sfdx force:org:create -s -f config/project-scratch-def.json -a GeoAppScratch

Note: At the time of creating scratch org to test your project, there should be many things you should have in your mind. What about provisioned features, communities, applications, permissions, data and lot of things. I will try to cover that as much I can in my next posts.

-> Open the Scratch org:
sfdx force:org:open

-> view authentication information:
sfdx force:org:display --targetusername

-> set default user by using username:
sfdx force:config:set
set default use by using alias:
sfdx force:config:set defaultusername=devorg

Useful References: CLI

In next step, i will share some scenarios and important steps as discussed in my previous post.
Thanks for reading, stay connected.

Amit Goyal
Skype: amitgoyal09

Friday, October 6, 2017

Knowledge Sharing for SFDX & GitHub [Version Control System]

Hello Friends, 

After a long time I am going to start blogging on SFDX and Github.
Please let me know if you need some other scenario to consider or any other topic which you like me to include.

What is SFDX, Dev Hub?
How to create Dev Hub Org?
What is Scratch Org and How to manage Scratch Orgs?
What could be do with scratch org and how could we create scratch org?

How could we start working on SFDX and helpful resources?
List of steps and commands for the following scenarios?

Pre-Requisites is Github Account and some knowledge of Github.

Retrieve Project from Salesforce, Convert in SFDX
How to enable provisioned feature for scratch org
What Is features and which is best source to get more information
Enabling Features for Scratch Org
How to manage getting permissions in scratch org and considerations
Implementation of first Consideration for permission-set
push to Github

Retrieve Project from Salesforce, Convert in SFDX
Enabling Features for Scratch Org
How to manage getting permissions in scratch org - second consideration
How to make changes in Scratch org
How to pull the changes in local project
How to acknowledge changes in local actual project and in scratch org
How to do Version Control
push on Github

Retrieve SFDX Project from VCS - Github
Create Scratch Org and Deploy project in SFDX
Manage permissions and Data in Scratch Org
How to work and manage project in Scratch org
Acknowledge changes
Pull changes in local project
push on Github

Problem which I am facing with SFDX.

Amit Goyal

Skype: amitgoyal09

Wednesday, July 6, 2016

SmartScheduler - A Field Service Application [SalesForce Classic with Bootstrap, SalesForce1 Application] with Barcode Scanner, Image Capture/Upload and E-Signature

Hi All,

I have built a Field Service Application for Managing Cases, Work-Orders and WorkOrderLineItem.
Based on that Work-Order and Work-OrderLineItem, I am creating jobs and jobsubmissions.

In this application, I have built a SalesForce Classic Application to create and manage workorders. A Salesforce1 Application and optionally Salesforce Public Site, for Field Technician to submit the work-orders which have functionality to attach the photos by capture or upload, Barcode Scanner and E-Signature.

The Cases could be created by Email, Phone, Calendar or manually which could be converted to work-order if required field service than the work-order could be managed, assign/schedule for field technician.

Here are some screen-shots for the Field-Technician Application:
Google-Map: for the route, distance in miles based on the Address and Gelocations. Onclick of the given displayed on the tooltip, Technician could see the Job Detail.

See All Jobs:

Job Detail:

Process Job-Submissions:

At the time of job-submission, field-technician can capture/select the images to upload, Scan Barcodes and take E-Signatures from the client.

Barcode Scanning:

Uploading Attachments:


Please let me know your views on this if any of you have some suggestions for this application. I have built this application just for a good practice and learning for Application Development Concepts as a managed package and for Salesforce App-Exchange consideration implementation.

As Salesforce has introduced its own Lightning Field Service Application recently so I dropped this idea to place on AppExchange.

Thanks All for reading, Happy Coding and Be in touch for good work.

Amit Goyal
Skype: amitgoyal09

Thursday, March 31, 2016

Overlay Screen on Visualforce Page without any CSS or Plugin

Hi All,

My todays post is related to the standard solution for Overlay Screen, I have suffered a lot whenever I got some implementation for the Overlay screen because I did that with CSS and so many things to remember and apply in this. Recently I have found a standard solution for the Overlay screen , which is not required to apply any CSS and no headache to apply the validation and Error message from Apex; we could do that through simple javascript functions.

Take an Example: Here I have a button, which will trigger a javascript function to display the popup screen.

Onclick of the button, we will get a overlay screen like the given snapshot.

We could bind the inputtext or inputfields as well in case we need to accept some picklist or lookup values etc.  Onchange of the textboxes we could validate the value and assign in a javascript variable. Onclick of Ok button it will call a javascript function which will validate the values and call actionfunction to perform the logic in apex controller. Onclick of cancel it will simply close the overlay screen. The performance is better and faster in comparison to custom overlay screen.

When you will press ok, you could see a message for success of the logic like in the image given below.

Check the code below:
Visualforce Page:

Apex Controller:

Hope this will be helpful for you.  Happy Coding J

Feel free to contact if you have anything in which I could help you.

Amit Goyal
Skype: amitgoyal09

Friday, March 18, 2016

ActionFunction is not calling the actionmethod on Visualforce Page: Issue, Approach and Solution

Hi All,

Recently I faced an issue at the time of developing a dynamic and advanced visualforce page with a custom template and standardstylesheets=”false”. By the way these parameters were not related to the issue but I am just mentioning my implementation in consideration.

The Scenario is, I am having a command button or html button, onclick of that I am calling a js function and from that js function I am doing something on the visualforce page like setting value of some DOM Component and styling etc… After that I am calling my actionfunction to call an Action Method which is connected to a function in my Apex Controller.

Code Example:

actionstatus id="status1" startText="Processing..." 

actionFunction name="saveRecord" status="status1" action="{!SaveRecord}" reRender="errMsg" 

HTML Button tag with type="button" and onclick="saveRecord (); return false;"
OR commandButton onclick=" saveRecord (); return false;

The Issues is, onclick of the button my js function is getting called, from that js function my actionfunction is getting called instead of that reloading the page. I solved the reloading by putting return false on my button at the time of calling the javascript function. I could see the status in my UI but that actionfunction still not calling the actionmethod. I am able to see the console logs before calling the actionfunction and after calling the actionfunction with no js error. I am able to see the actionstatus but there is no entry in the debug log for my save method call. I tried by replacing the apex function by thinking may be some error in apex function which is doing something wrong but nothing worked.

Strange was I haven’t found specific solution for this issue in my search anywhere so I applied the following approach to find the cause of issue.

Approach to find the cause: I removed all my visualforce code and placed one section by another and found that in a Selectlist I directly reference a lookup field in value parameter, when I was placing that portion, my button is not working.

Solution: I removed that direct reference and used a string parameter instead. Onchange of that selectlist I populated the value of the string to the lookup field and my button starts working, means the actionfunction is calling the action method now.

Suggestion: Directly referencing the lookup field or Id on the visualforce page could cause unexpected behavior in your functionality sometime not all the time so try avoiding that.

Amit Goyal
Skype: amitgoyal09

Friday, March 4, 2016

Adding Picklist values conditionally on the Visualforce page

Hi All,

Thanks for appreciating my previous blog posts and sorry for the delay for in my new blogpost.

Today I am sharing with you, how can we add some picklist value on the visualforce page conditionally.
Scenario, Like if you have some requirement in which you don’t want to accept new record with some status or picklist value but you want to display that for existing records. You can’t consider inputField in that case as well. So the simple, easier and solution with less effort is:

Create a list in your Apex Controller and display on your Visualforce page with apex:selectlist and apex:selectoptions, so that all required field will be there and add the additional value by using apex:SelectOption with itemDisabled property by define the condition.

One more thing, I wanna share and ask, we have a rendered attribute for the apex:SelectionOption but I were not getting that property functional in my practice, so if anyone knows something about the reason, please share with me.

I will get back to you with my next post soon. Happy Coding J

Feel free to contact if you have anything in which I could help you.

Amit Goyal
Skype: amitgoyal09