Skip to main content The Trailblazer Community will be unavailable from 2/1/2025 to 2/2/2025. Please plan your activities accordingly.
1 answer
  1. Aug 20, 2015, 11:52 AM
    Hello Rajesh,

    There is one option for this requirement is REST webservice.

    See below code for fetching Account records from one salesforce org to another salesforce org using APEX.

    Apex Class: Create REST web service in source Org (In Source Org)

    @RestResource(urlMapping='/accountrecords/*')

    global class extractAccountRESTService{

    @HttpGet

    global static Account[] extractAccountData() {

    //Returns the RestRequest object for our Apex REST method.

    RestRequest request = RestContext.request;

    //Returns the RestResponse for our Apex REST method.

    RestResponse response = RestContext.response;

    //query the Box Folder

    List<Account> lstAccount = new List<Account>();

    try{

    lstAccount = [SELECT Id, Name FROM Account];

    }catch(Exception e){

    system.debug('@@@@@ Error ' + e.getMessage());

    }

    return lstAccount;

    }

    }

    Apex Class: Login using web service and get Session id. (In Destination Org)

    public class loginsalesforce{

    private static final String NS_SOAP = 'http://schemas.xmlsoap.org/soap/envelope/';

    private static final String NS_SF = 'urn:partner.soap.sforce.com';

    public static String login()

    {

    string user = 'GIVE SOURCE YOUR ORG USERNAME';

    string password = 'GIVE YOUR SOURCE ORG USERNAME & PASSWORD';

    HttpRequest req = new HttpRequest();

    req.setMethod('POST');

    req.setTimeout(60000);

    req.setEndpoint('https://login.salesforce.com/services/Soap/u/29.0');

    req.setHeader('Content-Type', 'text/xml;charset=UTF-8');

    req.setHeader('SOAPAction', '""');

    req.setBody('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Header/><Body><login xmlns="urn:partner.soap.sforce.com"><username>' +user+ '</username><password>' + password + '</password></login></Body></Envelope>');

    HttpResponse res = new Http().send(req);

    system.debug('response'+ res);

    system.debug('response'+ res.getBody());

    if(res.getStatusCode() != 200)

    {

    Dom.Document responseDocument = res.getBodyDocument();

    Dom.Xmlnode rootElm = responseDocument.getRootElement(); // soapenv:Envelope

    Dom.Xmlnode bodyElm = rootElm.getChildElement('Body', NS_SOAP); // soapenv:Body

    Dom.Xmlnode faultElm = bodyElm.getChildElement('Fault', NS_SOAP); // soapenv:Fault

    Dom.Xmlnode faultStringElm = faultElm.getChildElement('faultstring', null); // faultstring

    throw new LoginException(faultStringElm.getText());

    }

    // As per http://wiki.developerforce.com/page/Enterprise_Login

    Dom.Document responseDocument = res.getBodyDocument();

    Dom.Xmlnode rootElm = responseDocument.getRootElement(); // soapenv:Envelope

    Dom.Xmlnode bodyElm = rootElm.getChildElement('Body', NS_SOAP); // soapenv:Body

    Dom.Xmlnode loginResponseElm = bodyElm.getChildElement('loginResponse', NS_SF); // loginResponse

    Dom.Xmlnode resultElm = loginResponseElm.getChildElement('result', NS_SF); // result

    Dom.Xmlnode sessionIdElm = resultElm.getChildElement('sessionId', NS_SF); // sessionId

    return sessionIdElm.getText();

    }

    public class LoginException extends Exception {}

    }

    Apex Class: Call above created web service in destination Org.(In Destination Org)

    public class fatchAccountRecords{

    public static String fetchAccounts(){

    string strSessionid = loginsalesforce.login();

    HttpRequest req = new HttpRequest();

    //String strEndpointURL = 'https://na15.salesforce.com/services/apexrest/BoxRecords';

    String strEndpointURL = '<YOUR ORGS ENDPOINT URL>/services/apexrest/BoxRecords';

    req.setEndpoint(strEndpointURL);

    req.setMethod('GET');

    //req.setBody('');

    req.setTimeout(60000);

    req.setHeader('Authorization','Bearer '+strSessionid );

    req.setHeader('Content-Type', 'application/json; charset=UTF-8');

    HttpResponse res = new Http().send(req);

    system.debug('response'+ res);

    system.debug('response'+ res.getBody());

    return res.getBody();

    }

    }

    Let me know if you have any question on this.

    Thank You,

    Hitesh Patel

    Email :- hiteshpatel.aspl@gmail.com

    http://mrjavascript.blogspot.in/
0/9000