我有一个SugarCRM 6.5CE的托管实例,我必须满足的一个要求是在关联的任务/活动记录中显示父记录的一些信息--联系电话号码、联系电子邮件地址。
到目前为止,我所发现的只是创建了一个逻辑钩子,用于从父记录(联系人)中提取联系人信息,并在子记录(任务)的自定义字段中显示这些信息。
根据发现的一些说明和示例,我提出了以下内容。
在“自定义/模块/任务”下,我创建了一个名为"logic_hooks.php“的文件。
<?php// $Id$
$hook_version = 1;
$hook_array = Array();
// debug
$GLOBALS['log'] = LoggerManager::getLogger('SugarCRM');
$GLOBALS['log']->debug("Task: logic hook invoked");
// position, file, function
$hook_array['after_retrieve'] = Array();
$hook_array['after_retrieve'][] = Array('1', 'contact_info', 'custom/modules/Tasks/hooks/contact_info.php','contact_info_class', 'contact_info_method');
?>在"custom/modules/Tasks/hooks“下,我创建了一个名为"contact_info.phplogic_hooks.php”的文件。
<?php
class contact_info_class {
// retrieve contact information from parent record
function contact_info_method($bean, $event, $arguments) {
// debug
$GLOBALS['log'] = LoggerManager::getLogger('SugarCRM');
$GLOBALS['log']->debug("Tasks: contact_info_method called for event ".$event . "(BeanID: " . $bean->id . ")");
// fetch data
if ($bean->fetched_row['id'] != $bean->id) {
// load Task
//$bean = BeanFactory::getBean('Tasks', $id);
// check if relationship is loaded
//if ($bean->load_relationship('contact_tasks_parent'))
if ($bean->load_relationship('contact_tasks')) {
// fetch related beans
//$relatedBeans = $bean->contact_tasks_parent->getBeans();
$relatedBeans = $bean->contact_tasks->getBeans();
$parentBean = false;
if (!empty($relatedBeans)) {
// order the results
reset($relatedBeans);
// first record in the list is the parent
$parentBean = current($relatedBeans);
// retrieve data from parent bean
$bean->contact_phone_c = $parentBean->phone_work
$bean->contact_primary_email_c = $parentBean->email1
}
}
}
} // contact_info_method
} // contact_info_class
?>有了这个钩子,我就可以毫无问题地创建新的任务,但是当打开一个现有的任务时,我会收到一条消息
处理您的请求时出错,请稍后重试。
对SugarCRM来说是全新的(顺便说一下6.5.20这是我正在处理的问题),我一点也不知道这里出了什么问题。
我也找不到任何应该写入的调试消息。
--Sil68
发布于 2015-06-18 00:18:34
"contact_info.phplogic_hooks.php“文件应该与模块位于相同的文件夹中( logic_hooks.php /contact_info.phplogic_hooks.php/< module-name>)。没有必要这样命名(事实上,我认为这可能会带来问题)。尝试将其命名为contact_info.php,并将logic_hooks.php文件中给出的路径更改为custom/modules/Tasks/contact_info.php。
至于在哪里可以找到错误日志,假设您在linux/OS的web服务器上使用apache (因为您没有指定),错误日志位于
/var/log/apache2/error.log
或
/var/log/apache2/error_log
在windows中,它会在
'C:\Program Files\Apache Software Foundation\Apache2.2\logs‘。
现在您知道了错误日志的位置,您可以将
error_log('some helpful message');在contact_info.php文件中,查看将哪些消息(如果有)发送到错误日志。这可以告诉您它是否启动了逻辑钩子,如果启动了,它在逻辑钩子中走了多远
https://stackoverflow.com/questions/30309716
复制相似问题