SuiteCRM下的Logic Hook注意事项

在SuiteCRM里, 如果你的Logichook的事件是

after_relationship_delete,after_relationship_add,before__relationship_add,before__relationship_delete

之一的话, 那么你在关系模块下增减关系数据行时, 系统会执行两次

一次在调用模块下, 另一次在被调用的关系模块下

如果不注意的话, 就会导致逻辑代码重复调用, 因此你需要在LogicHookClass文件里进行入口判定

以避免多次执行

并且执行顺序需要注意,再新增了关系LogicHook之后,在服务器中执行的顺序会先是执行关联的Logichook,再执行其它

例如我定义了

$hook_array['before_save'][] =Array(1, 'Calculate total net weight, gross weight, volume', 'ContractProductsHandleLogicHook.php', 'ContractProductsLogicHook', 'calculateAmount');

$hook_array['after_relationship_add'][] =Array(10, 'Calculate total net weight, gross weight, clearance cost on suit products', 'ContractSuitProductsHandleLogicHook.php', 'ContractSuitProductsLogicHook', 'calculateAmount');

按照文档上,应该是先执行before_save,但是实际上是先执行after_relationship_add,并且执行两次

最好是在custom/modules/logic_hook.php定义模块, 顺序设定好就不会出现未知的执行顺序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容