Sunday 21 February 2016

General Information For SFDC

Types of api's  and what are they ? In Sfdc
https://googleweblight.com/?lite_url=https://developer.salesforce.com/blogs/tech-pubs/2011/10/salesforce-apis-what-they-are-when-to-use-them.html&ei=Uc7snHlm&lc=en-IN&s=1&m=956&ts=1442563216&sig=APONPFnNFMVbxNeOKvBDDp6i1z7lZJ-i8g

Total 8 type are there : REST APi, SOAP Api, Chatter Api, Bulk Api, Metadata Api, Streaming Api, apex REST Api, Apex SOAP Api.....

REST API:
REST API provides a powerful, convenient, and simple REST-based Web services interface for interacting with Salesforce. Its advantages include ease of integration and development, and it’s an excellent choice of technology for use with mobile applications and Web projects. However, if you have a large number of records to process, you may wish to use Bulk API, which is based on REST principles and optimized for large sets of data.
SOAP API:
SOAP API provides a powerful, convenient, and simple SOAP-based Web services interface for interacting with Salesforce.You can use SOAP API to create, retrieve, update, or delete records. You can also use SOAP API to perform searches and much more. Use SOAP API in any language that supports Web services.
For example, you can use SOAP API to integrate Salesforce with your organization’s ERP and finance systems, deliver real-time sales and support information to company portals, and populate critical business systems with customer information.
Chatter API:
Chatter API is a REST API that provides programmatic access to Chatter feeds and social data such as users, groups, followers, and files. It's used by developers who want to integrate Chatter into a variety of applications such as mobile applications, intranet sites, and third-party Web applications. Chatter API is similar to APIs offered by other companies with feeds, such as Facebook and Twitter. Its advantages include ease of integration and development.
Bulk API:
Bulk API is based on REST principles and is optimized for loading or deleting large sets of data. You can use it to query, insert, update, upsert, or delete a large number of records asynchronously by submitting batches which are processed in the background by Salesforce.
SOAP API, in contrast, is optimized for real-time client applications that update small numbers of records at a time. Although SOAP API can also be used for processing large numbers of records, when the data sets contain hundreds of thousands of records, it becomes less practical. Bulk API is designed to make it simple to process data from a few thousand to millions of records.
The easiest way to use Bulk API is to enable it for processing records in Data Loader using CSV files. This avoids the need to write your own client application.
Metadata API:
Use Metadata API to retrieve, deploy, create, update, or delete customizations for your organization. The most common use is to migrate changes from a sandbox or testing organization to your production environment. Metadata API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself.
The easiest way to access the functionality in Metadata API is to use the Force.com IDE or Force.com Migration Tool. These tools are built on top of Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task of working with Metadata API. Built on the Eclipse platform, the Force.com IDE provides a comfortable environment for programmers familiar with integrated development environments, allowing you to code, compile, test, and deploy all from within the IDE itself. The Force.com Migration Tool is ideal if you want to use a script or a command-line utility for moving metadata between a local directory and a Salesforce organization.
Streaming API:
Use Streaming API to receive notifications for changes to data that match a SOQL query that you define.
Streaming API is useful when you want notifications to be pushed from the server to the client. Consider Streaming API for applications that poll frequently. Applications that have constant polling action against the Salesforce infrastructure, consuming unnecessary API call and processing time, would benefit from this API which reduces the number of requests that return no data. Streaming API is also ideal for applications that require general notification of data changes. This enables you to reduce the number of API calls and improve performance.
Apex REST API:
Use Apex REST API when you want to expose your Apex classes and methods so that external applications can access your code through REST architecture. Apex REST API supports both OAuth 2.0 and Session ID for authorization.
Apex SOAP API:
Use Apex SOAP API when you want to expose your Apex methods as SOAP Web service APIs so that external applications can access your code through SOAP. Apex SOAP API supports both OAuth 2.0 and Session ID for authorization.

[18/09 1:55 pm] ‪+91 90301 12342: In which sequence trigger and automation rules run in Salesforce.com ?
[18/09 2:09 pm] ‪+91 90301 12342: The following is the order salesforce logic is applied to a record.
   1.     Old record loaded from database (or initialized for new inserts)
2.     New record values overwrite old values
3.     System Validation Rules
4.     All Apex “before” triggers (EE / UE only)
5.     Custom Validation Rules
6.     Record saved to database (but not committed)
7.     Record reloaded from database
8.     All Apex “after” triggers (EE / UE only)
9.     Assignment rules
10.  Auto-response rules
11.  Workflow rules
12.  Escalation rules
13.  Parent Rollup Summary Formula value updated (if present)
14.  Database commit
15.  Post-commit logic (sending email)
[18/09 2:10 pm] ‪+91 90301 12342: Q):when we need to chose for iterable interface in batch?
[18/09 2:23 pm] ‪+91 90301 12342: How many global variables are there and what are they ?
[18/09 2:25 pm] ‪+91 97040 18884: I think Class,method,private,
public,variable etc
[18/09 2:27 pm] ‪+91 90301 12342: Total 19 are there
   1.     $Action
   2.     $Api
   3.     $Component
   4.     $ComponentLabel
   5.     $CurrentPage
   6.     $Label
