【发布时间】:2019-05-29 20:36:17
【问题描述】:
从 Amps 模块更新文档时出现 XDMP-TRIGGERMODULE: Could not find trigger module: 错误。
触发器是否有从放大器运行的问题?
设置用于使用 webhook 进行 PayPal 付款验证。 PayPal API 向 MarkLogic 服务器上的端点发送 HTTP 回调,通知服务器支付完成。然后端点代码处理消息,并将相关数据发送到 amps 模块以供执行。这个想法是 webhook 需要访问公共端点,因此它将在执行权限方面使用默认的公共用户。使用 amp 是为了让代码有适当的权限来更新文档,注意已收到付款。
一个单独的(不相关的)触发器被设置为在对上述相同文档的任何修改上运行,以用于单独的不相关进程。当以所有其他方式修改文档时,此触发器运行得非常好,符合其预期目的,但由于某种原因,当 amp 模块修改文档时,会触发 XDMP-TRIGGERMODULE 错误,导致整个事务失败,并阻止 amp 代码执行(从而阻止记录支付完成)。
我想知道在放大器模块中完成的更新触发触发器是否存在某种问题?如果是这样,我怎样才能避免这个问题发生?在这种特殊情况下甚至不需要触发代码,但它被设置为在对这种特定类型的文档的所有修改上运行,我不确定是否有办法在特殊情况下防止这种情况发生。
感谢您的所有帮助!
【问题讨论】:
-
您可能依赖于分配给 amp 角色的触发器权限,而不是用户直接继承的角色。放大器角色很可能不会转移到触发器..
标签: paypal xquery marklogic paypal-rest-sdk