【问题标题】:SugarCRM calculated field, accessing field in one-to-many related moduleSugarCRM计算字段,访问一对多相关模块中的字段
【发布时间】:2013-09-14 00:33:25
【问题描述】:

SugarCRM 有一个很棒的功能,它允许引用相关模块中的字段来自动填充主模块中的字段。但是,我无法确定为什么我可以让它在一个模块中工作,而不能在另一个模块中工作。我有一个怀疑,但如果我是对的,我必须找到另一种方法来完成同样的事情。

这适用于 SugarCRM Professional 6.4.2,托管在我们自己的服务器上。

什么有效

使用两个默认模块(联系人、机会):我可以使用以下公式将 Opportunities.name 设为引用联系人中两个字段的计算字段:

concat(related($contacts, "last_name"), ", ",related($contacts, "first_name")," - ", getDropdownValue("timeline_options", $timeline_interest_c))

这两个模块之间的关系是“多对多”的。 Opportunities 是主要模块,Contacts 是次要模块,关系名称是“opportunities_contacts”。任意一个联系人可以关联多个商机,任意一个商机可以关联多个联系人。

什么不起作用

使用一个自定义模块(应用程序,在模块生成器中创建和部署)和一个默认模块(联系人):我 无法 使 Applications.name 正确引用 same 来自联系人的两个字段,使用以下公式:

concat(related($contacts, "last_name"), ", ",related($contacts, "first_name")," - ", getDropdownValue("timeline_options", $timeline_choice))

这两个模块之间的关系是“一对多”的。 Contacts 是主要模块,Applications 是次要模块,关系名称是“contacts_applications”。一个联系人可以有任意数量的应用程序,但每个应用程序只能与一个联系人相关。

当我尝试保存公式时,我在弹出消息中看到:“未知字段:联系人”

我错过了什么?

显然,这两种情况的不同之处在于关系的类型。我不明白这种不同关系的技术含义。换句话说,为什么 Opportunities 模块知道 $contacts 而 Applications 模块不知道?

是不是……

  1. 如何存储“多对多”与“一对多”关系的性质?或者,
  2. 在第一种情况下,计算字段位于关系的“主要模块”中,而在第二种情况下,计算字段位于关系的“次要模块”中?或者,
  3. 别的东西完全

这个问题的答案可能表明我可能会尝试不同的方法来完成我想要的。

更新...什么仍然不起作用

自从最初提交这个问题以来,我又尝试了几件事。

  • 我重新创建了一对多关系,以便 应用程序是主要模块,联系人是次要模块,但无济于事。发生同样的错误。这告诉我上面的 #2 不是问题。
  • 我尝试了一个不同的公式,从 Opportunities 中访问一个字段,该字段与 Applications 具有一对一的关系。发生同样的错误,这次告诉我“未知领域:机会”。这告诉我,导致问题的不一定是“一对多”关系,如上面的#1,但也许它不是“多对多”的事实”的关系。

所需的答案有两个部分

我想了解不同行为的原因,并且我还想知道访问相关模块中字段的最佳方式(在“一个” “一对多”的一侧),以便在我的新模块中自动填充计算字段(在“一对多”的“多”一侧)。

提前致谢!

【问题讨论】:

  • 感谢您的提问!你能告诉我们这是哪个版本的 SugarCRM 吗?
  • @jmertic Professional, v. 6.4.2 托管在我们的服务器上。我也会将该信息添加到原始问题中。
  • 我怀疑链接可能不是 $contacts 而是其他名称,请检查实际链接名称。您可以在 Studio/MB 中检查它,也可以转到 cache/modules/YOURMODULENAME/YOURMODULENAMEvardefs.php 并检查那里列出的字段。
  • @StasM 这正是问题所在!我通过查看缓存的 vardefs 文件找到了真实的字段名称。您能否将您的评论变成答案,以便我接受?谢谢!

标签: sugarcrm


【解决方案1】:

问题似乎是$contact 不是链接的实际名称,但链接可能被命名为其他名称。您可以在 Studio/MB 中找到链接的名称,或者直接查看存储在 cache/modules/YOURMODULENAME/YOURMODULENAMEvardefs.php 的元数据文件。元数据文件是权威来源——它是 SugarCRM 查看对象字段的方式,包括链接,因此链接也应该在那里,并且在那里指定的名称应该有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多