2012-02-09 23 views
7

salesforce APIを初めて使用しています。私はsalesforce/phpツールキットをダウンロードし、サーバー上のWebフォームから連絡先とアカウントを作成することができます。salesforce apiを使用して連絡先を連絡します

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

をやってアカウントを作成するには:私は次のことをやっている連絡先を作成する

アカウントに連絡しますか?

私は、これが組織であるかどうかを尋ねるフォームにチェックボックスを表示しています。ユーザーがこのボックスにチェックを入れると、いくつかのデータを含む組織アカウントを作成し、いくつかのデータとの連絡先を作成してその2つを関連付けることができます。

私は本格的な作業例を探しているわけではありませんが、正しい方向に私を向ける必要があります。

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

)

しかし、私はしようとしています:

それはこの返し、私は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'); 

を試してみました

001Z0000004XeWfIAK

のIDのアカウントを持っているとしましょう連絡先をorginizationに関連付ける方法

+0

連絡先はまったく作成されますか?何かエラーがありますか? –

+0

作成が失敗した理由を確認するには、$ createを実行する必要があります。 – superfell

+0

申し訳ありません。私は私がはっきりしているとは思わない。私は組織というアカウントタイプを持っています。すべての組織には連絡先が関連付けられています。組織との連絡先を関連付けようとしています – jpshayes

答えて

6

私は答えとしてSuperfellのコメントをマークすることができないので、私は自分自身に答えています。しかし、彼のコメント

「あなたがアカウントを作成するとき、あなたは家庭用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'); 

は、アカウントを作成した後、Salesforceは

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

) 

は、その後、私は連絡先を作成し、私の新しいアカウントに関連付けることができる午前新しいたAccountIdに成功メッセージを返し

$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とSuperfellに感謝します。時間を節約しました。

6

連絡先はAccountIdフィールドです。したがって、以下のコードでは、$accountIdという変数にアカウントIDがあり、関連付けたい連絡先は$resource[0]と仮定しています。

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

私は非常によく、PHPを知らないが、私はこれが正しいに近いことだと思います。

+0

ありがとうございました。私はこれを試したと信じています。上記の質問を更新しました – jpshayes

+0

AccountId以外の他の関連付けはありませんが、最初にアカウントを作成してIdをContact.AccountIdで使用できるようにする必要があります。あなたが得るのは、アカウント/連絡先のレコードタイプの一致を必要とするカスタム検証エラーです。検証ルールをチェックし、適切なレコードタイプを割り当てます – mmix

関連する問題