2013-04-14 1 views
1
이 코드에 어떤 문제가

get_entry_list :슈가 CRM 비누

$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} 

내 내기 쿼리가 있다는 것입니다을 형식이 잘못되었지만 '리드'에 대해 동일한 절차를 수행했는데 성공적으로 리드를 반환 할 수 있습니다.

리드 코드는 하나 :

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

$lead = $client->get_entry_list($session_id, 'Leads', $query); 

{$email} 오른쪽 하나, 전 인쇄 로그를 확인했다. 나는 거의 오류가 쿼리 포맷에 있다고 확신하지만, 내가 말했듯이, LEAD에서 작동했는데 여기서 작동하지 않는다.

대신 쿼리에서 'account_name'을 사용하려고했지만 결과는 같습니다. 'account_name'및 'email1'매개 변수는 모두 성공적으로 계정을 만들 수 있지만 가져올 수 없으므로 유효합니다.

+0

설명서가있는 경우 코어 모듈 이름, 모듈 입력, 함수 등을 어디서 찾을 수 있는지 알려주십시오. 찾을 수 없으므로! –

답변

2

모든 모듈에서 전자 메일 주소는 다른 데이터베이스에 저장됩니다. 따라서이 쿼리를 실행하려면 SugarCRM Soap 메서드 'ommits'가 Select * from Account Where 일 때 email1을 찾을 때 테이블 Accounts의 필드 인 것처럼 찾을 수 없습니다. 단순화하기 위해 Accounts 테이블에 전자 메일을 추가 할 때 Sugar는 해당 필드가 다른 데이터베이스에 속하는지 상관하지 않으며 전자 메일 주소를 기본적으로 사용자에게 알려줍니다. 쿼리 할 때 Howwever, 우리는 같은 것을 할 수 없습니다

$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; 
} 

를 쿼리에서, 단순히 모듈 이름으로 Accounts을 교체하고 다른 모든 모듈에 대한 작동합니다.

관련 문제