Friday 24 April 2015

Runa Mafi Complaints Andhra Pradesh Address, Hyderabad

Government of Andhra Pradesh. Secretariat, Hyderabad, A.P Budget Centre, LB Stadium, Basheerbagh, complaints and reviews about runa mafi in andhra pradesh,kutumba rao ap runa mafi complaints hyderabad address,ap runa mafi list 2 complaints address ,ap runa mafi commitee email address, ap debt weiver email id, kutumbarao commitee email id, kutumbarao, ap runa mafi list 2 complaints address, ap runa mafi complaints email, runa mafi complaints forum, ap runa mafi guntur complaints, kutumba rao ap planning commission hyderabad address

Search For:
C. Kutumba Rao,
Chairman,
Planning Commission,
(Ap Govt Runa Mafi List),
Hyderabad,
Telangana,
India.
(Get Original Address in Below Links)...
1. For Runa Mafi List Complaints Address:Click Here
2. For Runa Mafi List Email ID: Click Here
ap runa mafi list 2 guntur ,ap runa mafi commitee email address, ap debt weiver email id, kutumbarao commitee email id, kutumbarao, ap runa mafi list 2 complaints address, ap runa mafi complaints email, runa mafi complaints forum, ap runa mafi guntur complaints, kutumba rao ap planning commission hyderabad address,Government of Andhra Pradesh. Secretariat,. Hyderabad, A.P Budget Centre, LB Stadium, Basheerbagh, complaints and reviews about runa mafi in andhra pradesh

Saturday 18 April 2015

Tank Bund, surroundings to be Wi-Fi enabled

Come Thursday, and the traffic police may have more to contend with. For they might find close to 2,500 citizens roaming Tank Bund and its vicinity, unmindful of the traffic, and engrossed in their mobile phones.

The environs of Tank Bund, Lumbini Park and Necklace Road will be Wi-Fi enabled, once Information Technology Minister K.T. Rama Rao inaugurates the free facility from Marriott Hotel in the evening.

Mr. Rao will be the first to use the services by interacting with Union IT Minister Ravishankar Prasad on video call.

The services are being offered by BSNL, in association with Quadgen Wireless Solutions, on an experimental basis.

At a time, 1,800-2,500 users can log in to use the services within 10-kilometre radius of Hussainsagar. The Wi-Fi will be free for 30 minutes, and will function at a speed of 2 Mbps to 20 Mbps.

Officials from BSNL and Quadgen have inspected the facility, and taken stock of the situation at the Tank Bund here on Wednesday.

Wednesday 15 April 2015

Runa Mafi Complaints Andhra Pradesh Address, Hyderabad

Government of Andhra Pradesh. Secretariat, Hyderabad, A.P Budget Centre, LB Stadium, Basheerbagh, complaints and reviews about runa mafi in andhra pradesh,kutumba rao ap runa mafi complaints hyderabad address,ap runa mafi list 2 complaints address ,ap runa mafi commitee email address, ap debt weiver email id, kutumbarao commitee email id, kutumbarao, ap runa mafi list 2 complaints address, ap runa mafi complaints email, runa mafi complaints forum, ap runa mafi guntur complaints, kutumba rao ap planning commission hyderabad address

Search For:
C. Kutumba Rao,
Chairman,
Planning Commission,
(Ap Govt Runa Mafi List),
Hyderabad,
Telangana,
India.
(Get Original Address in Below Links)...
1. For Runa Mafi List Complaints Address:Click Here
2. For Runa Mafi List Email ID: Click Here
ap runa mafi list 2 guntur ,ap runa mafi commitee email address, ap debt weiver email id, kutumbarao commitee email id, kutumbarao, ap runa mafi list 2 complaints address, ap runa mafi complaints email, runa mafi complaints forum, ap runa mafi guntur complaints, kutumba rao ap planning commission hyderabad address,Government of Andhra Pradesh. Secretariat,. Hyderabad, A.P Budget Centre, LB Stadium, Basheerbagh, complaints and reviews about runa mafi in andhra pradesh

Thursday 9 April 2015

Laptop Store, Elephant House, Ameerpet, Hyderabad

Dell, Lenovo, HP, Laptop Service Center,Laptop Store, Elephant House, Ameerpet, Hyderabad, laptop store elephant house hyd, elephant house hyderabad, elephant house hyd, laptop repiar store elephant house hyderabad, dell laptop store elephant house hyd, ameerpet.

Advice Review: Please do not repair your laptop in this store. because they do not give guarantee to lose other parts during your computer repair.

review 1: my friend give his laptop here, they charged 2000 rupees, and my laptop has new problems like cpu fan, led light indicator defect...etc. If you ask for this side effects they simply said pay more for repair.

review2: another one give his laptop here in this laptop store, they destroyed his mother board and circuits and then said need to change mother board. appx cost:Rs.11,000/-

so please do not give your laptop here. choose other laptop repair store.

Dell, Lenovo, HP, Laptop Service Center,Laptop Store, Elephant House, Ameerpet, Hyderabad, laptop store elephant house hyd, elephant house hyderabad, elephant house hyd, laptop repiar store elephant house hyderabad, dell laptop store elephant house hyd, ameerpet.

Sunday 15 March 2015

Paradise - Secunderabad

Paradise Circle, Secunderabad

The Place

Welcome to the home of authentic Hyderabadi cuisine, a landmark that lent its name to the neighbourhood. This is where the Paradise saga began in 1953. A favourite with celebrities and common folk alike, our flagship Restaurant is arguably the largest dine-in eatery in the country. The Ground Floor houses the Paradise Café, Bakery and Takeaway and the other floors, the grand restaurants including the Open Air Garden Restaurant.

Guests throng the Restaurant to savour the finest Hyderabadi cuisine with friends and families keeping the buzz alive throughout the day. Exuding history in every corner, the place invokes special memories for innumerable guests. Dine in at our Secunderabad Restaurant and enjoy a rendezvous with history.

Every day, people from all walks of life come to Paradise to enjoy good food, great service and happy times. With a unique blend of tradition and innovation, our Chefs bring the exquisite culinary marvels from the royal courts of Nizams to people around the world. Our signature dishes are celebrated for their unforgettable purity and taste. Come experience dining at its best.

The connoisseur’s tip: Do try our authentic Hyderabadi Desserts-Qubani-ka-Meeta(apricot puree) and Double-ka-Meeta (fried-bread pudding).

Do you know? The Café and the open-air Restaurant are also famous for the Kheema(minced meat curry) and Roti breakfast served from 7 AM to 10 AM everyday.

Nearby Attractions: Patny Center and ParkLane, the busy shopping quarters are only a few paces away. Secunderabad Railway Station and Tank Bund are a short 10-minute drive from the Restaurant.

Tuesday 10 March 2015

Infosys Recruitment Event for JKC 2015 Pass outs - Andhra Pradesh

Infosys Recruitment Event for JKC 2015 Pass outs - Andhra Pradesh

Eligibility Criteria considered:

B. Tech all disciplines and MCA
For B Techs: 70% in class 10th, 70% in Intermediate / Diploma and 70% in B. Tech
For MCAs: 70% in class 10th, 70% in Intermediate / Diploma and 70% in Degree and 70% in MCA
No active backlogs are allowed

NOTE:

The Students Whose status is either 'In Process' or 'To be tested' can participate in the drive.

Recruitment Process:

We have uploaded your details into Infosys Application portal & you will receive a user name & password from Infosys. You Need to login & fill the application form correctly then you will see the message that 'Your application was sent'. Please follow the link given below for Step-By- Step process of Application filling.
Untill unless your application was submitted correctly and you have your application printout with you you are not eligible to go through the online test.

Click here for list of colleges which are meeting Infosys Recruitment Criteria


Click here for Registering for Infosys Online Recruitment Process


Anatapur, Kadapa, Kurnool, Chittoor and Nellore -16th February 2015
Annamacharya Institute of Technology & Sciences -- Chittoor,
Venkatapuram Karakambadi road Renigunta,Tiripati Chittor.

Click here for eligible list of students

Guntur,krishna and Prakasham -19th February 2015
Vasireddy Venkatadri Institute of Technology, Nambur, Pedakakani, Guntur.
Interviews for shortlisted students will be at Aditya Engineering College, E.G.

Click here for eligible list of students

East Godavari, West Godavari -21st February 2015
Aditya Engineering College,
Aditya Nagar, ADB Road, Surampalem, Gandepalli, East Godavari-Dist,A.P.

Click here for eligible list of students

Vizianagaram, Vishakhapatnam,Srikakulam  -3rd March 2015
Raghu Institute of Technology,
Dakmarri(v), Bheemunipatnam(m), Visakhapatnam,AP.

Click here for eligible list of students

Saturday 7 March 2015

Step-by-step: Integrating SalesForce.com with on-premises databases and applications

If you're considering or currently administering a SalesForce.com account, this article may help you explore how to integrate your CRM data between SalesForce.com and in-house databases, flat files, and legacy applications. Here's a deep look at how to get the job done without having to study SalesForce.com APIs and writing, debugging, and maintaining custom code.
Five essential steps

1. Explore your integration goals

Before any data migration starts, you should clarify the goals of the on-coming SalesForce.com integration. You need to know exactly what data should be extracted and what data tables/fields should be considered as targets. Also, ask yourself, "Do I need to integrate SalesForce.com with one single database or multiple data sources? Is it enough to perform a one-time migration, or do I need an ongoing synchronization? Do I need to have SalesForce.com data backed up? Do I have enough experience to do manual coding, or would the use of visual data integration tools be the best decision?"

Create a list of the questions related to your integration project and then try to stick to the answers.

In case you are still considering manual coding, don't forget about the time and effort required to learn APIs, provide connectivity to both the source and the target, write transformation logic, and, most importantly, the tasks related to debugging, reporting, and future maintenance of the integration and the related metadata.

