2016-05-05 129 views
1

我正在爲sugarCRM編寫一些代碼,並且想通過電子郵件通知員工。我正在使用活動記錄模型來獲得員工,但他們的電子郵件無處可查。檢索SugarCRM員工電子郵件

$employees = BeanFactory::getBean('Employees')->get_full_list();

我如何通過該接口在職員工的電子郵件?我需要將他們從記錄中提取出來並添加到我發送的電子郵件中。

回答

1

爲了節省用戶的電子郵件地址,使用這樣的:

$sea = new SugarEmailAddress; 
$sea->addAddress($bean->email1, true); 
$sea->save($newUser->id, "Users"); 

要檢索的主電子郵件地址使用此:

$primary_email=$user->emailAddress->getPrimaryAddress($user); 

希望這將幫助你... :)

結帳這個更多: SugarCRM Developer

+0

美麗!現在我們回到了ORM世界,我們可以使用對象而不是編寫大量的自定義查詢! –

2

我也遇到過這種情況,但我提出了下面的解決方案。希望對你有效。乾杯!!

<?php 

$userId=array('2132131312323232','323232323232323'); //array of users id's 
foreach($userId as $key => $val) { 
$email_query = "select E.email_address from email_addr_bean_rel EB inner join email_addresses E on EB.email_address_id = E.id WHERE EB.bean_id='".$val."' and E.deleted = 0"; 
// Your implementation 
} 
?> 
1

引用國家文物局和這the schema documentation,我最後寫下面的查詢。它可能會被清理很多,但它的功能,這正是我現在所關心的。

它返回的所有活動,非刪除員工的主要電子郵件,有效地使你的活躍用戶郵件列表:

select e.email_address 
from email_addr_bean_rel eb 
    inner join email_addresses e 
    on eb.email_address_id = e.id 
where eb.bean_id in 
    (select id 
     from users 
     where deleted = 0 and employee_status = 'Active') 
    and e.deleted = 0 and eb.primary_address = 1 
    and eb.deleted = 0 and eb.bean_module = 'Users' 

需要注意的是,有兩個字段,其中用戶可active:狀態和employee_status。這檢查後者;請注意,有兩個「地位」字段,而不是一個!