function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
SKumar SFDCSKumar SFDC 

SOAP API Error - Salesforce to Salesforce

Dear Folks,

I'm struggling to figure out the error and need your help. I'm trying to workout SOAP Integration between 2 salesforce org, encounteres below error. Pls help me out. 

Error: Invalid Data. Review all error messages below to correct your data. Apex trigger AccountSyncSOAP caused an unexpected exception, contact your administrator: AccountSyncSOAP: execution of AfterInsert caused by: System.CalloutException: Callout from triggers are currently not supported.: Class.partnerSoapSforceCom.Soap.login: line 3410, column 1

APEX class:
public class AccountSyncSOAP {

    public static void Connector(String name){
        partnerSoapSforceCom.soap myPartnerSOAP = new partnerSoapSforceCom.soap();
        partnerSoapSforceCom.LoginResult partnerLoginResult = myPartnerSOAP.login('username@username.com','PASSWORD+TOKENHgaWESnkrmTdX8ouH0BPJGmhE');
        
        system.debug('partnerLoginResult >>>>>'+partnerLoginResult);
        system.debug('partnerLoginResult >>>>>'+partnerLoginResult.sessionId);
        
        soapAccount.SessionHeader_element webserviceSessionHeader = new soapAccount.SessionHeader_element();
        webserviceSessionHeader.sessionId = partnerLoginResult.sessionId;
        
        soapAccount.AccountSyncSOAP objA1 = new soapAccount.AccountSyncSOAP();
        objA1.SessionHeader = webserviceSessionHeader;
        String Id = objA1.createAccount(name);
        system.debug('ID >>>>>> '+Id);
    }
}

WSDL(Partner):
//Generated by wsdl2apex

public class soapAccount {
    public class LogInfo {
        public String category;
        public String level;
        private String[] category_type_info = new String[]{'category','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] level_type_info = new String[]{'level','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'category','level'};
    }
    public class DebuggingInfo_element {
        public String debugLog;
        private String[] debugLog_type_info = new String[]{'debugLog','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'debugLog'};
    }
    public class address {
        public String city;
        public String country;
        public String countryCode;
        public String geocodeAccuracy;
        public String postalCode;
        public String state;
        public String stateCode;
        public String street;
        private String[] city_type_info = new String[]{'city','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] country_type_info = new String[]{'country','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] countryCode_type_info = new String[]{'countryCode','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] geocodeAccuracy_type_info = new String[]{'geocodeAccuracy','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] postalCode_type_info = new String[]{'postalCode','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] state_type_info = new String[]{'state','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] stateCode_type_info = new String[]{'stateCode','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] street_type_info = new String[]{'street','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'city','country','countryCode','geocodeAccuracy','postalCode','state','stateCode','street'};
    }
    public class SessionHeader_element {
        public String sessionId;
        private String[] sessionId_type_info = new String[]{'sessionId','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'sessionId'};
    }
    public class CallOptions_element {
        public String client;
        private String[] client_type_info = new String[]{'client','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'client'};
    }
    public class DebuggingHeader_element {
        public soapAccount.LogInfo[] categories;
        public String debugLevel;
        private String[] categories_type_info = new String[]{'categories','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'0','-1','false'};
        private String[] debugLevel_type_info = new String[]{'debugLevel','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'categories','debugLevel'};
    }
    public class location {
        public Double latitude;
        public Double longitude;
        private String[] latitude_type_info = new String[]{'latitude','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] longitude_type_info = new String[]{'longitude','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'latitude','longitude'};
    }
    public class AllowFieldTruncationHeader_element {
        public Boolean allowFieldTruncation;
        private String[] allowFieldTruncation_type_info = new String[]{'allowFieldTruncation','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','false'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'allowFieldTruncation'};
    }
    public class createAccount_element {
        public String Name;
        private String[] Name_type_info = new String[]{'Name','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','true'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'Name'};
    }
    public class createAccountResponse_element {
        public String result;
        private String[] result_type_info = new String[]{'result','http://soap.sforce.com/schemas/class/AccountSyncSOAP',null,'1','1','true'};
        private String[] apex_schema_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP','true','false'};
        private String[] field_order_type_info = new String[]{'result'};
    }
    public class AccountSyncSOAP {
        public String endpoint_x = 'https://ap1.salesforce.com/services/Soap/class/AccountSyncSOAP';
        public Map<String,String> inputHttpHeaders_x;
        public Map<String,String> outputHttpHeaders_x;
        public String clientCertName_x;
        public String clientCert_x;
        public String clientCertPasswd_x;
        public Integer timeout_x;
        public soapAccount.SessionHeader_element SessionHeader;
        public soapAccount.DebuggingInfo_element DebuggingInfo;
        public soapAccount.AllowFieldTruncationHeader_element AllowFieldTruncationHeader;
        public soapAccount.CallOptions_element CallOptions;
        public soapAccount.DebuggingHeader_element DebuggingHeader;
        private String SessionHeader_hns = 'SessionHeader=http://soap.sforce.com/schemas/class/AccountSyncSOAP';
        private String DebuggingInfo_hns = 'DebuggingInfo=http://soap.sforce.com/schemas/class/AccountSyncSOAP';
        private String AllowFieldTruncationHeader_hns = 'AllowFieldTruncationHeader=http://soap.sforce.com/schemas/class/AccountSyncSOAP';
        private String CallOptions_hns = 'CallOptions=http://soap.sforce.com/schemas/class/AccountSyncSOAP';
        private String DebuggingHeader_hns = 'DebuggingHeader=http://soap.sforce.com/schemas/class/AccountSyncSOAP';
        private String[] ns_map_type_info = new String[]{'http://soap.sforce.com/schemas/class/AccountSyncSOAP', 'soapAccount'};
        public String createAccount(String Name) {
            soapAccount.createAccount_element request_x = new soapAccount.createAccount_element();
            request_x.Name = Name;
            soapAccount.createAccountResponse_element response_x;
            Map<String, soapAccount.createAccountResponse_element> response_map_x = new Map<String, soapAccount.createAccountResponse_element>();
            response_map_x.put('response_x', response_x);
            WebServiceCallout.invoke(
              this,
              request_x,
              response_map_x,
              new String[]{endpoint_x,
              '',
              'http://soap.sforce.com/schemas/class/AccountSyncSOAP',
              'createAccount',
              'http://soap.sforce.com/schemas/class/AccountSyncSOAP',
              'createAccountResponse',
              'soapAccount.createAccountResponse_element'}
            );
            response_x = response_map_x.get('response_x');
            return response_x.result;
        }
    }
}
Shun KosakaShun Kosaka
Hi SKumar,
Try using @future(callout=true) to your Connector method!