我正在通过外部API调用将我的潜在客户添加到SugarCRM。正确添加潜在客户。我需要围绕潜在客户进行额外的数据处理,并在添加潜在客户后通过 API 调用将其传递给第三方。我看到了after_save
钩子 - 该钩子是否仅在用户在 SugarCRM 屏幕上并保存时才触发,并且在通过 API 添加潜在客户时不会调用?
如果我通过 API 添加潜在客户时after_save
钩子对我不起作用,那么通过扩展代码添加代码时我会使用什么钩子?
很好的问题。
经过一些测试,当我通过外部 API 将新的 Lead 传递到 Sugar 中时,after_save
钩子实际上被触发了。因此,您可以使用此钩子,而不必担心它仅在用户在桌面模块上实际在 GUI 中保存记录时才触发。
每当 Bean(记录(保存在服务器上时,都会触发after_save
挂钩,并且应该适用于您的方案。
调用是否来自 API 甚至来自 cli/调度程序并不重要。
顺便说一下,Sugar 7+ 的浏览器应用程序也在后台使用 API。
但是,如果您确实希望仅针对某些客户端自定义代码,则可以使用platform
参数(在客户端身份验证期间指定(来区分它们。 在旧版本的 Sugar 中,您不必预先定义/"解锁"平台 - 允许客户端指定他们想要的任何内容。在当前版本中,您必须通过代码或管理添加自定义平台
默认回退平台始终为base
。
还有其他一些预先存在的平台,例如mobile
用于移动应用程序/版本,opi
用于Outlook插件等。
对于在custom/clients
文件夹中完成的自定义,通常只需将文件放入custom/clients/<yourplatform>/
(而不是custom/clients/base/
(,使用相同的子文件夹层次结构,以便仅为特定客户端启用它们。例如,这可以用于扩展/覆盖/包装 api 端点。