2011-08-01 39 views
2

我們有一個網站,當插入/更新記錄時,我們運行一個腳本來更新Sugar CRM帳戶模塊。根據Sugar CRM中的主要電子地址獲取帳戶ID

賬戶模塊有一個字段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更新電子郵件的基礎上的記錄。我用電子郵件更改了字段。但我感覺它存儲在其他地方,主要地址密鑰存儲在帳戶模塊中。因此,首先我們要從電子郵件模塊獲取該ID,然後根據此電子郵件地址標識查詢帳戶模塊以獲取帳戶值。

$response = $soap->get_entry_list('Accounts', 
       array('id'), 
       "email1='[email protected]'"); 

哪個模塊存儲電子郵件地址?我之前沒有在Sugar上工作過。所以請隨時問我,如果你沒有完全明白我的意思。

感謝

回答

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 protected]' 
    )", 
    $orderBy = "accounts.name", 
    $offset = 0, 
    $max = 10 
); 

我的SOAP客戶端get_entry_list方法爲

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

相應地進行必要的更改。

+0

謝謝@KåreWerner Storgaard。雖然它不需要$ orderBy =「accounts.name」,$ offset = 0,$ max = 10。有用! 。再次感謝。 –

相關問題