2012-02-09 9 views
7

का उपयोग कर खाते के साथ सहयोगी संपर्क मैं salesforce एपीआई का उपयोग करने के लिए नया हूँ। मैंने salesforce/php टूलकिट डाउनलोड किया है और मेरे सर्वर पर वेबफॉर्म से सफलतापूर्वक संपर्क और खाते बनाने में सक्षम हूं।salesforce एपीआई

संपर्क मैं कर रहा हूँ बनाने के लिए निम्नलिखित:

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

खाता बनाने के लिए मैं निम्नलिखित

कर रहा हूँ
$records[0] = new stdclass(); 
    $records[0]->Name = $Name 

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

किसी को भी मुझे कैसे मैं एक संबद्ध कर देते का एक सरल उदाहरण दे सकते हैं एक खाते से संपर्क करें?

मेरे पास फॉर्म पर एक चेक-बॉक्स है जो पूछता है कि यह एक संगठन है या नहीं। यदि उपयोगकर्ता इस बॉक्स को चेक करता है तो मैं कुछ डेटा के साथ एक संगठन खाता बनाना चाहता हूं और कुछ डेटा के साथ संपर्क बना सकता हूं और दोनों को जोड़ सकता हूं।

मैं पूरी तरह से काम करने वाले उदाहरण की तलाश नहीं कर रहा हूं, लेकिन कुछ सही दिशा में मुझे इंगित करता हूं।

चलें कहते हैं कि मैं 001Z0000004XeWfIAK

की आईडी

मैं

$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 के साथ एक खाता

यह इस रिटर्न:

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

)

लेकिन मैं कोशिश कर रहा हूँ एक संरेखण के साथ संपर्क को जोड़ने के लिए

+0

क्या संपर्क बिल्कुल बनाया गया है? क्या आपको कोई त्रुटि मिलती है? –

+0

आपको यह देखने के लिए $ बनाने की आवश्यकता है कि निर्माण विफल क्यों हुआ। – superfell

+0

मुझे खेद है। मुझे नहीं लगता कि मैं स्पष्ट हूं। मेरे पास संगठन नामक एक खाता प्रकार है। प्रत्येक संगठन के पास उनके साथ जुड़े संपर्क होते हैं। मैं संगठन – jpshayes

उत्तर

6

ठीक है, मैं इसका जवाब दे रहा हूं क्योंकि मैं सुपरफेल टिप्पणी को उत्तर के रूप में चिह्नित नहीं कर सकता। लेकिन उनके टिप्पणी

"। आप खाता बनाते हैं, आप एक रिकॉर्ड प्रकार है कि घर के RECORDTYPE नहीं है करने के लिए recordTypeId निर्धारित करने की आवश्यकता - superfell"

मदद की मुझे जवाब मिल।

खाता बनाने के लिए मेरा अंतिम कोड यहां दिया गया है और फिर उस खाते का संपर्क है।

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

खाता बनाने के बाद, सेल्सफोर्स नई ACCOUNTID

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

) 

तो मैं एक संपर्क बना सकते हैं और अपने नए खाते से संबद्ध करने में सक्षम हूँ के साथ एक सफलता संदेश देता है

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

फिर से धन्यवाद जेरेमी और सुपरफेल। मुझे घंटे बचाया।

6

संपर्क में AccountId फ़ील्ड है। तो नीचे दिया गया कोड मानता है कि आपके पास $accountId नामक चर में खाता आईडी है और $resource[0] वह संपर्क है जिसे आप संबद्ध करना चाहते हैं।

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

मुझे PHP बहुत अच्छी तरह से नहीं पता, लेकिन मुझे लगता है कि यह सही होने के करीब होगा।

+0

धन्यवाद जेरेमी। मुझे विश्वास है कि मैंने यह कोशिश की है। मैंने – jpshayes

+0

से ऊपर अपना प्रश्न अपडेट किया है खाता आईडी के माध्यम से छोड़कर कोई अन्य सहयोग नहीं है, लेकिन खाता पहले सबसे पहले बनाया जाना चाहिए ताकि आप अपने आईडी को Contact.AccountId में उपयोग कर सकें। आपको जो मिलता है वह कस्टम सत्यापन त्रुटि है जो खाता/संपर्क के लिए रिकॉर्ड प्रकारों के मिलान की आवश्यकता होती है, सत्यापन नियम की जांच करें और उचित रिकॉर्ड प्रकार असाइन करें – mmix