7.     $Label.Site
8.     $ObjectType
9.     $Organization
10.  $Page
11.  $Profile
12.  $Resource
13.  $SControl
14.  $Setup
15.  $Site
16.  $User
17.  $UserRole
18.  $System.OriginDateTime
19.  $ User.UITheme and $User.UIThemeDisplayed
[18/09 2:31 pm] ‪+91 90301 12342: How to restrict any trigger to fire only once?
[18/09 2:37 pm] ‪+91 90301 12342: Triggers can fire twice, once before workflows and once after workflows.
“The before and after triggers fire one more time only if something needs to be updated, If the fields have already been set to a value, the triggers are not fired again.”
Workaround:
public class HelperClass {
   public static boolean firstRun = true;
}
trigger affectedTrigger on Account (before delete, after delete, after undelete) {
    if(Trigger.isBefore){
        if(Trigger.isDelete){
            if(HelperClass.firstRun){
                        Trigger.old[0].addError('Before Account Delete Error');
                        HelperClass.firstRun=false;
                        }
             }
      }
}
[18/09 2:39 pm] ‪+91 90301 12342: What is property in apex ?
[18/09 2:42 pm] ‪+91 90301 12342: Other than SOQL and SOSL what is other way to get custom settings?



Explain about Salesforce annotations ?

Apex annotations modify the way a method or class is used.
Below is the list of annotations supported by salesforce
@Deprecated

            Use the deprecated annotation to identify methods, classes, exceptions, enums, interfaces, or variables that can no longer be referenced in subsequent releases of the managed package in which they reside. This is useful when you are re-factoring code in managed packages as the requirements evolve. New subscribers cannot see the deprecated elements, while the elements continue to function for existing subscribers and API integrations.

@Future

            Use the future annotation to identify methods that are executed asynchronously. When you specify future, the method executes when Salesforce has available resources.
            To test methods defined with the future annotation, call the class containing the method in a startTest, stopTest code block. All asynchronous calls made after the startTest method are collected by the system. When stopTest is executed, all asynchronous processes are run synchronously.

@IsTest

            Use the isTest annotation to define classes or individual methods that only contain code used for testing your application. The isTest annotation is similar to creating methods declared as testMethod.

@ReadOnly

            The @ReadOnly annotation allows you to perform unrestricted queries against the Force.com database. All other limits still apply. It's important to note that this annotation, while removing the limit of the number of returned rows for a request, blocks you from performing the following operations within the request: DML operations, calls to System.schedule, calls to methods annotated with @future, and sending emails.

@RemoteAction

            The RemoteAction annotation provides support for Apex methods used in Visualforce to be called via JavaScript. This process is often referred to as JavaScript remoting.

@TestVisible

            Use the TestVisible annotation to allow test methods to access private or protected members of another class outside the test class. These members include methods, member variables, and inner classes. This annotation enables a more permissive access level for running tests only.

Apex REST annotations:

@RestResource(urlMapping='/yourUrl')

            The @RestResource annotation is used at the class level and enables you to expose an Apex class as a REST resource.
@HttpDelete

            The @HttpDelete annotation is used at the method level and enables you to expose an Apex method as a REST resource. This method is called when an HTTP DELETE request is sent, and deletes the specified resource.

@HttpGet

            The @HttpGet annotation is used at the method level and enables you to expose an Apex method as a REST resource. This method is called when an HTTP GET request is sent, and returns the specified resource.

@HttpPatch

            The @HttpPatch annotation is used at the method level and enables you to expose an Apex method as a REST resource. This method is called when an HTTP PATCH request is sent, and updates the specified resource.

@HttpPost

            The @HttpPost annotation is used at the method level and enables you to expose an Apex method as a REST resource. This method is called when an HTTP POST request is sent, and creates a new resource.

@HttpPut

            The @HttpPut annotation is used at the method level and enables you to expose an Apex method as a REST resource. This method is called when an HTTP PUT request is sent, and creates or updates the specified resource.

[26/09 9:06 am] ‪+91 90301 12342: What are different Organization Wide Defaults? Explain each of them?
Below are the different OWD values

Private
            If the OWD for an object is set to private, then only the owner, and users above that role in role hierarchy, can view, edit and report on those records

Public Read Only
            If the OWD for an object is set to Public Read Only, then all users can view and report on records but they cannot edit them. Only the record owner and the users above that role in the role hierarchy can edit the records

Public Read/Write
If the OWD for an object is set to Public Read/Write, then all users can view, edit and report on all records. But only owner of the record can delete the records.

Public Read/Write/Trfer
This is available only for Case and Lead objects
If the OWD for an object is set to Public Read/Write/Trfer then, all users can view, edit, trfer and report on all the records but only owner of the record can delete the records

Public Full Access
This is available only for Campaign object.
If the OWD for Campaigns are set Public Full Access then, all users can view, edit, delete and report on all records.

No Access, View Only or Use
This is available only for Price Book object.

If the OWD for Price Book is set Use then, all users can access the Price Book information and as well as using the Price Book configuration for Opportunities with Products.

If the OWD for Price Book is set View Only then, all users can access the Price Book information but not to use that Price Book detail in Opportunities with Products

If the OWD for Price Book is set No Access then, it restricts users from accessing information for Price Book and Prices.

Controlled By Parent
If the OWD for any object is set as Controlled By Parent, then user can perform an action on the record based on whether they can do the same on the parent record associated with it
[26/09 9:33 am] ‪+91 99599 98895: TEST CLASSES IN SALESFORCE

Test.startTest() and Test.stopTest() are very useful when your test class hits Sales force Governor Limits.

The code inside Test.startTest() and Test.stopTest() have new set of Sales force Governor Limits.

As a good practice, make sure initializing the variables, fetching records, creating and updating records are coded before Test.startTest() and Test.stopTest()

and calling the controllers for code coverage is done inside Test.startTest() and Test.stopTest().

The code before Test.startTest() and after Test.stopTest() have new set of Sales force Governor Limits and code between Test.startTest() and Test.stopTest()

have new set of Sales force Governor Limits.


EX:

