use of com.salesforce.soap.partner.SforceServiceLocator in project tdi-studio-se by Talend.
the class SObjectsToSchema method login.
boolean login(String userName, String password) throws ServiceException {
/**
* Next, the sample client application initializes the binding stub. This is our main interface to the API
* through which all calls are made. The getSoap method takes an optional parameter, (a java.net.URL) which is
* the endpoint. For the login call, the parameter always starts with http(s)://login.salesforce.com. After
* logging in, the sample client application changes the endpoint to the one specified in the returned
* loginResult object.
*/
binding = (SoapBindingStub) new SforceServiceLocator().getSoap();
// Time out after a minute
binding.setTimeout(60000);
// Test operation
LoginResult loginResult;
try {
System.out.println("LOGGING IN NOW....");
loginResult = binding.login(userName, password);
} catch (LoginFault ex) {
// The LoginFault derives from AxisFault
ExceptionCode exCode = ex.getExceptionCode();
if (exCode == ExceptionCode.FUNCTIONALITY_NOT_ENABLED || exCode == ExceptionCode.INVALID_CLIENT || exCode == ExceptionCode.INVALID_LOGIN || exCode == ExceptionCode.LOGIN_DURING_RESTRICTED_DOMAIN || exCode == ExceptionCode.LOGIN_DURING_RESTRICTED_TIME || exCode == ExceptionCode.ORG_LOCKED || exCode == ExceptionCode.PASSWORD_LOCKOUT || exCode == ExceptionCode.SERVER_UNAVAILABLE || exCode == ExceptionCode.TRIAL_EXPIRED || exCode == ExceptionCode.UNSUPPORTED_CLIENT) {
System.out.println("Please be sure that you have a valid username " + "and password.");
} else {
// Write the fault code to the console
System.out.println(ex.getExceptionCode());
// Write the fault message to the console
System.out.println("An unexpected error has occurred." + ex.getMessage());
}
return false;
} catch (Exception ex) {
System.out.println("An unexpected error has occurred: " + ex.getMessage());
ex.printStackTrace();
return false;
}
if (loginResult.isPasswordExpired()) {
System.out.println("An error has occurred. Your password has expired.");
return false;
}
/**
* Once the client application has logged in successfully, it will use the results of the login call to reset
* the endpoint of the service to the virtual server instance that is servicing your organization. To do this,
* the client application sets the ENDPOINT_ADDRESS_PROPERTY of the binding object using the URL returned from
* the LoginResult.
*/
binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, loginResult.getServerUrl());
/**
* The sample client application now has an instance of the SoapBindingStub that is pointing to the correct
* endpoint. Next, the sample client application sets a persistent SOAP header (to be included on all subsequent
* calls that are made with the SoapBindingStub) that contains the valid sessionId for our login credentials. To
* do this, the sample client application creates a new SessionHeader object and set its sessionId property to
* the sessionId property from the LoginResult object.
*/
// Create a new session header object and add the session id
// from the login return object
SessionHeader sh = new SessionHeader();
sh.setSessionId(loginResult.getSessionId());
/**
* Next, the sample client application calls the setHeader method of the SoapBindingStub to add the header to
* all subsequent method calls. This header will persist until the SoapBindingStub is destroyed until the header
* is explicitly removed. The "SessionHeader" parameter is the name of the header to be added.
*/
// set the session header for subsequent call authentication
binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "SessionHeader", sh);
return true;
}
use of com.salesforce.soap.partner.SforceServiceLocator in project tdi-studio-se by Talend.
the class Test4Feature8540 method doQuery.
public void doQuery() throws Exception {
binding = (SoapBindingStub) new SforceServiceLocator().getSoap(new URL("https://www.salesforce.com/services/Soap/u/16.0"));
binding.setTimeout(60000);
LoginResult loginResult = binding.login("musicatcher@gmail.com", "1234qwer");
binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, loginResult.getServerUrl());
SessionHeader sh = new SessionHeader();
sh.setSessionId(loginResult.getSessionId());
binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "SessionHeader", sh);
// com.sforce.soap.partner.QueryOptions qOptions = new com.sforce.soap.partner.QueryOptions();
// qOptions.setBatchSize(new Integer(2));
// binding.setHeader(
// new com.sforce.soap.partner.SforceServiceLocator()
// .getServiceName().getNamespaceURI(),
// "QueryOptions", qOptions);
QueryResult qr = binding.query("SELECT Name, Type, Phone, Account.CreatedBy.CreatedBy.CreatedBy.Email, Account.Owner.city, (SELECT Contact.LastName, Contact.FirstName " + "FROM Account.Contacts Order By Contact.LastName), (SELECT Note.Title FROM Account.Notes), Account.Owner.Country " + "FROM Account WHERE Name !='United Oil & Gas Corp.'");
// QueryResult qr = binding
// .query("select Name,Id,Type from Account");
TopQueryResult topqr = new TopQueryResult();
topqr.processTopQueryResult(qr);
topqr.printResult();
List<TopRecord> allTopRecords = topqr.getAllTopRecords();
}
use of com.salesforce.soap.partner.SforceServiceLocator in project tdi-studio-se by Talend.
the class PartnerSamples method querySample.
private void querySample() {
// call the login function to do so
if (!loggedIn) {
if (!login()) {
return;
}
}
QueryResult qr = null;
QueryOptions qo = new QueryOptions();
qo.setBatchSize(new Integer(3));
binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "QueryOptions", qo);
try {
qr = binding.query("select id, Website, Name from Account where Name = 'Golden Straw'");
ArrayList records = this.loadQueryResults(qr);
if (records.size() != 0) {
HashMap record = (HashMap) records.get(0);
System.out.println("Retrieved " + new Integer(records.size()).toString() + " account(s) using Name = 'Golden Straw', String = " + (record.containsKey("id") ? record.get("id").toString() : " ").toString() + ", website = " + (record.containsKey("website") ? record.get("website").toString() : " ").toString());
}
// if (qr.getSize() != 0) {
// SObject account = qr.getRecords()[0];
//
// System.out.println("Retrieved "
// + new Integer(qr.getSize()).toString()
// + " account(s) using Name = 'Golden Straw', String = "
// + account.getId() + ", website = "
// + account.get_any()[1]);
// }
qr = binding.query("select FirstName, LastName from Contact");
int loopCount = 0;
boolean continueLoop = true;
while (continueLoop) {
System.out.println("Results set " + new Integer(loopCount++).toString() + " - ");
// process the query results
for (int i = 0; i < qr.getRecords().length; i++) {
SObject con = qr.getRecords()[i];
String fName = "";
String lName = "";
if (con.get_any()[0].getName().toLowerCase().equals("firstname")) {
fName = con.get_any()[0].getValue();
lName = con.get_any()[1].getValue();
} else
lName = con.get_any()[0].getValue();
if (fName == null) {
System.out.println("Contact " + (i + 1) + ": " + lName);
} else {
System.out.println("Contact " + (i + 1) + ": " + fName + " " + lName);
}
}
// recent queryResult
if (qr.isDone())
continueLoop = false;
else
qr = binding.queryMore(qr.getQueryLocator());
}
System.out.println("\nQuery succesfully executed.");
getUserInput("\nHit return to continue...");
} catch (ApiFault af) {
System.out.println("\nFailed to execute query succesfully, error message was: \n" + af.getExceptionMessage());
getUserInput("\nHit return to continue...");
} catch (Exception ex) {
System.out.println("\nFailed to execute query succesfully, error message was: \n" + ex.getMessage());
getUserInput("\nHit return to continue...");
}
}
use of com.salesforce.soap.partner.SforceServiceLocator in project tdi-studio-se by Talend.
the class PartnerSamples method login.
/*
* login sample Prompts for username and password, set class variable binding resets the url for the binding and
* adds the session header to the binding class variable
*/
private boolean login() {
un = getUserInput("Enter user name: ");
if (un.length() == 0) {
return false;
}
pw = getUserInput("Enter password: ");
if (pw.length() == 0) {
return false;
}
// Provide feed back while we create the web service binding
System.out.println("Creating the binding to the web service...");
/*
* There are 2 ways to get the binding, one by passing a url to the getSoap() method of the
* SforceServiceLocator, the other by not passing a url. In the second case the binding will use the url
* contained in the wsdl file when the proxy was generated.
*/
try {
binding = (SoapBindingStub) new SforceServiceLocator().getSoap();
} catch (ServiceException ex) {
System.out.println("ERROR: createing binding to soap service, error was: \n" + ex.getMessage());
System.out.print("Hit return to continue...");
return false;
}
// Time out after a minute
binding.setTimeout(60000);
// binding._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:8080/services/Soap/u/8.0");
// Attempt the login giving the user feedback
System.out.println("LOGGING IN NOW....");
try {
loginResult = binding.login(un, pw);
} catch (LoginFault lf) {
System.out.println(lf.getExceptionMessage());
// lf.printStackTrace();
getUserInput("\nHit return to continue...");
return false;
} catch (ApiFault af) {
System.out.println(af.getExceptionMessage());
getUserInput("\nHit return to continue...");
} catch (RemoteException re) {
System.out.println(re.getMessage());
re.printStackTrace();
getUserInput("\nHit return to continue...");
return false;
}
System.out.println("\nThe session id is: " + loginResult.getSessionId());
System.out.println("\nThe new server url is: " + loginResult.getServerUrl());
binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, loginResult.getServerUrl());
// binding._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:8080/services/Soap/u/8.0");
// Create a new session header object and set the session id to that
// returned by the login
SessionHeader sh = new SessionHeader();
sh.setSessionId(loginResult.getSessionId());
binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "SessionHeader", sh);
loggedIn = true;
// call the getServerTimestamp method
getServerTimestampSample();
// call the getUserInfo method
getUserInfoSample();
return true;
}
Aggregations