我希望能够创建一个模块作为sugarCRM和其他数据库之间的交互。为此我感谢模块构建器工具构建了一个模块,我想将它连接到一个新表,这是糖数据和我的第二个应用程序数据之间的连接(以防止数据重复)。
由于我的模块新表是另外两个视图,因此Sugar查看内容没有任何问题,但每当我尝试插入任何内容时都会抛出异常。所以我想使用一个逻辑钩子,它将数据直接存储在两个“原始”表中。
这是我的问题:即使数据存储正确,我也想防止糖试图存储任何东西。一旦我的钩子完成它的工作,我可以在钩子内做些什么来阻止糖的作用吗?
对不起我糟糕的英语,感谢你的阅读。
答案 0 :(得分:1)
我建议覆盖自定义模块控制器中的Save方法。
构建和部署模块后,将会有一个新目录:custom/modules/yourcustommodule
。在该目录中,创建名为controller.php
的文件。
该文件应包含以下(未经测试的)代码:
require_once('include/MVC/Controller/SugarController.php');
class yourcustommoduleController extends SugarController {
function action_save() {
return;
}
}
您甚至可以将前/后挂钩移动到此自定义操作功能中。只要您不调用默认保存方法(我认为parent::action_save();
),SugarCRM的默认保存操作就不会发生。
重要事项:部署自定义模块后,SugarCRM的最佳做法是永远不会重新部署它,而是在Studio中进行所有后续更改。这很重要,因为一旦对自定义模块进行了这些文件级更改,如果重新部署模块,这些更改将会丢失。