本文介绍了如何使用Salesforce.com SOAP API 在Salesforce.com组织中创建新的用户。
参见前文 - 使用 Salesforce.com SOAP API 实现用户登录
- 框架代码private void partnerAPICreateUser() {
try {
PartnerConnection connection = getPartnerConnection();
SObject newUser = getNewUser(connection);
SaveResult result = createNewUser(connection, newUser);
if (result.isSuccess()) {
System.out.println("Created user: " + result.getId());
} else {
Error[] errors = result.getErrors();
Error error = errors[0];
System.out.println("Error: " + error.getStatusCode() +
":" + error.getMessage());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
以上代码调用三个方法,getPartnerConnection, createNewUser 和createNewUser 然后输出成功或失败信息。
private PartnerConnection getPartnerConnection() throws ConnectionException {
ConnectorConfig config = new ConnectorConfig();
config.setUsername(_username);
config.setPassword(_password + _securityToken);
config.setAuthEndpoint(partnerAuthEndPoint);
if (_useProxy) {
config.setProxy(_proxyHost, _proxyPort);
config.setProxyUsername(_proxyUser);
config.setProxyPassword(_proxyPassword);
}
return new PartnerConnection(config);
}
- 创建基本的Salesforce用户对象,并对必有的字段赋值
private SObject getNewUser(PartnerConnection connection) throws ConnectionException {
SObject newUser = new SObject();
newUser.setType("user");
newUser.setField("Email", "forceapprentice@gmail.com");
newUser.setField("LastName", "Apprentice");
newUser.setField("Username", "forceapprentice@gmail.com");
newUser.setField("Alias", "appr");
newUser.setField("TimeZoneSidKey", "Australia/Sydney");
newUser.setField("LocaleSidKey", "en_US");
newUser.setField("EmailEncodingKey", "ISO-8859-1");
newUser.setField("LanguageLocaleKey", "en_US");
QueryResult profileQuery = connection.query("select Id from Profile where Name = '" + _profileName + "' limit 1");
SObject chatterFreeProfile = profileQuery.getRecords()[0];;
newUser.setField("ProfileId", chatterFreeProfile.getField("Id"));
return newUser;
}
- 在Salesforce.com组织中创建新的用户并向新建用户发送欢迎邮件
private SaveResult createNewUser(PartnerConnection connection, SObject newUser) throws ConnectionException {
//向新建的用户发送欢迎邮件
connection.setEmailHeader(false, false, true);
SaveResult[] results = connection.create(new SObject[] { newUser });
return results[0];
}