У нас есть хранимая процедура, которая смоделирована после кода 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 применяется к любому серверному коду?