private class TestClass {
    static testMethod void test() {
        Test.startTest();
        Call the controller for code coverage
        Test.stopTest();
    }
}

Normal Test class:
public class demoTestClass(){ 
public void demoMethod(){
.

.

.

}

}

@isTest

public class TestMethodClass {

static testMethod void testMethod() {

demoTestClass newDemo = demoTestClass();

newDemo.demoMethod();

}

}



Test Class for Callout :

To cover callout in class we have to write a test class first which is used for dummy callout and that test class has to use in our original test class

so total we have to write 2 test classes

1. To call dummy web service

2. Real test class



Class :

-----
public class CalloutClass {

public static HttpResponse getInfoFromExternalService() {

HttpRequest req = new HttpRequest();

req.setEndpoint('https://graph.facebook.com/oauth/access_token');

req.setMethod('GET');

Http h = new Http();

HttpResponse res = h.send(req);

return res;

}

}

Test class for dummy web service :

@isTest

global class MockHttpResponseGenerator implements HttpCalloutMock {

global HTTPResponse respond(HTTPRequest req) {

System.assertEquals('https://graph.facebook.com/oauth/access_token', req.getEndpoint());

System.assertEquals('GET', req.getMethod());

HttpResponse res = new HttpResponse();

res.setHeader('Content-Type', 'application/json');

res.setBody('{"foo":"bar"}');

res.setStatusCode(200);

return res;

}

}



Test class for CalloutClass class:

@isTest

private class CalloutClassTest {

@isTest static void testCallout() {

Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());

HttpResponse res = CalloutClass.getInfoFromExternalService();

String contentType = res.getHeader('Content-Type');

System.assert(contentType == 'application/json');

String actualValue = res.getBody();

String expectedValue = '{"foo":"bar"}';

System.assertEquals(actualValue, expectedValue);

System.assertEquals(200, res.getStatusCode());

}

}



Test class for PageReffernce :

Class:

-----

public PageReference add() {

insert technology;

return null;

}

Test Method:

-----------

public static testMethod void testMyController() {

PageReference pageRef = Page.yourPageName;

Test.setCurrentPage(pageRef);

MyController controller = new MyController();

controller.add();

}



Test Class for batch apex:


@isTest

private class myTestClass {

static testMethod void myTestMethod() {

generateTestData();

Test.startTest();

DemoBatchClass batchObj = new DemoBatchClass();

batchObj.execute();

Test.stopTest();

}

}




[26/09 9:06 am] ‪+91 90301 12342: What are different Organization Wide Defaults? Explain each of them?
Below are the different OWD values

Private
            If the OWD for an object is set to private, then only the owner, and users above that role in role hierarchy, can view, edit and report on those records

Public Read Only
            If the OWD for an object is set to Public Read Only, then all users can view and report on records but they cannot edit them. Only the record owner and the users above that role in the role hierarchy can edit the records

Public Read/Write
If the OWD for an object is set to Public Read/Write, then all users can view, edit and report on all records. But only owner of the record can delete the records.

Public Read/Write/Trfer
This is available only for Case and Lead objects
If the OWD for an object is set to Public Read/Write/Trfer then, all users can view, edit, trfer and report on all the records but only owner of the record can delete the records

Public Full Access
This is available only for Campaign object.
If the OWD for Campaigns are set Public Full Access then, all users can view, edit, delete and report on all records.

No Access, View Only or Use
This is available only for Price Book object.

If the OWD for Price Book is set Use then, all users can access the Price Book information and as well as using the Price Book configuration for Opportunities with Products.

If the OWD for Price Book is set View Only then, all users can access the Price Book information but not to use that Price Book detail in Opportunities with Products

If the OWD for Price Book is set No Access then, it restricts users from accessing information for Price Book and Prices.

Controlled By Parent
If the OWD for any object is set as Controlled By Parent, then user can perform an action on the record based on whether they can do the same on the parent record associated with it
[26/09 9:33 am] ‪+91 99599 98895: TEST CLASSES IN SALESFORCE

Test.startTest() and Test.stopTest() are very useful when your test class hits Sales force Governor Limits.

The code inside Test.startTest() and Test.stopTest() have new set of Sales force Governor Limits.

As a good practice, make sure initializing the variables, fetching records, creating and updating records are coded before Test.startTest() and Test.stopTest()

and calling the controllers for code coverage is done inside Test.startTest() and Test.stopTest().

The code before Test.startTest() and after Test.stopTest() have new set of Sales force Governor Limits and code between Test.startTest() and Test.stopTest()

have new set of Sales force Governor Limits.


EX:

private class TestClass {
    static testMethod void test() {
        Test.startTest();
        Call the controller for code coverage
        Test.stopTest();
    }
}

Normal Test class:
public class demoTestClass(){ 
public void demoMethod(){
.

.

.

}

}

@isTest

public class TestMethodClass {

static testMethod void testMethod() {

demoTestClass newDemo = demoTestClass();

newDemo.demoMethod();

}

}



Test Class for Callout :

To cover callout in class we have to write a test class first which is used for dummy callout and that test class has to use in our original test class

so total we have to write 2 test classes

1. To call dummy web service

2. Real test class



Class :

-----
public class CalloutClass {

public static HttpResponse getInfoFromExternalService() {

HttpRequest req = new HttpRequest();

req.setEndpoint('https://graph.facebook.com/oauth/access_token');

req.setMethod('GET');

Http h = new Http();

HttpResponse res = h.send(req);

return res;

}

}

Test class for dummy web service :

@isTest

