我们有一个网站,当插入/更新记录时,我们运行一个脚本来更新糖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'");
哪个模块存储电子邮件地址?我之前没有参加过糖业。如果你没有准确地告诉我,请随时问我。
由于
答案 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)
相应地进行必要的更改。