Azureポータルのスクリプトエクスプローラを使用してCosmosDBで削除前トリガを実装しようとしました(トリガタイプは "Pre"で、トリガ操作は "Delete"です)。私がしたいのは、削除された文書を使用し、その "pastDue"プロパティをtrueに変更して新しい文書を作成することです。私のコレクションから文書を削除した後、私は変更を見ることができません。削除事前トリガを使用してCosmosDBで新しい文書を作成するにはどうすればよいですか?
私が間違っていることを誰かに教えてもらえますか?トリガーが正常に実行されたかどうかはどうすればわかりますか?ここで
function markReminderAsPastDue() {
var collection = getContext().getCollection();
var request = getContext().getRequest();
var docToCreate = request.getBody();
docToCreate["pastDue"] = true;
collection.createDocument(collection.getSelfLink(),
docToCreate,
function (err, documentCreated) {
if (err) throw new Error('Error' + err.message);
});
}
は、私は私のデータベースハンドラクラス内の任意のコレクションから任意の文書を削除するために使用する機能です。
removeItem (item, partitionKey, callback)
{
var options = {
partitionKey: [ partitionKey ? partitionKey: item.email]
};
this.client.deleteDocument(item._self, options,
(err, doc) => {
if (err)
{
LogUtils.error("DBHandler.removeItem "+err.body);
callback(err, null);
}
else
{
callback(null, "success remove Item");
}
});
}
ドキュメントを削除するときに、要求のオプションにpreTriggersIncludeを指定するのですか?トリガは自動起動されず、トリガを必要とする各リクエストで明示的に指定する必要があります。また、次のようなcollection.createDocumentの戻り値を確認してください:var isAccepted = collection.createDocument(...); if(!isAccepted)新しいエラーをスローする( "not accepted"); –