我们有一个存储过程,它是在DocumentDB示例代码中的bulkImport sproc之后建模的。这个sproc接受一系列文档,做一些事情,最后调用createDocument,documentation说这是异步的。
现在我们已经为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
的{{1}}对象中。
createDocument
我们希望看到触发器被调用。但是,触发器未被触发。我们尝试了各种修改以试图看到触发器被触发,但它仍然没有:将大量的sproc和触发器削减到绝对最小值,将triggerOperation更改为“All”。
在服务器端包装器的source和上面链接的Collection文档中,似乎服务器端代码没有查看选项的任何var options = {
disableAutomaticIdGeneration: false,
preTriggerInclude: 'triggerNameRedacted'
};
字段对象,例如*Trigger*
就像我们的情况一样。
是否可以在存储过程中调用preTriggerInclude
执行预创建触发器,或者对calling a stored procedure from another stored procedure的限制是否适用于任何服务器端代码?
答案 0 :(得分:6)
无法从服务器端SDK调用触发器(例如,从另一个触发器或sproc内部调用)。