Функции

Функции XQuery

Функции Описание
true() Возвращает true.
false() Возвращает false.
null() Возвращает null.
contains() Проверяет что строка содержит в себе другую строку.
doc-contains() Полнотекстовый поиск в базе данных.
МatchSome() Возвращает true, если элемент или последовательность элементов, указанных в arg1, пересекается с элементом или последовательностью, указанной в arg, в противном случае возвращается false.
date() Преобразует строку в качестве аргумента в объект типа Date.
catalogHierSubset() Возвращает фрагмент иерархии таблицы, начиная с конкретного узла.

Непроверенные функции XQuery

Функции Описание
hier() Обозначает сортировку с учетом иерархии результатов запроса XQuery к таблице.
isHierChild() Проверяет что заданная запись в таблице лежит ниже по иерархии определенной базовой записи с заданным ID.
isHierChildOrSelf() Проверяет, что заданная запись в таблице лежит ниже по иерархии определенной базовой записи с заданным ID, либо совпадает с базовой записью.
foreignElem() Аналог атрибута ForeignElem для XQuery. Возвращает целевой объект.
foreignDispName() Аналог атрибута ForeignDispName для XQuery. Возвращает Первичное отображаемое имя целевого объекта.

true()

Возвращает значение true. Функция обычно используется в качестве константы (литерала), поскольку константы типа Boolean в XQuery отсутствуют.

Аргументы:

нет аргументов

Результат:

Boolean

Пример:

// Получить записи где is_dynamic = true
arr = XQuery("for $elem in groups where $elem/is_dynamic=true() return $elem");

false()

Возвращает значение false. Функция обычно используется в качестве константы (литерала), поскольку константы типа Boolean в XQuery отсутствуют.

Аргументы:

нет аргументов

Результат:

Boolean

Пример:

// Получить записи где is_dynamic = false
arr = XQuery("for $elem in groups where $elem/is_dynamic=false() return $elem");

null()

Возвращает значение null. Функция обычно используется в качестве константы (литерала), поскольку константы типа null в XQuery отсутствуют.

Аргументы:

нет аргументов

Пример:

// Получить записи где phone = null
arr = XQuery("for $elem in collaborators where $elem/phone=null() return $elem");

contains()

Проверяет, что строка содержит внутри себя другую строку. Регистр игнорируется.

Функцию следует использовать с осторожностью, поскольку ее выполнении не оптимизируется индексами на встроенной СУБД.

Аргументы:

arg1 - String

arg2 - подстрока (String)

Result:

Boolean

Пример:

// Получить записи в которых поле position_name содержит в себе подстроку 'engineer'
arr = XQuery('for $elem in collaborators where contains($elem/position_name, 'engineer') return $elem');

doc-contains()

Функция полнотекстового поиска в базе.

Аргументы:

arg1 - ID объекта ($elem/id)
arg2 - имя базы данных
arg3 - строка поиска (String)
arg4 - имя таблицы (в старой объектной модели не используется)

Результат:

Boolean

Пример:

// Получить записи где настраиваемое поле specialcell = true
arr = XQuery("for $elem in collaborators where doc-contains($elem/id,'wt_data','[specialcell = true]','collaborators') return $elem");

МatchSome()

Выдает True, если элемент, или последовательность из элементов, указанная в arg1, пересекается с элементом или последовательностью, указанной в arg2, и false в обратном случае.

Аргументы:

arg1 = элемент или последовательнось элементов
arg2 = элемент или последовательнось элементов

Результат:

Boolean

Пример:

// Получить записи где поле phone = null
arr = XQuery("for $elem in candidates where MatchSome($elem/profession_id, (5618059798961344771,2918050598961344456)) return $elem");

date()

Преобразует аргумент типа String в результат типа Date. Функция обычно используется в качестве константы (литерала), поскольку константы типа Date в XQuery отсутствуют.

Аргументы:

arg1 - must be in the format YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (String)

Результат:

Date

Пример:

// Получить записи где поле last_usage_date > 2014-05-21
arr = XQuery("for $elem in learnings where $elem/last_usage_date>date('2014-05-21') return $elem");

catalogHierSubset()

Возвращает фрагмент иерархии каталога, начиная с определенного узла. (эта функция является устаревшей, вместо нее рекомендуется использовать isHierChild())

Аргументы:

arg1 = название таблицы (String)
arg2 = ID базового элемента (Integer)

Результат:

Object

Пример:

// Получить записи где subdivision с id=5738217100911837999 является родительским (выводит все записи находящиеся ниже по иерархии)
arr = XQuery("catalogHierSubset('subdivisions', 5738217100911837999)");

isHierChild()

Псевдо-функция, проверяющая, что заданная запись в иерархическом каталоге лежит ниже по иерархии определенной базовой записи с заданным ID.
Функция может вызваться строго в определенном месте с определенным синтаксисом. Без order by $elem/Hier() работать не будет.

Аргументы:

arg1 - всегда конструкция вида $elem/id

arg2 - ID базового элемента (Integer)

Результат:

Boolean

Пример:

// Получить записи где подразделения лежат ниже по иерархии чем подразделение с id = 5618059798961344793
arr = tools.xquery('for $elem in subdivisions where IsHierChild($elem/id, 5618059798961344793) order by $elem/Hier() return $elem');
Последнее обновление: 9/14/2018, 4:49:50 PM