2015-06-15 5 views
4

У нас есть хранимая процедура, которая смоделирована после кода bulkImport sproc в примере кода DocumentDB. Этот sproc принимает массив документов, делает некоторые вещи и в конечном итоге вызывает createDocument, который говорит documentation, асинхронный.Пожар триггера из хранимой процедуры DocumentDB

Теперь мы создали предварительный триггер для 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 в нашем sproc.

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

Мы ожидали увидеть вызванный триггер. Однако триггер не запускается. Мы попробовали различные модификации, чтобы попытаться увидеть срабатывание триггера, но он по-прежнему не соответствует: отбрасывание объемного sproc и триггера до абсолютного минимума, изменение triggerOperation на «All».

В файле source для обертки на стороне сервера и в документах для сборника, приведенных выше, не отображается, что код на стороне сервера смотрит на любое из полей объекта опций, например. preTriggerInclude как в нашем случае.

Возможно ли предустановить триггер, выполненный в результате вызова createDocument в хранимой процедуре, или ограничение на calling a stored procedure from another stored procedure применяется к любому серверному коду?

ответ

6

Триггеры нельзя вызывать из SDK на стороне сервера (например, из другого триггера или sproc).

Смежные вопросы