Я запускаю экземпляр SuiteCRM v7.7
- ОС: ЦЕНТ ОС
- Версия PHP: 5.5.36
- БД: MySQL v5.5.50
Я написал запланированное задание, которое через каждый заданный интервал будет получать доступ к записям потенциальных клиентов и сравнивать два поля друг с другом (account_id
и account_id_c
). Это гарантирует, что они оба равны.
При импорте списка лидов эти поля должны быть пустыми, и когда задание запустится, оно найдет записи с пустыми полями account_id
и account_id_c
, а затем найдет идентификаторы для account_name
, перечисленных в записи. Как только учетная запись находится, она вставляет идентификаторы учетной записи в поля account_id
и account_id_c
.
Как только поля совпадают, bean-компонент сохраняется, и так далее.
Вот посмотрите на мой сценарий для запланированного задания:
$job_strings[] = 'checkCurrentLeadCompany';
function checkCurrentLeadCompany(){
$bean = BeanFactory::getBean('Leads');
$order_by = "last_name";
$where = "leads.account_id IS NULL OR leads.account_id = ''";
$importedLeadList = $bean ->get_full_list($order_by,$where);
function importedLeads($importedLeadList){
foreach ($importedLeadList as $record) {
$accountBean = BeanFactory :: getBean('Accounts');
$accountRecord = $accountBean -> retrieve_by_string_fields(
array(
'name' => $record -> account_name
)
);
if(isset($accountRecord) || $accountRecord != NULL || $accountRecord != ''){//checks to see if a record populates the variable
$record -> account_id = $accountRecord -> id;
$record -> account_id_c = $accountRecord -> id;
}
else{
//If there is no account available, create the account and proceed.
$newRecord = createAccount($record -> account_name);
$record -> account_id = $newRecord -> id;
$record -> account_id_c = $newRecord -> id;
}
$record->save();
}
}
function createAccount($accountName, $content){
$newAccount = BeanFactory :: newBean('Accounts');
$newAccount -> name = $accountName;
$newAccount ->save();
return $newAccount;
}
if(!isset($importedLeadList)){
//no need to do anything.
}
else{
importedLeads($importedLeadList);
}
return true;
}
Самое смешное: при каждом запуске этого скрипта связь между записью лида и его адресом электронной почты разрывается. В базе данных поле "deleted
" в таблице ссылок, email_addr_bean_rel
, получает значение 1. Я не знаю, почему.
Может ли кто-нибудь дать мне представление о том, почему это происходит?