2012-02-09 15 views
7

Ben salesforce api'yi kullanıyorum. Saleforce/php araç setini indirdim ve sunucumdaki bir web formundan başarılı kişiler ve hesaplar oluşturabiliyorum.salesforce api'yi kullanarak hesapla bağlantı kurun

yapıyorum bir kişi oluşturmak için aşağıdakileri: bir hesap oluşturmak için

$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'); 

aşağıdaki

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

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

kimse bana bir ilişkilendirmek nasıl basit bir örnek verebilir Bir hesap ile iletişim kurmak?

Kuruluşun bu olup olmadığını soran bir onay kutusu var. Kullanıcı bu kutuyu işaretlerse, bazı verilerle bir organizasyon hesabı oluşturmak ve bazı verilerle bir iletişim kurmak ve ikisini ilişkilendirmek istiyorum.

Tam bir üflemeli çalışma örneği aramıyorum ama sadece doğru yönde beni işaret eden bir şey arıyorum.

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] => 
     ) 

)

Ama çalışıyorum:

bu döndürür ben superfell @

$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'); 

denedi

001Z0000004XeWfIAK

ait kimliği ile bir hesabınız var Sağlar ki Bir temasla bir ilişkiyi ilişkilendirmek için

+0

Kişi oluşturulmuyor mu? Herhangi bir hata var mı? –

+0

Oluşturmanın neden başarısız olduğunu görmek için örnek $ oluşturmalısınız. – superfell

+0

Üzgünüm. Açık olduğumu düşünmüyorum. Kuruluş adı verilen bir hesap türüm var. Her kuruluşun onlarla ilişkili kişiler vardır. Kişileri kuruluşla ilişkilendirmeye çalışıyorum – jpshayes

cevap

6

Tamam, ben kendime cevap veriyorum çünkü Superfell yorumunu cevap olarak göremiyorum. Ama onun comment

"Hesabı oluştururken, ev RecordType değil rekor tipine recordTypeId ayarlamanız gerekir - superfell"

beni cevap almak yardımcı oldu.

İşte bir hesap oluşturmak için son kod ve daha sonra bu hesabın bir kişisi.

//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'); 

Hesabı oluşturduktan sonra, Salesforce

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

) 

Sonra bir kişi oluşturmak ve benim yeni bir hesapla ilişkilendirmek için am güçlü yeni accountid ile bir başarı iletisi döndürür

$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'); 

Jeremey ve Superfell'e tekrar teşekkür ederiz. Saatlerimi kurtardım.

6

İletişim AccountId alanında sahiptir. Bu nedenle aşağıdaki kod, hesap kimliğinizin $accountId ve $resource[0] isimli bir değişkende olduğunu ve ilişkilendirmek istediğiniz kişinin olduğunu varsayar.

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

Çok iyi bir php bilmiyorum, ama bunun doğru olduğunu düşünüyorum.

+0

Teşekkürler Jeremmy. Bunu denediğime inanıyorum. Sorunumu – jpshayes

+0

üzerinde güncelledim. AccountId dışında başka bir ilişki yok, ancak öncelikle Contact.AccountId'de kullanmak için kimliğini alabilmeniz için önce hesap oluşturulmalıdır. Aldığınız Hesap/Kişi için kayıt türlerinin eşleşmesini gerektiren bir doğrulama onayıdır, doğrulama kuralını kontrol edin ve uygun kayıt türleri atayın – mmix