3

SOAP APIパートナーWSDLを使用して、プログラムでSalesForceにユーザーを作成したいと思います。これは私のコードです:

import com.sforce.soap.partner.Connector;
import com.sforce.soap.partner.PartnerConnection;
import com.sforce.soap.partner.QueryResult;
import com.sforce.soap.partner.SaveResult;
import com.sforce.soap.partner.sobject.SObject;
import com.sforce.ws.ConnectionException;
import com.sforce.ws.ConnectorConfig;

import com.sforce.soap.partner.sobject.*;
import com.sforce.soap.partner.*;
import com.sforce.soap.*;
import com.sforce.*;

public class PartnerAPICreateUser {

    /**
     * @param args
     */
    public static void main(String[] args) {

        ConnectorConfig config = new ConnectorConfig();
        config.setUsername("waprau@waprau.com");
        config.setPassword("dhskjhkjgfkjsdhkfjg");

        PartnerConnection connection = null;

        try {
            SObject user = new SObject();

            user.setType("user");

            user.setField("Alias", "abcd");
            user.setField("DefaultGroupNotificationFrequency", "P");
            user.setField("DigestFrequency", "D");
            user.setField("Email", "abcd@pqrs.com");
            user.setField("EmailEncodingKey", "ISO-8859-1");
            user.setField("LanguageLocaleKey", "English");
            user.setField("LastName", "Rau");
            user.setField("LocaleSidKey", "En");
            user.setField("TimeZoneSidKey", "America/Los_Angeles");
            user.setField("Username", "abcd@pqrs.com");
            user.setField("UserPermissionsCallCenterAutoLogin", "true");
            user.setField("UserPermissionsMarketingUser", "true");
            user.setField("UserPermissionsOfflineUser", "true");


            connection = Connector.newConnection(config);
            SaveResult[] results = connection.create(new SObject[] { user });
            System.out.println("Created user: " + results[0].getId());

            QueryResult queryResults = connection
                    .query("SELECT Id, Name from User "
                            + "ORDER BY CreatedDate DESC LIMIT 5");
            if (queryResults.getSize() > 0) {
                for (SObject s : queryResults.getRecords()) {
                    System.out.println("Id: " + s.getField("Id") + " - Name: "
                            + s.getField("Name"));
                }
            }

        } catch (ConnectionException ce) {
            ce.printStackTrace();
        }
    }
}

ただし、このJavaプログラムを実行すると、「作成されたユーザー:null」を示す次の出力が表示されます:-(

Created user: null
Id: 005E0000001fb3vIAA - Name: Rau
Id: 005E0000001fVTTIA2 - Name: Chatter Expert
Id: 005E0000001fVU1IAM - Name: Wap Rau

MyName> Setup> Manage Users(Administration Setup内)>Profilesに移動したときの管理者権限

ここに画像の説明を入力してください

何が悪いのか教えてもらえますか?

ありがとう、

ワップラウ

4

1 に答える 1

4

create呼び出しはエラーを返しますが、それをチェックしません。返されたSaveResultは、ユーザーを作成しなかった理由を示します。次のようなものが必要です。

SaveResult[] results = connection.create(new SObject[] { user });
if (results[0].isSuccess())
    System.out.println("Created user: " + results[0].getId());
else
    System.out.println("Error: " + results[0].getErrors()[0].getStatusCode() + 
                       ":" + results[0].getErrors()[0].getMessage());
于 2012-09-19T15:09:46.503 に答える