首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示来自父记录的某些信息的逻辑挂钩引发错误

显示来自父记录的某些信息的逻辑挂钩引发错误
EN

Stack Overflow用户
提问于 2015-05-19 01:44:11
回答 1查看 1.3K关注 0票数 3

我有一个SugarCRM 6.5CE的托管实例,我必须满足的一个要求是在关联的任务/活动记录中显示父记录的一些信息--联系电话号码、联系电子邮件地址。

到目前为止,我所发现的只是创建了一个逻辑钩子,用于从父记录(联系人)中提取联系人信息,并在子记录(任务)的自定义字段中显示这些信息。

根据发现的一些说明和示例,我提出了以下内容。

在“自定义/模块/任务”下,我创建了一个名为"logic_hooks.php“的文件。

代码语言:javascript
复制
<?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”的文件。

代码语言:javascript
复制
<?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

EN

回答 1

Stack Overflow用户

发布于 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‘。

现在您知道了错误日志的位置,您可以将

代码语言:javascript
复制
error_log('some helpful message');

在contact_info.php文件中,查看将哪些消息(如果有)发送到错误日志。这可以告诉您它是否启动了逻辑钩子,如果启动了,它在逻辑钩子中走了多远

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30309716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档