The more clearly you set the goals, the more accurate your SalesForce.com integration will be. Sometimes you may need to join data; sometimes it's all about eliminating duplications; and sometimes the data should be validated or filtered first. Try to set your goals properly.

2. Provide connection to data sources

To start reading and writing data, you need to establish connections to the sources. In other words, you need to gain access to data tables, data structures, data types, and data records. This is where data integration actually begins. With visual tools like Apatar, for instance, you can do it without having to write a single line of a code. Just open the "drag-and-drop" job designer, choose the necessary data connectors, enter SalesForce.com authentication details, and provide the paths to the rest of the data sources.

3. Map data sources together

According to The Gartner Group, corporate developers spend approximately 65 percent of their effort building bridges between applications. Luckily, today's data integration systems allow data to be linked even by non-technical users. Imagine you could visually design (drag and drop) a workflow to exchange data between files (Microsoft Excel spreadsheets, CSV/TXT files), databases (such as MySQL, Microsoft SQL, Oracle), applications (Salesforce.com, SugarCRM), and the top Web 2.0 destinations (Flickr, RSS feeds, Amazon S3), all without coding. As an example of such visual tools, Apatar embeds a visual job designer to enable users to create integration jobs, link data between the source(s) and the target(s), and schedule one-time or recurring data transformations.

Now that you have all data destinations configured, map appropriate source and target connectors to start joining the tables, as shown in Figure A. Figure A
4. Match the fields After that, you need to set the rules for data transformations. To do so, open the Transform module and then drag-and-drop into its work panel all the corresponding input and output fields. Map these fields together, as shown in Figure B. Figure B


Why is the mapping so critical?
You need to point where the source of data is and where the target is.
Sometimes you need to transform source table formats to SalesForce.com table formats. For instance, you have Time or Binary objects at the source and need to save them as text at the target.

With mapping, you tell your data integration tool what you want to do and where exactly you want this to be done. Otherwise, the source information will not correspond with the target information.

Before the era of visual data integration tools, all these operations required at least one skilled, highly-paid database developer.

5. Run the transformation job

Finally, run the transformation, and let your SalesForce.com accounts be populated. If all initial settings and mappings were accomplished accurately, you may now just sit back and relax. The data integration tool will do the integration.

But if you think that the job is over, don't be so naïve.
The Process Automation

Business data is never consistent; real-time updates, new data entries, and other changes require maintenance. If you need recurring integration jobs, you may also use the Scheduling function to automate the data integration process. Apatar enables you to set the moments of data migrations, enter the frequency of necessary data transformations, and specify the duration of the integration. For example, you can set data migrations to launch at midnight when there's no data activity in the enterprise's databases. This will prevent data collisions as well as data inconsistencies. In the morning, you will have the entire set of customer data synchronized. See Figure C. Figure C

SalesForce.com data backups

To have your customer data backed up, you can also use the Amazon S3 "simple storage service," which provides a low-cost Web interface that lets you easily store and retrieve any amount of data, at any time, from anywhere on the Web. Amazon S3 deploys the same highly scalable, reliable, fast, and inexpensive data storage infrastructure that Amazon.com uses to run its own global network of websites.

For instance, if a company's executive wants to have his or her company's most significant customer information backed up every day (e.g., extracted into flat files and saved to Amazon S3), the Apatar tool allows for this data to be backed up and then uploaded to Web storage at a specified time. All you need to do is configure the Amazon S3 connector and enter the frequency and the moments of SalesForce.com data backups in Apatar's Scheduling module. The ETL engine will do the rest automatically. See Figure D. Figure D

Mashups with SalesForce.com

You may also want to mashup data from multiple sources. For instance, take news from an RSS feed, extract client's information from legacy or in-house CRM, add your custom notes, and then mix it all up and throw it across your SalesForce.com accounts. Using Apatar, developers can create integration jobs, called DataMaps, to link data between multiple source(s) and target(s), as shown in Figure E. These data "mashups" can be saved for future re-use, or sharing, or even re-distribution. In other words, now you have all the integration settings saved and will not have to waste your time again and again if you want to perform a similar task or repeat exactly the same transformations. Figure E


Integration with SalesForce.com may be easier than you think. While Apatar open source ETL toolkit enables data migration and transformation, visual mapping provides even a non-programmer with all of the means to do complex integration jobs. The Scheduling feature allows for synchronization with your local databases and makes SalesForce.com integration ongoing. With today's data management solutions, the business user has a powerful toolset not only to manage data streams within the enterprise, but to join data with the Web, keep it safely in SalesForce.com, and exchange information with partners globally.

Monday 2 March 2015

How to disable the command buttons and Grey out the total vf page on any action?

Usually we multiple records creates whenever multiple click on save button on custom save button on VF page. So to overcome this issue we can hide the all buttons once user click on buttons.

VF Page:

<apex:commandButton action=”{!doSave}” id=”saveButton ” value=”save” onclick=”disableAllButtons()”/>

<apex:commandButton action=”{!doCancel}” id=”cancelButton” value=”cancel” onclick=” disableAllButtons()”/>

<Script>

var j$ = jQuery.noConflict();

function disableAllButtons(){

j$(“[id$= saveButton],[id$= cancelButton]”).hide();

}

function showButtons(){

j$(“[id$= cancelButton],[id$= saveButton]”).show();

}

</Script>
showButtons function is to show the button once the action.
If we can use the same code for the input fields as well which have the action function. So that we can restrict the user to change the field and click the buttons immediately.
Some times we have to restrict the user to modify the fields on that page after click on button or change on any fields of having action function.

So, here we have to grey out the total VF page to restrict the user to change the fields if any action is In-progress.

The below code is to grey out the page. Gering out the backgrouond,status box and all tex boxes in the page.

<apex:commandButton action=”{!doSave}” id=”saveButton ” value=”save” onclick=”disableAllButtons()”/>

<apex:commandButton action=”{!doCancel}” id=”cancelButton” value=”cancel” onclick=” disableAllButtons()”/>

<div id=”processingSimbol” style=”display:none;”>

“Processing…….” </div>

<Script>

var j$ = jQuery.noConflict();

function disableAllButtons(){

j$(“[id$= saveButton],[id$= cancelButton]”).hide();

j$(“# processingSimbol “).show();

j$(“[id$=formId]”).append(j$(“<div>”,{“id”:”blurybackground”})

,j$(“<div>”,{“id”:”statusBox”})

.append(

j$(“<img>”,{“src”:”/img/loading32.gif”}),

j$(“<div>”,{“id”:”textBox”}).text(“{!$Label.MDF_Status_Processing}”)));

}

function showButtons(){

j$(“[id$= cancelButton],[id$= saveButton]”).show();

j$(“#blurybackground, #statusBox”).remove();

if(globalFocus != null){

globalFocus.focus();

if(globalFocus.attr(‘class’).indexOf(‘amountInput’)!=-1){

var focusId = globalFocus.attr(‘id’).split(‘:’).join(‘\\\\:’);

setTimeout(function(){

j$(“#”+focusId).focus();

},300);

}

}

}

</Script>

<style>

#blurybackground {

z-index:1000;

//bottom:0;

position:absolute;

left:0px;

top:0px;

width:100%;

height:100%;

text-align:center;

vertical-align: middle;

background-color: #222;

opacity:0.6;

filter:alpha(opacity=60);

}

#statusBox {

// for Modzilla

-moz-background-clip:border;

-moz-background-inline-policy:continuous;

-moz-background-origin:padding;

-moz-border-radius-bottomleft:5px;

-moz-border-radius-bottomright:5px;

-moz-border-radius-topleft:5px;

-moz-border-radius-topright:5px;

-moz-box-shadow:1px 6px 5px #888888;

-webkit-border-bottom-left-radius:5px;

-webkit-border-bottom-right-radius:5px;

-webkit-border-top-left-radius:5px;

-webkit-border-top-right-radius:5px;

-webkit-box-shadow:1px 6px 5px #888888;

box-shadow: 1px 6px 5px #888888;

z-index:1000;

background:#FFFFFF none repeat scroll 0 0;

height:42px;

width:150px;

left:45%;

top:35%;

padding-left:15px;

padding-top:11px;

position:absolute;

vertical-align:middle;

}

#textBox {

margin-left:40px;

margin-top:-20px;

font-weight:bold;

font-size:14px;

}

</style>

Wednesday 25 February 2015

Senior Software Engineer Interview

By : An Employee

Latest Salesforce Project With Screen Shots .zip

[Note:above link enable after you click on top above & Right-side Ads.]-->

Application Details

I applied through a recruiter. The process took 2 weeks – interviewed at Salesforce.

Interview Details

The interview process is not so hard and easy to crack. I have been interviewed by sales force Performance Group and there were 6 rounds . The first 4 rounds of interviews went well and after that they have asked to prepare on bunch of topics like Ruby on rails , Performance tools , Garbage collection , DB .etc . I have put much time and prepared well on these topics . Then there were 2 rounds with the US people and they also went well . Finally they come up with a decision stating that i don't have experience in performance engineering. This is not good because initially itself i have told that i don't have any experience working on performance engg and it was not mentioned anywhere in my profile. I think they should make a clear decision after scanning through the profile. The expectation is a bit high . My sincere advice to the candidates is that if the interviewer asks you to prepare on some topics . Just tell them that you are busy in doing office work and you dont find free time. Please don;t spend your time on preparation . You should not be asked to prepare instead you should be interviewed on your current skill set and what you have put in your profile.
Latest Salesforce Project With Screen Shots .zip
[Note:above link enable after you click on Below Advertisement]

Sunday 22 February 2015

Design Patterns in Saleforce.com

Design Patterns in Saleforce.com:

1. Singleton - minimizing object instantiation for improved performance and to mitigate impact of governor limits

