在SugarCRM SubPanel中显示具有匹配电子邮件地址的相关模块记录?

Jas*_*vis 4 sugarcrm

我们在SugarCRM中有2个模块.

模块1 =内置Contacts模块

模块2 =称为QMS模块的自定义模块.

我们希望能够contactcontacts模块中创建新的用户记录,然后在该联系人模块中有一个子面板,该子面板将显示与qms联系人记录相关的所有相关模块记录,这些记录基于具有相同匹配email字段的联系人记录.

所以要澄清......在contacts module默认情况下email field.

在我们的定制中,qms module我们还有另一个email field.

当您在子面板中查看contact module具有当时电子邮件字段值的记录时,test@test.com它应该显示任何具有值的qms module records匹配email field的记录test@test.com

这不是SugarCRM CE 6.xx中的标准行为.有谁知道我们如何实现这样的功能?

paq*_*ino 5

要完成此操作,您需要创建一个自定义函数来获取子面板的数据.

在modules/parent_module /metadata/subpaneldefs.php中实现QMS子面板时

'qms' => array(
        'order' => 40,
        'module' => 'QMS',
        'sort_order' => 'desc',
        'sort_by' => 'date_closed',
        'get_subpanel_data' => 'function:get_qms_contacts_subpanel',
        ...
        ),
Run Code Online (Sandbox Code Playgroud)

我们告诉它使用函数,而不是为get_subpanel_data提供链接字段.这将告诉QMS子面板使用get_qms_contacts_subpanel函数获取相关记录

然后在custom/Extension/application/Ext/Utils/some_file_name .php中

构造一个将用于形成记录查询的函数.

<?php

function get_qms_contacts_subpanel()
{
   return array(
        "select" => "select distinct qms.id",
        "from" => "from qms",
        "join" => "join contacts on contacts.qms_id = qmd.contact_id" /*Obviously not the actual query but you get the point*/
        "where" => "where qms.email = contacts.email" /*See above*/
    );
}
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.

有关示例,请参阅modules/Accounts/metadata/subpaneldefs.php.请参阅电子邮件子面板如何获取电子邮件.

检查include/utils.php以获取电子邮件子面板中使用的函数,以获取有关如何构造函数的更多信息.