Websoft XQuery Builder for HCM
Визуальный построитель XQuery-запросов для Websoft HCM в виде панели VS Code. Запрос собирается
из карточек каталогов, компилируется и выполняется на сервере, результат показывается таблицей
с постраничной навигацией.
Построитель только читает: он не редактирует и не удаляет документы HCM. Строка результата
открывается в XML Editor панели OmniCode.
Подключение
Расширение само серверами не управляет. Оно объявлено зависимым от Websoft OmniCode for HCM
(websoft.omnicode) версии 26.10.23 или новее и работает через его API (getServers,
getConnectedServer, request). Панель всегда работает против того сервера, который OmniCode
показывает как подключённый. На сервере должен стоять серверный компонент websoft_omnicode@websoft —
он отдаёт эндпоинты /$hcm/omnicode/*, на которых построитель собирает и выполняет запросы.
- Сервер не подключён — команда открытия сообщит об этом и предложит подключиться в дереве OmniCode.
- Подключено несколько серверов — появится выбор, какой из них использовать.
- Переключается сервер средствами VS Code (дерево OmniCode или команда
Select HCM Server),
внутри построителя переключателя нет.
Команды
| Команда |
Назначение |
Open XQuery Builder |
открыть панель против подключённого сервера |
Select HCM Server |
выбрать сервер, если подключено несколько |
Open XQuery Builder for This Server |
открыть панель для сервера, которому принадлежит открытый файл |
Query This Catalog in XQuery Builder |
открыть построитель с уже положенной на холст карточкой каталога |
Insert Generated Query Into Editor |
вставить сгенерированный запрос в активный редактор |
Run HCM Code in Active Editor (Ctrl+Alt+R) |
отправить текст активного редактора на сервер |
Reset Run-Code Trust |
вернуть подтверждение запуска для всех файлов |
Запуск кода на сервере
Ctrl+Alt+R отправляет содержимое активного редактора на POST /$hcm/omnicode/run_code: сервер
открывает текст как библиотеку кода на лету и вызывает её, ничего устанавливать не нужно. Результат,
сообщения и ошибки пишутся в канал вывода HCM Run Code.
Отправлять можно несохранённый буфер или файл .js / .bs — сервер оборачивает текст в функцию
BorisScript, поэтому другой язык даст только ошибку компилятора. Файл отправляется целиком:
запуск фрагмента спрятал бы то, что остальной части файла на сервере нет.
Скрипт выполняется с вашими правами и не отменяется, поэтому запуск подтверждается. Несохранённый
буфер спрашивается каждый раз; для сохранённого файла есть вариант «запускать без вопроса», который
запоминается по пути. Настройки: omnicodeXqb.confirmRunCode, omnicodeXqb.maxRunLines (2000),
omnicodeXqb.runTimeoutSeconds (60) — после таймаута расширение перестаёт ждать, хотя скрипт на
сервере может ещё работать.