2. Strategy - defining a family of algorithms, enscapsulating each one and making them interchangeable and selectable at runtime

3. Decorator - extending the functionality of an sObject in Apex

4. Facade - simplifying the execution of classes with complex interfaces (e.g. web service callouts)

5. Composite - treating a group of objects in a similar manner to a single instance of that object

6. Bulk State Transition - efficiently tracking the change of a field value in a trigger and executing functionality based on this change

Saturday 14 February 2015

VBIT Park Hyderabad

VBIT Park
Plot # 17,Software units layout,Madhapur
Hyderabad, Telangana 500081

Inorbit Mall hyderabad

Inorbit Mall
APIIC Software Layout,
Mindspace, 
Madhapur
Hyderabad, 
Telangana 500081

Microsoft Hyderabad

Microsoft India Development Center
Building 3, Gachibowli
Gachibowli
Hyderabad, Telangana 500032

Bank Of America Hyderabad

Bank Of America Continuum India Pvt. Ltd.
Mindspace,
HITEC City
Hyderabad, 
Telangana 500081


CSC Hyderabad

Computer Sciences Corporation Private Limited
Building # 7,
Mindspace IT Park, 
Madhapur
Hyderabad, 
Telangana 500081

Thomson Reuters

Thomson Reuters
Mindspace
HITEC City
Hyderabad, Telangana

JP Morgan Chase

JPMC
Vittal Rao Nagar, HITEC City
Hyderabad, Telangana

TCS Synergy Park Hyderabad

TCS Synergy Park
Indian Immunologicals Colony,
Gachibowli
Hyderabad, 
Andhra Pradesh 500032

Tech Mahindra Hyderabad Address

Tech Mahindra Ltd.
Unit No.12,
Plot No. 35 & 36, 
Hi-Tech City Layout, 
Survey No. 64
Madhapur
Hyderabad, 
Telangana 500081

Facebook Hyderabad Address

Facebook India Pvt. Ltd. Hyderabad,
Building no. 20, 
Raheja Mindspace
Hi-tech City Main Rd
Vittal Rao Nagar, 
HITEC City
Hyderabad, 
Telangana 500081

Chitika Hyderabad Address

Chitika Technology Solutions Private Limited
Inorbit Mall Road
D Block,
Vittal Rao Nagar, 
HITEC City
Hyderabad, 
Telangana 500081


Accenture Hyderabad Address

Accenture Services Pvt. Ltd.
Building No. 1A & 1B,
Raheja Mind Space, 
Hitech City, 
Madhapur
Hyderabad, 
Telangana 500086


Google Hyderabad

Google Hyderabad
Google India Pvt. Ltd
Block 1, DivyaSree Omega
Survey No. 13,Kondapur Village,Hyderabad
Andhra Pradesh,India
contact Phone number :(040) 66193600, 66193000


Hp Hyderabad (Madhapur)

Hewlett-Packard India Sales Pvt. Ltd.


No.18, ilabs Centre,
4th Floor, D- Block,
5th Floor, C - Block,
5th Floor, D - Block,
Madhapur,
Hyderabad - 500 081


Infosys

Manikonda Village
Survey No. 210,
Manikonda Village,
Lingampally,
Rangareddy (Dist.),
Hyderabad 500 032


Phone: (040)- 6642 0000
Fax: +91 40 2300 5223


Pocharam Village
Special Economic Zone - Developer,
Survey No. 50 (Part),
Pocharam Village,
Singapore Township Post Office,
Ghatkesar Mandal,
Ranga Reddy District,
Hyderabad - 500 088.


CTS Hyderabad main branch address

Hyderabad


3rd Floor, " H" Building,
Vanenburg IT Park,
Software Units Layout
Madhapur
Hyderabad - 500 081 India
Ph: +91 40 44514444
Fax: +91 40 55367026
Website : www.cognizant.com


Wipro manikonda branch address

Hyderabad Wipro Address


Survey No 203/1,
SEZ Manikonda Village,
Gachibowli,
Hyderabad - 500031

Ph:+(91)-(40)-30797979,30797990


Website : www.wipro.com


IBM Hyderabad Hitech City address

IBM India Pvtltd 

Hyderabad IBM Ind Pvtltd
Raheja Mind Space,
Hitech City,
Madhapur,
Hyderabad - 500033
Call: +(91)-9703337383


TCS Madhapur Address

Madhapur

Tata Consultancy Services
Deccan Park, Plot No.1,
Software Units Layout
Madhapur
Hyderabad 500 081

Phone: 91-40-6667 2000
Fax: 91-40-6667 2222




View Larger Map

Workbench REST API Commands


Thursday 12 February 2015

Adding JavaScript row in PageblockTable

<apex:commandbutton action="{!savTable}" value="Save" id="saveAbove"reRender="Table" status="counterStatus"onComplete="calculateTotal();"/>

Function calculateTotal(){
$j( 'table[id$=Tableid] tbody').append('<tr><td><b>Total</b></td><td><b>'+ totalx +'</b></td><td><b>'+ totaly +'</b></td><td><b>'+ totalz +'</b></td><td><b>'+ totalPLAN +'</b></td><td><b>'+ total +'</b></td><td><b>'+ totalb +'</b></td></tr>');
}

Monday 9 February 2015

Salesforce Technical Interview Questions-5

Apex:

§ How we can do HARD delete record action using apex?
Answer: User APEX method emptyRecyleBin after deleting record.

§ How we can monitor the sequence of triggers?
Answer: Write helper class concept and calling from triggers.

§ How we can restrict user if any other user working on this record?
Answer: Use “FOR” keyword in SOQL.

§ Scenario: One user do not have access of object then we should not see records in custom table. How we can restrict?
Answer: Use “with sharing” keyword in controller class.

§ What are the drawbacks of SITE? Answer: Access and more customizations like VF.

Sunday 8 February 2015

Salesforce Technical Architect Configuration Interview Questions-6

Salesforce Technical Architect Configuration Interview Questions-6

SFDC Configuration:

§ Scenario : On update of Contact user will email that page of details?
Answer: Add workflow where you need to update field and add VF COMPONENT into EMAIL TEMPLATE.

§ Scenario: Insertion or Updating of record user want to check duplicate value of field. Do not write code Answer: Add new temp unique field and update through workflow

Saturday 7 February 2015

Salesforce License Types

1. Salesforce-> Full access to standard CRM and Force.com AppExchange apps. Also, can access any standard or custom app.

2. Salesforce Platform-> Access to custom apps but not to standard CRM functionality. Also, can acess custom apps developed in your organization or installed from Force.com AppExchange. In addition, they are entitled to use core platform functionality such as accounts, contacts, reports, dashboards, documents, and custom tabs. However, these users are not entitled to some user permissions and standard apps, including standard tabs and objects such as forecasts and opportunities. Users with this license can also use Connect Offline.

3. Force.com One App->This license is not available for new customers. Can have same rights as Salesforce Platform users, plus they have access to an unlimited number of custom tabs. Up to 10 custom objects, and they are limited to read-only access to the Accounts and Contacts objects.

4. Force.com App Subscription->Force.com Light App has up to 10 custom objects and 10 custom tabs, has read-only access to accounts and contacts, and supports object-level and field-level security.Force.com Enterprise App supports record-level sharing, can use the Bulk API and Streaming API, and has read/write access to accounts and contacts along with all the functionality in Force.com Light App. Users with this license can only view dashboards if the running user also has the same license

5. Knowledge only User->Access to the Salesforce Knowledge app. Also, can access to the following tabs: Articles, Article Management, Chatter, Chatter Files, Home, Profiles, Reports, custom objects, and custom tabs

6. Identity ->Access to Identity features such as the App Launcher. Included with all paid user licenses in Enterprise, Performance, and Unlimited Editions

7.Chatter Free, External, Only->Designed for Performance, Unlimited, Enterprise, and Professional Edition users that don't have Salesforce licenses but need access to Chatter. Access to customers out of Company's Email Domain

JavaScript on Sidebar components

Scenario: User will select Account from RelatedTo at the time of Event creation. Automatically populate fields existing values.

Home Component Code:
<script type="text/javascript" src="https://sfzip.sunbridge.com/paid/zip-2.4.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="/soap/ajax/29.0/connection.js" ></script>
<script type="text/javascript" src="/soap/ajax/29.0/apex.js" ></script>
<script type="text/javascript">
$( document ).ready(function() {
if ($("#evt3")) {
$( "#evt3" ).bind( "change", function( ) {
window.setTimeout(function(){
var accId = $("#evt3_lkid").val();
if(accId != "" && accId )
{
sforce.connection.sessionId = document.cookie.match('sid=([^;]*)')[1];
updatespdetail(accId);
} }, 1000);
});
}});
function updatespdetail(accId)
{
sforce.connection.sessionId = document.cookie.match('sid=([^;]*)')[1];
if(accId != "")
{A
var arr** = sforce.apex.execute("*Util","get**Detail", {Id:accId});
console.log(arr**);
var phase = "";
var probability = "";

if(arr*** != null && arr**[0]!= null)
{
var ss= arr**[0];
phase = ss.Phase__c;
probability = ss.Probability__c;

}}
$("#00NO0000001Ghje").val(phase);
$("#00NO0000001Ghl6").val(probability);
}
}
</script>

Friday 6 February 2015

Salesforce interview

Salesforce Questions:

1. What is the relationship between Account and Opportunity OR Account and Contact?

Answer: Account has lookup relation relationship with Opportunity and same as Account and Contact. But if we delete Accout then Contact as well Opportunity both related records gets deleted. So ,we can say that it is Master Detail relation between Account and Contact OR Account and Opportunity.


2. Can we make Account and Opportunity/Contact many to many relationship?

Answer:A. Salesforce has already given stadard functionality of AccountRole/ContactRole/etc. which is noting but many to many relationship between Account and Contact/Opportunity.

