我想通過使用SOAP API以編程方式一次性創建5-6個SalesForce用戶。我使用的是合作伙伴API,我有一個開發人員版沙箱。我從數據庫表中檢索用戶信息,然後使用API,我想一次創建這些5-6個用戶。然而,在創建另一個用戶之後,我可以創建一個用戶,但會拋出錯誤LICENSE_LIMIT_EXCEEDED:License Limit Exceeded
。創建SalesForce用戶時出錯LICENSE_LIMIT_EXCEEDED:超出許可限制
這是我的代碼從數據庫中檢索用戶信息的快照,然後創建一個用戶編程:
SObject user = new SObject();
user.setType("User");
while (rs.next()) {
user.setField("Alias", rs.getString("Alias"));
user.setField("Email", rs.getString("Email"));
user.setField("EmailEncodingKey", rs.getString("EmailEncodingKey"));
user.setField("LanguageLocaleKey", "En_US");
user.setField("LastName", rs.getString("LastName"));
user.setField("LocaleSidKey", rs.getString("LocaleSidKey"));
user.setField("TimeZoneSidKey", "America/Los_Angeles");
user.setField("Username", rs.getString("Username"));
user.setField("UserPermissionsCallCenterAutoLogin", "false");
user.setField("UserPermissionsMarketingUser", "false");
user.setField("UserPermissionsOfflineUser", "false");
user.setField("ProfileId", connection.getUserInfo().getProfileId());
SaveResult[] results = connection.create(new SObject[] { user });
System.out.println("Created user: " + results[0].getId());
if (results[0].isSuccess())
out.println("Created user: " + results[0].getId());
else
out.println("Error: " + results[0].getErrors()[0].getStatusCode() +
":" + results[0].getErrors()[0].getMessage());
}
QueryResult queryResults = connection
.query("SELECT Id, Name from User "
+ "ORDER BY CreatedDate DESC LIMIT 5");
if (queryResults.getSize() > 0) {
for (SObject s : queryResults.getRecords()) {
out.println("Id: " + s.getField("Id") + " - Name: "
+ s.getField("Name"));
}
}
我可以在這裏創建但是一個用戶它拋出錯誤LICENSE_LIMIT_EXCEEDED:License Limit Exceeded
之後創建一個用戶。
這些都是可用的許可證數量:
我可以看到,剩下的Salesforce的許可證是0。但是,我只是想創造一些用戶不一定必須是Salesforce的用戶。它可以是任何類型的用戶,只要能夠登錄我的組織即可。當我試圖創造一些不同類型的用戶,如「顫振自由」,其利用user.setField("UserType", "CsnOnly")
它給錯誤INVALID_FIELD_FOR_INSERT_UPDATE:Unable to create/update fields: UserType
這些都是在我的Salesforce的用戶有5000個許可證的:
如何解決這個問題?我只想從數據庫創建一些用戶,然後登錄到SalesForce。它們不應該是管理員。他們可以擁有最低的權限,但他們應該能夠登錄到SalesForce。
感謝JCD的回覆。如何在上面的代碼中分配Chatter Free用戶的配置文件?再次感謝。 – waprau
@waprau,查看我更新的答案 - 您需要查詢Chatter Free用戶配置文件的'Id'字段,以便將其分配到用戶記錄的'ProfileId'字段。在原始示例中,您只是將插入的用戶分配給進行API連接的用戶的配置文件,在本例中爲系統管理員。 – JCD
感謝JCD它的工作。非常感謝您的詳細解答。上面的代碼中有一些拼寫錯誤。 – waprau