2012-02-09 27 views
7

Tôi mới sử dụng api salesforce. Tôi đã tải xuống bộ công cụ saleforce/php và có thể tạo thành công các liên hệ và tài khoản từ biểu mẫu web trên máy chủ của tôi.liên hệ với tài khoản bằng cách sử dụng Salesforce api

Để tạo một số liên lạc Tôi đang làm như sau:

$records[0] = new stdclass(); 
    $records[0]->FirstName = $FirstName; 
    $records[0]->LastName = $LastName; 
    $records[0]->Email = $Email; 
    $records[0]->Phone = $Phone; 
    $records[0]->MailingStreet = $MailingStreet; 
    $records[0]->MailingCity = $MailingCity; 
    $records[0]->MailingState = $MailingState; 
    $records[0]->MailingPostalCode = $MailingPostalCode; 
    $records[0]->MailingCountry = $MailingCountry; 
    $records[0]->LeadSource = $LeadSource; 

    $create = $mySforceConnection->create($records, 'Contact'); 

Để tạo tài khoản tôi đang làm việc

sau
$records[0] = new stdclass(); 
    $records[0]->Name = $Name 

    $create = $mySforceConnection->create($records, 'Account'); 

bất cứ ai có thể cho tôi một ví dụ đơn giản thế nào tôi sẽ kết hợp một liên hệ với một tài khoản?

Tôi có một hộp kiểm trên biểu mẫu hỏi xem đây có phải là tổ chức hay không. Nếu người dùng chọn hộp này, tôi muốn tạo một tài khoản tổ chức với một số dữ liệu và tạo một liên hệ với một số dữ liệu và kết hợp cả hai.

Tôi không tìm kiếm một ví dụ làm việc đầy đủ nhưng nhiều thứ khác chỉ trỏ tôi đi đúng hướng.

phép nói rằng tôi có một tài khoản với id của 001Z0000004XeWfIAK

Tôi đã thử

$records[0] = new stdclass(); 
    $records[0]->FirstName = $FirstName; 
    $records[0]->LastName = $LastName; 
    $records[0]->Email = $Email; 
    $records[0]->Phone = $Phone; 
    $records[0]->MailingStreet = $MailingStreet; 
    $records[0]->MailingCity = $MailingCity; 
    $records[0]->MailingState = $MailingState; 
    $records[0]->MailingPostalCode = $MailingPostalCode; 
    $records[0]->MailingCountry = $MailingCountry; 
    $records[0]->LeadSource = $LeadSource; 
    $records[0]->AccountId = '001Z0000004XeWfIAK'; 

    $create = $mySforceConnection->create($records, 'Contact'); 

@ superfell

nó sẽ trả về này:

Array 
(
    [0] => stdClass Object 
     (
      [errors] => Array 
       (
        [0] => stdClass Object 
         (
          [message] => A Household Contact's account must be a household. 
          [statusCode] => FIELD_CUSTOM_VALIDATION_EXCEPTION 
         ) 

       ) 

      [id] => 
      [success] => 
     ) 

)

Nhưng tôi đang cố gắng để liên kết một liên hệ với một orginization

+0

Liên hệ có được tạo ra không? Bạn có gặp lỗi gì không? –

+0

Bạn cần tạo ví dụ $ để xem tại sao quá trình tạo không thành công. – superfell

+0

Tôi xin lỗi. Tôi không nghĩ rằng tôi đang rõ ràng. Tôi có một loại tài khoản được gọi là tổ chức. Mọi tổ chức đều có liên hệ được liên kết với họ. Tôi đang cố kết hợp các liên hệ với tổ chức – jpshayes

Trả lời

6

Ok, tôi tự trả lời vì tôi không thể đánh dấu nhận xét của Superfell là câu trả lời. Nhưng bình luận của ông

"Khi bạn tạo tài khoản, bạn cần phải thiết lập các recordTypeId để loại hồ sơ đó không phải là RECORDTYPE hộ gia đình -. Superfell"

đã giúp tôi có được câu trả lời.

Đây là mã cuối cùng của tôi để tạo tài khoản và sau đó là địa chỉ liên hệ của tài khoản đó.

//First I create a simple account 
    //With no recordTypeId specified it defaults to the the type I want 

    $records[0] = new stdclass(); 
    $records[0]->Name = $Name; 

    //Create a new orginization account 
    $org = $mySforceConnection->create($records, 'Account'); 

Sau khi tạo tài khoản, Salesforce trả về một thông báo thành công với AccountID mới

 
Array 
(
    [0] => stdClass Object 
     (
      [id] => 001Z0000004XfXcIAK 
      [success] => 1 
     ) 

) 

Sau đó, tôi có thể tạo ra một số liên lạc và liên kết nó với tài khoản mới của tôi

$contact[0] = new stdclass(); 
    $contact[0]->FirstName = $FirstName; 
    $contact[0]->LastName = $LastName; 
    $contact[0]->Email = $Email; 
    $contact[0]->Phone = $Phone; 
    $contact[0]->MailingStreet = $MailingStreet; 
    $contact[0]->MailingCity = $MailingCity; 
    $contact[0]->MailingState = $MailingState; 
    $contact[0]->MailingPostalCode = $MailingPostalCode; 
    $contact[0]->MailingCountry = $MailingCountry; 
    $contact[0]->LeadSource = $LeadSource; 

    //This is where my problem was, Thanks again superfell 
    //$organization_contact = My custom Salesforce contact type ID, E.G. recordTypeId 
    $contact[0]->recordTypeId = $orginization_contact; 

    //The AccountId is the account I want to associate this contact with. 
    //AccountId was returned by Salesforce upon the creation of the account (See above) 
    $contact[0]->AccountId = $org[0]->id; 

    $contact = $mySforceConnection->create($contact, 'Contact'); 

Cảm ơn bạn một lần nữa tới Jeremey và Superfell. Đã lưu tôi giờ.

6

Địa chỉ liên hệ có trường AccountId. Vì vậy, mã bên dưới giả sử bạn có id tài khoản trong một biến được gọi là $accountId$resource[0] là liên hệ bạn muốn liên kết.

$records[0]->AccountId = $accountId 
$mySforceConnection->update($records) 

Tôi không biết php rất tốt, nhưng tôi nghĩ điều này sẽ gần đúng.

+0

Cảm ơn Jeremmy. Tôi tin rằng tôi đã thử điều này. Tôi đã cập nhật câu hỏi của mình ở trên – jpshayes

+0

Không có liên kết nào khác ngoại trừ thông qua AccountId, nhưng trước tiên tài khoản phải được tạo để bạn có thể nhận được Id của nó để sử dụng trong Contact.AccountId. Những gì bạn nhận được là lỗi xác thực tùy chỉnh yêu cầu kết hợp các loại bản ghi cho Tài khoản/Liên hệ, kiểm tra quy tắc xác thực và chỉ định các loại bản ghi thích hợp – mmix

Các vấn đề liên quan