global class MockHttpResponseGenerator implements HttpCalloutMock {

global HTTPResponse respond(HTTPRequest req) {

System.assertEquals('https://graph.facebook.com/oauth/access_token', req.getEndpoint());

System.assertEquals('GET', req.getMethod());

HttpResponse res = new HttpResponse();

res.setHeader('Content-Type', 'application/json');

res.setBody('{"foo":"bar"}');

res.setStatusCode(200);

return res;

}

}



Test class for CalloutClass class:

@isTest

private class CalloutClassTest {

@isTest static void testCallout() {

Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());

HttpResponse res = CalloutClass.getInfoFromExternalService();

String contentType = res.getHeader('Content-Type');

System.assert(contentType == 'application/json');

String actualValue = res.getBody();

String expectedValue = '{"foo":"bar"}';

System.assertEquals(actualValue, expectedValue);

System.assertEquals(200, res.getStatusCode());

}

}



Test class for PageReffernce :

Class:

-----

public PageReference add() {

insert technology;

return null;

}

Test Method:

-----------

public static testMethod void testMyController() {

PageReference pageRef = Page.yourPageName;

Test.setCurrentPage(pageRef);

MyController controller = new MyController();

controller.add();

}



Test Class for batch apex:


@isTest

private class myTestClass {

static testMethod void myTestMethod() {

generateTestData();

Test.startTest();

DemoBatchClass batchObj = new DemoBatchClass();

batchObj.execute();

Test.stopTest();

}

}



[26/09 9:35 am] ‪+91 99599 98895: REST:
            Stands for: Representational state  transfer
Rest is :
Ø Stateless
Ø Client – server based
Ø HTTP Based
Ø It is not a protocol
Ø Support Both JSON and XML