B.If we need to create manually many to many relation then create juction object of between Account and Contact/Opportunity.


3. IF we have more than 50K records then how we can get those records into SOQL?

Asnwer: A. We can achive this by using Batch apex. Get thousands of records into start method of batch and process into by 200 chunks.

B. If we have visualforce page and we need to fetch more than 50K records then used @ReadOnly annotation. It will allows you fetch 100K records.

C. Dynamic SOQL with passing setId criteria.

D. Restrict to fetch more than 50K records and write SOQL below conditions:

a. Add not null

b. Indexing on respected fields

c. Id IN: setId


4. Can we enable partner portal using apex?

Answer: Yes, we have IsPartner field on Contact object. For enabling contact as a partner the we need to set IsPartner=true.

5. How implement intgretion with Informatica?

Answer: Either Consume or expose WSDL and integrate with Informatica. We need to set source and destination in Informatica.

Monday 2 February 2015

writing test classes



Here are some best practices that I felt need to be followed while writing test classes in Salesforce , Do add your thoughts too

1. All test methods should reside in a separate class from the class in which the method being tested resides.





2. These classes should be appended with the word Test followed by the name of the class being tested, e.g. OpportunityServicesTest.

3. These classes should all use the @isTest annotation.

4. 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”

5. There should be a minimum of “Null Pointer Exception test” as part of negative testing for each method, specially the methods that accept parameters.

6. A method without an assert statement is not considered a test method. Large number of relevant assert statements increases confidence in the correct behaviour of business logic.

7. There should be a comment with each assert statement explaining what is being tested and what the expected output is

8. Only use isTest(SeeAllData = true) on class methods in exceptional cases where there are sObjects that doesn't allow DML operation e.g. PriceBook creation

9. No hard coded ids of any sObject in any test method.

10. If a Constant needs to be asserted ,its a best practice to reference that from the Constant class or from Custom Labels or Custom Settings. Using hard coded string in unit tests( or any class for that matter) will trigger failures when things like Picklist values change

11. 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.

12. Any business logic that needs to be tested should be enveloped within a Test.runAs(user) statement so profile restrictions can be tested. . Using any admin profiles should be avoided.

13. All private methods should also have its corresponding unit test method. In the production code, add a public method for each private method and prepend it by “exposeForUnitTest_”.

14. Creating multiple test method for testing that same production code method should be avoided. We want to ensure that our unit test methods are properly testing the logic but the same time the efficiency of the unit test method should not be ignored.

15. All the unit test methods run with every deployment so the cumulative run time should be as small as possible

16. Any asynchronous method testing should include Test.startTest and Test.stopTest. Test.stopTest forces the asynchronous methods to run so the results could be asserted.

17. Any exceptions that are caught in the production methods should be tested by feeding the test data that throws exception. Exception Type and error message should be asserted.


18. Every class should have test coverage close to 95% as possible. The focus should be on asserting method behaviour rather than increasing coverage.

"Sharing is Caring" please share this article

19. There are very few instances where a method behaviour is not straightforward to reproduce and hence test. These should be properly commented.

Key Concepts 401

The Salesforce Certified Force.com Developer Exam (DEV 401) is a pretty comprehensive test that covers most of the point-and-click development a developer would need to do in practice, but there are a few concepts that tend to come up more frequently and, hence, are worth studying in depth.

Before you walk into your DEV 401 exam, you should have a solid understanding of the following:
What are the different types of object relationships and what are the considerations when choosing which to use?
What is the difference between profiles, roles, and public groups?
How do organization-wide defaults (OWD) control data security and what is the appropriate OWD for particular scenarios?
When should you use the Data Loader and when is the Import Wizard more appropriate?

There are a lot more topics on the DEV 401 exam, but it would be hard to pass the exam without knowing the above. So, let’s dive in to those topics.

What are the different types of object relationships and what are the considerations when choosing which to use?

There are 4 types of object relationships:
Master-detail
Many-to-many
Lookup
Hierarchical

When determining which to use, you need to consider data access requirements and how they handle data deletion.

What is the difference between profiles, roles, and public groups?

A profile is assigned to each user and this determines what that user can do and the data they can access. A role is a user’s position in the organization’s hierarchy and can impact their data access depending on your OWD. Public groups are groups of users created for specific business requirements to allow them additional data access or sharing.

How do organization-wide defaults (OWD) control data security and what is the appropriate OWD for particular scenarios?

Organization wide defaults are the default level of data access for users in the organization. It is a record-level security setting. In the absence of being specifically granted additional data access, a user will have the level of access specified in OWD. OWD can be set to private, public read only, or public read/write. Some objects have additional options such as public read/write/transfer, use, and controlled by parent.

When should you use the Data Loader and when is the Import Wizard more appropriate?

The Import Wizard can be used when you are importing less than 50,000 records and would like Salesforce to prevent duplicates. Only accounts, contacts, leads, solutions, and custom objects can be imported with the Import Wizard so you would need to use the Data Loader to import something like Opportunities.

The Data Loader should be used when you are importing between 50,000 and 5 million records. It should also be used when you’re importing an object like opportunities that cannot be handled by the Import Wizard. It’s also worth noting the Data Loader is only available on Enterprise, Unlimited, Developer, and Database.com editions.

In practice, you can always use the Data Loader if its your preference, but its downside is that it won’t prevent duplicates like the Import Wizard will.


Good luck!

Sunday 1 February 2015

User Profiles Overview

A profile contains user permissions and access settings that control what users can do within Salesforce, the partner portal, and the Customer Portal

Depending on which profile user interface is enabled in your organization, you can:
  1.  View and edit profiles in the enhanced profile user interface
  2.  View and edit profiles in the original profile user interface
You can also change permissions in multiple profiles from the list view.

Profiles control:

  1.  Which standard and custom apps users can view
  2. Which tabs users can view
  3.  Which record types are available to users
  4.  Which page layouts users see
  5.  Object permissions that allow users to create, read, edit, and delete records
  6.  Which fields within objects users can view and edit
  7.  Permissions that allow users to manage the system and apps within it
  8.  Which Apex classes and Visualforce pages users can access
  9.  Which desktop clients users can access
  10.  The hours during which and IP addresses from which users can log in
  11.  Which service providers users can access (if Salesforce is enabled as an identity provider)
Note:


Chatter customers (users with the Chatter External User profile) can only see groups they belong to and people in those groups; they can't see any Salesforce information. If your organization uses a custom domain or IP restrictions, it's recommended that users with the Chatter External User log in using single sign-on.

Every organization has standard profiles. In Contact Manager, Group, and Professional Edition organizations, you can assign standard profiles to your users, but you can't view or edit the standard profiles or create custom profiles. In Enterprise, Unlimited, and Developer Edition organizations, you can use standard profiles, or create, edit, and delete custom profiles. For standard profiles, only certain settings can be changed.

Thursday 29 January 2015

Dynamic Visualforce Components

Visualforce is primarily intended to be a static, markup-driven language that lets developers create a user interface that matches the Salesforce look-and-feel. However, there are occasions when it is necessary to programmatically create a page. Usually, this is to achieve complicated user interface behavior that is difficult or impossible with standard markup.

Dynamic Visualforce components offer a way to create Visualforce pages that vary the content or arrangement of the component tree according to a variety of states, such as a user’s permissions or actions, user or organization preferences, the data being displayed, and so on. Rather than using standard markup, dynamic Visualforce components are designed in Apex.

A dynamic Visualforce component is defined in Apex like this:

Component.Component_namespace.Component_name

For example, <apex:dataTable> becomes Component.Apex.DataTable.

The Standard Component Reference contains the dynamic representation for all valid Visualforce components.

Visualforce components that are dynamically represented in Apex behave like regular classes. Every attribute that exists on a standard Visualforce component is available as a property in the corresponding Apex representation with get and set methods. For example, you could manipulate the value attribute on an <apex:outputText> component as follows:

Component.Apex.OutputText outText = new Component.Apex.OutputText();

outText.value = 'Some dynamic output text.';

Consider using dynamic Visualforce components in the following scenarios:

You can use dynamic Visualforce components inside complex control logic to assemble components in combinations that would be challenging or impossible to create using equivalent standard Visualforce. For example, with standardVisualforce components, you typically control the visibility of components using the rendered attribute with the global IF() formula function. By writing your control logic in Apex, you can choose to display components dynamically with a more natural mechanism.

If you know that you’ll be iterating over objects with certain fields, but not specifically which objects, dynamic Visualforce components can “plug in” the object representation by using a generic sObject reference.


Dynamic Visualforce components are not intended to be the primary way to create new Visualforce pages in your organization. Existing Visualforce pages shouldn’t be rewritten in a dynamic manner and, for most use cases, standard Visualforce components are acceptable and preferred. You should only use dynamic Visualforce components when the page must adapt itself to user state or actions in ways that can’t be elegantly coded into static markup.


This tag acts as a placeholder for your dynamic Apex components. It has one required parameter—componentValue—which accepts the name of an Apex method that returns a dynamic component.

The following Visualforce components do not have dynamic Apex representations:

<apex:attribute>

<apex:component>

<apex:componentBody>

<apex:composition>

<apex:define>

<apex:dynamicComponent>

<apex:include>

<apex:insert>

<apex:param>

<apex:variable>

===========

Example

========

<apex:page controller="SimpleDynamicController">

<apex:dynamicComponent componentValue="{!dynamicDetail}" />

</apex:page>


/* Controller */

public class SimpleDynamicController {

public Component.Apex.Detail getDynamicDetail() {

Component.Apex.Detail detail = new Component.Apex.Detail();

detail.expressions.subject = '{!acct.OwnerId}';

detail.relatedList = false;

detail.title = false;

return detail;

}


// Just return the first Account, for example purposes only



public Account acct {

get { return [SELECT Id, Name, OwnerId FROM Account LIMIT 1]; }

}

}

