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

Soap 根据Sugar CRM中的主电子邮件地址获取帐户ID,soap,sugarcrm,Soap,Sugarcrm,我们有一个网站,当插入/更新记录时,我们会运行一个脚本来更新sugar CRM Accounts模块 “帐户”模块有一个字段“网站id”。当DB发生插入时,我们将最后一个插入ID设置为Sugar CRM的website_ID_c,并将剩余的值设置为插入 插入脚本如下所示 $name_value_field=array( array('name' => 'name','value' => $name), array('name' => 'primary_conta

我们有一个网站,当插入/更新记录时,我们会运行一个脚本来更新sugar CRM Accounts模块

“帐户”模块有一个字段“网站id”。当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); 

}
这使用soapnusoap客户端与sugarcrm云通信。插入工作正常,也可以进行更新

$response = $soap->get_entry_list('Accounts', 
                array('id'), 
                "website_id_c='$websiteID'");
$account_id = $response['entry_list'][0]['id'];
但目前我想检索帐户id,以便根据电子邮件更新记录。我用电子邮件更改了字段。但我觉得它存储在其他地方,主地址键存储在Accounts模块中。因此,首先我们要从电子邮件模块中获取该id,然后根据该电子邮件地址id查询Accounts模块以获取Account值

 $response = $soap->get_entry_list('Accounts', 
                array('id'), 
                "email1='email@example.com'");
哪个模块存储电子邮件地址?我以前没有做过糖的工作。所以,如果你没有完全理解我,请随时问我


感谢

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

$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
);
我的soap客户端
get\u entry\u list
方法如下

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

相应地进行必要的更改。

谢谢@Kåre Werner Storgaard。虽然它不需要$orderBy=“accounts.name”,$offset=0,$max=10。它起作用了。再次感谢。