Salesforce Certified Application Architect

Sunday, 29 December 2013

Apex Callouts :

Whereas Apex Web Services allows an external application to invoke Apex methods through web services, Apex Callouts enable Apex to invoke external web services. This allows you to connect to 3rd party web services such as Google, Amazon, Facebook, and any other external web service.
There are two main ways to develop callouts with Apex: (a) Import a WSDL into Apex (b) HTTP (RESTful) Services classes.

Action Methods

Action methods perform logic or navigation when a page event occurs, such as when a user clicks a button, or hovers over an area of the page. Action methods can be called from page markup by using {! } notation in the action parameter of one of the following tags:

Using the Report Tab:

You can:

• Create reports or dashboards
• Access standard reports
• Organize and share items in folders
• Move items between folders
• Customize the list view
• Search and filter items
• Manage reports and dashboards
• Schedule and follow items



Uses of API & When To Use:

When to Use 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.

When to Use 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. UseSOAP 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.

When to Use Chatter REST API

Chatter REST API provides programmatic access to Chatter feeds and social data such as users, groups, followers, and files. UseChatter REST API to integrate Chatter into a variety of applications such as mobile applications, intranet sites, and third-party Web applications. Chatter REST API is similar to APIs offered by other companies with feeds, such as Facebook and Twitter.

When to Use 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.

When to Use 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 Salesforceorganization.

When to Use 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.

When to Use 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.

When to Use 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.

When to Use Tooling API

Use Tooling API when you want to manage and deploy working copies of Apex classes and triggers and Visualforce pages and components, set checkpoints or heap dump markers, execute anonymous Apex, and access logging and code coverage information.

Which API Should I Use?

Salesforce provides programmatic access to your organization’s information using simple, powerful, and secure application programming interfaces.

API NameWhat It’s ForWhen to Use ItProtocolData FormatCommunication
REST APIAccessing objects in your organization using REST.You want to leverage the REST architecture to integrate with your organization. No WSDL requirement.
Well-suited for browser-based applications, mobile apps, and highly-interactive social applications.
RESTJSON, XMLSynchronous
SOAP APIIntegrating your organization’s data with other applications using SOAP.You have pre-existing middleware services that need to work with WSDLs and XML data.SOAP/WSDLXMLSynchronous
Chatter REST APIAccessing Chatter feeds and social data such as users, groups, followers, and files using REST.You want to integrateChatter into a variety of applications, such as mobile apps, intranet sites, and third-party Web applications.RESTJSON, XMLSynchronous (photos are processed asynchronously)
Bulk APILoading or deleting large numbers of records.You have over a million records to process and speed is a requirement.RESTCSV, XMLAsynchronous
Metadata APIManaging customizations in your organization and building tools that can manage the metadata model, not the data itself.You want to migrate changes, such as custom object definitions and page layouts, from asandbox to your production environment.SOAP/WSDLXMLAsynchronous
Streaming APIProviding a stream of data reflecting data changes in your organization.You need near real-time notifications of when records are created or updated.BayeuxJSONAsynchronous (stream of data)
Apex REST APIBuilding your own REST API in Apex. ExposesApex classes as RESTful Web services.You need to build custom JSON responses or you want to expose custom functionality that you implemented in Apex.RESTJSON, XML, CustomSynchronous
Apex SOAP APICreating custom SOAP Web services in Apex. Exposes Apex classes as SOAP Web services.You need to build custom XML responses or you want to expose custom functionality that you implemented in Apex .SOAP/WSDLXMLSynchronous
Tooling APIBuilding custom development tools forForce.com applications.You want to add functionality to your existing development and integration tools or you want to build specialized development tools for a specific application or service.REST and SOAPJSON, XML, CustomAsynchronous

Standard Interfaces (Subset):

Database.Batchable :

global (Database.QueryLocator | Iterable<sObject>)
 start(Database.BatchableContext bc) {}
global void execute(Database.BatchableContext BC, list<P>){}
global void finish(Database.BatchableContext BC){}

Schedulable:

global void execute(ScheduleableContext SC) {}

Messaging.InboundEmailHandler:

global Messaging.InboundEmailResult handleInboundEmail(Messaging.
inboundEmail email, Messaging.InboundEnvelope env){}

Comparable:
global Integer compareTo(Object compareTo) {}

Annotations

Annotation                                         Description                                                                 Example

@isTest :

Denotes classes that only 
contain code used for 
testing your application. 
These classes don’t count 
against the total amount 
of Apex used by your 
organization. 

@isTest private class MyTest {
 // Methods for testing 
}

@isTest(
OnInstall=true):

Denotes a test class or 
test method that executes 
on package installation

@isTest(OnInstall=true)
private class TestClass {

@isTest(
SeeAllData=true):

Denotes a test class or 
test method that has access
to all data in the organization
including pre-existing data
that the test didnt create.
The default is false


@isTest(SeeAllData=true)
private class TestClass {
}

@deprecated :

Denotes methods, classes, 
exceptions, enums, 
interfaces, or variables 
that can no longer be 
referenced in subsequent 
releases of the managed 
package in which they 
reside

@deprecated
public void limitedShelfLife() {
}

@readOnly :

Denotes methods that 
can perform queries 
unrestricted by the number 
of returned rows limit for a 
request

@readOnly:

private void doQuery() {
}

@remoteAction :

Denotes Apex controller 
methods that JavaScript 
code can call from a 
Visualforce page via 
JavaScript remoting. The 
method must be static and 
either public or global.

@remoteAction:
global static String getId(
 String s) {
}

@restResource :

Denotes a class that 
is available as a REST 
resource. The class must 
be global. The urlMapping 
parameter is your 
resource's name and is 
relative to https://instance.
salesforce.com/services/
apexrest/.

@restResource(urlMapping=
'/Widget/*')

global with sharing class
 MyResource() {
}

Salesforce Certified Application Architect & Certified Data Architecture and Management Designer Exam

How to pass Salesforce Certified Data Architecture and Management Designer Exam This exam was 1st architect exam for me. Its not that muc...