Tuesday 27 January 2015

EXECUTING ANONYMOUS APEX INSIDE ECLIPSE

One of the most underutilized programming techniques in Force.com is the ability to execute a snippet of apex code "anonymously". I know, it has a funny ring to it. Anonymous code is basically just a block of code that doesn't get stored inside Salesforce.com. This is nice, because often times you just want to try part of a method out or execute a SOQL statement without going through the hassle of adding it to a trigger or a class.

This is a great technique to quickly evaluate or debug a statement of code on-the-fly. There are a couple of ways you can do this.


Open up the Developer Console inside Salesforce
The executeAnonymousWeb services API call
Inside Eclipse/Force.com IDE

I typically do this inside Eclipse so I thought I would quickly highlight how to do that and include a screenshot as a guide. When you have the Force.com IDE plugin installed in Eclipse, all you have to do is navigate to the Execute Anonymous tab. If you don't see the tab, make sure you've got the Force.com perspective open (opens by default when you create a new Force.com project).

Inside the tab, you'll see a dropdown for the active project, a log category dropdown (apex code, apex profiling, callout, database, validation, workflow) and a log level slider.

Below those settings, you'll see a "Source to execute" textbox. Here is where you will actually type your code snippet.

Now all you have to do is run it by clicking "Execute Anonymous". If there are any syntax errors, you'll see those below in the results window. If the code compiles, it will run and you'll see the output below. Don't get discouraged if the output looks a little verbose and hard to read. You can always adjust the slider over to the left and show less information.


Thursday 22 January 2015

Advanced Formula Fields in Salesforce

Use the following formula samples when creating custom formula fields. For samples of other types of formulas, see Examples of Validation Rules and Useful Default Field Value Formulas.

This document contains the following categories of custom formula samples:

Account Management

Account Rating

This formula evaluates Annual Revenue, Billing Country, and Type, and assigns a value of “Hot,” “Warm,” or “Cold.”

IF (AND (AnnualRevenue > 10000000,

CONTAINS (CASE (BillingCountry, "United States", "US", "America", "US", "USA", "US", "NA"), "US")),

IF(ISPICKVAL(Type, "Manufacturing Partner"), "Hot",

IF(OR (ISPICKVAL (Type, "Channel Partner/Reseller"),

ISPICKVAL(Type, "Installation Partner")), "Warm", "Cold")),

"Cold")

For details about using these functions, see IF, AND, CONTAINS, CASE, and ISPICKVAL.

In addition, you can reference this Account Rating formula field from the contact object using cross-object formulas.

Account.Account_Rating__c

Account Region

This formula returns a text value of “North,” “South,” “East,” “West,” or “Central” based on the Billing State/Province of the account.

IF(ISBLANK(BillingState), "None",

IF(CONTAINS("AK:AZ:CA:HA:NV:NM:OR:UT:WA", BillingState), "West",

IF(CONTAINS("CO:ID:MT:KS:OK:TX:WY", BillingState), "Central",

IF(CONTAINS("CT:ME:MA:NH:NY:PA:RI:VT", BillingState), "East",

IF(CONTAINS("AL:AR:DC:DE:FL:GA:KY:LA:MD:MS:NC:NJ:SC:TN:VA:WV", BillingState), "South",

IF(CONTAINS("IL:IN:IA:MI:MN:MO:NE:ND:OH:SD:WI", BillingState), "North", "Other"))))))

For details about using these functions, see IF, LEN, and CONTAINS.

Contract Aging

This formula calculates the number of days since a contract with an account was activated. If the contract Status is not “Activated,” this field is blank.

IF(ISPICKVAL(Contract_Status__c, "Activated"),

NOW() - Contract_Activated_Date__c, null)

For details about using these functions, see IF, ISPICKVAL, and NOW.

Contract Approval Process Aging

This formula calculates how many days a contract is in the approval process. This example is a number formula field on contracts that uses a custom date field called Date in approval.

TODAY()-Date_in_approval__c

For details about using this function, see TODAY.

Month of Last Account Activity

This formula field displays the month of the last account activity or “None” if there are no activities for the account.

CASE(MONTH(LastActivityDate),

1, "January",

2, "February",

3, "March",

4, "April",

5, "May",

6, "June",

7, "July",

8, "August",

9, "September",

10, "October",

11, "November",

12, "December",

"None")

For details about using these functions, see CASE and MONTH.

Month of Service-Level Agreement Expiration

This formula returns the month that your service-level agreement expires. This example uses a custom date field called SLA Expiration Date.

MONTH(SLAExpirationDate__c)

For details about using this function, see MONTH.

Account Media Service Links

BBC™ News Search

This formula creates a link to a BBC news search site based on the Account Name.

HYPERLINK(

"http://newssearch.bbc.co.uk/cgi-bin/search/results.pl?scope=newsifs;tab=news;q="&Name,

"BBC News")

Bloomberg™ News Search

This formula creates a link to an account's ticker symbol on the Bloomberg website.

HYPERLINK(

"http://www.bloomberg.com/apps/quote?ticker="&TickerSymbol,

"Bloomberg News")


CNN™ News Search

This formula creates a link to a CNN news search site using the Account Name.


HYPERLINK(

"http://websearch.cnn.com/search/search?source=cnn&

invocationType=search%2Ftop&sites=web&query="&Name,

"CNN News")


MarketWatch™ Search


This formula creates a link to an account's ticker symbol on the Marketwatch.com website.

HYPERLINK(

"http://www.marketwatch.com/tools/quotes/quotes.asp?symb="&TickerSymbol,

"Marketwatch")


Google™ Search

This formula creates a link to a Google search site using the Account Name.


HYPERLINK(

"http://www.google.com/search?en&q="&Name,

"Google")

Google News Search

This formula creates a link to a Google news search site using the Account Name

HYPERLINK(

"http://www.google.com/news?en&q="&Name,

"Google News")

Yahoo!™ Search

This formula creates a link to a Yahoo! search site using the Account Name.

HYPERLINK(

"http://search.yahoo.com/search?p="&Name,

"Yahoo Search")

Yahoo! News Search

This formula creates a link to a Yahoo! news search site using the Account Name.

HYPERLINK(

"http://news.search.yahoo.com/search/news?p="&Name,

"Yahoo News")

For details about using the function used in these formulas, see HYPERLINK.

Case Management


Autodial

This formula creates a linkable phone number field that automatically dials the phone number when clicked. In this example, replace "servername" and "call" with the name of your dialing tool and the command it uses to dial. The merge field, Id, inserts the identifier for the contact, lead, or account record. The first Phone merge field tells the dialing tool what number to call and the last Phone merge field uses the value of the Phone field as the linkable text the user clicks to dial.

HYPERLINK("http://servername/call?id="

& Id & "&phone=" & Phone, Phone)

For details about using this function, see HYPERLINK.

Case Aging (Assignments)

Use this example of a custom formula field called Days Open to display different text depending on the number of days a case has been open:

CASE(Days_Open__c, 3,

"Reassign", 2, "Assign Task", "Maintain")

The following text is displayed:

§ “Reassign” for any case open three days.

§ “Assign Task” for any case open two days.

§ “Maintain” for all other cases.

For details about using this function, see CASE.

Case Aging (Open Cases)

This formula calculates the number of days a case has been open. If the case is closed, it sets the result to null. Add this formula to a related list as the sort column to quickly see which open cases have been open the longest. The formula returns zero if the case has been open for less than 24 hours.

IF(IsClosed,

null,

NOW() - CreatedDate )

For details about using these functions, see IF and NOW.

Case Aging (Open and Closed Cases)

This formula calculates the number of days a closed case was open or the number of days an open case has been open since the date the case was created. The formula returns zero if the case has been open for less than 24 hours.

IF(IsClosed,

ROUND(ClosedDate - CreatedDate, 0), ROUND((NOW() - CreatedDate),0))

For details about using these functions, see IF, ROUND, and NOW.

Case Categorization

This formula displays a text value of “RED,” “YELLOW,” or “GREEN,” depending on the value of a case age custom text field.

IF(DaysOpen__c > 20, "RED",

IF(DaysOpen__c > 10, "YELLOW",

"GREEN") )

For details about using this function, see IF.

Case Data Completeness Tracking

This formula calculates the percentage of specific custom fields that contain data. The formula checks the values of two custom number fields: Problem Num and Severity Num. If the fields are empty, the formula returns the value “0.” The formula returns a value of “1” for each field that contains a value and multiplies this total by fifty to give you the percentage of fields that contain data.

(IF(ISBLANK(Problem_Num__c), 0, 1) + IF(ISBLANK(Severity_Num__c ), 0,1)) * 50

For details about using these functions, see IF and ISBLANK.

Case Due Date Calculation

This formula sets the due date of a case based on the priority. If it is high, the due date is two days after it opens. If it is medium, the due date is five days after opening. Otherwise, the due date is seven days.

CASE (Priority,

"High", CreatedDate + 2,

"Medium",CreatedDate + 5,

CreatedDate + 7)

For details about using this function, see CASE.

Suggested Agent Prompts

This formula prompts an agent with cross-sell offers based on past purchases.

CASE(Product_Purch__c,

"Printer", "Extra toner cartridges", "Camera", "Memory cards",

"Special of the day")

For details about using this function, see CASE.

Suggested Offers

This formula suggests a product based on the support history for a computer reseller. When the Problem custom field matches a field, the formula field returns a suggestion.

CASE(Problem__c,

"Memory", "Suggest new memory cards", "Hard Drive failure", "Suggest new hard drive with tape backup",

"")

For details about using this function, see CASE.

Commission Calculations

Commission Amounts for Opportunities

The following is a simple formula where commission is based on a flat 2% of the opportunity Amount.

