2016-06-10 2 views
2

Когда я xdmp:node-delete на не существующий узел, он работает на консоли запросов, но в СПЛ он бросает XDMP-ARGTYPE: (err:XPTY0004) xdmp:node-delete(()) -- arg1 is not of type node()xdmp: узел-удалить смешное поведение

Ниже то, что я делаю в моей консоли запроса

let $_ := xdmp:node-delete(fn:doc($uri)/enevelope:document-enevelope/enevelope:extractedText) 

Документ не имеет узла, но на консоли запроса он не жалуется, но он дает ошибку при использовании в CPF?

+0

В сообщении об ошибке ваш XPath смотрит на пустую последовательность. Убедитесь, что этот путь верен, включая привязки пространства имен. –

ответ

0

Часто, когда что-то работает в Query Console, но не работает, когда я запускаю его в модуле с его проблемой разрешений.

Как сказал Джастин, ошибка показывает, что у вас есть пустая последовательность. Это может произойти из-за xpath, как он сказал, или это может случиться, потому что пользователь, выполняющий запрос, не видит документ. Я бы проверял, чтобы документ возвращался. Отладка CPF - это боль, чтобы проверить, что я просто xdmp:log.

Вы также можете сделать eval как этот пользователь в консоли запроса.

+0

Также имейте в виду, что элемент действительно может отсутствовать. Или код может выполняться дважды, а второй раз элемент уже удален. Возможно, включите диагностику, добавьте «CPF» в качестве события трассировки и проверьте ErrorLog для потока CPF. – grtjn

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