我们有一个存储过程,该过程以DocumentDB示例代码中的bulkImport sproc为模型。此存储过程接收一系列文档,执行一些操作,最后调用createDocument,该文档说这是异步的。
现在,我们为Create编写了一个预触发函数,它可以检查某些字段,并可以选择向请求的某些文档中添加一些其他字段。
{
"id":"triggerNameRedacted",
"triggerType": "Pre",
"triggerOperation": "Create",
"body": "function()
{
var context = getContext();
var request = context.getRequest();
var documentToCreate = request.getBody();
documentToCreate.msg = 'got to here';
request.setBody(documentToCreate);
}"
}
我们将此附加到options
要createDocument
在存储过程中传递给的对象上。
var options = {
disableAutomaticIdGeneration: false,
preTriggerInclude: 'triggerNameRedacted'
};
我们希望看到触发器被调用。但是,触发器没有被触发。我们尝试了各种修改以尝试触发触发器,但仍然没有:将批量sproc和触发器缩减为绝对最小值,将triggerOperation更改为“ All”。
在服务器端包装程序的源代码中,以及在上面链接的Collection的文档中,服务器端代码似乎没有查看*Trigger*
options对象的任何字段,例如preTriggerInclude
在我们的例子中。
是否可能由于createDocument
在存储过程中进行调用而导致执行预创建触发器,或者从另一个存储过程中调用存储过程的限制是否适用于任何服务器端代码?
无法从服务器端SDK调用触发器(例如,从另一个触发器或proc内部)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句