根据Sugar CRM中的主电子邮件地址获取帐户ID

时间:2011-08-01 06:48:01

标签: soap sugarcrm

我们有一个网站,当插入/更新记录时,我们运行一个脚本来更新糖CRM账户模块。

“帐户”模块有一个字段website_id_c。当DB发生插入时,我们将最后一个插入ID设置为Sugar CRM的website_id_c,并插入剩余的值。

插入脚本如下所示。

$name_value_field=array(
    array('name' => 'name','value' => $name),
    array('name' => 'primary_contactperson_c','value' => $ownername),
    array('name' => 'billing_address_street','value' => $address),
    array('name' => 'billing_address_postalcode','value' => $postalcode),
    array('name' => 'email1','value' => $email),
    array('name' => 'website_id_c','value' => $id_retrieved),
);
if(!empty($sessn_id))
{
    $result=$soap->set_entry("Accounts",$name_value_field); 

}

这使用SOAP nusoap客户端与Sugar CRM云进行通信。插入工作正常并更新。

$response = $soap->get_entry_list('Accounts', 
                array('id'), 
                "website_id_c='$websiteID'");
$account_id = $response['entry_list'][0]['id'];

但目前我想检索account_id以在电子邮件的基础上更新记录。我用电子邮件更改了字段。但我觉得它存储在其他地方,主要地址密钥存储在Accounts模块中。首先,我们要从Email模块中获取该ID,然后根据此电子邮件地址ID查询Accounts模块以获取帐户值。

 $response = $soap->get_entry_list('Accounts', 
                array('id'), 
                "email1='email@example.com'");

哪个模块存储电子邮件地址?我之前没有参加过糖业。如果你没有准确地告诉我,请随时问我。

由于

1 个答案:

答案 0 :(得分:3)

电子邮件字段及其与帐户的关系存储在另外两个表中,因此您需要使用子选择来检索帐户。

$response = $soap->get_entry_list(
    $module = 'Accounts',
    $fields = array('id'),
    $query = "accounts.id IN (
        SELECT eabr.bean_id
        FROM email_addr_bean_rel eabr 
            JOIN email_addresses ea ON (ea.id = eabr.email_address_id)
        WHERE 
            eabr.bean_module = 'Accounts' 
            AND eabr.deleted = 0 
            AND ea.email_address = 'email@example.com'
    )",
    $orderBy = "accounts.name", 
    $offset = 0, 
    $max = 10
);

我的肥皂客户get_entry_list方法是

get_entry_list($module, 
    $fields = array(), 
    $query='', 
    $order_by='', 
    $offset=0, 
    $limit = 1000)

相应地进行必要的更改。