Magento SugarCRM Soap获取项目列表

Magento SugarCRM Soap获取项目列表,magento,sugarcrm,Magento,Sugarcrm,此代码有什么问题: $query = "email1 = '{$email}'"; Mage::log($query); $account = $client->get_entry_list($session_id, 'Accounts', $query); 我不明白为什么它不工作,并给了我一个错误: looks like we got no XML document Trace: #0 /var/www/empresam/app/code/local/Empresam

此代码有什么问题:

$query = "email1 = '{$email}'";
    Mage::log($query);
    $account = $client->get_entry_list($session_id, 'Accounts', $query);
我不明白为什么它不工作,并给了我一个错误:

looks like we got no XML document

Trace:
#0 /var/www/empresam/app/code/local/Empresam/SugarIntegration/Helper/Methods.php(147): SoapClient->__call('get_entry_list', Array)
#1 /var/www/empresam/app/code/local/Empresam/SugarIntegration/Helper/Methods.php(147): SoapClient->get_entry_list('v12adkskr9va2pe...', 'Accounts', 'email1 = 'magag...')
#2 /var/www/empresam/app/code/local/Empresam/Helloworld/controllers/IndexController.php(17): Empresam_SugarIntegration_Helper_Methods->addAccount('v12adkskr9va2pe...', Object(SoapClient), Object(Mage_Customer_Model_Customer))
#3 /var/www/empresam/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Empresam_Helloworld_IndexController->indexAction()
#4 /var/www/empresam/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#5 /var/www/empresam/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#6 /var/www/empresam/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#7 /var/www/empresam/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#8 /var/www/empresam/index.php(89): Mage::run('', 'store')
#9 {main}
我打赌查询的格式不好,但我对“Lead”执行了相同的过程,我可以成功返回Lead

潜在客户代码如下:

   $oldname = $oldfirstname . ' ' . $oldlastname;
$query = "account_name = '{$oldname}'";

$lead = $client->get_entry_list($session_id, 'Leads', $query);
{$email}
是正确的,我已确认它已打印到日志中。我几乎可以肯定错误出在查询格式上,但正如我所说的,它对LEAD wy有效。它在这里不起作用吗


我尝试在查询中使用“account\u name”,但结果是一样的。参数“account_name”和“email1”都有效,因为我可以成功创建帐户,但无法检索它们

在每个模块中,电子邮件地址都存储在另一个数据库中。因此,为了进行此查询工作,当SugarCRM Soap方法“ommits”部分
Select*from Account Where
时,当我们查找
email1
时,他没有找到它,就好像它是表
Accounts
的一个字段一样。出于简化的原因,当我们向表Accounts添加电子邮件时,Sugar并不关心该字段是否属于另一个数据库,默认情况下,他会允许您引入电子邮件地址。但是,在查询时,我们无法执行以下操作:

$query = "email1 = '{$email}'";
因为电子邮件存储在不同的表中。为了得到我想要的,我必须做:

public function getAccount($session_id, $client, $email){

    $query = "accounts.id in ( select bean_id from email_addr_bean_rel inner join email_addresses where email_addr_bean_rel.email_address_id = email_addresses.id and email_addr_bean_rel.deleted = 0 and email_addresses.deleted = 0 and bean_module = 'Accounts' and email_addresses.email_address = '{$email}' )";

    $acc = $client->get_entry_list($session_id, 'Accounts', $query);
    return $acc;   
}

在查询中,只需用您的模块名称替换
帐户
,它将适用于所有其他模块。

如果有文档,请告诉我哪里可以知道核心模块名称、模块输入、函数等,因为我找不到它!