gpt4 book ai didi

php - 保存 bean 是否会删除记录与 SuiteCRM 中电子邮件的连接?

转载 作者:行者123 更新时间:2023-11-29 02:48:14 26 4
gpt4 key购买 nike

我运行 SuiteCRM v7.7 的一个实例

  1. 操作系统:中央操作系统
  2. PHP 版本:5.5.36
  3. 数据库:MySQL v5.5.50

我编写了一个计划作业,它会在每个设置的时间间隔访问 Leads 记录并相互比较两个字段(account_idaccount_id_c)。它确保它们相等。

导入潜在客户列表后,这些字段应该为空,当作业运行时,它会找到 account_idaccount_id_c 字段为空的记录,然后查找记录中列出的 account_name 的 ID。找到帐户后,它将帐户 ID 插入到 account_idaccount_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;
}

有趣的是:每次运行此脚本时,潜在客户记录与其电子邮件地址之间的关系都会被破坏。在数据库中,链接表 email_addr_bean_rel 中的“deleted”字段设置为 1。我不知道为什么。

谁能告诉我为什么会发生这种情况?

最佳答案

我在通讯录中遇到了同样的问题。

在保存联系人之前尝试隐藏电子邮件地址,然后将它们重新链接到联系人(没有用)后,我查看了 the 'Person' class。 '联系'延伸。

“保存”方法查找名为“resavingRelatedBeans”的全局变量是否存在。如果您在保存 Contact bean 之前设置它(记得在之后取消设置),它不会弄乱当前关联的电子邮件地址。所以现在我有:

 $GLOBALS['resavingRelatedBeans']=true;
$contactRec->save();
$GLOBALS['resavingRelatedBeans']=null;

关于php - 保存 bean 是否会删除记录与 SuiteCRM 中电子邮件的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39234684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com