【问题标题】:Fire trigger from DocumentDB stored procedure来自 DocumentDB 存储过程的触发触发器
【发布时间】:2015-06-15 19:11:31
【问题描述】:

我们有一个以 DocumentDB 示例代码中的 bulkImport 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 对象,我们将在我们的存储过程中传递给createDocument

var options = {
    disableAutomaticIdGeneration: false,
    preTriggerInclude: 'triggerNameRedacted'
};

我们希望看到触发器被调用。但是,触发器没有被触发。我们尝试了各种修改来尝试查看触发器被触发,但仍然没有:将批量存储过程和触发器减少到绝对最小值,将 triggerOperation 更改为“All”。

在服务器端包装器的 source 和上面链接的 Collection 文档中,服务器端代码似乎没有查看选项对象的任何 *Trigger* 字段,例如preTriggerInclude 在我们的例子中。

是否可以通过在存储过程中调用 createDocument 来执行预创建触发器,或者对 calling a stored procedure from another stored procedure 的限制是否适用于任何服务器端代码?

【问题讨论】:

    标签: stored-procedures triggers azure-cosmosdb


    【解决方案1】:

    无法从服务器端 SDK 调用触发器(例如,从另一个触发器或存储过程中)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-18
      • 2013-09-12
      • 2013-12-30
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      相关资源
      最近更新 更多