IF(ISPICKVAL(StageName, "Closed Won"),

ROUND(Amount *0.02, 2), 0)

This example calculates the commission amount for any opportunity that has a “Closed Won” stage. The value of this field will be the amount times 0.02 for any closed/won opportunity. Open or lost opportunities will have a zero commission value.

For details about using these functions, see IF, ISPICKVAL, and ROUND.

Commission Deal Size

This formula calculates a commission rate based on deal size, returning a 9% commission rate for deals over 100,000 and an 8% commission rate for smaller deals.

IF(Amount > 100000, 0.09, 0.08 )

For details about using this function, see IF.

Commission Greater Than or Equal To

This formula assigns the “YES” value to opportunities with a commission greater than or equal to one million. Note, this is a text formula field on opportunities that uses a custom currency field called Commission

IF(Commission__c >= 1000000, "YES", "NO")

For details about using this function, see IF.

Commission Maximum

This formula determines what commission to log for an asset based on which is greater: the user's commission percentage of the price, the price times the discount percent stored for the account or 100 dollars. This example assumes you have two custom percent fields on users and assets.

MAX($User.Commission_Percent__c * Price,

​Price * Account_Discount__c, 100)

For details about using this function, see MAX.

Contact Management

Contact's Account Creation Date

This date formula displays the account's Created Date field on the contacts page.

Account.CreatedDate

Contact's Account Discount Percent

This percent formula displays the account's Discount Percent field on the contacts page.

Account.Discount_Percent__c

Contact's Account Name

This formula displays the standard Account Name field on the contacts page.

Account.Name

Contact's Account Phone

This formula displays the standard Account Phone field on the contacts page.

Account.Phone

Contact's Account Rating

Use this formula to display the Account Rating field on the contacts page.

CASE(Account.Rating, "Hot", "Hot", "Warm", "Warm", "Cold", "Cold", "Not Rated")

For details about using this function, see CASE.

Contact's Account Website

This formula displays the standard Account Website field on the contacts page.

Account.Website

If the account website URL is long, use the HYPERLINK function to display a label such as “Click Here” instead of the URL. For example:

IF(Account.Website="", "",

IF(

OR(LEFT(Account.Website, 7) = "http://",LEFT(Account.Website, 8) = "https://"),

HYPERLINK( Account.Website , "Click Here" ),

HYPERLINK( "http://" & Account.Website , "Click Here" )

)

)

This formula also adds the necessary "http://" or "https://" before a URL if neither were included in the URL field.

For details about using this function, see HYPERLINK.

Contact’s Age

Use this formula to calculate a person’s age based on a standard field called Birthdate. The person’s Birthdate is subtracted from today’s date, which returns the number of days since the person’s Birthdate. This number is divided by the number of days in a year and rounded down to the nearest integer.

FLOOR((TODAY()-Birthdate)/365.2425)

For details about using these functions, see FLOOR and TODAY.

Contact's Birthday

This formula displays the value “Yes” if the contact’s birthday falls in the current calendar month

IF (

MONTH( Birthdate) = MONTH( TODAY()), "Yes", "")

For details about using these functions, see IF, MONTH, and TODAY.

Contact's LinkedIn™ Profile

You can configure a link that appears on your contacts' profile page that sends you to their LinkedIn profile. To do so:




1. Click SetupCustomizeContactsButtons and Links.

2. Click New under Custom Buttons and Links

3. Enter a Label for this link, like LinkedInLink.

4. Enter this formula in the content box:




http://www.linkedin.com/search/fpsearch?type=people&keywords={!Contact.FirstName}+{!Contact.LastName}

5. Click Save.







Contact Identification Numbering

This formula displays the first five characters of the contact’s last name and the last four characters of the contact’s social security number separated by a dash. Note that this example uses a text custom field called SSN on contacts.

TRIM(LEFT(LastName,

5)) & "-" & TRIM(RIGHT(SSN__c, 4))

For details about using these functions, see TRIM, LEFT, and RIGHT.

Contact Preferred Phone

This formula displays the contact’s preferred contact method in a contact related list—work phone, home phone, or mobile phone—based on a selected option in a Preferred Phone custom picklist.

CASE(Preferred_Phone__c,

"Work", "w. " & Phone,

"Home", "h. " & HomePhone,

"Mobile", "m. " & MobilePhone,

"No Preferred Phone")

For details about using this function, see CASE.

Contact Priority

This formula assesses the importance of a contact based on the account rating and the contact's title. If the account rating is Hot or the title starts with Executive, then the priority is high (P1). If the account rating is Warm or the title starts withVP then the priority is medium (P2), and if the account rating is Cold then the priority is low (P3).

IF(OR(ISPICKVAL(Account.Rating, "Hot"), CONTAINS(Title, "Executive")), "P1",

IF(OR(ISPICKVAL(Account.Rating, "Warm"), CONTAINS(Title, "VP")), "P2",

IF(ISPICKVAL(Account.Rating, "Cold"), "P3",

"P3")

)

)

Contact Yahoo! ID

This formula displays a clickable Yahoo! Messenger icon indicating if the person is logged on to the service. Users can click the icon to launch a Yahoo! Messenger conversation with the person. This example uses a custom text field calledYahoo Name on contacts where you can store the contact's Yahoo! Messenger ID.

HYPERLINK("ymsgr:sendIM?"

& Yahoo_Name__c, IMAGE("http://opi.yahoo.com/online?u=" &

Yahoo_Name__c & "&m;=g&t;=0", "Yahoo"))

For details about using these functions, see HYPERLINK and IMAGE.

Dynamic Address Formatting

This formula field displays a formatted mailing address for a contact in standard format, including spaces and line breaks where appropriate depending on the country for the account.

CASE(ShippingCountry,

"USA",

ShippingStreet & BR() &

ShippingCity & ",

" & ShippingState & " " &

ShippingPostalCode & BR()

& ShippingCountry,

"France",

ShippingStreet & BR() &

ShippingPostalCode & " " &

ShippingCity & BR() &

ShippingCountry, "etc")

For details about using this function, see CASE and BR.

Telephone Country Code

This formula determines the telephone country code of a contact based on the Mailing Country of the mailing address.

CASE(MailingCountry,

"USA", "1",

"Canada", "1",

"France", "33",

"UK", "44",

"Australia", "61",

"Japan", "81",

"?")

For details about using this function, see CASE.

Unformatted Phone Number

This formula removes the parentheses and dash characters from North American phone numbers. This is necessary for some auto-dialer software.

IF(Country_Code__c = "1", MID( Phone ,2, 3) & MID(Phone,7,3) & MID(Phone,11,4), Phone)

For details about using these functions, see IF and MID.

Data Categorization

Deal Size Large and Small

This formula displays “Large Deal” for deals over one million dollars or “Small Deal” for deals under one million dollars.

IF(Sales_Price__c > 1000000,

"Large Deal",

"Small Deal")

For details about using this function, see IF.

Deal Size Small

This formula displays “Small” if the price and quantity are less than one. This field is blank if the asset has a price or quantity greater than one.

IF(AND(Price<1,Quantity<1),"Small",

null)

For details about using these functions, see IF and AND.

Product Categorization

This formula checks the content of a custom text field named Product_Type and returns “Parts” for any product with the word “part” in it. Otherwise, it returns “Service.” Note that the values are case sensitive, so if a Product_Type field contains the text “Part” or “PART,” this formula returns “Services.”

IF(CONTAINS(Product_Type__c, "part"), "Parts", "Service")

For details about using these functions, see IF and CONTAINS.

Date Calculations

Birthday in Current Year Accounting for Leap Years

This formula returns the date of a person's birthday in the current year, even if the person's birthday is on February 29th in a leap year.




IF(AND(MONTH(Birthdate) = 2, DAY(Birthdate) = 29),

(IF(OR(MOD(YEAR(DATEVALUE(NOW())), 400) = 0, AND(MOD(YEAR(DATEVALUE(NOW())) ,4) = 0, MOD(YEAR(DATEVALUE(NOW())), 100) <> 0)),

DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate), DAY(Birthdate)),

DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate + 1), 28))),

(DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate) , DAY(Birthdate))))




Day of Week (number)

This formula calculates today’s day of the week as a number (0 = Sunday, 1 = Monday, 2 = Tuesday, and so on).

MOD(TODAY() - DATE(1900, 1, 7), 7)

Similarly, this formula substitutes the TODAY() function shown in the previous example with a custom date field called Sign Up Date. It returns the day of the week as a number for that field.

MOD(Sign_Up_Date__c - DATE(1900, 1, 7), 7)

For details about using these functions, see MOD, TODAY, and DATE.

Day of Week (text)

This formula calculates today’s day of the week and displays it as text. To determine the day of the week for a date field, use the formula below and replace “TODAY()” with that date field.

CASE(

MOD(TODAY() - DATE(1900, 1, 7), 7),

0, "Sunday",

1, "Monday",

2, "Tuesday",

3, "Wednesday",

4, "Thursday",

5, "Friday",

6, "Saturday", "Error")

For details about using these functions, see CASE, MOD, TODAY, and DATE.

Day of Year

This formula calculates today’s numeric day of the year (a number between 1 and 365).

TODAY() – DATE(YEAR(TODAY()), 1, 1) + 1

For details about using these functions, see TODAY, DATE, and YEAR.

Days Until End of Month

This formula displays the number of days between a specific date and the end of the month in which the date occurs.

IF(

MONTH(CloseDate)=12,

DATE(YEAR(CloseDate),12,31) - CloseDate,

DATE(YEAR(CloseDate),

MONTH(CloseDate)+1,1) - CloseDate-1)

For details about using these functions, see IF, MONTH, DATE, and YEAR.

Time of Day

This formula returns the time of day in Greenwich Mean Time (GMT), for example: “20:04 PM”).

