Salesforce to Salesforce is a Force.com feature that lets you configure two Force.com environments (orgs) so that they share data records in real time. It is natively supported. Check these for more details,
My scenario i want to Integrate from one salesforce org to another salesforce Org using APEX REST API.Currently i referred Jitendrazaa Website for fetching data from one org to another using Remote site settings.But i want to call a method in Target ORG that i have written in my source ORG .How can we achieve this???
Any help will be Really Appreciable.Currently I am Using Basic Apex REST Example as follows:
@RestResource(urlMapping='/Account/*') global with sharing class MyRestResource { @HttpDelete global static void doDelete() { RestRequest req = RestContext.request; RestResponse res = RestContext.response; String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1); Account account = [SELECT Id FROM Account WHERE Id = :accountId]; delete account; } @HttpGet global static Account doGet() { RestRequest req = RestContext.request; RestResponse res = RestContext.response; String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1); Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE Id = :accountId]; return result; } @HttpPost global static String doPost(String name, String phone, String website) { Account account = new Account(); account.Name = name; account.phone = phone; account.website = website; insert account; return account.Id; } }
How to call this in my Dev Org .I have added the URL OF the Source Org in Remote site settings in DEV Org. But i am not clear how to call like https://ap2.salesforce.com/apexrest/Account or something like that .
Since I am new to Integration i am not able to do this.Everywhere they mention curl to check but i want to call the Url which i mapped first in the code.how to call this class method through URL in another org.
Steps-: 1)Go to setup in source org->search->App Manager in quick find->Create Connected App. 2)After this Develop Apex RestService in the Same Source Org. Sample code: In this, I am Fetching Account.
@RestResource(urlMapping='/Account/*')
global with sharing class MyRestResource {
@HttpGet
global static Account getRecord() {
RestRequest req=RestContext.request;
RestResponse res=RestContext.response;
String urlId=req.requestURI.subString(req.requestURI.lastIndexOf('/')+1);
Account accountList=[SELECT Id,Name,Phone,Description,Rating FROM Account WHERE Id =:urlId];
return accountList;
}
}
3)Now, We use the above Apex Rest Service in Target Salesforce Org. Sample code-:In this I am fetching accounts from one org to another.
public class MyFirstRestApi {
public static void getAccount(){
HttpRequest req=new HttpRequest();
req.setEndpoint('https://login.salesforce.com/services/oauth2/token');
req.setMethod('POST');
String CLIENT_ID = '3MVG9fe4g9fhX0E7c0s6z5_ojYYqdlgULEYYd4azO4hjX2hlWYb4jaNMUX.fYNikWLjDEmG3YMURayF.ySmbh';
String CLIENT_SECRET = '379438EC996D2345F3632774AA40F7DF0A63D004C02C9781CDE6DA6F1623D92A';
String USERNAME = 'nainsi.verma@cloudanalogy.com';
String PASSWORD = 'Nainsi420@ujaA865VERblPRkzjb1TOeetE';
req.setBody('grant_type=password' + '&client_id='+CLIENT_ID +
'&client_secret='+CLIENT_SECRET + '&username='+USERNAME + '&password='+PASSWORD);
Http http=new Http();
HttpResponse res=new HttpResponse();
res=http.send(req);
System.debug('response-->: '+res.getBody());
Oauth objAuthInfo=(Oauth)JSON.deserialize(res.getBody(), Oauth.class);
if(objAuthInfo.access_token!=null){
HttpRequest req1=new HttpRequest();
req1.setEndpoint('https://cloudanalogy-2dd-dev-ed.my.salesforce.com/services/apexrest/Account/');
req1.setMethod('GET');
req1.setHeader('Authorization','Bearer '+objAuthInfo.access_token);
Http http1=new Http();
HttpResponse res1=new HttpResponse();
res1=http1.send(req1);
System.debug('Status -->: '+res1.getStatusCode());
System.debug('Account Info-->: '+res1.getBody());
}
}
public class Oauth{
public String access_token{get;set;}
public String instance_url{get;set;}
public String id{get;set;}
public String token_type{get;set;}
public String issued_at{get;set;}
public String signature{get;set;}
}
}
You can take references from this link. http://amulhai.blogspot.com/2015/11/salesforce-to-salesforce-integration.html
If you find your Solution then mark this as the best answer.
Check these for more details,
https://developer.salesforce.com/page/An_Introduction_to_Salesforce_to_Salesforce
https://help.salesforce.com/apex/HTViewHelpDoc?id=business_network_intro.htm
https://help.salesforce.com/HTViewHelpDoc?id=business_network_managing_leads.htm&language=en_US
https://help.salesforce.com/apex/HTViewHelpDoc?id=business_network_tips.htm
https://help.salesforce.com/apex/HTViewHelpDoc?id=business_network_enabling.htm
https://developer.salesforce.com/page/Best_Practices_for_Salesforce_to_Salesforce
My scenario i want to Integrate from one salesforce org to another salesforce Org using APEX REST API.Currently i referred Jitendrazaa Website for fetching data from one org to another using Remote site settings.But i want to call a method in Target ORG that i have written in my source ORG .How can we achieve this???
Any help will be Really Appreciable.Currently I am Using Basic Apex REST Example as follows:
@RestResource(urlMapping='/Account/*')
global with sharing class MyRestResource
{
@HttpDelete
global static void doDelete()
{
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
Account account = [SELECT Id FROM Account WHERE Id = :accountId]; delete account;
}
@HttpGet
global static Account doGet()
{
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String accountId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE Id = :accountId];
return result;
}
@HttpPost
global static String doPost(String name, String phone, String website)
{
Account account = new Account();
account.Name = name;
account.phone = phone;
account.website = website;
insert account;
return account.Id;
}
}
How to call this in my Dev Org .I have added the URL OF the Source Org in Remote site settings in DEV Org.
But i am not clear how to call like https://ap2.salesforce.com/apexrest/Account or something like that .
Since I am new to Integration i am not able to do this.Everywhere they mention curl to check but i want to call the Url which i mapped first in the code.how to call this class method through URL in another org.
can you guide me to get this done ...
Thanks in advance.
Thanks in advance....
Below url may help you.
http://www.webtrafficexchange.com/salesforce-rest-api-example
Steps-:
1)Go to setup in source org->search->App Manager in quick find->Create Connected App.
2)After this Develop Apex RestService in the Same Source Org.
Sample code: In this, I am Fetching Account. 3)Now, We use the above Apex Rest Service in Target Salesforce Org.
Sample code-:In this I am fetching accounts from one org to another.
You can take references from this link.
http://amulhai.blogspot.com/2015/11/salesforce-to-salesforce-integration.html
If you find your Solution then mark this as the best answer.
Thank you!
Regards
Suraj Tripathi