@RestResource:
In Rest web services we need to implement @Rest Resource annotation .
We need to map endpoint URL  here   .
Syntax: @RestResource(urlMapping =’/endpoint url/*’..
Then we need to implement class with following Http methods
@Httppost  = create
@Httpget = read
@Httpput = update
@Httpatch = update
@Httpdelete = delete

Then we need implement following
Restcontext : it is a container class it holds  twoobjects
Restrequest:  params,requestbody,requestpath
Restresponse: return messages etc

@RestResource(urlMapping = '/v29/account/*')
    global class restwebservices{
   
    @Httpget
    global static account getdetails(){
        Restrequest req = restcontext.request;
        Restresponse res = restcontext.response;
        string name = req.requestURI.substring(req.requestURI.lastindexof('/')+1);
        account a = [select id,name,phone,type,website,rating from account where name =: name];
        return a;
   
    }
    @Httppost
    global static id createaccont(string name,string phone,string website){
        Restrequest req = restcontext.request;
        Restresponse res = restcontext.response;
        account a = new account();
        a.name = name;
        a.phone = phone;
        a.website = website;
        insert a;
        return a.id;
        }
  }
[26/09 10:03 am] ‪+91 90301 12342: What are the post refresh considerations?

    1. New Organization ID is assigned to the refreshed sandbox every time it is refreshed. Hence we need to replace the hard coded organization id in our sandbox post refresh with newly created organization id.

    2.To ensure the uniqueness, in all user records, user name will be appended by sandbox name, if the resulting user name is not unique then, second round of modification is performed to prepend the user name with alpa numeric string to make sure the resulting username is unique.

    3.The copy process does not copy contact data to developer and configuration sandboxes. Therefore, customer portal users are not copied. These customer portal users need to be created manually on need basis.

    4. User email addresses are modified in sandbox to avoid sending any mail from sandbox such as notifications triggered by workflows and escalations rules.

    5.Newly created sandboxes have the default email deliverability setting System email only. We need to change this to All Email.

   6. If Server URL is hardcoded in the code, then we need to replace it with the newly created URL
[26/09 10:16 am] ‪+91 90301 12342: What are differences between custom settings and custom objects?
  Custom Settings:
   1. Custom settings are SOQL inexpensive
   2. We can’t write triggers on custom settings
   3. Fields on which we can create custom settings are restricted like picklists, lookups and formula fields can’t    be created in custom settings
   4. No Page layouts, record types, validation rules and workflow rules can be used on custom settings


Custom Objects:
   1. Custom Objects are SOQL Expensive
   2. We can have triggers on custom objects
   3. No restrictions on creation of fields
   4. Can be used on Custom objects
[26/09 10:21 am] ‪+91 90301 12342: What are different user licenses available in salesforce and explain them?
  Below is the list of licenses available in salesforce
 Full access to salesforce CRM and appExchangeàà1)     Salesforce
 Access only to Custom apps but not standard CRMàà2)     Salesforce Platform
 Designed to access only one custom app with unlimited number of tabsàà3)     Force.com One App
 Grant user access to Force.com Light app or Force.com enterprise app but no CRM functionalityàà4)Force.com Knowledge Subscription
Designed for users who only need access to the Salesforce Knowledge appàà5)     Knowledge Only User
 User has access to chatter which includes feeds, profiles, files and groupsàà6)     Chatter Free 
 Designed to allow customers in Chatter groups. Customers are users outside of a company’s email domainàà7)     Chatter External
 User has access to Groups, feeds, people, profiles and files along with access to view accounts and contacts, modify custom objects and use CRM contents, Ideas and wersàà8)     Chatter Only




What is traction workbench in salesforce?
  Traction workbench is a salesforce feature for implementing the language in multiple languages. i.e not just the data but also all your configurations and customizations that you do as part of the implementation.



What is workbench in salesforce?
  Workbench is a powerful, web-based suite of tools designed for administrators and developers to interact with salesforce.com organizations via the force.com APIs. Workbench includes robust support for the Force.com Partner, Bulk, Rest, Streaming, Metadata, and Apex APIs that allows users to describe, query, manipulate, and migrate both data and metadata in Salesforce.com organizations directly in their web browser with a simple and intuitive user interface
[26/09 10:24 am] ‪+91 90301 12342: What is a Solution?
  – An answer to a common question or problem
  – Enables Customer Support users get up to speed quickly
  – Enables Support teams to answer questions quickly and consistently
  – Customers search for and browse published Solutions to selfassist
  – Content-Rich Solutions are an enhancement to the Solution Object which allows solution writers to integrate rich text and
images into their solutions to completely solve a problem
What is a Category?
  – Mechanism to organize Solutions
  – Solutions may be associated to one or more Categories
  – Categories make up a Solution Category tree structure
What are Suggested Solutions?
  – The suggested solutions feature displays up to ten relevant solutions that may help users and customers solve a particular case from the case detail page and the Self-Service portal.
• Suggested Solutions can be enabled for the following:
  Cases tab
  Self Service Portal
  Case auto-response rules and emails
[26/09 10:28 am] ‪+91 90301 12342: Jump Start Wizard vs. Standard Wizard ?
  The Jump Start wizard creates a one-step approval process for you in just a few minutes The Standard Wizard is useful for complex approval processes.

  Jump Start Wizard
   • The jump start wizard is useful for simple approval processes with a single step.
   • Use the jump start wizard if you want to create an approval process quickly by allowing Salesforce to automatically choose some default options for you.

  Standard Wizard
   • The standard wizard is useful for complex approval processes.
   • Use it when you want to fine tune the steps in your approval process.
   • The standard wizard consists of a setup wizard that allows you to define your process and another setup wizard that  allows you to define each step in the process.
[26/09 10:41 am] ‪+91 90301 12342: Time-Dependent Workflow – Considerations
  Maximum of 10 time triggers per rule
  Maximum of 40 actions (10 x 4 types) per time trigger, and 80 actions per workflow rule
  Workflow default user must be set up before creating time-based rules
  Precision limited to hours or days
  Cannot convert leads with time-dependent actions in the Workflow Queue
  Time triggers cannot be added to or removed from activated workflow rules
  Not possible to create a time-dependent action associated to a rule with a trigger type of Every time the record is created or updated




 When the Add Time Trigger button is unavailable?
  The evaluation criteria are set to Evaluate the rule when a record is: created, and every time it’s edited.
  The rule is activated.
  The rule is deactivated but has pending actions in the workflow queue.




 Time-Dependent Workflow Limitations:
Time triggers don’t support minutes or seconds.
Time triggers can’t reference the following:
•         DATE or DATETIME fields containing automatically derived functions, such as TODAY or NOW.
•         Formula fields that include related-object merge fields.

You can’t add or remove time triggers if:
•         The workflow rule is active.
•         The workflow rule is deactivated but has pending actions in the queue.
•         The workflow rule evaluation criteria are set to Evaluate the rule when a record is: created, and every time it’s edited.
•         The workflow rule is included in a package
[26/09 10:46 am] ‪+91 90301 12342: What is a Business Process?
Business process allows you to track separate sales, support, and lead lifecycles across different divisions, groups, or markets.

Available Business Processes:

Sales Processes – Create different sales processes that include some or all of the picklist values available for the Opportunity Stage field

Support Processes – Create different support processes that include some or all of the picklist values available for the Case Status field

Lead Processes – Create different lead processes that include some or all of the picklist values available for the Lead Status field

Solution Processes – Create different solution processes that include some or all of the picklist values available for the Solution Status field
[26/09 12:31 pm] ‪+91 95952 01404: http://blog.whatfix.com/10-marc-benioff-quotes-that-will-motivate-you-to-achieve-greatness/?utm_campaign=blogpost&utm_source=facebookgroups&utm_medium=social



[26/09 10:03 am] ‪+91 90301 12342: What are the post refresh considerations?

    1. New Organization ID is assigned to the refreshed sandbox every time it is refreshed. Hence we need to replace the hard coded organization id in our sandbox post refresh with newly created organization id.

    2.To ensure the uniqueness, in all user records, user name will be appended by sandbox name, if the resulting user name is not unique then, second round of modification is performed to prepend the user name with alpa numeric string to make sure the resulting username is unique.

    3.The copy process does not copy contact data to developer and configuration sandboxes. Therefore, customer portal users are not copied. These customer portal users need to be created manually on need basis.

    4. User email addresses are modified in sandbox to avoid sending any mail from sandbox such as notifications triggered by workflows and escalations rules.

    5.Newly created sandboxes have the default email deliverability setting System email only. We need to change this to All Email.

   6. If Server URL is hardcoded in the code, then we need to replace it with the newly created URL
[26/09 10:16 am] ‪+91 90301 12342: What are differences between custom settings and custom objects?
  Custom Settings:
   1. Custom settings are SOQL inexpensive
   2. We can’t write triggers on custom settings
   3. Fields on which we can create custom settings are restricted like picklists, lookups and formula fields can’t    be created in custom settings
   4. No Page layouts, record types, validation rules and workflow rules can be used on custom settings


Custom Objects:
   1. Custom Objects are SOQL Expensive
   2. We can have triggers on custom objects
   3. No restrictions on creation of fields
   4. Can be used on Custom objects
[26/09 10:21 am] ‪+91 90301 12342: What are different user licenses available in salesforce and explain them?
  Below is the list of licenses available in salesforce
 Full access to salesforce CRM and appExchangeàà1)     Salesforce
 Access only to Custom apps but not standard CRMàà2)     Salesforce Platform
 Designed to access only one custom app with unlimited number of tabsàà3)     Force.com One App
 Grant user access to Force.com Light app or Force.com enterprise app but no CRM functionalityàà4)Force.com Knowledge Subscription
Designed for users who only need access to the Salesforce Knowledge appàà5)     Knowledge Only User
 User has access to chatter which includes feeds, profiles, files and groupsàà6)     Chatter Free 
 Designed to allow customers in Chatter groups. Customers are users outside of a company’s email domainàà7)     Chatter External
 User has access to Groups, feeds, people, profiles and files along with access to view accounts and contacts, modify custom objects and use CRM contents, Ideas and wersàà8)     Chatter Only




What is traction workbench in salesforce?
  Traction workbench is a salesforce feature for implementing the language in multiple languages. i.e not just the data but also all your configurations and customizations that you do as part of the implementation.



What is workbench in salesforce?
  Workbench is a powerful, web-based suite of tools designed for administrators and developers to interact with salesforce.com organizations via the force.com APIs. Workbench includes robust support for the Force.com Partner, Bulk, Rest, Streaming, Metadata, and Apex APIs that allows users to describe, query, manipulate, and migrate both data and metadata in Salesforce.com organizations directly in their web browser with a simple and intuitive user interface
[26/09 10:24 am] ‪+91 90301 12342: What is a Solution?
  – An answer to a common question or problem
  – Enables Customer Support users get up to speed quickly
  – Enables Support teams to answer questions quickly and consistently
  – Customers search for and browse published Solutions to selfassist
  – Content-Rich Solutions are an enhancement to the Solution Object which allows solution writers to integrate rich text and
images into their solutions to completely solve a problem
What is a Category?
  – Mechanism to organize Solutions
  – Solutions may be associated to one or more Categories
  – Categories make up a Solution Category tree structure
What are Suggested Solutions?
  – The suggested solutions feature displays up to ten relevant solutions that may help users and customers solve a particular case from the case detail page and the Self-Service portal.
• Suggested Solutions can be enabled for the following:
  Cases tab
  Self Service Portal
  Case auto-response rules and emails
[26/09 10:28 am] ‪+91 90301 12342: Jump Start Wizard vs. Standard Wizard ?
  The Jump Start wizard creates a one-step approval process for you in just a few minutes The Standard Wizard is useful for complex approval processes.

  Jump Start Wizard
   • The jump start wizard is useful for simple approval processes with a single step.
   • Use the jump start wizard if you want to create an approval process quickly by allowing Salesforce to automatically choose some default options for you.

  Standard Wizard
   • The standard wizard is useful for complex approval processes.
   • Use it when you want to fine tune the steps in your approval process.
   • The standard wizard consists of a setup wizard that allows you to define your process and another setup wizard that  allows you to define each step in the process.
[26/09 10:41 am] ‪+91 90301 12342: Time-Dependent Workflow – Considerations
  Maximum of 10 time triggers per rule
  Maximum of 40 actions (10 x 4 types) per time trigger, and 80 actions per workflow rule
  Workflow default user must be set up before creating time-based rules
  Precision limited to hours or days
  Cannot convert leads with time-dependent actions in the Workflow Queue
  Time triggers cannot be added to or removed from activated workflow rules
  Not possible to create a time-dependent action associated to a rule with a trigger type of Every time the record is created or updated




 When the Add Time Trigger button is unavailable?
  The evaluation criteria are set to Evaluate the rule when a record is: created, and every time it’s edited.
  The rule is activated.
  The rule is deactivated but has pending actions in the workflow queue.




 Time-Dependent Workflow Limitations:
Time triggers don’t support minutes or seconds.
Time triggers can’t reference the following:
•         DATE or DATETIME fields containing automatically derived functions, such as TODAY or NOW.
•         Formula fields that include related-object merge fields.

You can’t add or remove time triggers if:
•         The workflow rule is active.
•         The workflow rule is deactivated but has pending actions in the queue.
•         The workflow rule evaluation criteria are set to Evaluate the rule when a record is: created, and every time it’s edited.
•         The workflow rule is included in a package
[26/09 10:46 am] ‪+91 90301 12342: What is a Business Process?
Business process allows you to track separate sales, support, and lead lifecycles across different divisions, groups, or markets.

Available Business Processes:

Sales Processes – Create different sales processes that include some or all of the picklist values available for the Opportunity Stage field

Support Processes – Create different support processes that include some or all of the picklist values available for the Case Status field

Lead Processes – Create different lead processes that include some or all of the picklist values available for the Lead Status field

Solution Processes – Create different solution processes that include some or all of the picklist values available for the Solution Status field
[26/09 12:31 pm] ‪+91 95952 01404: http://blog.whatfix.com/10-marc-benioff-quotes-that-will-motivate-you-to-achieve-greatness/?utm_campaign=blogpost&utm_source=facebookgroups&utm_medium=social
[27/09 10:05 am] Wtapp noida Frnd: 46.       A user profile has login hour restrictions set to Monday through Friday 8am to 5pm. It is Tuesday and it is now 5.01 PM.
Which behavior of the application should the user expect?
a.         The user will be logged out and any unsaved work-in-progress will be lost
b.         The user will be logged out and any unsaved work-in-progress will be saved
c.         The user will be able to continue working and start new sessions
d.         The user will be able to continue working, but will be unable to start any new sessions
[27/09 10:06 am] Wtapp noida Frnd: 78.       Which dashboard component can display data from the summary rows of reports? (2 answers)
a.         Chart
b.         Metric
c.         Table
d.         Gauge
[27/09 10:09 am] Wtapp noida Frnd: 76.       Which chart type can be used to display summary values from two different levels of grouping in a report. (2 answers)
a.         Stacked bar chart
b.         Funnel chart
c.         Donut chart
d.         Grouped line chart


What is apex scheduler?
  Apex scheduler is used to invoke Apex classes to run at specific times, first implement the Schedulable interface for the class, then specify the schedule using either the Schedule Apex page in the Sales force user interface, or the System. schedule method.

The Schedulable interface contains one method that must be implemented, execute.
global void execute(SchedulableContext sc){}
The implemented method must be declared as global or public.

The following example implements the Schedulable interface for a class called mergeNumbers:
global class scheduledMerge implements Schedulable{
global void execute(SchedulableContext SC) {
mergeNumbers M = new mergeNumbers();
   }
}
The following example uses the System.Schedule method to implement the above class.
scheduledMerge m = new scheduledMerge();
        String sch = '20 30 8 10 2 ?';
system.schedule('Merge Job', sch, m);
You can also use the Schedulable interface with batch Apex classes. The following example implements the Schedulable interface for a batch Apex class called batchable:
global class scheduledBatchable implements Schedulable{
global void execute(SchedulableContext sc) {
batchable b = new batchable();
database.executebatch(b);
   }
}

Use the SchedulableContext object to keep track of the scheduled job once it's scheduled. The SchedulableContext method getTriggerID returns the ID of the CronTrigger object associated with this scheduled job as a string. Use this method to track the progress of the scheduled job.
To stop execution of a job that was scheduled, use the System.abortJob method with the ID returned by the.getTriggerID method.



Salesforce Platform App Builder Certification (Transition Exam)

Exam Format
The transition exam is 20 multiple choice questionnaire and you get 30 minutes to complete it.. pass percentage is 65%, so you need to get at least 13 questions correct

Pre requisite
you should have already got the Salesforce Force.com Developer Certification..

Prior Experience
If you are doing the transition exam, most of you are already using Salesforce day in & out for at least few months and been looking into the release notes of the past couple of releases touching Salesforce1 and Lightning features. if that's the case then this exam is an easy one for you..
but if you are just getting started with salesforce and looking to take the full App builder certification exam, then you have to spend some good time in getting used to the platform and understanding the functionalities before taking this certification

Topics Covering:-

Filed Types - focus on field type changes and data losses, limits & considerations of field type changes, field types for multi line paragraphs, phone number searches

Actions - Object Specific and Global Actions - focus on Child record creations from parent and auto relationships between them

Lightning Connect - External Objects & External Data Sources - focus on external ids, global search for external data, types of connectors

Rollup Summary Fields - required relationship type for rollup summary, where & how to create

Sandboxes - different types of sandboxes, which one includes data, when to use each type, what's preferred for testing, etc..

Packaging - managed / unmanaged, what's editable in unmanaged, test classes in packages

Assignment Rules - Case, Lead, what's required for assignment rules, how many can be active, how many rule criteria's can be there

Master Detail / Lookup - understand the difference and what happens when converting from one to another, what can give rollup summary fields

Record Types - business / sales process, impact on pick list values , page layouts, which picklist fields cannot have different values based on record types

Workflow Rule - Re Evaluation - what gets re evaluated when workflow rule field update is marked to re evaluate other rules

Order of Execution - go thru the salesforce reference on order of execution and understand the order for assignment , workflow, validation, escalation rules

Lightning App Builder - parts of app builder, types of components & actions you can add into the app, how to enable the app built in lightning app builder inside salesforce1 mobile, creating a tab for the app

Person Accounts - data storage for person accounts, difference compared to business accounts, record types for person accounts

Social Accounts - what's required to sync social accounts, what details you can see using social accounts

AppExchange - buy vs build, when to go for an appexchange app or develop in house, e.g. quick way to implement products, pricing, quote & order....





[02/10 7:27 am] ‪+91 90301 12342: What is apex scheduler?
  Apex scheduler is used to invoke Apex classes to run at specific times, first implement the Schedulable interface for the class, then specify the schedule using either the Schedule Apex page in the Sales force user interface, or the System. schedule method.

The Schedulable interface contains one method that must be implemented, execute.
global void execute(SchedulableContext sc){}
The implemented method must be declared as global or public.

The following example implements the Schedulable interface for a class called mergeNumbers:
global class scheduledMerge implements Schedulable{
global void execute(SchedulableContext SC) {
mergeNumbers M = new mergeNumbers();
   }
}
The following example uses the System.Schedule method to implement the above class.
scheduledMerge m = new scheduledMerge();
        String sch = '20 30 8 10 2 ?';
system.schedule('Merge Job', sch, m);
You can also use the Schedulable interface with batch Apex classes. The following example implements the Schedulable interface for a batch Apex class called batchable:
global class scheduledBatchable implements Schedulable{
global void execute(SchedulableContext sc) {
batchable b = new batchable();
database.executebatch(b);
   }
}

Use the SchedulableContext object to keep track of the scheduled job once it's scheduled. The SchedulableContext method getTriggerID returns the ID of the CronTrigger object associated with this scheduled job as a string. Use this method to track the progress of the scheduled job.
To stop execution of a job that was scheduled, use the System.abortJob method with the ID returned by the.getTriggerID method.
[02/10 7:58 am] ‪+91 90301 12342: Salesforce Platform App Builder Certification (Transition Exam)

Exam Format
The transition exam is 20 multiple choice questionnaire and you get 30 minutes to complete it.. pass percentage is 65%, so you need to get at least 13 questions correct

Pre requisite
you should have already got the Salesforce Force.com Developer Certification..

Prior Experience
If you are doing the transition exam, most of you are already using Salesforce day in & out for at least few months and been looking into the release notes of the past couple of releases touching Salesforce1 and Lightning features. if that's the case then this exam is an easy one for you..
but if you are just getting started with salesforce and looking to take the full App builder certification exam, then you have to spend some good time in getting used to the platform and understanding the functionalities before taking this certification

Topics Covering:-

Filed Types - focus on field type changes and data losses, limits & considerations of field type changes, field types for multi line paragraphs, phone number searches

Actions - Object Specific and Global Actions - focus on Child record creations from parent and auto relationships between them

Lightning Connect - External Objects & External Data Sources - focus on external ids, global search for external data, types of connectors

Rollup Summary Fields - required relationship type for rollup summary, where & how to create

Sandboxes - different types of sandboxes, which one includes data, when to use each type, what's preferred for testing, etc..

Packaging - managed / unmanaged, what's editable in unmanaged, test classes in packages

Assignment Rules - Case, Lead, what's required for assignment rules, how many can be active, how many rule criteria's can be there

Master Detail / Lookup - understand the difference and what happens when converting from one to another, what can give rollup summary fields

Record Types - business / sales process, impact on pick list values , page layouts, which picklist fields cannot have different values based on record types

Workflow Rule - Re Evaluation - what gets re evaluated when workflow rule field update is marked to re evaluate other rules

Order of Execution - go thru the salesforce reference on order of execution and understand the order for assignment , workflow, validation, escalation rules

Lightning App Builder - parts of app builder, types of components & actions you can add into the app, how to enable the app built in lightning app builder inside salesforce1 mobile, creating a tab for the app

Person Accounts - data storage for person accounts, difference compared to business accounts, record types for person accounts

Social Accounts - what's required to sync social accounts, what details you can see using social accounts

AppExchange - buy vs build, when to go for an appexchange app or develop in house, e.g. quick way to implement products, pricing, quote & order....
[02/10 8:20 am] ‪+91 90301 12342: What is the difference between apex:pageMessages, apex:pageMessage, apex:Message and apex:Messages?

apex:PageMessages:
  This component displays all messages that were generated for all components on the current page, presented using the salesforce styling. This will display both salesforce generated messages as well as custom messages added to the ApexPages class

apex:PageMessage:
  Apex:PageMessage is a component that adds single message on the page. This is used to display custom message using the salesforce formatting

apex:Message:
  apex:Message is used to display an error on only a specific field. It is used to allow developers to place field specific errors in specific location.

apex:Messages:
apex:Messages is similar to apex:Message but it displays all errors


What are different APIs in salesforce.com?

REST API:
REST API provides a powerful, convenient, and simple REST-based Web services interface for interacting with Salesforce. Its advantages include ease of integration and development, and it’s an excellent choice of technology for use with mobile applications and Web projects. However, if you have a large number of records to process, you may wish to use Bulk API, which is based on REST principles and optimized for large sets of data.

SOAP API:
SOAP API provides a powerful, convenient, and simple SOAP-based Web services interface for interacting with Salesforce.You can use SOAP API to create, retrieve, update, or delete records. You can also use SOAP API to perform searches and much more. Use SOAP API in any language that supports Web services.
For example, you can use SOAP API to integrate Salesforce with your organization’s ERP and finance systems, deliver real-time sales and support information to company portals, and populate critical business systems with customer information.

Chatter API:
Chatter API is a REST API that provides programmatic access to Chatter feeds and social data such as users, groups, followers, and files. It's used by developers who want to integrate Chatter into a variety of applications such as mobile applications, intranet sites, and third-party Web applications. Chatter API is similar to APIs offered by other companies with feeds, such as Facebook and Twitter. Its advantages include ease of integration and development.

Bulk API:
Bulk API is based on REST principles and is optimized for loading or deleting large sets of data. You can use it to query, insert, update, upsert, or delete a large number of records asynchronously by submitting batches which are processed in the background by Salesforce.

SOAP API, in contrast, is optimized for real-time client applications that update small numbers of records at a time. Although SOAP API can also be used for processing large numbers of records, when the data sets contain hundreds of thousands of records, it becomes less practical. Bulk API is designed to make it simple to process data from a few thousand to millions of records.
The easiest way to use Bulk API is to enable it for processing records in Data Loader using CSV files. This avoids the need to write your own client application.

Metadata API:
Use Metadata API to retrieve, deploy, create, update, or delete customizations for your organization. The most common use is to migrate changes from a sandbox or testing organization to your production environment. Metadata API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself.
The easiest way to access the functionality in Metadata API is to use the Force.com IDE or Force.com Migration Tool. These tools are built on top of Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task of working with Metadata API. Built on the Eclipse platform, the Force.com IDE provides a comfortable environment for programmers familiar with integrated development environments, allowing you to code, compile, test, and deploy all from within the IDE itself. The Force.com Migration Tool is ideal if you want to use a script or a command-line utility for moving metadata between a local directory and a Salesforce organization.

Streaming API:
Use Streaming API to receive notifications for changes to data that match a SOQL query that you define.
Streaming API is useful when you want notifications to be pushed from the server to the client. Consider Streaming API for applications that poll frequently. Applications that have constant polling action against the Salesforce infrastructure, consuming unnecessary API call and processing time, would benefit from this API which reduces the number of requests that return no data. Streaming API is also ideal for applications that require general notification of data changes. This enables you to reduce the number of API calls and improve performance.

Apex REST API:
Use Apex REST API when you want to expose your Apex classes and methods so that external applications can access your code through REST architecture. Apex REST API supports both OAuth 2.0 and Session ID for authorization.

Apex SOAP API:
Use Apex SOAP API when you want to expose your Apex methods as SOAP Web service APIs so that external applications can access your code through SOAP. Apex SOAP API supports both OAuth 2.0 and Session ID for authorization.



No comments:

Post a Comment