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.