2

新しい連絡先の添付ファイルを追加する必要があります。新しい連絡先を追加するために APEX クラスを使用しています。新しい連絡先を作成できます。連絡先の注文情報を維持する必要があります。これは、利用可能なフィールド/カスタム フィールドでは不可能です。ということで、愛着を持ってやってみます。顧客は複数の注文を持っている場合があります。C#を使用して連絡先に添付ファイルを追加する方法を教えてください。

以下のコード スニペットを見つけてください。

Contact newContact = new Contact();

newContact.LastName = downloadInformation.Name;
newContact.Email = downloadInformation.Email;

try
{
    SforceService salesForce = new SforceService();
    MySFServiceService mySFServive = new MySFServiceService();
    mySFServive.SessionHeaderValue = new SForce.MyService.SessionHeader();

    LoginResult loginResult = salesForce.login("id", "password");
    mySFServive.SessionHeaderValue.sessionId = loginResult.sessionId;
    // UserRegistration is a method defined in our apex class.
    // parametter 1: contact object parameter
    // 2: account name
    mySFServive.UserRegistration(newContact, "Test Account");
}
catch (Exception ex)
{
}
4

1 に答える 1

3

エンタープライズ WSDL をアプリ (既にあるように見えます) にインポートし、添付ファイル オブジェクトのインスタンスを作成し、その本文を注文 BLOB に設定し、parentId を連絡先の ID に設定します。そのため、カスタム UserRegistration 呼び出しを更新して、作成された contactId を返す必要があります。

salesforce.SessionHeaderValue = new SforceService.SessionHeader();
salesforce.SessionHeaderValue.sessionId = loginResult.sessionId;
salesforce.Url = loginResult.serverUrl;
...
String contactId = mySFervive.UserRegistration(....);
Attachment a = new Attachment();
a.Body = readFileIntoByteArray(someFile);
a.parentId = contactId;
a.Name = "Order #1";

SaveResult sr = salesforce.create(new SObject [] {a})[0];
if (sr.success){ 
// sr.id contains id of newly created attachment
} else {
 //sr.errors[0] contains reason why attachment couldn't be created.
}
于 2012-09-21T14:34:34.100 に答える