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

Show related module records that have a matching email address in a SugarCRM SubPanel?

我们在 SugarCRM 中有 2 个模块。

模块 1 = 内置 Contacts 模块

模块 2 = 名为 QMS 模块的自定义模块。

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

所以澄清一下...在 contacts module 中有一个默认值 email field

在我们的习俗中qms module我们还有另一个email field

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

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

为此,您需要创建一个自定义函数来为您的子面板获取数据。

在模块中实施 QMS 子面板时/parent_module/metadata/subpaneldefs.php

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

我们没有为 get_subpanel_data 提供 link 字段,而是告诉它使用一个函数。 这将告诉 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*/
    );
}

希望对您有所帮助。

参见模块/帐户/metadata/subpaneldefs。php 示例 查看电子邮件子面板如何获取电子邮件。

检查 include/utils.php 了解电子邮件子面板中使用的函数,了解有关如何构建函数的更多信息。