MID (TEXT (Due_Date_Time__c), 12, 5)

For details about using these functions, see MID and TEXT.

Discounting

Maintenance and Services Discount

This formula field uses two custom currency fields: Maintenance Amount and Services Amount. It displays “Discounted” on an opportunity if its maintenance amount and services amount do not equal the opportunity Amount standard field value. Otherwise, it displays "Full Price."

IF(Maintenance_Amount__c + Services_Amount__c <> Amount,

"Discounted",

"Full Price")

For details about using this function, see IF.

Opportunity Discount Amount

This formula calculates the difference of the opportunity Amount less the Discount Amount. Note that Discount Amount is a custom currency field on opportunities.

Amount

- Discount_Amount__c

For details about using this operator, see - (Subtract).

Opportunity Discount Rounded

Use this formula to calculate the discounted amount of an opportunity rounded off to two digits. This example is a number formula field on opportunities that uses a custom percent field called Discount Percent.

ROUND(Amount-Amount* Discount_Percent__c,2)

For details about using this function, see ROUND.

Opportunity Discount with Approval

This formula adds a “Discount Approved” checkbox to an opportunity. It uses conditional logic to check the value of the approval flag before calculating the commission.

IF(Discount_Approved__c, ROUND(Amount – Amount * DiscountPercent__c, 2), Amount)

For details about using these functions, see IF and ROUND.

Employee Services

Bonus Calculation

This example determines an employee's bonus amount based on the smallest of two amounts: the employee's gross times bonus percent or an equally divided amount of the company's performance amount among all employees. It assumes you have custom number field for Number of Employees, a custom percent field for Bonus Percent, and currency custom fields for the employee's Gross and company's Performance.

MIN(Gross__c * Bonus_Percent__c, ​

Performance__c / Number_of_Employees__c)

For details about using this function, see MIN.

Employee 401K

This example formula determines which amount to provide in employee 401K matching based on a matching program of half of the employee's contribution or $250, whichever is less. It assumes you have custom currency field forContribution.

MIN(250, Contribution__c /2)

For details about using this function, see MIN.

Hours Worked Per Week

This formula uses a custom tab to enable time tracking of hours worked per day. It uses a formula field to sum the hours per week.

MonHours__c + TuesHours__c + WedsHours__c + ThursHours__c + FriHours__c

For details about using this operator, see + (Add).

Total Pay Amount

This formula determines total pay by calculating regular hours multiplied by a regular pay rate, plus overtime hours multiplied by an overtime pay rate.

Total Pay =

IF(Total_Hours__c <= 40, Total_Hours__c * Hourly_Rate__c,

40 * Hourly_Rate__c +

(Total_Hours__c - 40) * Overtime_Rate__c)

For details about using this function, see IF.

Expense Tracking

Expense Identifier

This formula displays the text “Expense-” followed by trip name and the expense number. This is a text formula field that uses an expense number custom field.

"Expense-"

& Trip_Name__c & "-" & ExpenseNum__c

For details about using this operator, see - (Subtract).

Mileage Calculation

This formula calculates mileage expenses for visiting a customer site at 35 cents a mile.

Miles_Driven__c * 0.35

For details about using this operator, see * (Multiply).

Financial Calculations

Compound Interest

This formula calculates the interest, you will have after T years, compounded M times per year.

Principal__c * ( 1 + Rate__c / M ) ^ ( T * M) )

For details about using these operators, see * (Multiply), / (Divide), and ^ (Exponentiation).

Compound Interest Continuous

This formula calculates the interest that will have accumulated after T years, if continuously compounded.

Principal__c * EXP(Rate__c * T)

For details about using this function, see EXP.

Consultant Cost

This formula calculates the number of consulting days times 1200 given that this formula field is a currency data type and consulting charges a rate of $1200 per day. Note that Consulting Days is a custom field on opportunities.

Consulting_Days__c

* 1200

For details about using this operator, see * (Multiply).

Gross Margin

This formula provides a simple calculation of gross margin. In this formula example, Total Sales and Cost of Goods Sold are custom currency fields.

Total_Sales__c - Cost_of_Goods_Sold__c

For details about using this operator, see - (Subtract).

Gross Margin Percent

This formula calculates the gross margin based on a margin percent

Margin_percent__c * Items_Sold__c * Price_item__c

For details about using this operator, see * (Multiply).

Payment Due Indicator

This formula returns the date five days after the contract start date whenever Payment Due Date is blank. Payment Due Date is a custom date field on contracts.

