SugarCRM无法访问两个模块的关系

时间:2014-03-11 21:33:40

标签: sugarcrm

所以我在这里疯了,我不妨告诉你我所做的一切,也许你可以帮助我。

我是糖的随需应变版本。

我需要关联2个自定义模块,因此我使用模块构建器为它们创建了一个包:

enter image description here

自定义模块是表单和地图。然后我在这两者之间建立了一种关系:

enter image description here

之后我将我的包部署到我的糖实例并继续创建一些测试数据。

enter image description here

然后在我的自定义入口点我希望得到与特定表单相关的地图,所以这是我的代码:

enter image description here

但是当我尝试调用我的入口点时它不会返回任何与表单相关的地图,这里有一个例子:

Inline image 6

在示例中地图没有回显,我只是无法找到问题所在。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我也遇到过load_relationship问题。在大多数情况下,问题在于你的案例中的$ rel_map参数。 modules / Leads / views / view.convertleads.php中有一个Sugar函数:

protected function findRelationship(
    $from,
    $to
    )
{
    global $dictionary;
    require_once("modules/TableDictionary.php");
    foreach ($from->field_defs as $field=>$def)
    {
        if (isset($def['type']) && $def['type'] == "link" && isset($def['relationship'])) 
        {
            $rel_name = $def['relationship'];
            $rel_def = "";
            if (isset($dictionary[$from->object_name]['relationships']) && isset($dictionary[$from->object_name]['relationships'][$rel_name]))
            {
                $rel_def = $dictionary[$from->object_name]['relationships'][$rel_name];
            }
            else if (isset($dictionary[$to->object_name]['relationships']) && isset($dictionary[$to->object_name]['relationships'][$rel_name]))
            {
                $rel_def = $dictionary[$to->object_name]['relationships'][$rel_name];
            }
            else if (isset($dictionary[$rel_name]) && isset($dictionary[$rel_name]['relationships'])
                    && isset($dictionary[$rel_name]['relationships'][$rel_name]))
            {
                $rel_def = $dictionary[$rel_name]['relationships'][$rel_name];
            }
            if (!empty($rel_def)) {
                if ($rel_def['lhs_module'] == $from->module_dir && $rel_def['rhs_module'] == $to->module_dir )
                {
                    return $field;
                }
                else if ($rel_def['rhs_module'] == $from->module_dir && $rel_def['lhs_module'] == $to->module_dir )
                {
                    return $field;
                }
            }
        }
    }
    return false;
}

如果将每个模块的bean作为param给出,则返回load_relationship所需的值。 在代码' $ def ['类型'] =="链接"'你可以看到它获取链接而不是关系。

简而言之:在d_form模块中获取关系的linkname以在load_relationship中使用而不是关系名称