SugarCRM具有强大的功能,允许引用相关模块中的字段来自动填充主模块中的字段。但是,我无法明确地确定为什么我可以在一个模块中工作,而不是另一个模块。我怀疑,但如果我是对的,我必须找到另一种方法来完成同样的事情。
这适用于我们自己的服务器上托管的SugarCRM Professional 6.4.2。
使用两个默认模块(联系人,机会):我可以使用以下公式使Opportunities.name
成为引用联系人中两个字段的计算字段:
concat(related($contacts, "last_name"), ", ",related($contacts, "first_name")," - ", getDropdownValue("timeline_options", $timeline_interest_c))
这两个模块之间的关系是“多对多”。机会是主要模块,联系人是次要模块,关系名称是“opportunity_contacts”。任何一个联系人都可以与多个机会相关,任何一个机会都可以与多个联系人相关。
使用一个自定义模块(在Module Builder中创建和部署的应用程序)和一个默认模块(Contacts):我不能够使Applications.name正确引用相同< / em>来自“联系人”的两个字段,使用以下公式:
concat(related($contacts, "last_name"), ", ",related($contacts, "first_name")," - ", getDropdownValue("timeline_options", $timeline_choice))
这两个模块之间的关系是“一对多”。 Contacts是主要模块,Applications是次要模块,关系名称是“contacts_applications”。一个联系人可以拥有任意数量的应用程序,但每个应用程序只能与一个联系人相关。
当我尝试保存公式时,我会在弹出消息中显示:“未知字段:联系人”
显然,这两种情景中不同的是关系类型。我不明白的是这种不同关系的技术含义。换句话说,为什么“机会”模块在“应用程序”模块没有时知道$contacts
?
是......
这个问题的答案可能暗示我可能会尝试不同的方式来实现我想要的目标。
自从最初提交这个问题以来,我已经尝试了更多的东西。
我想了解不同行为的原因,我也希望知道最佳方式来访问相关模块中的字段(在“一个”上) “一对多”的一面,以便在我的新模块中自动填充计算字段(在“一对多”的“许多”一侧)。
我的提前谢谢!
答案 0 :(得分:3)
问题似乎是$contact
不是链接的实际名称,但链接可能被命名为其他名称。您可以在Studio / MB中找到链接的名称,也可以直接查看存储在cache/modules/YOURMODULENAME/YOURMODULENAMEvardefs.php
的元数据文件。元数据文件是权威来源 - 它是SugarCRM如何查看对象的字段,包括链接,因此链接也应该在那里,并且那里指定的名称应该有效。