(BLANKVALUE(Payment_Due_Date__c, StartDate

+5)

For details about using this function, see BLANKVALUE.

Payment Status

This formula determines if the payment due date is past and the payment status is “UNPAID.” If so, it returns the text “PAYMENT OVERDUE” and if not, it leaves the field blank. This example uses a custom date field called Payment Due Dateand a text custom field called Payment Status on contracts.

IF(

AND(Payment_Due_Date__c < TODAY(),

ISPICKVAL(Payment_Status__c, "UNPAID")),

"PAYMENT OVERDUE",

null )

For details about using these functions, see IF, AND, TODAY, and ISPICKVAL.

Image Links

Yahoo! Instant Messenger™ Image

This formula displays an image that indicates whether a contact or user is currently logged in to Yahoo! Instant Messenger. Clicking the image launches the Yahoo! Instant Messenger window. This formula uses a custom text field called Yahoo Name to store the contact or user’s Yahoo! ID.

IF(ISBLANK(Yahoo_Name__c),"", HYPERLINK("ymsgr:sendIM?" & Yahoo_Name__c,

IMAGE("http://opi.yahoo.com/online?u=" & Yahoo_Name__c & "&m=g&t=0", " ")))

For details about using these functions, see IF, LEN, HYPERLINK, and IMAGE.

“Skype Me™” Auto Dialer Button

This formula displays an image that looks like a push button. Clicking the button automatically dials the specified phone number.

HYPERLINK("callto://" & "+1" & Phone,

IMAGE("http://goodies.skype.com/graphics/skypeme_btn_small_blue.gif",

"Click to Skype"))

For details about using these functions, see HYPERLINK and IMAGE.

Flags for Case Priority

This formula displays a green, yellow, or red flag image to indicate case priority.

IMAGE(

CASE( Priority,

"Low", "/img/samples/flag_green.gif",

"Medium", "/img/samples/flag_yellow.gif",

"High", "/img/samples/flag_red.gif",

"/s.gif"),

"Priority Flag")

For details about using this function, see IMAGE.

Color Squares for Case Age

This formula displays a 30 x 30 pixel image of a red, yellow, or green, depending on the value of a Case Age custom text field.

IF( Case_Age__c > 20,

IMAGE("/img/samples/color_red.gif", "red", 30, 30),

IF( Case_Age__c > 10,

IMAGE("/img/samples/color_yellow.gif", "yellow", 30, 30),

IMAGE("/img/samples/color_green.gif", "green", 30, 30),

))

For details about using these functions, see IF and IMAGE.

Traffic Lights for Status

This formula displays a green, yellow, or red traffic light images to indicate status, using a custom picklist field called Project Status. Use this formula in list views and reports to create a “Status Summary” dashboard view.

IMAGE(

CASE(Project_Status__c,

"Green", "/img/samples/light_green.gif",

"Yellow", "/img/samples/light_yellow.gif",

"Red", "/img/samples/light_red.gif",

"/s.gif"),

"status color")

For details about using these functions, see IMAGE and CASE.

Stars for Ratings

This formula displays a set of one to five stars to indicate a rating or score.

IMAGE(

CASE(Rating__c,

"1", "/img/samples/stars_100.gif",

"2", "/img/samples/stars_200.gif",

"3", "/img/samples/stars_300.gif",

"4", "/img/samples/stars_400.gif",

"5", "/img/samples/stars_500.gif",

"/img/samples/stars_000.gif"),

"rating")




For details about using these functions, see IMAGE and CASE.

Consumer Reports™-Style Colored Circles for Ratings

This formula displays a colored circle to indicate a rating on a scale of one to five, where solid red is one, half red is two, black outline is three, half black is four, and solid black is five.

IMAGE(

CASE(Rating__c,

"1", "/img/samples/rating1.gif",

"2", "/img/samples/rating2.gif",

"3", "/img/samples/rating3.gif",

"4", "/img/samples/rating4.gif",

"5", "/img/samples/rating5.gif",

"/s.gif"),

"rating")

For details about using these functions, see IMAGE and CASE.

Horizontal Bars to Indicate Scoring

This formula displays a horizontal color bar (green on a white background) of a length that is proportional to a numeric score. In this example, the maximum length of the bar is 200 pixels.

IMAGE("/img/samples/color_green.gif", "green", 15, Industry_Score__c * 2) &

IMAGE("/s.gif", "white", 15,

200 - (Industry_Score__c * 2))

For details about using this function, see IMAGE.

Integration Links

Application API Link

This formula creates a link to an application outside Salesforce, passing the parameters so that it can connect to Salesforce via the Web services API and create the necessary event.

HYPERLINK ("https://www.myintegration.com?sId=" & GETSESSIONID() & "?&rowID=" & Name & "action=CreateTask","Create a Meeting Request")

For details about using these functions, see HYPERLINK and GETSESSIONID.

Shipment Tracking Integration

This formula creates a link to FedEx, UPS, or DHL shipment tracking websites, depending on the value of a Shipping Method custom picklist field. Note that the parameters shown in this example for FedEx, UPS, and DHL websites are illustrative and do not represent the correct parameters for all situations.

CASE(Shipping_Method__c,

"Fedex",

HYPERLINK("http://www.fedex.com/Tracking?ascend_header=1&clienttype

=dotcom&cntry_code=us&language=english&tracknumbers= "& tracking_id__c,"Track"),

"UPS",

HYPERLINK("http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion

=5.0&sort_by=status&loc=en_US&InquiryNumber1= "& tracking_id__c & "&track.x=32&track.y=7", "Track") ,

"DHL",

HYPERLINK("http://track.dhl-usa.com/TrackByNbr.asp?ShipmentNumber=" & tracking_id__c,"Track"), "")




For details about using these functions, see CASE and HYPERLINK.

Skype Auto Dialer Integration

This formula creates a linkable phone number field that automatically dials the phone number via the Skype VOIP phone application. It requires installation of the Skype application (a third-party product not provided by salesforce.com) on your desktop.

HYPERLINK("callto://+" & Country_Code__c & Phone_Unformatted__c, Phone)

For details about using this function, see HYPERLINK.

Lead Management

Lead Aging (for open leads)

This formula checks to see if a lead is open and if so, calculates the number of days it has been open by subtracting the date and time created from the current date and time. The result is the number of days open rounded to zero decimal places. If the lead is not open, this field is blank.

IF(ISPICKVAL(Status,

"Open"), ROUND(NOW()-CreatedDate, 0), null)

For details about using these functions, see IF, ISPICKVAL, ROUND, and NOW.

Lead Data Completeness

This formula calculates the percent of certain lead fields that your sales personnel enter. The formula field checks the values of two custom number fields: Phone and Email. If the fields are empty, the formula returns the value “0.” The formula returns a value of “1” for each field that contains a value and multiplies this total by fifty to give you the percentage of fields that contain data.

(IF(Phone = "", 0, 1) + IF(Email = "", 0, 1) ) * 50

For details about using this function, see IF.

Lead Numbering

This formula returns a number value for the text value in the auto-number field Lead Number. This can be useful if you want to use the Lead Number field in a calculation, such as round-robin or other routing purposes. Note that auto-number fields are text fields and must be converted to a number for numeric calculations.

VALUE(Lead_Number__c)

For details about using this function, see VALUE.

Round Robin Assignment of Cases or Leads

The following formula example for leads assumes you have three lead queues and you want to assign an equal number of incoming leads to each queue. You can also assign cases using a similar formula.

MOD(VALUE(Lead_Number__c),

3)

Metrics

Temperature Conversion

This formula converts Celsius degrees to Fahrenheit.

1.8 * degrees_celsius__c + 32

For details about using these operators, see * (Multiply) and + (Add).

Unit of Measure Conversion

This formula converts kilometers to miles.

Miles__c/.621371192

For details about using this operator, see / (Divide).

Opportunity Management

Days Left to Close

This formula returns the expected number of days left to the close date of an opportunity.

Expected_close_date__c -TODAY()




For details about using this function, see TODAY.

Display Close Month for Reporting Purposes

This formula returns the month in text for the close date of an opportunity. Use this example when building a custom report that groups opportunities by the month of the Close Date.

CASE(

MONTH(CloseDate),

1, "January",

2, "February",

3, "March",

4, "April",

5, "May",

6, "June",

7, "July",

8, "August",

9, "September",

10, "October",

11, "November",

12, "December",

"Invalid month")

For details about using these functions, see CASE and MONTH.

Expected Product Revenue

This formula calculates total revenue from multiple products, each with a different probability of closing.

ProductA_probability__c * ProductA_revenue__c + ProductB_probability__c * ProductB_revenue__c

For details about using these operators, see * (Multiply) and + (Add).

Maintenance Calculation

This formula calculates maintenance fees as 20% of license fees per year. Maintenance Years is a custom field on opportunities.

Amount * Maint_Years__c * 0.2

For details about using this operator, see * (Multiply).

Monthly Subscription-Based Calculated Amounts

This formula calculates an opportunity amount based on a monthly subscription rate multiplied by the subscription period.

Monthly_Amount__c * Subscription_Months__c

For details about using this operator, see * (Multiply).

Monthly Value

This formula divides total yearly value by 12 months.

Total_value__c / 12

For details about using this operator, see / (Divide).

Opportunity Additional Costs

This formula calculates the sum of the opportunity Amount, maintenance amount, and services fees. Note that Maint amount and Service Fees are custom currency fields on opportunities.

Amount

+ Maint_Amount__c + Services_Amount__c

For details about using this operator, see + (Add).

Opportunity Categorization

This formula uses conditional logic to populate an Opportunity category text field, based on the value of the Amount standard field. Opportunities with amounts less than $1500 are “Category 1,” those between $1500 and $10000 are “Category 2,” and the rest are “Category 3.” This example uses nested IF statements.

IF(Amount < 1500, "Category 1", IF(Amount > 10000, "Category 3", "Category 2"))

For details about using this function, see IF.

Opportunity Data Completeness

This formula takes a group of opportunity fields and calculates what percent of them are being used by your sales personnel. This formula field checks five fields to see if they are blank. If so, a zero is counted for that field. A “1” is counted for any field that contains a value and this total is divided by five (the number of fields evaluated). Note that this formula requires you select the Treat blank fields as blanks option under Blank Field Handling while the Advanced Formula subtab is showing.

(IF(ISBLANK(Maint_Amount__c), 0, 1) + ​

IF(ISBLANK(Services_Amount__c), 0,1) + ​

IF(ISBLANK(Discount_Percent__c), 0, 1) + ​

IF(ISBLANK(Amount), 0, 1) +​

IF(ISBLANK(Timeline__c), 0, 1)) / 5

For details about using this function, see ISBLANK.

Opportunity Expected License Revenue

This formula calculates expected revenue for licenses based on probability of closing.

Expected_rev_licenses__c * Probability

For details about using this operator, see * (Multiply).

Opportunity Reminder Date

This formula creates reminder date based on seven days before the close date of an opportunity. Use this formula field in a workflow rule to create an event for the appropriate user to take action.

Reminder Date = CloseDate - 7

For details about using these operators, see = and == (Equal) and - (Subtract).

Opportunity Revenue Text Display

This formula returns the expected revenue amount of an opportunity in text format without a dollar sign. For example, if the Expected Revenue of a campaign is “$200,000,” this formula field displays “200000.”

TEXT(ExpectedRevenue)

For details about using this function, see TEXT.

Opportunity Split Credit for Sales Representatives

This formula splits opportunity amount between multiple sales representatives. The total reps custom field indicates the total number of representatives on the deal.

Amount / total_reps__c

For details about using this operator, see / (Divide).

Opportunity Total Deal Size

This formula calculates the sum of maintenance and services amounts.

Amount + Maint_Amount__c + Services_Amount__c

For details about using this operator, see + (Add).

Opportunity Total Price Based on Units

This formula generates proposal pricing based on unit price and total volume.

Unit_price__c * Volume__c * 20

For details about using this operator, see * (Multiply).

Professional Services Calculation

This formula estimates professional service fees at an average loaded rate of $1200 per day. Consulting Days is a custom field on opportunities.

Consulting_Days__c * 1200

For details about using this operator, see * (Multiply).

Stage-Based Sales Document Selection

This formula Identifies a relevant document in the Documents tab based on opportunity Stage. Use document IDs in the form of “00l30000000j7AO.”

CASE(StageName,

"Prospecting", "Insert 1st Document ID",

"Qualification", "Insert 2nd Document ID",

"Needs Analysis", "Insert 3rd Document ID",

"Value Proposition", …

)

)

For details about using this function, see CASE.

Sales Coach

This formula creates a hyperlink that opens a stage-specific document stored in the Documents tab. It uses the previously defined custom formula field that identifies a document based on opportunity Stage. See Stage-Based Sales Document Selection.

HYPERLINK("/servlet/servlet.FileDownload?file=" & Relevant_Document__c, "View Document in New Window")

For details about using this function, see HYPERLINK.

Shipping Cost by Weight

This formula calculates postal charges based on weight.

package_weight__c * cost_lb__c

For details about using this operator, see * (Multiply).

Shipping Cost Percentage

This formula calculates shipping cost as a fraction of total amount.

Ship_cost__c / total_amount__c

For details about using this operator, see / (Divide).

Tiered Commission Rates

This formula calculates the 2% commission amount of an opportunity that has a probability of 100%. All other opportunities will have a commission value of zero.

IF(Probability = 1,

ROUND(Amount * 0.02, 2),

0)

For details about using these functions, see IF and ROUND.

Total Contract Value from Recurring and Non-Recurring Revenue

This formula calculates both recurring and non-recurring revenue streams over the lifetime of a contract.

Non_Recurring_Revenue__c + Contract_Length_Months__c * Recurring_Revenue__c

For details about using these operators, see + (Add) and * (Multiply).

Pricing

Total Amount

This formula calculates a total amount based on unit pricing and total units.

Unit_price__c * Total_units__c

For details about using this operator, see * (Multiply).

User Pricing

This formula calculates a price per user license.

Total_license_rev__c / Number_user_licenses__c

For details about using this operator, see / (Divide).

Project Management

Calculate Intermediate Milestone from End Date

This formula calculates intermediate milestone dates by subtracting days from the end date (for projects that are planned based on end date).

Release_Date__c - 7 * Phase_duration_in_weeks__c

For details about using this operator, see * (Multiply).

Scoring Calculations

Lead Scoring

This formula scores leads, providing a higher score for phone calls than website requests.

CASE(LeadSource, "Phone", 2, "Web", 1, 0)

Here's a formula that scores a lead based on his or her rating:

CASE(1, IF(ISPICKVAL​(Rating, "Hot"),​ 1, 0), 3,​​ IF(ISPICKVAL​(Rating, "Warm"),​ 1, 0), 2, IF(ISPICKVAL​(Rating, "Cold"),​ 1, 0), 1))

For details about using this function, see CASE.

Customer Success Scoring

This formula uses a simple scoring algorithm to rank customers a high score for positive survey results in Salesforce.

Survey_Question_1__c * 5 + Survey_Question_2__c *2

For details about using these operators, see* (Multiply) and + (Add).