Ye Meri Life Hai - Chirag Mehta

Be Good & Do Good!

Page 2 of 133

Happy Diwali to you & your family!

Festival of lights … togetherness … happiness … prosperity … sweets … celebrations … Yes Diwali is here..

A festival which is celebrated with gaiety by people of every religion. Its magical and radiant touch creates an atmosphere of joy and festivity.

With fullest of enthusiasm and excitement we all welcome this festive season together wishing Happy Diwali to you & your family.

Bid Adieu Jardine Lloyd Thompson!

Dear Friends and Colleagues,

Yesterday brought the beginning, tomorrow brings the end, and somewhere in between I acquired one of the best experiences of my life!

As some of you already know, today is my last day at JLT. Almost 15 months!!!

I have thoroughly enjoyed every aspect of my tenure here and would like to sincerely thank each JLT’ian for the experiences shared, friendships made, opportunities offered and good times spent. This has been a sojourn of both professional and personal augmentation and I am sure every time I reminisce about these days, it would bring a smile on my face.

Fate ordains that every good thing must end for another beginning. So with mixed feelings, I bid you goodbye and good luck as I move on to a new phase of my career.

Thank you,
Chirag Mehta

May all living beings grant me forgiveness … Michhami Dukkadam

On this auspicious occasion of Jain Paryushan festival, I (and my family) wish you all:

Michhami Dukkadam (My bad deeds be fruitless/forgiven)

Khaamemi Savve Jeeva (I grant forgiveness to all living beings)
Savve Jeeva Khamntu Me (May all living beings grant me forgiveness)
Metti Me Savve Bhuyeshu (My friendship is with all living beings)
Vairam Majham NA Kenai (My enemy is totally non-existent)

I forgive (from the bottom of my heart without any reservation) all living beings (who may have caused me any pain and suffering either in this life or previous lives), and I beg (again from the bottom of my heart without any reservation) for the forgiveness from all living beings (no matter how small or big to whom I may have caused pain and suffering in this life or previous lives, knowingly or unknowingly, mentally, verbally or physically, or if I have asked or encouraged someone else to carry out such activities). (Let all creatures know that) I have a friendship with everybody and I have no revenge (animosity or enmity) toward anybody.

Chirag Mehta & Family

Salesforce Data Storage – 2100 % Used – Whack!!!

Today I was doing data load (via some tool) and I was able to do data load of 420 MB, though my (or any) developer org allowed limit is 20 MB, Isn’t that strange!

I understand Salesforce does allow to store certain % beyond allowed limit, but this is almost 21 times allowed limit – sounds really whacky!

This is like hitting nail 21 times hard then allowed hit limit. Hope Salesforce Storage is not screaming 🙂

Chatter Stream or Chatter Ticker …

We have this amazing thing of collaboration inside Salesforce, the Chatter – an amalgamation of best features of Facebook and Twitter.  And to add, it’s for enterprise, so its Enterprise Collaboration Isn’t that awesome!!! Chatter supports lot of things post, comments, likes, follows etc and  best part is its not just user posts, comments etc .. its data posts, comments etc i.e., even the data is part of the collaboration . That adds to awesomeness!

However, there’s been one feature which I been waiting for and always wanted to see which is auto refresh of posts (for techies – ajax refresh) without need to refresh the entire page. Without this feature collaboration doesn’t seems to be complete and web2.0 type.  An alternative to auto refresh can be a stream or ticker (like we have Feed Ticker on facebook) which keeps scrolling and shows posts / comments happening around without need to refresh page.

So I thought of building the same, and first thing I needed was a poller which can poll and see if there are any chatter posts, but that would have been too resource intensive, and would have died after few hours because of governor limits and bla … bla … And to save me, there came a really great feature The Streaming API. I’m loving it!

Two lines about API – Use Streaming API to receive notifications for changes to Salesforce data that match a SOQL query you define in a secure and scalable way. Streaming API is useful when you want notifications to be pushed from the server to the client based on criteria that you define.

So what’s next, I was super excited to get all started to use Streaming API and poll Chatter objects.  I was able to get basic streaming API program working (after few discussions around streaming api with Pat Patterson, as the API had few issues in terms of documentation).

In basic example, I created a PushTopic (a SOQL query that you want notifications about) of Account. Now as the objective is chatter stream, so I tried to create a PushTopic around chatter object, and here was entry of the Villain – PushTopic aren’t supported yet for Chatter objects (SF please enable the same @ earliest)

So what next,  trigger the rescue man came to help. Developed few triggers which will do realtime snapshot of chatter objects, and then created push topic against these snapshot objects.  This way (though indirect way) I will be able to get push notifications (using streaming API)  of chatter posts…wow, finally I made it. I got the CHATTER STREAM or CHATTER TICKER ..

The use case of this is endless,  sky is not the limit..


Road map:

  • The notifications are lost the moment page is reloaded, so will try to add something which makes them persist until user has seen them.
  • Apply Sharing Settings, as currently all messages of  all users are shown

