使用rest api创建帐户时插入电子邮件

时间:2011-12-21 08:44:21

标签: sugarcrm

我面临Sugar 6.3 CE安装,尝试通过rest api创建新帐户。

我仍然处于CRM的许多内部的学习曲线上,并且无法弄清楚如何通过REST调用创建其他帐户信息时插入电子邮件。

我尝试了很多不同的字段值,在捕获$email1之后,我在sugarCRM网站上看到了一些片段示例。我还没有在论坛或文档中找到其他提及。

用于配置通常的休息调用以在REST api的php中创建帐户的$ parameters数组看起来像这样并且工作正常,除了为$ email1:

$parameters = array(
 'session' => $session,
 'module' => 'Contacts',
 'name_value_list' => array(

   array('name' => 'first_name', 'value' => 
     utf8_encode($contacts["Name"])),

   array('name' => 'last_name',  'value' =>
     utf8_encode($contacts["GivenName"])),
    array('name' => 'phone_work', 'value' =>
     utf8_encode($row->PrimaryPhoneAreaCode . ' ' .  $row->PrimaryPhone)),

   array('name' => 'phone_fax',  'value' => 
     utf8_encode($row->PrimaryFaxAreaCode . ' ' .  $row->PrimaryFaxNumber)),
    array('name' => 'title', 'value' => 
     utf8_encode($contacts["Title"])),

  /*
   * PROBLEM HERE!
   */
   array('name' => 'email1',     'value' => 
     utf8_encode($row->PrimaryEmail)),

   array('name' => 'primary_address_street', 'value'  => 
     utf8_encode($row->Address1) . '  ' . 
     utf8_encode($row->Address2)),
    array('name' => 'language',   'value' => 
     utf8_encode($row->Language)),

   array('name' => 'assigned_user_id', 'value' => 
     get_rep_id($row->Salesperson1Name, $sugarlink)),
   )
);

如果有人有诀窍,我会很好奇。我试图找到电子邮件的字段,但它似乎在单独的表中。任何帮助/提示赞赏。

3 个答案:

答案 0 :(得分:3)

如果您使用REST API, email1 将适用于 set en get 方法(仅对其进行测试)。

未在示例中使用SOAP API,并建议根据SugarCRM建议将所有SOAP迁移到REST。

答案 1 :(得分:2)

您必须先将电子邮件添加到电子邮件地址数据库,创建联系人并在两者之间设置关系; - )

 $set_entry_parametersEADDR = array(
             "session" => $session_id,
             //The name of the module from which to retrieve records.
             "module_name" => "EmailAddresses",
             //Record attributes
             "name_value_list" => array(
            array('name' => 'email_address', 'value' => $email), 
            array('name' => 'email_address_caps', 'value' => strtoupper($email)),
            array('name' => 'invalid_email' , 'value' => 0),
            array('name' => 'opt_out', 'value' => 0), 
            array('name' => 'date_created' , 'value' => date('Y-m-d H:i:s')),
            array('name' => 'date_modified', 'value' => date('Y-m-d H:i:s')), 
            array('name' => 'deleted' , 'value' => 0),
             ),
        );

        $set_entry_resultEmailsAdd = call("set_entry", $set_entry_parametersEADDR, $url);
        print_r($set_entry_resultEmailsAdd);
        $Email_id = $set_entry_resultEmailsAdd->id;  

        $set_entry_parameters_contact = array(
                //session id
                "session" => $session_id,

                //The name of the module from which to retrieve records.
                "module_name" => "Contacts",

                //Record attributes
                "name_value_list" => array(
                  //to update a record, you will nee to pass in a record id as commented below
                  //array("name" => "id", "value" => "9b170af9-3080-e22b-fbc1-4fea74def88f"),
                  array("name" => "first_name", "value" => $prof["Prenom"]),
                  array("name" => "last_name", "value" => $prof["Nom"]),
                  array("name" => "login_c", "value" => $prof["Login"]),
                  //array("name" => "email1", "value" => $email),
                  array("name" => "fonction_c", "value" => "prof")
                     ),
                );

        $set_entry_result_contact = call("set_entry", $set_entry_parameters_contact, $url);    
        print_r($set_entry_result_contact);
        $contact_id = $set_entry_result_contact->id;  

        $set_relationship_parameters_email = array(
            'session' => $session_id,
            'module_name' => 'Contacts',
            'module_id' => $contact_id,
            'link_field_name' => 'email_addresses',
            'related_ids' => $Email_id,
        );

        $set_relationship_result_email = call("set_relationship", $set_relationship_parameters_email, $url);  
        print_r($set_relationship_result_email);

答案 2 :(得分:1)

目前我认为它不适用于REST API,但适用于SOAP API。您可以尝试使用email1_set_in_workflow密钥而不是email1吗? 这不是一个非常好的解决方案,但也许可以解锁你,等待未来发布的更好的方法