Trust me this idea struck me in morning and by evening the tool/app was ready. Thanks to Rajesh Shah for helping me out in testing this app.


Make Salesforce calendar year drop-down to show earlier years

The birthdate field on the Contact object doesn’t show previous year and neither does it allow to switch back and forth the Years part easily.

Below example will show the last 100 years.

  1. Go to Setup -> App Setup -> Customize -> User Interface. Here make sure the ‘Show Custom Sidebar Components on All Pages’ is checked.
  2. Go to Setup -> App Setup -> Home Page Layouts. Make sure all your Home Page Layouts have the Messages & Alerts component checked.
  3. Go to Setup -> App Setup -> Home Page Components. Here, click edit for Messages & Alerts. In the textarea, copy and paste the javascript code below and save (it can just go below your normal Messages & Alerts, won’t show up on the actual page).
<script src="/js/dojo/0.4.1/dojo.js"></script>
<script src="/soap/ajax/11.1/connection.js" type="text/javascript"></script>
<script type="text/javascript">
var arYears = getYears();
function swapYears(){
	if(document.getElementById('calYearPicker') != null) {
		var select = document.getElementById('calYearPicker');
		var curValue = select.value;
		var parentx = select.parentNode;
		select = document.createElement('select');
		select.size = 1; = 'calYearPicker'; = 'calYearPicker';
	if(select != null) {
	for(x=0;x<100;x++) {
		select.options[x] = new Option(arYears[x], arYears[x], false, false);
function getYears() {
	sforce.sessionId = getCookie('sid');
	var out = [];
	var currentTime = new Date()
	var year = currentTime.getFullYear()
	try {
		for(x=0;x<100;x++) {
			out[x] = x+year-99;

	} catch(error) {
	return out;

Credits: Salesforce Community (

Email to Chatter

Installation Url:

Alvida … Phir milenge … Good Bye Tata Consultancy Services …

Dear TCS’ers …

Today, 5+ Years of my journey in TCS comes to an end. I would like to personally let you know that today I am leaving my position at Tata Consultancy Services Ltd. I have enjoyed working here and I sincerely appreciate having had the chance to work with you.

Thank you for the support and encouragement you have provided me during my time at TCS. I will miss our interactions and projects we had worked on together.

I would appreciate your continued advice as I start the next phase of my career.

Please keep in touch. Again, thanks so much for your support and keep smiling.

Sometimes it gets very very hard to leave things aside and walk away, as those things have already made a big foot print in your soul.

Best regards,

How do I mass-move reports from one folder into another new folder

Problem Statement: We are currently cleaning up our report folders. In order to do so we want to move all unused reports into a ‘quarantene map’ before deleting them. How can we move a large number of reports all at once into one folder? i.e.,

In the Eclipse IDE

  • Create a new project
  • Include ‘reports’ or more specifically the report folders you are concerned with
  • Let Eclipse refresh the project with the reports metadata
  • In Eclipse, navigate to the reports folder you just download and then select the Report Folder you want the reports you want to move from, right click and select Properties
  • Take Note of the Location. This is the path where the metadata files are located
  • Open a windows explorer window and navigate to that path
  • Highlight all the Reports you want to move and right click Cut
  • Still in the Window explorer navigate back to the list of report folder and expand the one you want to move the reports to and right click and Paste
  • Now back in the IDE highlight the folder titled Reports and right click and Refresh and then right click again and>Save to Server
  • BOOM! Now you have moved your reports.



  • Another alternative would be to edit each report folder on the Report page and move unused reports to the Unfiled Public Reports folder.  You can then move all the reports in your Unfiled Public Reports folder to a new “quarantine” folder.  Yeah I know, still a lot of manual effort.



Field datatype mapping between Oracle/SQL Server and Salesforce

Over the time I have started developing a tool that pulls salesforce metadata information and creates oracle/sql server “create table” scripts. Isn’t that really awesome!!

The most useful part of the tool is field data type mapping i.e, what data type of salesforce maps to what data type of oracle/sql server. Below is the list of mapping that I used while generating create table scripts – enjoy!!

salesforce data type sql server data type oracle data type
boolean bit varchar2(1)
date smalldatetime date
datetime Datetime date
currency decimal(precision,scale) number(precision,scale)
double decimal(precision,scale) number(precision,scale)
int Int number(10)
picklist nvarchar(255) varchar2(255)
id nvarchar(18) varchar2(18)
reference nvarchar(18) varchar2(18)
textarea nvarchar(max) varchar2(4000)
email nvarchar(255) varchar2(255)
phone nvarchar(255) varchar2(255)
url nvarchar(255) varchar2(255)
textarea nvarchar(max) varchar2(4000)
multipicklist nvarchar(max) varchar2(4000)
anyType nvarchar(max) varchar2(4000)
percent decimal(5,2) number(5,2)
combobox nvarchar(max) varchar2(4000)
base64 nvarchar(max) varchar2(4000)
time nvarchar(255) varchar2(255)
string nvarchar(length) varchar2(length)


« Older posts Newer posts »