Перейти к содержанию

Консольная административная утилита tadmin

Утилита tadmin позволяет автоматизировать многие функции, которые есть в TessaAdmin и SchemeEditor, или некоторые административные функции из TessaClient (такие, как пересчёт календаря или настройка файловых хранилищ). По умолчанию утилита лежит в сборке в папке Tools.

Для работы с утилитой необходимо в командной строке открыть папку Tools и выполнить нужную команду.

Note

Для всех параметров команд, описанных ниже, при использовании на Linux системах необходимо символ / заменить на -.

Команды для работы с БД

  • Выполнить скрипт SQL

    Sql [source [source...]] [/tran] [/cs:configurationString] [/db:databaseName] [/p:FirstParam=1] [/p:SecondParam=2] [/p:NullParam] [/p:EmptyParam=] ... [/q] [/nologo]

    где source - путь к папке с SQL скриптами или к файлу .sql. Каждый файл может разделяться командой GO. Вы можете указать несколько папок или файлов, разделённых пробелами. Если параметр не указан, то текст запроса запрашивается из консоли (может быть перенаправлен из предыдущей консольной команды). Флаг tran влияет на то, как создаётся транзакция, см. описание флага ниже.

  • Выполнить скрипт SQL со всеми запросами, разделённым GO. Возвращает результат последнего запроса в формате CSV.

    Select [source [source...]] [/tran] [/cs:configurationString] [/db:databaseName] [/top:rowCount] [/s:separatorChar] [/h] [/text] [/q] [/p:FirstParam=1] [/p:SecondParam=2] [/p:NullParam] [/p:EmptyParam=] ...

    где source - путь к папке с SQL скриптами или к файлу .sql. Каждый файл может разделяться командой GO. Вы можете указать несколько папок или файлов, разделённых пробелами. Если параметр не указан, то текст запроса запрашивается из консоли (может быть перенаправлен из предыдущей консольной команды). Флаг tran влияет на то, как создаётся транзакция, см. описание флага ниже.

  • Создать базу данных

    CreateDatabase [/cs:configurationString] [/db:databaseName] [/c] [/q] [/nologo]

  • Удалить базу данных

    DropDatabase [/cs:configurationString] [/db:databaseName] [/q] [/nologo]

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /db - Имя базы данных для использования вместо указанной в строке подключения.

  • /cs - Имя строки подключения в файле app.json для использования вместо строки по умолчанию.

  • /tran - SQL-скрипт должен быть выполнен внутри транзакции (без флага - каждые команды, разделённые GO имеют свою транзакцию). При наличии флага каждый файл выполняется в рамках отдельной транзакции, когда файлов несколько. Если при выполнении команды внутри транзакции возникла ошибка, то, независимо от её типа, происходит откат.

  • /top - Максимальное количество выводимых строк. Укажите 0 или опустите параметр, чтобы не ограничивать выборку.

  • /s - Символ-разделитель для вывода CSV. По умолчанию точка с запятой. Игнорируется, если указан параметр “text”. Вы можете использовать \t для табуляции, или \xxxx (4 шестнадцатеричные цифры) для вывода символа по его коду Unicode.

  • /h - Вывести имена колонок первой строкой при выводе в CSV.

  • /text - Вывести на консоль первое значение в первой возвращённой строке без эскейпинга CSV. Если не указан, то выводятся все колонки и строки.

  • /p - Один или несколько параметров вида “Параметр=Значение” (без кавычек), которые передаются в выполняемый запрос SQL. Если указан только “Параметр”, то в запрос он передаётся со значением NULL.

  • /c - Удалить базу данных, если она уже существует.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Note

Команды Sql и Select при выполнении каждого запроса “пробрасывают” результат этого запроса как параметр @Result в следующий запрос (если результата нет как Result Set, то пробрасывается количество изменённых строк или 0). Также при наличии в последующих командах спецстроки @Result@, она будет заменена на @Result предыдущего запроса (при замене отсутствует защита от SQL-инъекций).

Ниже указан пример для команды Select. Результат скрипта записывается в переменную командного файла %var%:

set var=

for /f "tokens=* usebackq" %%f in (`tadmin.exe Select script.sql /q "/p:A=first value" "/p:B=second value"`) do set var=%%f

echo Result: "%var%"

Скрипт script.sql выглядит как:

SELECT @A + ' + ' + @B

Результат:

Result: "first value + second value"

Команда для проверки доступности БД

  • Проверить доступность базы данных (возвращает сообщение об ошибке и код errorlevel, если СУБД или база данных недоступны). По умолчанию подключение выполняется к БД master/postgres вместо базы, заданной в строке подключения.

    CheckDatabase [/cs:configurationString] [/db:databaseName] [/timeout:seconds] [/dbms] [/c] [/q] [/nologo]

Описание необязательных параметров (указаны в квадратных скобках напротив команды):

  • /cs - Имя строки подключения в файле app.json для использования вместо строки по умолчанию.

  • /db - Имя базы данных для использования вместо базы master/postgres. Пустая строка “-db:” для использования базы, указанной в строке подключения.

  • /timeout - Таймаут соединения в секундах. Укажите отрицательное число, чтобы использовать таймаут из строки подключения в app.json, по умолчанию “-1”. Укажите “0” (без кавычек), чтобы не ограничивать таймаут.

  • /dbms - Вывести текущую используемую СУБД: SqlServer, PostgreSql, Unknown. При этом не выводится логотип.

  • /c - Вывести используемую строку подключения в окно консоли.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль. Если CheckDatabase выполняется с ключами /c или /dbms, то “тихий режим” будет включен автоматически.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команды для миграции данных

  • Перенести файлы из исходного местоположения в целевое (перенос файлов из MSSQL в файловое хранилище и обратно, а также перенос файлов из одного файлового хранилища в другое).

    MigrateFiles /from:fromSourceID /to:toSourceID [/cs:configurationString] [/db:databaseName] [/p:threadCount] [/c] [/q] [/nocancel] [/nologo]

    где from - идентификатор исходного местоположения файлов (id исходного хранилища файлов, указанное в карточке Настройки сервера),

    to - идентификатор целевого местоположения файлов (id целевого хранилища файлов, указанное в карточке Настройки сервера).

    Note

    При миграции файлов из одного хранилища в другое того же типа (например, из файлового в файловое, или из одной БД в другую БД) необходимо наличие в лицензии модуля поддержки нескольких файловых хранилищ. Если в вашу лицензию не включён данный модуль, то, обратившись к контактному лицу поставщика или на support@syntellect.ru можно запросить временную лицензию для выполнения операции миграции.

  • Перенести данные из таблиц исходной базы данных в целевую пустую базу.

    MigrateDatabase targetCS [/tdb:targetDatabaseName] [/cs:configurationString] [/db:databaseName] [/p:threadCount] [/bulk:bulkSize] [/q] [/nologo]

Описание необязательных параметров (указаны в квадратных скобках напротив команды):

  • targetCS - Имя строки подключения для цели выполняемой миграции в файле app.json.

  • /tdb - Имя базы данных для цели выполняемой миграции для использования вместо указанной в строке подключения.

  • /cs - Имя строки подключения в файле app.json для использования вместо строки по умолчанию.

  • /db - Имя базы данных для использования вместо указанной в строке подключения.

  • /p - Количество одновременных подключений для выполнения операции. Укажите 0, если оно определяется числом процессорных ядер.

  • /c - Контент каждого файла будет удалён из целевого местоположения перед копированием из исходного.

  • /bulk - Количество строк для массовой вставки в базу. Укажите 1 или меньше для построчной вставки.

Преобразование файлов конфигурации

  • Преобразовать выгруженные файлы конфигурации из старых форматов в новые (или обратно). В параметре source команде указывается имя файла или имя папки, в которой выполняется поиск файлов для преобразования (вместе с вложенными папками). Файлы рабочих мест .workplace преобразуются в формат .jworkplace, файлы рабочих мест в формате .jworkplace конвертируются до текущей версии формата, файлы представлений .view - в формат .jview, файлы представлений в формате .jview конвертируются до текущей версии формата, файлы типов карточек .tct - в формат .jtype, файлы библиотек локализации .tll - в формат .jlocalization, файлы библиотек карточек .cardlib будут преобразованы в формат .jcardlib.

    Note

    Данная команда поддерживает только преобразование библиотек карточек, которые не содержат карточек в бинарном формате .card. Для преобразования библиотек, содержащих карточки в бинарном формате .card, следует воспользоваться командой ConvertCards.

    ConvertConfiguration source [/o:outputFolder] [/scheme:pathToScheme] [/nd] [/mode:conversionMode] [/q] [/nologo]

  • /o - Выходная папка для сконвертированных файлов. Если не указано, то используется папка из параметра source. В выходной папке будет воссоздана такая же структура каталогов, как в папке из параметра source.

  • /scheme - Путь к папке со схемой или к файлу .tsd. Файлы схемы необходимы для конвертации типов и используются для восстановления связей между колонками виртуальной схемы по идентификаторам. Если параметр не указан, то будет произведена попытка поиска файлов схемы базы данных внутри папки из параметра source.”

  • /nd - Не удалять старые файлы после конвертации. Если флаг не указан, и выходная папка отличается от папки из параметра source, то, после выполнения команды, из папки source будут удалены все успешно сконвертированные файлы.

  • /mode - Режим конвертации.

    • Upgrade - Преобразовать файлы рабочих мест, представлений, типов карточек и библиотек локализации до форматов текущей версии платформы.

    • Downgrade - Преобразовать файлы рабочих мест, представлений, типов карточек и библиотек локализации в старые форматы, совместимые с предыдущими версиями платформы. Для файлов представлений и рабочих мест данный режим не поддерживается.

    • LF - Преобразовать по всем файлам переводы строк в формат LF \n, который совместим с Windows и Linux. Это рекомендуемый формат.

    • CRLF - Преобразовать по всем файлам переводы строк в формат CRLF \r\n, который совместим с Windows. Используйте для сравнения с объектами, выгруженными в предыдущих версиях платформы из приложений TessaAdmin или посредством команды tadmin на Windows.

    • BOM - Преобразовать файлы с кодировкой UTF-8 без BOM в файлы с кодировкой UTF-8 с BOM.

    Note

    Типы файлов, поддерживаемые режимами LF и CRLF:

    .cardlib - библиотека карточек в xml

    .jcardlib - библиотека карточек в json

    .jcard - карточка в json

    .json - произвольный текстовый json, например, app.json

    .jlocalization - библиотека локализации в json

    .jtype - тип карточки в json

    .jview - представление в json

    .jworkplace - рабочее место в json

    .jquery - поисковый запрос в json

    .sql - sql-скрипт с процедурой, функцией или миграцией

    .tct - тип карточки в xml

    .tll - библиотека локализации в xml

    .tpf - функция схемы в xml

    .tpm - миграция схемы в xml

    .tpp - процедура схемы в xml

    .tsd - база данных схемы в xml

    .tsp - библиотека схемы в xml

    .tst - таблица схемы в xml

    .txt - текстовые файлы вида readme.txt

    .view - представление в exchange format

    .workplace - рабочее место в exchange format

    .query - поисковый в exchange format

    .xml - текстовый xml

Преобразование файлов карточек и библиотек карточек

  • Преобразовать файлы карточек и файлы библиотек карточек из старых форматов в новые (или обратно). В параметре source команде указывается имя файла или имя папки, в которой выполняется поиск файлов для преобразования (вместе с вложенными папками). Файлы экземпляров карточек .card будут сконвертированы в формат .jcard, также файлы карточек .jcard будут преобразованы в формат .jcard с поддержкой внешних прикрепленных файлов и файлов внутреннего контента карточек в соответствии с заданными в системе параметрами сериализации внутреннего контента. Файлы библиотек карточек .cardlib будут преобразованы в формат .jcardlib и изменятся таким образом, чтобы ссылаться на файлы карточек с расширением .jcard. Для конвертации карточек можно использовать параметр /mode:Downgrade, при указании которого производится обратная конвертация в бинарный формат .card.

    ConvertCards source [/o:outputFolder] [/a:address] [/u:user] [/p:password] [/nd] [/mode:conversionMode] [/q] [/nologo]

  • /o - Выходная папка для сконвертированных файлов. Если не указано, то используется папка из параметра source. В выходной папке будет воссоздана такая же структура каталогов, как в папке из параметра source.

  • /a - Адрес сервиса TESSA.

  • /u - Имя пользователя.

  • /p - Пароль.

  • /nd - Не удалять старые файлы после конвертации. Если флаг не указан, и выходная папка отличается от папки из параметра source, то, после выполнения команды, из папки source будут удалены все успешно сконвертированные файлы библиотек карточек, включая опции слияния, указанные в библиотеке, а также все успешно сконвертированные файлы экземпляров карточек, включая подпапки, принадлежащие этим карточкам.

  • /mode - Режим конвертации.

    • Upgrade - Преобразовать файлы библиотек карточек и экземпляров карточек до форматов текущей версии платформы.

    • Downgrade - Преобразовать файлы экземпляров карточек в старый формат, совместимый с предыдущими версиями платформы. Для библиотек карточек данный режим не поддерживается.

Общие необязательные параметры для команд миграции данных:

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nocancel - Запретить отмену операции нажатием клавиши Esc. Актуально, если не выставлен ключ /q.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команды для импорта конфигурации

  • Импорт сотрудников

    ImportUsers pathToUserFile [/sd:pathToDepartmentFile] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/cs:configurationString] [/db:databaseName] [/q] [/nologo]

    где pathToUserFile - путь к файлу xlsx (содержащему список сотрудников и подразделений) или csv (содержащему список пользователей).

    pathToDepartmentFile - путь к файлу csv, содержащему список подразделений. Указывается в дополнение к csv файлу со списком сотрудников, необязательный параметр.

    Требования к импортируемым CSV, Excel файлам:

    1. При импорте из Excel обязательна книга, на листах которой находятся данные о сотрудниках и подразделениях, а также их связях. Шаблон xslx файла: ImportUsersSample.xlsx.

      Note

      Лист подразделений может быть пустым, если необходимо импортировать только сотрудников.

      Пример импорта: tadmin ImportUsers ImportUsersSample.xlsx.

    2. При импорте из CSV обязателен файл, содержащий сотрудников. Файл с подразделениями передается при необходимости. Шаблоны файлов для импорта сотрудников и подразделений: ImportUsersSample.csv, ImportDepartmentsSample.csv.

      Пример импорта: tadmin ImportUsers ImportUsersSample.csv /sd:ImportDepartmentsSample.csv.

      Important

      Связывание данных с внешней системой и проверка уникальности производится с помощью поля “Внешний ID”. Если “Внешний ID” не заполнен, то для подразделений производится проверка по названию подразделения, а для сотрудников по логину. Если в какой-то строке списка сотрудников/подразделений не заполнены ни “Внешний ID”, ни логин/название подразделения, то такая строка не будет синхронизирована.

      Если какие-то строки из файлов не были импортированы, данная информация отобразится в консоли и добавится в log.txt с указанием номеров строк.

      При выполнении импорта/синхронизации необходимо учитывать следующие особенности:

      • Обязательные поля отмечены звездочкой в заголовке шаблонного файла. Если какие-то из обязательных полей не будут указаны, то данная строка из файла не будет загружена, о чем в консоль будет выведена соответствующая информация:

        Для подразделения обязательные поля: “№ п/п”, “Родительское подразделение” (если подразделение корневое, то данное поле оставить пустым), “Название организации/подразделения”.

        Для сотрудника: “Фамилия”, “Имя”.

      • Для сотрудников с типом входа “Пользователь Tessa” или “Пользователь Windows” помимо указанных выше обязательных полей должен быть указан логин. Если логин не указать - сотрудник не будет загружен, в консоль выведется данная информация:

      • Логин сотрудника должен быть уникален. Если в файле встретится повторяющийся логин или сотрудник с таким логином уже есть в Tessa, то в консоль будет выведена ошибка:

      • Название подразделение должно быть уникально на одном уровне. Два подразделения с одинаковым именем, но имеющие разные родительские подразделения могут быть загружены, например:

        Однако если два подразделения имеют одинаковое имя и попытаться их загрузить в одно и тоже родительское подразделение (или если у обоих не указать родительского), например:

        Или же, если в Tessa уже есть подразделение с таким же именем и на том же уровне, то в консоль будет выведена соответствующая ошибка:

        При этом все корректные строки из файла будут успешно загружены.

      • Если в файле окажется, что для каких-то из подразделений указаны родительские подразделения таким образом, что они “зациклены”, например:

        В этом случае в консоль выведется соответствующая ошибка:

        При этом все подразделения будут загружены успешно, но для одного из подразделений не пропишется родительское.

      • Временную зону для подразделения или сотрудника можно задать как через “Код зоны”, например “Saratov Standard Time” или “Default”, так и указав смещение в формате (+-H:mm или +-HH:mm), например “+3:00”, или “+03:00”, или -“07:00”. Если указан “Код зоны”, то будет выбрана первая временная зона из справочника временных зон, отсортированного по полю “Идентификатор зоны”, которая содержит в имени искомый текст. Если указано смещение, то будет выбрана первая временная зона из справочника временных зон, отсортированного по полю “Идентификатор зоны”, которая имеет такое же смещение. В обоих случаях, когда указан “Код зоны” или смещение, при установке зоны, для роли будет отключено наследование временной зоны от родителя. Чтобы включить наследование от родителя, то вместо “Кода зоны” или смещения необходимо указать “-1”.

        Если временная зона не задана, то поля с временными зонами не будут импортированы, и у новых карточек они будут заполнены временной зоной “По умолчанию”, а в уже имеющихся карточках - останутся без изменений.

  • Импорт карточек

    ImportCards sources [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/options:mergeOptionsPath] [/bundled] [/e] [/r] [/ignored:ignoredFilesPath] [/q] [/nologo]

    где:

    • sources - Один или несколько путей к папкам с библиотеками карточек или к файлам .cardlib и .jcardlib. Если таких файлов нет, то это могут быть пути к папкам с карточками или к файлам .jcard или .card.

    • ignored:ignoredFilesPath - Путь до файла со списком игнорируемых имён файлов. Допустимо использовать маскированные пути. Файлы будут проигнорированы при проверке подпапки с внешним контентом на лишние файлы в процессе импорта карточки.

      Пример содержимого файла с паттернами:

      log.txt validation.txt Publisher.* *.jcard *.card

      Tip

      Если такой файл расположен в подпапке с другими файлами карточки, и не является прикрепленным файлом к карточке, то в список следует включить и его.

      • * - wildcard, обозначает любой символ в любом количестве.
    • bundled - Импорт библиотеки карточек единым запросом к серверу, при этом импортируемые карточки не должны содержать файлы, а также они не должны существовать в системе на момент выполнения операции (как следствие, опции слияния не учитываются).

    Important

    При импорте карточек, где есть секции с полями, для которых определены уникальные ключи, следует учитывать следующую информацию.

    При импорте карточек с прикрепленными к ним файлами, следует учитывать логику, описанную здесь.

  • Импорт локализации

    ImportLocalization source [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/c] [/q] [/nologo]

    где source - путь к папке с библиотеками локализации или к файлу .jlocalization или .tll.

  • Импорт схемы через web-сервис.

    ImportScheme source [/include:path [/include:path...]] [/exclude:path [/exclude:path...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

    где source - путь к папке со схемой или к файлу .tsd.

  • Импорт схемы через SQL-соединение

    ImportSchemeSql source [/include:path [/include:path...]] [/exclude:path [/exclude:path...]] [/cs:configurationString] [/db:databaseName] [/q] [/nologo]

    где source - путь к папке со схемой или к файлу .tsd.

    Important

    Импорт схемы через SQL-соединение используется, когда схема создаётся впервые (при новой инсталляции на чистую базу), либо изменилась версия схемы (при обновлении на новую сборку платформы, про это обычно написано в пунктах “Переход на новую сборку” раздела документации История изменений). Во всех остальных случаях предпочтительнее импортировать схему через веб-сервис.

  • Обновление схемы в базе данных до текущей версии

    SchemeUpdateSql [/cs:configurationString] [/db:databaseName] [/q] [/nologo]

    Important

    Если схема не существует в базе данных, то команда завершается с ошибкой. Если версия схемы уже обновлена, то команда завершается успешно, как и после обновления схемы. Выполните эту команду при переходе на версию платформы, в которой отличается версия схемы данных, чтобы схема была доступна до того, как она будет импортирована командой ImportSchemeSql (которая также выполнит обновление схемы данных, если это требуется). Текущая схема в базе данных может использоваться в скриптах, таких как tadmin Script ConvertBson, которые выполняют миграцию данных, причём эти данные могут быть удалены при импорте схемы.

  • Импорт типов (типов карточек, файлов, заданий и диалогов)

    ImportTypes source [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/c] [/q] [/nologo]

    где source - путь к папке с типами или к файлу .jtype или .tct.

  • Импорт представлений

    ImportViews source [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/c] [/r] [/q] [/nologo]

    где source - выбранная папка.

  • Импорт рабочих мест

    ImportWorkplaces source [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/c] [/r] [/v] [/s] [/q] [/nologo]

    где source - выбранная папка.

  • Импорт поисковых запросов

    ImportSearchQueries source [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

    где source - выбранная папка.

Note

В параметре source можно также задавать маскированные пути к файлам, например Types/Cards/Kr*.jtype импортирует типы карточек (файлы с расширением .jtype), которые начинаются с букв “Kr”. Маски задаются символами * и ? таким же образом, как и для других команд в командной строке Windows.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /a - Адрес сервиса TESSA.

  • /i - Имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать.

  • /u - Имя пользователя.

  • /p - Пароль.

  • /c - Удалять существующие записи перед импортом (кроме команд ImportCards и ImportSearchQueries, для которых ключ отсутствует).

  • /e - Игнорировать существующие записи перед импортом, не выдавая для них сообщений об ошибках. Игнорируется при использовании совместно с ключом /c.

  • /r - Для команды ImportCards: не отображать предупреждения об исправлении структуры для успешно импортированных карточек.

  • /r - Для команд ImportViews и ImportWorkplaces: заменить разрешения в базе данных.

  • /include - Дополнительные библиотеки, включаемые в схему. Если указана папка, то в ней выполняется рекурсивный поиск на файлы библиотек. Путь может быть относителен к основной папке со схемой.

  • /exclude - Библиотеки, исключаемые из схемы. Исключение выполняется после включения дополнительных библиотек. Если указана папка, то в ней выполняется рекурсивный поиск на файлы библиотек. Путь может быть относителен к основной папке со схемой.

  • /options - Путь до файла с опциями слияния, которые используются при импорте карточек, уже существующих в базе данных. Если файл не указан, то по умолчанию используется файл merge-options.json, если он существует в подпапке с именем файла (без расширения) для импортируемой карточки.

  • /ignored - Путь до файла со списком паттернов игнорируемых файлов.

  • /v - Импортировать внедрённые в рабочие места файлы представлений.

  • /s - Импортировать внедрённые в рабочие места файлы поисковых запросов.

  • /cs - Имя строки подключения в файле app.json для использования вместо строки по умолчанию.

  • /db - Имя базы данных для использования вместо указанной в строке подключения.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команды для экспорта конфигурации

  • Экспорт карточек

    ExportCards [identifiers [identifiers...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/s:separatorChar] [/o:outputFolder] [/l:libraryFilePath] [/localize:culture] [/overwrite] [/mapping:mappingFilePath] [/b] [/q] [/nologo]

    где:

    • l:libraryFilePath - Путь к файлу библиотеки карточек, в который будут добавлены экспортируемые карточки в порядке экспорта. Если файл не существует, то он создаётся.

    • identifiers - Идентификаторы карточек, разделённые пробелами, запятыми или точками с запятой. Если не указано, то идентификаторы читаются из стандартного ввода консоли, где идентификаторы разделяются переводом строки. Имя карточки опционально указывается после разделителя колонок (точка с запятой по умолчанию). Чтобы выбрать карточки, полученные из SQL-скрипта, вы можете перенаправить вывод команды tadmin Select.

    • overwrite - Флаг, который в случае, когда экспорт перезаписывает уже существующую карточку на диске, определяет, перезаписать ли некоторые значения или сохранить такими, как в существующем файле. Соответствует параметру overwriteModifiedValues при вызове API экспорта карточек.

    • mapping:mappingFilePath - С помощью данного параметра можно указать путь к файлу, содержащему маппинги путей внутри карточек для выгрузки контента, находящегося по этим путям во внешние файлы.

      Файл с маппингами имеет следующую структуру:

      [ { "StoragePath": "Sections.SectionName.Fields.Script", "FileName": "Script.cs" }, { "StoragePath": "Sections.SectionName.Rows[].SqlText", "FileName": "SqlText.sql", "IDKeys": ["RowID"], "ContentConverter": "CustomSqlConverter" }, ... ]

      Подробно о свойствах маппинга см. в разделе свойства интерфейса IStorageContentMapping

    Important

    При экспорте карточек в формате jcard с перезаписью существующего файла подпапка с именем файла также перезаписывается. Если в подпапке не должно быть файлов, то она удаляется.

    Если карточка экспортируется в папку без файла .jcard, то при наличии подпапки с именем файла экспорт завершается с ошибкой.

  • Экспорт локализации

    ExportLocalization [name [name...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/o:outputFolder] [/c] [/q] [/nologo]

    где name - имена библиотек для экспорта. Если не указаны, то экспортируются все библиотеки.

  • Экспорт схемы через web-сервис.

    ExportScheme [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/o:outputFolder] [/q] [/nologo]

  • Экспорт схемы через SQL-соединение

    ExportSchemeSql [/cs:configurationString] [/db:databaseName] [/o:outputFolder] [/u] [/q] [/nologo]

    Important

    Экспорт схемы через SQL-соединение используется, когда веб-сервис недоступен или не работоспособен, либо изменилась версия схемы (при обновлении на новую сборку платформы, про это обычно написано в пунктах “Переход на новую сборку” раздела документации История изменений). Во всех остальных случаях предпочтительнее экспортировать схему через веб-сервис.

  • Экспорт типов (типов карточек, файлов и заданий)

    ExportTypes [nameOrIdentifier [nameOrIdentifier...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/o:outputFolder] [/c] [/s] [/t:instanceType] [/q] [/nologo]

    где nameOrIdentifier - имена или идентификаторы типов для экспорта. Если не указаны, то экспортируются все типы.

  • Экспорт представлений

    ExportViews [aliasOrIdentifier [aliasOrIdentifier...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/o:outputFolder] [/s] [/c] [/q] [/nologo]

    где aliasOrIdentifier - алиасы или идентификаторы представлений для экспорта. Если не указаны, то экспортируются все представления.

  • Экспорт рабочих мест

    ExportWorkplaces [nameOrIdentifier [nameOrIdentifier...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/o:outputFolder] [/c] [/v] [/s] [/q] [/nologo]

    где nameOrIdentifier - имена или идентификаторы рабочих мест для экспорта (имена здесь - это имена файлов по умолчанию без расширений). Если не указаны, то экспортируются все рабочие места.

  • Экспорт поисковых запросов

    ExportSearchQueries [nameOrIdentifier [nameOrIdentifier...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/o:outputFolder] [/public] [/c] [/q] [/nologo]

    где nameOrIdentifier - имена или идентификаторы поисковых запросов для экспорта. Если не указаны, то экспортируются все доступные пользователю поисковые запросы.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /a - Адрес сервиса TESSA.

  • /i - Имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать.

  • /u - Имя пользователя.

  • /p - Пароль.

  • /c - Удалить существующие файлы с соответствующими расширениями из выходной папки перед экспортом.

  • /o - Для команды ExportCards: Выходная папка для файлов экспортированных карточек. Если не указано, то используется текущая папка. Задаётся относительно пути к библиотеке карточек, если этот путь указан.

  • /o - Для других команд: Выходная папка для файлов с экспортированными объектами. Если не указано, то используется текущая папка.

  • /s - Для команды ExportCards: Разделитель колонок при чтении информации по карточкам из CSV (т.е. из стандартного ввода).

  • /s - Для команды ExportTypes: Каждый тип размещается в подпапке “Cards”, “Dialogs”, “Files” или “Tasks” на основании его типа экземпляра.

  • /s - Для команды ExportViews: Каждое представление размещается в подпапке, имя которой соответствует названию группы, в которую входит представление. Если имя группы не задано, оно будет экспортировано в корень.

  • /s - Для команды ExportWorkplaces: Включить зависимые поисковые запросы в файл рабочего места.

  • /public - Для команды ExportSearchQueries: Включить только общие поисковые запросы.

  • /v - Включить зависимые представления в файл рабочего места.

  • /t - Экспортируются только типы с заданным типом экземпляра: Card (карточка), Dialog (диалог), File (файл) или Task (задание).

  • /l - Путь к файлу библиотеки карточки .jcardlib, который будет создан или дополнен. Расширение файла дописывается, если отсутствует. Если также указан параметр -o, то он создаёт подпапку внутри папки с библиотекой.

  • /localize - Имя языка для локализации названий карточек, например, “en”, “ru” и т.д. (без кавычек).

  • /b - Использовать бинарный формат .card вместо текстового .jcard (по умолчанию).

  • /cs - Имя строки подключения в файле app.json для использования вместо строки по умолчанию.

  • /db - Имя базы данных для использования вместо указанной в строке подключения.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команды для мониторинга и управления компонентами

Раздел содержит команды, связанные с различными аспектами мониторинга работы компонентов системы и управления ими.

Команда позволяет получить актуальную информацию по всем известным компонентам системы.

Формат серверной команды для доверенного контура:

PrintDiscoveryInfo [-r:redisConnectionString] [-sc:serverCode] [-e] [-i] [-q] [-nologo]

Формат клиентской команды для внешнего контура:

PrintDiscoveryInfoClient -k:keyPath -kp:keyPassword [-wa:webbiAddress] [-wm:webbiManagementRoute] [-wt:webbiTimeoutSeconds] [-e] [-i] [-q] [-nologo]

Смысл и назначение ключей: - Для клиентской команды:
- -k - путь к приватному ключу, которым подписывается команда. - -kp - пароль ключа для подписи команды. - -wa - задаёт адрес сервера webbi, если не задан, используется значение из файла app.json. - -wm - маршрут, по которому webbi принимает внешние команды, если не задан, используется значение из файла app.json. - -wt - задаёт таймаут ожидания ответа при выполнении команды, если не задан, используется значение из файла app.json. - Для серверной команды: - -r - строка подключения к Redis. Если параметр не указан, используется настройка "Redis" из конфигурационного файла app.json . - -sc - код сервера приложений. Если параметр не указан, используется настройка "ServerCode" из конфигурационного файла app.json. Для корректной работы код сервера должен быть указан такой же, как и в одноимённой настройке в конфигурационных файлах сервисов web, chronos и др. - -e - вывести информацию о компонентах в экспортируемом виде как массив JSON объектов, каждый из которых содержит описание компонента. Если не указан, вывод информации осуществляется в удобном для восприятия человеком виде. - -i - вывести информацию об используемых компонентом ресурсах, если она доступна. Игнорируется, если указан флаг -e. - -q - на консоль выводятся только ошибки и актуальная информация по всем известным компонентам системы. Если не указать, то все сообщения выводятся на консоль. - -nologo - предотвращает отображение сообщения по авторским правам и номеру версии.

Important

Для выполнения команды PrintDiscoveryInfoClient необходимо, чтобы в webbi был включен приём внешних команд, а ключ имел набор прав, содержащий discovery-info.

Пример работы команды представлен в соответствующем разделе документации по мониторингу.

Команда генерации ключей

Команда позволяет сгенерировать пару из приватного и публичного ключей, используемых в подсистеме мониторинга и обнаружения компонентов, а также зарегистрировать сгенерированный ключ в Redis и, при необходимости, отправить команду публикации ключа.

Note

Режим работы по умолчанию - только генерация пары ключей может осуществляться во внешнем контуре, поскольку не требует особых прав.

Important

В случае, если команда, помимо генерации, должна зарегистрировать ключ в Redis и в дополнении к регистрации отправить команду публикации ключа, то она должна выполняться внутри доверенного контура.

Формат команды:

GenerateDiscoveryKey scopes -s:subject -p:password [-em:expirationMonths] [-k:parentKey] [-kp:parentKeyPassword] [-self] [-o:keyName] [-mode:mode] [-r:redisConnectionString] [-sc:serverCode] [-q] [-nologo]

Смысл и назначение параметров и ключей:

  • scopes - список прав выполнения операций нового ключа (задаются через пробел).

    Important

    Мастер ключ системы (первый, он же главный ключ системы, на основании которого выписываются все остальные ключи, подробнее смотри в документации по мониторингу) должен быть самоподписанным и иметь права выполнения PublishTrustedKeys.

    Рекомендуется также указывать для этого ключа права выполнения manage-keys.

  • -s - описание назначения нового ключа.

  • -p - пароль, устанавливаемый для данного ключа.

    Important

    Минимальная длина пароля 4 символа.

  • -em - срок действия ключа в месяцах от текущей даты. По умолчанию 3 месяца.

  • -k - путь к родительскому ключу, на основании которого генерируется новый ключ.
  • -kp - пароль от родительского ключа.
  • -self - сгенерировать самоподписанный ключ.

    Important

    Параметры -self и пара -k, -kp являются взаимоисключающими. Т.е. у самоподписанного ключа не должно быть родительского ключа, а если указан родительский ключ, то генерируемый ключ не может быть самоподписанным.

  • -o - путь, по которому необходимо сохранить приватный ключ. Если путь не задан, ключ сохраняется в текущей рабочей директории с именем private.key.

    Important

    Если путь не задан, публичный ключ сохраняется в текущей директории с именем public.key, иначе путь, указанный в ключе, с суффиксом _public.key.

    Именно этот ключ необходимо будет помещать в соответствующие директории компонентов и/или Redis, чтобы они смогли принимать команды, подписанные приватным ключом.

  • -mode - режим работы команды:

    • Generate - генерация пары ключей (по умолчанию).
    • Register - генерация пары ключей и помещение публичного ключа в Redis.
    • Publish - генерация пары ключей, помещение публичного ключа в Redis и отправка команды публикации ключа всем компонентам.

    Note

    При использовании нормальной политики безопасности работы с ключами, при начальной настройке системы, рекомендуется сначала сгенерировать и поместить в Redis все ключи кроме последнего, а при генерации последнего ключа, помимо помещения его в Redis, указать команду публикации ключа. Таким образом, все компоненты загрузят все ключи.

    При использовании строгой политики безопасности работы с ключами, при начальной настройке системы, необходимо сгенерировать все ключи и вручную поместить их в соответствующие директории компонентов. Компоненты загрузят ключи автоматически.

  • -r - строка подключения к Redis. Если параметр не указан, используется настройка "Redis" из конфигурационного файла app.json.

  • -sc - код сервера приложений. Если параметр не указан, используется настройка "ServerCode" из конфигурационного файла app.json. Для корректной работы код сервера должен быть указан такой же, как и в одноимённой настройке в конфигурационных файлах сервисов web, chronos и др.
  • -q - на консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.
  • -nologo - предотвращает отображение сообщения по авторским правам и номеру версии.

Пример работы команды представлен в соответствующем разделе документации по мониторингу.

Команда просмотра ключа

Команда позволяет просмотреть приватный ключ в формате JSON для визуального контроля и получения необходимой информации, поскольку ключ хранится в файловой системе в зашифрованном виде и недоступен для просмотра обычными средствами.

Формат команды:

ViewDiscoveryKey key -p:password [-nologo]

Смысл и назначение параметров и ключей:

  • key - путь к целевому ключу, который необходимо отобразить.
  • -p - пароль для данного ключа.
  • -nologo - предотвращает отображение сообщения по авторским правам и номеру версии.

Пример работы команды представлен в соответствующем разделе документации по мониторингу.

Команда отправки универсальных команд компонентам

Команда позволяет отправить любую команду компонентам системы.

Формат серверной команды для доверенного контура:

SendCommand command -k:keyPath -kp:keyPassword [-s:scopes] [-t:targets] [-timeout:timeout] [-pp:<param1>=<val1> [-pp:<param2>=<val2> ...]] [-nowait] [-r:redisConnectionString] [-sc:serverCode] [-q] [-nologo]

Формат клиентской команды для внешнего контура:

SendCommandClient command -k:keyPath -kp:keyPassword [-s:scopes] [-t:targets] [-timeout:timeout] [-pp:<param1>=<val1> [-pp:<param2>=<val2> ...]] [-wa:webbiAddress] [-wm:webbiManagementRoute] [-wt:webbiTimeoutSeconds] [-a:address] [-i:instanceName] [-u:userName] [-p:password] [-nowait] [-q] [-nologo]

Important

Для отправки команд из внешнего контура нужно активировать возможность их приёма в webbi и настроить reverse proxy (IIS или nginx) для маршрутизации сообщений на нужный маршрут.

Также важно помнить, что reverse proxy должен быть настроен таким образом, чтобы принимать команды только по HTTPS.

Смысл и назначение параметров и ключей:

  • command - имя отправляемой команды.

    Note

    Можно отправить как одну из известных команд, так и любую другую. Этот механизм позволяет без доработок отправлять новые команды новым компонентам.

  • -k - путь к приватному ключу, которым подписывается команда.

  • -kp - пароль ключа для подписи команды.
  • -s - список прав требуемых для выполнения команды. Задаётся через запятую.
  • -t - список компонентов адресатов команды. Задаётся через запятую.
  • -timeout - время действия команды в минутах. Допустимо указывать вещественные числа. По умолчанию 2 минуты.

    Note

    Компоненты обрабатывают команды с интервалом в 30 секунд, поэтому задавать меньшее время действия команды нецелесообразно, т.к. часть компонентов не успеет обработать такую команду.

  • -pp - аргументы команды. Указывается в зависимости от команды. Формат -pp:<param>=<value> или -pp:<param>, где <param> - имя параметра, <value> - значение параметра. Если параметр логический, достаточно указывать его имя.

    Important

    Для неизвестных команд все параметры, заданные в данном аргументе -pp, переносятся в поле Arguments команды.

    Таким образом, данные команды tadmin можно использовать для отправки новых команд с аргументами простой конфигурации.

    Рассмотрим аргументы для известных команд:

    • PublishKey, CheckKey, DeleteKey:
      • -pp:k=keyPath - путь к целевому приватному ключу.
      • -pp:kp=keyPassword - пароль от целевого ключа.
    • Maintenance:

      • -pp:c=command - команда технического обслуживания, которую необходимо выполнить:
        • switch-on - переключить систему в режим технического обслуживания.
        • switch-off - вывести систему из режима технического обслуживания в нормальный режим.
      • -pp:m:<message>=<text> - установить текст для требуемого сообщения режима технического обслуживания пользователю. Здесь <message> - одно из определённых сообщений, <text> - текст сообщения с поддержкой строк локализации.
      • -pp:i - флаг, что команда должна работать в изолированном режиме, без доступа к основному веб-серверу TESSA.

        Important

        Этот режим нужно использовать, если требуется изменить одно из сообщений при использовании клиентского варианта команды SendCommandClient, когда система уже переведена в режим технического обслуживания.

        Note

        Этот режим не имеет смысла для серверной команды SendCommand в доверенном контуре, поскольку у неё есть полный доступ ко всем ресурсам TESSA.

    • EnableTracing:

      • -pp:s=source - имя источника сбора данных для трассировки.
      • -pp:d=duration - длительность трассировки в секундах (целое число).
      • -pp:md=minimalDuration - минимальный порог длительности запроса, включаемого в данные трассировки, в миллисекундах (целое число). Если не указан, данные собираются для всех запросов.
      • -pp:c=cardID - уникальный идентификатор карточки, для запросов которой включается трассировка, если есть.
      • -pp:u=userID - уникальный идентификатор пользователя, для запросов от которого включается трассировка, если есть.
      • -pp:t=cardTypeID - уникальный идентификатор типа карточки, для запросов от которого включается трассировка, если есть.
    • DisableTracing:

  • -nowait - флаг, означающий, что не нужно ожидать результат обработки команды от компонентов.

  • Для клиентской команды:

    • -wa - задаёт адрес сервера webbi, если не задан используется значение из файла app.json.
    • -wm - маршрут, по которому webbi принимает внешние команды, если не задан используется значение из файла app.json.
    • -wt - задаёт таймаут ожидания ответа при выполнении команды, если не задан используется значение из файла app.json.
    • -a - адрес сервиса TESSA.

      Important

      Аргументы -a, -i, -p, -u имеет смысл задавать только для клиентской разновидности команды SendCommandClient, если часть данных для команды необходимо получать из основного веб-сервиса TESSA.

    • -i - имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать.

    • -u - имя пользователя.
    • -p - пароль пользователя.
    • Для серверной команды:
    • -r - строка подключения к Redis. Если параметр не указан, используется настройка "Redis" из конфигурационного файла app.json .
    • -sc - код сервера приложений. Если параметр не указан, используется настройка "ServerCode" из конфигурационного файла app.json. Для корректной работы код сервера должен быть указан такой же, как и в одноимённой настройке в конфигурационных файлах сервисов web, chronos и др.
    • -q - на консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.
    • -nologo - предотвращает отображение сообщения по авторским правам и номеру версии.

Note

Для работы клиентской команды SendCommandClient в app.json tadmin в секции Settings содержится секция (поле) Management c настройками подключения к веб-сервису webbi, следующего содержания (описана структура JSON объекта):

Поле Тип Описание
BaseAddress строка Основной адрес webbi, доступный через reverse proxy.
Как правило, на Windows системах если основной сервер TESSA находится по адресу https://localhost/tessa/web, то webbi находится по адресу https://localhost/tessa/webbi.
На Linux системах в зависимости от настройки nginx в стандартной конфигурации https://localhost:1020
Endpoint строка Путь к маршруту, принимающему команды, который настраивается в файле app.json webbi.
По умолчанию используется путь management
Timeout строка Таймаут выполнения запросов к веб-сервису.
По умолчанию 40 минут
ProxyUri строка Адрес и порт для прокси-сервера. Базовый адрес и адрес прокси должны быть указаны как IP-адрес или имя сервера, но не как localhost (loopback-интерфейс игнорирует прокси). По умолчанию настройка закомментирована
ProxyClass строка Настройка изменяет стандартный прокси-объект System.Net.IWebProxy на класс с указанным именем типа. Класс должен иметь конструктор с единственным параметром типа Uri - это адрес из настройки ProxyUri. Укажите Tessa.UI.LoginDialogProxy, Tessa.UI, чтобы использовать прокси с аутентификацией, при этом будет отображаться окно с логином-паролем. По умолчанию настройка закомментирована

Note

Для более сложной подготовки команды и установки необходимых прав выполнения рекомендуется реализовать собственный обработчик команды на стороне tadmin.

Для обработки команды на стороне сервера также необходимо реализовать соответствующий обработчик, иначе команда не будет выполнена компонентом.

Пример работы команды представлен в соответствующем разделе документации по мониторингу.

Команда для изменения параметров сотрудника

  • Изменить параметры сотрудника

    User user [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/account:newAccount] [/login:newLogin] [/password:newPassword] [/ldap] [/nologin] [/q] [/nologo]

    где user - Идентификатор сотрудника или часть его краткого имени (с начала). Укажите имя так, чтобы оно соответствовало единственному сотруднику.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /a - Адрес сервиса TESSA.

  • /i - Имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать.

  • /u - Имя пользователя.

  • /p - Пароль.

  • /account - Установить аутентификацию Windows с указанным именем аккаунта, например, ДОМЕН\АккаунтСотрудника.

  • /login - Установить аутентификацию Tessa с указанным логином. Вы также должны указать пароль.

  • /password - Установить аутентификацию Tessa с указанным паролем. Вы также должны указать логин.

  • /ldap - Указать аутентификацию LDAP вместо Windows.

  • /nologin - Запретить вход сотрудника в систему.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команда для публикации приложения посредством его упаковки в карточку .jcard

  • Создаёт файл .jcard или .card для заданного desktop-приложения. Импортируйте такую карточку командой ImportCards для публикации.

    PackageApp executable [/out:jcardFile] [/ico:icon] [/a:alias] [/n:name] [/g:group] [/v:version] [/admin] [/64bit] [/api2] [/b] [/q] [/nologo]

    где executable - Путь к файлу .dll для приложений .NET Core/.NET 5+ (сборка платформы 3.5.0 или старше, например, TessaClient.dll) или .exe для приложения .NET Framework (например, MyCustomApp.exe).

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /out - Путь к генерируемому файлу .jcard. По умолчанию в текущей папке создаётся файл с именем <алиас>.jcard. Если указана существующая папка, то в ней создаётся файл <алиас>.jcard.

  • /ico - Путь к файлу .ico с иконкой приложения. По умолчанию выполняется поиск файла с именем запускаемого приложения, например, TessaClient.ico. Если файл не найден или некорректный, то публикация выполняется без иконки.

  • /a - Алиас, используемый вместо алиаса по умолчанию. Укажите, только если требуется опубликовать с нестандартным алиасом.

  • /n - Отображаемое имя, используемое вместо имени по умолчанию. Укажите, только если требуется опубликовать с нестандартным именем.

  • /g - Группа приложения. Пустая, если параметр не указан.

  • /v - Версия приложения. Пустая, если используется действительная версия исполняемого файла. Если утилита не может определить версию файла, то используется текущая версия платформы.

  • /admin - Опубликовать только для администраторов. Например, используйте параметр для TessaAdmin.

  • /64bit - Приложение использует 64-битную архитектуру. Если ключ указан, то приложение нельзя запустить на 32-битных ОС.

  • /api2 - Приложение использует новый API для взаимодействия с менеджером приложений. Рекомендуется для desktop-приложений TESSA, начиная со сборки 3.5.0.

  • /hidden - Приложение не должно отображаться в менеджере приложений.

  • /b - Создать карточку приложения в бинарном формате .card. Если не указано, то используется текстовый формат .jcard.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команда для публикации приложения Web посредством его упаковки в карточку .jcard

  • Создаёт файл .jcard или .card для заданного desktop-приложения. Импортируйте такую карточку командой ImportCards для публикации.

    PackageWebApp executable [/out:jcardFile] [/n:name] [/d:description] [/lang:languageCode] [/os:operatingSystem] [/64bit] [/b] [/q] [/nologo]

    где executable - Путь к запускаемому файлу для приложения.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /out - Путь к генерируемому файлу .jcard. По умолчанию в текущей папке создаётся файл с именем <имя>.jcard. Если указана существующая папка, то в ней создаётся файл <имя>.jcard.

  • /n - Локализуемое имя приложения и архитектура, отображаемые пользователю, например: “Windows x64”, “macOS” и др. (без кавычек). Если не указано, то используется имя запускаемого приложения.

  • /d - Локализуемое описание приложения, отображается пользователю. Заменяет специальные символы \r \n \t

  • /lang - Код языка, например: “en”, “ru” (без кавычек). Приложение считается многоязычным, если язык не указан. Если вы используете язык, отличный от встроенных (“en” или “ru”), то также укажите идентификатор и название, разделённые запятыми, т.е.: “de,3,Deutsch” (без кавычек; такая же строка должна присутствовать в таблице Languages).

  • /os - Имя операционной системы, например: “Windows”, “Linux”, “macOS” (без кавычек).

  • /64bit - Приложение использует 64-битную архитектуру. Если ключ указан, то приложение нельзя запустить на 32-битных ОС.

  • /b - Создать карточку приложения в бинарном формате .card. Если не указано, то используется текстовый формат .jcard.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команды для преобразования схемы данных

  • Компактифицирует схему данных в единственный .tsd-файл

    SchemeCompact source [/include:path [/include:path...]] [/exclude:path [/exclude:path...]] [/out:target] [/q] [/nologo]

    где source - путь к папке со схемой или к файлу .tsd.

  • Сравнить две схемы данных в указанных файлах

    SchemeDiff /a:sourceA /b:sourceB [/a-include:path [/a-include:path...]] [/a-exclude:path [/a-exclude:path...]] [/b-include:path [/b-include:path...]] [/b-exclude:path [/b-exclude:path...]] [/q] [/nologo]

    где sourceA - путь к первой папке со схемой или к файлу .tsd, для которой выполняется сравнение;

    sourceB - путь ко второй папке со схемой или к файлу .tsd, для которой выполняется сравнение.

    Объекты схемы, присутствующие в sourceB, но отсутствующие в sourceA, отмечаются зелёным как добавленные, а присутствующие в sourceA, но отсутствующие в sourceB отмечаются красным как удалённые. Изменённые объекты отмечаются жёлтым цветом.

  • Генерирует SQL-скрипт для создания объектов SQL по схеме для новой БД

    SchemeScript source [/include:path [/include:path...]] [/exclude:path [/exclude:path...]] [/out:target] [/dbms:databaseManagementSystem] [/dbmsv:databaseManagementSystemVersion] [/notran] [/q] [/nologo]

    где source - путь к папке со схемой или к файлу .tsd.

  • Генерирует шаблон SQL-скрипта для переименования строковых колонок с учётом дублирования в ссылочных связях

    SchemeRename source /t:tableName /c:columnName [/include:path [/include:path...]] [/exclude:path [/exclude:path...]] [/out:target] [/dbms:databaseManagementSystem] [/q] [/nologo]

    где source - путь к папке со схемой или к файлу .tsd;

    tableName - имя таблицы, в колонке которой изменяется строка;

    columnName - имя строковой колонки, которая изменяется.

  • Обновляет версию схемы данных для схемы в указанной файловой папке

    SchemeUpdate source [/include:path [/include:path...]] [/exclude:path [/exclude:path...]] [/q] [/nologo]

    где source - путь к папке со схемой или к файлу .tsd.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /include - Дополнительные библиотеки, включаемые в схему. Если указана папка, то в ней выполняется рекурсивный поиск на файлы библиотек. Путь может быть относителен к основной папке со схемой.

  • /exclude - Библиотеки, исключаемые из схемы. Исключение выполняется после включения дополнительных библиотек. Если указана папка, то в ней выполняется рекурсивный поиск на файлы библиотек. Путь может быть относителен к основной папке со схемой.

  • /out - Файл, в который выводится содержимое схемы/содержимое SQL-скрипта. Если не указан, то выполняется стандартный вывод, по умолчанию это окно консоли.

  • /dbms - СУБД, для которой выполняется генерация. Варианты: SqlServer (по умолчанию), или PostgreSql.

  • /dbmsv - номер версии СУБД, для которой генерируется скрипт. Варианты для MS SQL Server: 11.0 (2012 - по умолчанию), 12.0 (2014), 13.0 (2016), 14.0 (2017), 15.0 (2019), 16.0 (2022). Варианты для PostgreSQL соответствуют названию версии, поддерживаются значения 9.6 и выше (по умолчанию 11.0).

  • /notran - Не генерировать SQL-транзакции в скрипте. По умолчанию такие транзакции позволяют создать объекты схемы (таблицы, хранимые процедуры и др.) в несколько шагов, причём после каждого шага схема переходит в консистентное состояние, для которого возможно продолжить обновление.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Пример

Example

Сгенерируем шаблон скрипта, выполняющего переименование роли во всех местах её использования. Далее в этом скрипте требуется вручную указать роли и новые имена для этих ролей, после чего скрипт выполняется на БД и переименует все заданные роли во всех связанных таблицах для переданной схемы.

tadmin SchemeRename /t:Roles /c:Name /out:RenameRole.sql

Команды изменения ключа подписи для токена безопасности и ключа шифрования

  • Генерирует ключ указанного типа и возвращает её на стандартный вывод.

    GetKey key

Ключ выводится в стандартный вывод, по умолчанию это окно консоли.

  • Обновляет ключ указанного типа в каждом файле app.json, найденном в папке с сервисами.

    SetKey key /path:folderOrFile [/value:value] [/q] [/nologo]

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • key - Тип ключа. Возможные значения:

    • Cipher - Ключ для шифрования информации в базе данных, в т.ч. закрытые ключи для шифрования локальных файлов пользователя.

    • Signature - Подпись для токенов сессий и разрешений.

  • /path - Папка, в которой выполняется поиск файлов app.json для замены ключей, или путь к файлу. Укажите “.” (без кавычек) для замены в файле app.json в текущей папке.

  • /value - Ключ, который требуется обновить. По умолчанию ключ считывается из стандартного ввода.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Пример: генерация и замена ключа подписи для конфигурационных файлов в папке C:\inetpub\wwwroot\tessa. При этом команда GetKey передаёт сгенерированный токен в стандартный вывод, который затем перенаправляется в стандартный ввод команды SetKey.

tadmin GetKey Signature|tadmin SetKey Signature "/path:C:\inetpub\wwwroot\tessa"

Команда для работы с временными зонами

  • Изменение настроек временных зон

    TimeZone operation [operation] [/id:zoneID] [/offset:minutes] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

    где operation - название выполняемой операции. Операция может быть указана одна, или сразу несколько подряд.

    Доступные виды операций:

    • Update- установить смещение, указанное в параметре /offset для временной зоны с идентификатором /id.

    • GenerateFromSystem - заполнить справочник временных зон из операционной системы.

    • SetDefaultForAllRoles - установить временную зону по умолчанию для всех ролей, для которых применимо её указание.

    • UpdateInheritance - исправить наследование временных зон в подразделениях, статических ролях и сотрудниках.

    • UpdateOffsets - исправить смещения временных зон в ролях. Используйте, если для зоны в справочнике было изменено смещение.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • operation - дополнительная операция (или несколько, через пробел), если необходимо одновременно выполнить более одной операции. Описание доступных операций выше.

  • /id - Идентификатор временной зоны.

  • /offset - Смещение временной зоны, которое необходимо установить.

  • /a - Адрес сервиса TESSA.

  • /i - Имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать.

  • /u - Имя пользователя.

  • /p - Пароль.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Команда для создания и актуализации языка в библиотеках локализации

Копирует строки локализации из одного языка в другой. Формат команды:
CopyCulture sourcePath -from:fromLanguageCode -to:toLanguageCode [-o:targetPath] [-detached] [-empty] [-q] [-nologo]

Рассмотрим параметры команды:

  • sourcePath - путь к данным для обработки. Может содержать путь к:

    • конкретному файлу библиотеки локализации .jlocalization, тогда будет обработан только этот файл;
    • директории, содержащей файлы библиотек локализации, тогда будут обработаны все файлы с расширением .jlocalization, содержащиеся в указанной директории.
  • -from:fromLanguageCode - указывает код исходного языка в формате ISO 639-1 (en, ru и др.). Строки этого языка будут скопированы в целевой язык.

  • -to:toLanguageCode - указывает код целевого языка в формате ISO 639-1 (en, ru и др.).

    Tip

    Рекомендуется задавать коды разных языков в параметрах -from и -to. Хотя задание одного и того же кода не является ошибкой, однако не имеет никакого смысла.

  • -o:targetPath - опциональный, указывает путь к:

    • директории, в которой должны быть сохранены модифицированные библиотеки локализации;
    • целевому файлу библиотеки локализации, в который должна быть записана модифицированная библиотека.
      Если параметр не указан, то будут модифицированы исходные файлы библиотек локализации.

    Important

    Нельзя указывать в качестве исходных данных директорию, а в качестве целевых файл, поскольку это приведёт к многократной перезаписи целевого файла, что, очевидно, не является целью данной команды.

  • -detached - опциональный, указывает, что целевой язык должен храниться в библиотеке локализации как отсоединённый, т.е. в виде отдельного файла .jculture.
    Если флаг не указан, то используются настройки, заданные в библиотеке локализации. Язык будет добавлен как входящий (не отсоединённый) в библиотеку, если в ней не указано иное.

  • -empty - опциональный, указывает, что в целевом языке нужно модифицировать только отсутствующие или пустые строки, при этом строки целевого языка, уже содержащие перевод, не модифицируются.
    Если флаг не указан, то значения всех строк в целевом языке будут перезаписаны соответствующими значениями из исходного языка.

  • -q - опциональный, указывает, что в консоль выводятся только сообщения об ошибках. Если не указан, на консоль выводятся все сообщения.

  • -nologo - опциональный, указывает, что не нужно выводить сообщение об авторском праве и номере версии.

Команда для экспорта различий между библиотеками локализации в файл Excel

Сравнивает строки локализации между библиотеками локализаций для заданного языка и экспортирует различия для дальнейшего перевода на целевой язык в файл Excel. Используйте команду ImportDiffCulture для импорта данного файла в целевую библиотеку локализации после перевода.
Формат команды:
ExportDiffCulture sources -base:baseLanguageCode -target:targetLanguageCode -o:outputPath [-q] [-nologo]

Рассмотрим параметры команды:

  • sources - указывает набор путей к:

    • директориям с библиотеками локализации (файлами .jlocalization);
    • файлам библиотек локализаций .jlocalization.
      Первый заданный путь считается содержащим изменённые данные и сравнивается с исходными данными, расположенными по следующим за ним путям;

    Tip

    Для получения .xlsx файла, содержащего полный набор строк локализации целевого языка, необходимо указать только один путь (директорию с библиотеками локализации или имя файла конкретной библиотеки).

    Important

    При указании директорий необходимо помнить, что они не должны быть вложены друг в друга, поскольку команда выбирает все файлы библиотек локализации из каждой директории и всех вложенных в неё директорий рекурсивно на всю глубину.
    Таким образом, если указанные в команде директории являются вложенными, при загрузке будут обнаружены дубликаты библиотек и выполнение команды будет остановлено с ошибкой.

  • -base:baseLanguageCode - указывает код основного языка в формате ISO 639-1 (en, ru и др.), строки которого будут сравниваться друг с другом на наличие изменений.

  • -target:targetLanguageCode - указывает код целевого языка в формате ISO 639-1 (en, ru и др.). Данный язык является требуемым языком перевода. Результирующий файл будет содержать не пустые строки для этого языка лишь в тех случаях, если перевод для них уже содержится в исходной библиотеке.

  • -o:outputPath - указывает путь к директории, в которой необходимо разместить результирующие .xlsx файлы различий.

  • -q - опциональный, указывает, что в консоль выводятся только сообщения об ошибках. Если не указан, на консоль выводятся все сообщения.

  • -nologo - опциональный, указывает, что не нужно выводить сообщение об авторском праве и номере версии.

Команда для импорта измененных строк локализации из Excel файла

Импортирует строки локализации из Excel файла, сформированного командой ExportDiffCulture, содержащего перевод требуемых строк, в библиотеку локализации.
Формат команды:

ImportDiffCulture sourcePath -o:outputPath -target:targetLanguageCode [-q] [-nologo]

Рассмотрим параметры команды:

  • sourcePath - данные для обработки, может содержать путь к:

    • директории с файлами Excel, содержащие переводы строк локализации для различных библиотек;
    • файлу Excel с переводом строк локализации одной библиотеки.
  • -o:outputPath - указывает путь к:

    • директории с библиотеками локализации;
    • файлу конкретной библиотеки локализации .jlocalization.

    Important

    Нельзя указывать в качестве исходных данных директорию, а в качестве целевых файл, поскольку это приведёт к многократной перезаписи целевого файла, что, очевидно, не является целью данной команды.

  • -target:targetLanguageCode - указывает код языка в формате ISO 639-1 (en, ru и др.), строки которого должны быть импортированы.

  • -q - опциональный, указывает, что в консоль выводятся только сообщения об ошибках. Если не указан, на консоль выводятся все сообщения.

  • -nologo - опциональный, указывает, что не нужно выводить сообщение об авторском праве и номере версии.

Команда для проверки и сортировки файлов с библиотеками локализации

Проверяет файлы библиотек локализации на внутреннюю согласованность, удаляет лишние строки из файлов отсоединённых языков .jculture, сортирует строки по имени.
Формат команды:
ValidateLocalization sourcePath [-q] [-nologo]

Рассмотрим параметры команды:

  • sourcePath - данные для обработки, может содержать путь к:

    • конкретному файлу библиотеки локализации (.jlocalization), тогда будет обработан только этот файл;
    • директории, содержащей файлы библиотек локализации, тогда будут обработаны все файлы с расширением .jlocalization, содержащиеся в указанной директории.
  • -q - опциональный, указывает, что в консоль выводятся только сообщения об ошибках. Если не указан, на консоль выводятся все сообщения.

  • -nologo - опциональный, указывает, что не нужно выводить сообщение об авторском праве и номере версии.

Команда для подготовки базы данных к хранению истории действий

  • Создает минимальную схему в указанной базе данных или обновляет текущую так, что в ней можно хранить историю действий, а также просматривать структуру с помощью приложения SchemeEditor.

    UpdateActionHistory [fileSource] [/from:from] /to:to [/q] [/nologo]

    где /to - имя строки подключения к настраиваемой базе данных из файла app.json.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • fileSource - Путь к файлу .tsd, откуда необходимо взять минимальную конфигурацию.

  • /from - Имя строки подключения к базе данных из файла app.json, из которой необходимо взять минимальную конфигурацию. Если указана настройка fileSource, то данный параметр будет проигнорирован. Если же оба параметра заданы не будут, то будет использована база данных по умолчанию.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

После настройки, можно скопировать записи из исходной базы данных командной Script MigrateActionHistory.

Команда автоматизированного перевода системы в режим технического обслуживания

Команда выполняет автоматизированный перевод системы в режим технического обслуживания и вывод из него, а также ряд дополнительных диагностических действий.

Формат команды:

Maintenance <Command> -wa:webbiAddress [-wt:timeout] [-m:<messageAlias>=[<messageValue>] [-m:<messageAlias>=[<messageValue>] ...]] [-a:address] [-i:instanceName] [-u:userName] [-p:password] [-isolated] [-q] [-nologo]

Доступны следующие команды <Command>:

  • Switch-On - Перевод системы в режим технического обслуживания.
  • Switch-Off - Перевод системы в нормальный режим работы (вывод из режима технического обслуживания).
  • Check - Проверить, возможно ли перевести систему в режим технического обслуживания.
  • hcheck - Проверить, что поддерживающий сервер для перевода системы в режим технического обслуживания работает в нормальном режиме.
  • Status - Получить текущий режим работы системы (находится ли система в режиме технического обслуживания).

Смысл и назначение ключей:

  • -wa - Адрес поддерживающего сервера (webbi). Обязательный ключ.

  • -wt - Таймаут ожидания выполнения команд поддерживающим сервером в секундах.

  • -m - Ввод сообщений для различных режимов работы. Имеет смысл только для команды Switch-On. Формат <messageAlias>=<messageValue>. messageAlias - имя псевдонима (используется для вывода сообщения на соответствующей html странице), messageValue - текст сообщения (может быть пустым). Допускается использование константы локализации $LocalizationAlias или композитного сообщения, состоящего из плейсхолдеров констант локализации {$LocalizationAlias1}\n{$LocalizationAlias2}. Можно задавать любое количество сообщений. Если messageAlias указан более одного раза, будет использовано его последнее значение. Ключ можно не указывать, если сообщения заданы в секции Settings -> Maintenance -> Messages конфигурационного файла.

  • -isolated - Инструктирует команду работать в автономном (изолированном) режиме без доступа к основному серверу TESSA. Имеет смысл только для команды Switch-On. В случае задания изолированного режима ожидает, что все необходимые константы локализации заданы либо в файле app.json команды tadmin, либо в ином источнике, не требующем взаимодействия с API веб-сервиса TESSA.

    Note

    Смысл данного ключа в том, что доступа к серверу TESSA и его библиотекам локализации нет, но есть доступ к файловой системе и другим внешним ресурсам, например, БД и т.п.

  • -a - Адрес сервиса TESSA. Имеет смысл только для команды Switch-On, если не задан isolated.

  • -i - Имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать. Имеет смысл только для команды Switch-On, если не задан isolated.

  • -u - Имя пользователя. Имеет смысл только для команды Switch-On, если не задан isolated.

  • -p - Пароль. Имеет смысл только для команды Switch-On, если не задан isolated.

  • -q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • -nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Рассмотрим данные конфигурационного файла, используемые командой Switch-On. Данные должны быть расположены в секции Settings -> Maintenance.

Поле Описание
Localization.DefaultLanguage Содержит буквенный языковой код (ISO 639-1) для языка, используемого по умолчанию при локализации сообщений. Может отсутствовать, тогда будет использоваться значение en
Localization.Prefix Префикс для поиска строк локализации в библиотеке локализации. Будет присоединён к именам констант локализации, используемых в сообщениях (см. поле Messages). Может отсутствовать, тогда нужно указывать полные имена строк локализации
Messages JSON объект, поля которого являются именами используемых сообщений в режиме технического обслуживания, а их значения - содержимым этих сообщений. В сообщениях разрешается использовать константы локализации (в форме $LocalizationAlias, тогда это должно быть единственным значением текста сообщения) и плейсхолдеры констант локализации (в форме {$LocalizationAlias}). В форме с плейсхолдерами разрешено включать более одного плейсхолдера и специальных символов форматирования (перенос строк \n и т.п.). Допускается указывать пустое тело сообщения
Localization JSON объект, поля которого являются именами констант локализации в формате [<lang>:]<LocalizationAlias>, а их значения - текстом на соответствующем языке. Здесь lang - языковой код в формате ISO 639-1 (например, en для английского, ru для русского и т.п.), LocalizationAlias - имя константы локализации (используемой в сообщениях Messages). Код языка и : может быть опущен, в этом случае константа считается мультиязыковой или универсальной и будет использоваться для локализации любого языка. Таким образом, можно задать одну универсальную константу и, в случае необходимости, задать уточняющие константы для других языков

Рекомендуется, чтобы файл конфигурации был самодостаточным, то есть все константы локализации, используемые для сообщений (Messages) были определены в блоке локализации (Localization).

Пример файла конфигурации.

{ "Settings": { "Maintenance": { "Localization.DefaultLanguage": "en", "Localization.Prefix": "Common_Maintenance_", "Messages": { "Title": "$TitleAlias", "MaintenanceMessage": "{$HeaderAlias}\n{$Maintenance}", "NormalMessage": "{$Normal}" }, "Localization": { "TitleAlias": "TESSA - The fastest document management system", "ru:TitleAlias": "ТЕССА - Самая быстрая система электронного документооборота", "Header": "Attention!", "ru:Header": "Внимание!", "Maintenance": "Server is under planned maintenance.", "ru:Maintenance": "Сервер находится на плановом техническом обслуживании.", "Normal": "Server is properly working.", "ru:Normal": "Сервер находится в режиме штатной работы." } } } }

Tip

В блоке локализации может быть перечислено больше констант локализации, чем используется в сообщениях, что позволит использовать их при композиции страниц сервером webbi.

Tip

Перечень зарезервированных сообщений смотрите в документации по webbi.

Команда распознавания текста в файле

Команда распознавания текста в файле представлена в двух форматах:

  • в виде прямого взаимодействия с веб-сервисом Jinni (синхронное),
  • в виде взаимодействия с веб-сервисом документов Jinni при посредничестве сервиса Chronos (асинхронное).

Формат синхронной команды:

OcrSync source [-target:path] [-lang:language [-lang:language...]] [-mode:segmentationMode] [-cf:confidence] [-pp] [-dr] [-dt] [-db] [-ow] [-q] [-nologo]

где source - путь к файлу, в котором необходимо выполнить распознавание текста.

Данная команда позволяет выполнить распознавание файла и получить результат без взаимодействия с объектной моделью карточки. Т.е. для распознавания требуется только наличие файла в файловой системе и открытый доступ к этому файлу. При этом, в системе не будут создаваться или изменяться какие-либо карточки.

Формат асинхронной команды:

OcrAsync fileIdentifier [-lang:language [-lang:language...]] [-mode:segmentationMode] [-cf:confidence] [-pp] [-dr] [-dt] [-db] [-ow] [-a:address] [-i:instanceName] [-u:userName] [-p:password] [-q] [-nologo]

где fileIdentifier - идентификатор файла, прикреплённого к карточке, в котором необходимо выполнить распознавание текста.

Данная команда требует наличия объектной модели карточки с прикреплённым к ней файлом, который необходимо распознать. Результат распознавания будет находиться в карточке операции OCR, связанной с файлом. Если карточка операции OCR отсутствует, то она будет создана.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • -target - путь к папке с результирующими данными (json-файл с метаданными; pdf-файл с контентом и текстовым слоем).

  • -lang - набор языков для распознавания текста в формате ISO 639-2, разделённых пробелами, запятыми или точками с запятой. Чтобы использовать русский и английский языки, необходимы значения “rus” и “eng”. При этом первый язык будет приоритетным, т.е. инструмент распознавания будет принимать решение о выборе языка для распознанного элемента в зависимости от порядка языков. На данный момент доступны следующие значения:

    • rus - русский,
    • eng - английский.
  • -mode - режим сегментации страницы изображения. На данный момент доступны следующие значения (без учёта регистра):

    • OsdOnly - обнаружение ориентации и языкового сценария без сегментации страницы изображения и оптического распознавания;
    • AutoOsd - автоматическая сегментация страницы изображения с определением ориентации и языкового сценария (по умолчанию);
    • AutoOnly - автоматическая сегментация страницы изображения без определения ориентации, языкового сценария и оптического распознавания;
    • Auto - автоматическая сегментация страницы изображения без определения ориентации и языкового сценария;
    • SingleColumn - сегментация страницы изображения в виде единого столбца с текстом переменного размера без обнаружения ориентации и языкового сценария;
    • SingleBlockVertText - сегментация страницы изображения в виде единого однородного блока с вертикально выровненным текстом без обнаружения ориентации и языкового сценария;
    • SingleBlock - сегментация страницы изображения в виде единого однородного блока текста без обнаружения ориентации и языкового сценария;
    • SingleLine - сегментация страницы изображения в виде единой строки с текстом без обнаружения ориентации и языкового сценария;
    • SingleWord - сегментация страницы изображения в виде одного слова без обнаружения ориентации и языкового сценария;
    • CircleWord - сегментация страницы изображения как кругового слова или слова в круге без обнаружения ориентации и языкового сценария;
    • SingleChar - сегментация страницы изображения в виде одного символа без обнаружения ориентации и языкового сценария;
    • SparseText - сегментация страницы изображения в виде набора слов в произвольном порядке без обнаружения ориентации и языкового сценария;
    • SparseTextOs - сегментация страницы в виде разреженного текста с обнаружением ориентации и языкового сценария;
    • RawLine - сегментация страницы изображения в виде единой текстовой строки без обнаружения ориентации и языкового сценария.

    Note

    Подробнее о режимах сегментации страницы изображения в представлении Администратор → Справочники → Разделы справки → Режим сегментации страницы изображения.

  • -сf - пороговый коэффициент уверенности, ниже которого распознанный текст считается недостоверным. Значением должно быть натуральное число от 1 до 100.

  • -pp - выполнять предобработку страницы изображения перед распознаванием.

  • -dr - определять наклон и поворот страницы изображения перед распознаванием.

  • -dt - определять таблицы на странице изображения при распознавании.

  • -db - определять штрих-коды на странице изображения при распознавании.

  • -ow - создать новый файл из изображений страниц. Если флаг установлен, то каждая страница в многостраничном файле будет преобразована в изображение, из которого будет создана страница с текстовым слоем выходного файла. В таком случае, если в исходном документе были какие-либо метаданные (например, аннотации, текстовый слой, иные объекты), то они будут стёрты.

  • -a - адрес сервиса TESSA.

  • -i - имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать.

  • -u - имя пользователя.

  • -p - пароль пользователя.

  • -q - выводить на консоль только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • -nologo - не отображать сообщения по авторским правам и номеру версии.

Команды пересчета групп ссылок

Более подробно о группах ссылок см. в разделе документации Группы ссылок.

Пересчет всех имеющихся типов групп ссылок, а также всех принадлежащих этим типам групп ссылок:

RecalcAllRefGroups [-a:address] [-u:userName] [-p:password] [-q] [-nologo]

Пересчет определенных групп ссылок:

RecalcRefGroups id [-a:address] [-u:userName] [-p:password] [-q] [-nologo]

где id - идентификатор или список идентификаторов групп ссылок.

Important

При использовании команды RecalcRefGroups в случае, когда рассчитываемые группы ссылок имеют зависимости от других групп ссылок, для корректного результата требуется, чтобы значения зависимых групп уже были рассчитаны.

Пересчет определенных типов групп ссылок, а также всех принадлежащих этим типам групп ссылок:

RecalcRefGroupTypes id [-a:address] [-u:userName] [-p:password] [-q] [-nologo]

где id - идентификатор или список идентификаторов типов групп ссылок.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • -a - адрес сервиса TESSA.

  • -u - имя пользователя.

  • -p - пароль пользователя.

  • -q - выводить на консоль только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • -nologo - не отображать сообщения по авторским правам и номеру версии.

Команды для прочих административных функций

  • Пересчёт бизнес-календаря.

    RebuildCalendar [/id:ID] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

    где id - числовой идентификатор календаря. Если он не указан, то будут пересчитанны все календари, имеющиеся в системе.

  • Изменить файловые местоположения.

    FileSource id [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/f:fileLocation] [/db:databaseLocation] [/n:name] [/ext:fileExtensions] [/c] [/default] [/q] [/nologo]

    где id - числовой идентификатор местоположения.

  • Увеличить версию конфигурации на сервере. Это приводит к сбросу клиентских кэшей конфигурации.

    IncrementVersion [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

  • Вывести имя сборки для текущей версии утилиты на стандартный вывод.

    BuildVersion [/full]

  • Проверка доступности веб-сервиса (возвращает сообщение об ошибке и код errorlevel, если веб-сервис недоступен)

    CheckService [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

  • Проверка функционирования веб-сервиса. Возвращает строку, полученную при выполнении запроса к адресу веб-сервиса /check или /hcheck.

    Check [address] [/h] [/timeout:seconds] [/i:instanceName] [/q] [/nologo]

    • address - базовый адрес веб-сервиса (если не указан - используется настройка BaseAddress из app.json).
    • /h - Определяет, что выполняется запрос по адресу /hcheck для быстрой проверки доступности сервиса. Если параметр не указан, то выполняет запрос по адресу /check для полной проверки (может быть отключён для production сервера).
    • /timeout - Таймаут соединения в секундах. Укажите отрицательное число, чтобы использовать таймаут из строки подключения в app.json, по умолчанию -1. Укажите 0, чтобы не ограничивать таймаут.
  • Создать одну или несколько карточек по шаблону из файла .jcard или .card.

    CreateFromTemplate source [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/n:count] [/r] [/q] [/nologo]

    где source - путь к файлу или к папке с файлами (для каждого из которых выполняется создание по шаблону). Может выполняться от имени любой учетной записи, если у нее есть права на создание соответствущих объектов системы.

  • Удалить карточки (без перемещения в корзину).

    DeleteCards [identifier [identifier...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/s:separatorChar] [/c] [/b] [/q] [/nologo]

    где identifier - идентификаторы карточек, разделённые пробелами, запятыми или точками с запятой. Если не указано, то идентификаторы читаются из стандартного ввода консоли, где идентификаторы разделяются переводом строки. Имя карточки опционально указывается после разделителя колонок (точка с запятой по умолчанию). Чтобы выбрать карточки, полученные из SQL-скрипта, вы можете перенаправить вывод команды tadmin Select.

  • Сбросить кэши со стороны веб-сервиса.

    InvalidateCache [cacheName [cacheName...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

    где cacheName - имена кэшей для сброса. Если не указаны, то сбрасываются все доступные кэши.

    Имена кэшей, предусмотренных в платформе и в типовом решении:

    1. ActionHistorySettings - кэш настроек истории действий.

    2. CardMetadata - кэш метаинформации карточек Tessa.Cards.Metadata.CardMetadataCache.

    3. Cards - кэш карточек Tessa.Cards.Caching.CardGlobalCache.

    4. KrProcess - кэш для данных из карточек шаблонов этапов Tessa.Extensions.Default.Server.Workflow.KrCompilers.IKrProcessCache.

    5. KrTypes - кэш настроек типов карточек и документов в типовом решении Tessa.Extensions.Default.Shared.Workflow.KrProcess.IKrTypesCache.

    6. KrVirtualFiles - кэш настроек виртуальных файлов Tessa.Extensions.Default.Server.Files.VirtualFiles.Compilation.IKrVirtualFileCache.

    7. Localization - кэш локализации Tessa.Localization.LocalizationCache.

    8. Placeholders - кэш, содержащий результаты компиляции текстов с плейсхолдерами и скриптами в памяти Tessa.Platform.Placeholders.Compilation.IPlaceholderCompilationInMemoryCache.

    9. RefGroups - кэш групп ссылок.

    10. RefGroupTypes - кэш типов групп ссылок.

    11. Scheme - кэш схемы данных Tessa.Scheme.SchemeDatabaseCache.

    12. Settings - кэш пользовательских настроек Tessa.Platform.Settings.ISettingsProvider.

    13. ServerSecurityProvider - кэш настроек безопасности для сервера Tessa.Platform.Runtime.IServerSecurityProvider.

    14. ViewAccess - кэш прав доступа к представлениям Tessa.Views.ViewAccessCache.

    15. Views - кэш метаинформации представлений Tessa.Views.ViewsCache.

    16. Workplaces - кэш метаинформации рабочих мест Tessa.Views.Workplaces.WorkplacesCache.

    17. Notifications - кэш почтовых уведомлений.

  • Управление ролями в части замещений и пересчёта ролей.

    ManageRoles [command [command]] [/id:identifiers] [/bulk:bulkSize] [/changed] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

    где command - команды, выполняемые для ролей. Обязательно должна быть указана хотя бы одна команда.

    Доступны следующие команды:

    1. SyncAllDeputies - пересчёт замещений для всех ролей, кроме динамических ролей и метаролей.

    2. RecalcAllDynamicRoles - пересчёт всех динамических ролей.

    3. RecalcAllRoleGenerators - пересчёт метаролей для всех генераторов метаролей.

    4. RecalcAllSmartRoleGenerators - пересчёт умных ролей для всех генераторов умных ролей.

    5. RecalcDynamicRoles - пересчёт указанных динамических ролей. Идентификаторы ролей должны быть указаны в параметре /id или в стандартном вводе.

    6. RecalcRoleGenerators - пересчёт метаролей для указанных генераторов метаролей. Идентификаторы генераторов метаролей должны быть указаны в параметре /id или в стандартном вводе.

    7. RecalcSmartRoleGenerators - пересчёт умных ролей для указанных генераторов умных ролей. Идентификаторы генераторов умных ролей должны быть указаны в параметре /id или в стандартном вводе.

  • Вывод содержимого json файла со всеми связанными файлами.

    PrintJson filePath [/m:mode] [/i] [/q] [/nologo]

    • filePath - полный или относительный путь к json файлу.

    • /m:mode - режим объединения ключей в файлах. Возможные значения:

      • Config - режим работы, при котором учитывается возможность переопределения ключей, в частности для конфигурационных файлов сервисов. Используется по умолчанию.

      • Theme - режим работы, при котором повторяющиеся ключи всегда перезаписываются, в частности для конфигурационных файлов тем.

    • /i - признак того, что в выводимом тексте должны быть отступы (табуляции) и переводы строк.

  • Выполнить исправление типов условий.

    RepairConditionTypes [identifiers [identifiers...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/all] [/q] [/nologo]

    где identifiers - идентификаторы типов условий, разделённые пробелами, запятыми или точками с запятой. Если не указано, то идентификаторы читаются из стандартного ввода консоли, где идентификаторы разделяются переводом строки. Чтобы выбрать идентификаторы типов условий, полученные из SQL-скрипта, вы можете перенаправить вывод команды tadmin Select.

    Параметр all указывает на то, что необходимо исправить все типы условий. Параметр all не может быть использован совместно с идентификаторами типов условий, указанными через identifiers.

  • Выполнить скрипты .NET с указанными именами. Выполнение останавливается на первом скрипте, который вернул отрицательный код ошибки. Выводит список всех скриптов, если ни один не указан.

    Script [scriptName [scriptName...]] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/cs:configurationString] [/db:databaseName] [/pp:FirstParam=1] [/pp:SecondParam=2] [/pp:NullParam] [/pp:EmptyParam=] ... [/help] [/q] [/nologo]

    где scriptName - имена скриптов для выполнения, найденные в сборках расширений в классах с атрибутом [ConsoleScript]. Скрипты выполняются в указанном порядке. Если один из скриптов отсутствует, то команда завершается ошибкой до того, как один из скриптов начинает своё выполнение. Если не указаны скрипты, то список всех скриптов выводится на консоль.

    /pp - Один или несколько параметров вида “Параметр=Значение” (без кавычек), которые передаются в выполняемый скрипт. Если указан только “Параметр”, то в скрипт он передаётся со значением null.

    /help - Выводит справку по указанной команде. Также можно вызвать -help или --help.

    В типовом решении доступны следующие скрипты:

    1. CheckFullTextSearchSupport - проверяет, включён ли компонент полнотекстового поиска для базы данных. Возвращает код ошибки 0, если компонент включён, или ненулевой код, если он отключён или возникла другая ошибка.

      1. Например: tadmin Script CheckFullTextSearchSupport.
    2. ConvertBson - конвертирует бинарные колонки с bson-сериализацией в текстовые колонки с json-сериализацией. К моменту выполнения схема данных должна быть обновлена до текущей для tadmin версии. Используйте команду tadmin SchemeUpdateSql для обновления схемы.

      1. Например: tadmin Script ConvertBson -pp:from=Operations.Request,Response -pp:to=OperationsJson.Request,Response [-pp:key=RowID,ID] [-pp:nowarn].

      2. Параметр from указывает таблицу и одну или несколько бинарных колонок с bson-данными (в схеме тип Binary). Таблица должна присутствовать в схеме данных.

      3. Параметр to указывает таблицу и одну или несколько текстовых json-колонок (в схеме тип String, AnsiString, Json или BinaryJson) в том же порядке, как в параметре from. Таблица может отсутствовать в схеме данных, например, если это таблица, добавленная в миграции.

      4. Параметр key необязателен, если он указан - используются указанные колонки в качестве первичного ключа для поиска строки в обеих таблицах. Если параметр не указан, то используются колонки из первичного ключа в таблице from.

      5. Параметр nowarn блокирует вывод в консоль предупреждений о том, что в целевой таблице не найдена строка из исходной таблицы.

    3. ConvertSearchQueries - конвертирует метаинформацию по поисковым запросам из формата exchange в формат типизированного json.

      1. Например: tadmin Script ConvertSearchQueries -pp:from=_SearchQueries -pp:to=_SearchQueriesTo [-pp:nowarn].

      2. Параметр from указывает таблицу, которая по структуре аналогична SearchQueries и содержит колонку с метаинформацией “MetadataLegacy” в формате exchange.

      3. Параметр to указывает таблицу, которая по структуре аналогична SearchQueries и содержит колонку с метаинформацией “Metadata” в формате типизированного json, которую надо заполнить.

      4. Параметр nowarn блокирует вывод в консоль предупреждений о том, что в целевой таблице не найдена строка из исходной таблицы.

    4. ConvertTypes - конвертирует метаинформацию по типам (карточек, файлов, заданий) из формата xml в формат типизированного json.

      1. Например: tadmin Script ConvertTypes -pp:from=_Types -pp:to=_TypesTo [-pp:nowarn].

      2. Параметр from указывает таблицу, которая по структуре аналогична Types и содержит колонку “Definition” с метаинформацией в формате xml.

      3. Параметр to указывает таблицу, которая по структуре аналогична Types и содержит колонку “Metadata” с метаинформацией в формате типизированного json, которую надо заполнить.

      4. Параметр nowarn блокирует вывод в консоль предупреждений о том, что в целевой таблице не найдена строка из исходной таблицы.

    5. UpgradeTypesSql - конвертирует метаинформацию по типам (карточек, файлов, заданий и диалогов) в базе данных в актуальную версию формата, а также восстанавливает связи колонок их виртуальных схем по идентификаторам.

      1. Например: tadmin Script UpgradeTypesSql -pp:scheme=%PathToScheme%.

      2. Параметр scheme - Путь к папке со схемой или к файлу .tsd. Файлы схемы необходимы для восстановления связей между колонками виртуальной схемы по идентификаторам.

    6. ConvertWorkplaces - конвертирует метаинформацию по рабочим местам из формата exchange в формат типизированного json.

      1. Например: tadmin Script ConvertWorkplaces -pp:from=_Workplaces -pp:to=_WorkplacesTo [-pp:nowarn].

      2. Параметр from указывает таблицу, которая по структуре аналогична Workplaces и содержит колонку с метаинформацией “MetadataLegacy” в формате exchange.

      3. Параметр to указывает таблицу, которая по структуре аналогична Workplaces и содержит колонку с метаинформацией “Metadata” в формате типизированного json, которую надо заполнить.

      4. Параметр nowarn блокирует вывод в консоль предупреждений о том, что в целевой таблице не найдена строка из исходной таблицы.

    7. ConvertWorkplaceSettings - конвертирует настройки рабочих мест из формата exchange в формат типизированного json.

      1. Например: tadmin Script ConvertWorkplaceSettings -pp:from=_PersonalRoleSatellite -pp:to=_PersonalRoleSatelliteTo [-pp:nowarn].

      2. Параметр from указывает таблицу, которая по структуре аналогична PersonalRoleSatellite и содержит настройками рабочих мест “WorkplaceExtensionsLegacy” в формате exchange.

      3. Параметр to указывает таблицу, которая по структуре аналогична PersonalRoleSatellite и содержит настройками рабочих мест “WorkplaceExtensions” в формате типизированного json, которую надо заполнить.

      4. Параметр nowarn блокирует вывод в консоль предупреждений о том, что в целевой таблице не найдена строка из исходной таблицы.

    8. FillPlainText - заполняет колонку с простым текстом из html-текста сообщения в форумах. Позволяет организовать таким образом полнотекстовый поиск по сообщениям.

      1. Например: tadmin Script FillPlainText -pp:from=FmMessages -pp:to=FmMessages [-pp:nowarn].

      2. Параметр from указывает таблицу, которая по структуре аналогична FmMessages и содержит колонку с текстом сообщения в формате html.

      3. Параметр to указывает таблицу, которая по структуре аналогична FmMessages и содержит колонку с простым текстом, которую надо заполнить. Колонка далее может использоваться для полнотекстового поиска по сообщениям.

      4. Параметр nowarn блокирует вывод в консоль предупреждений о том, что в целевой таблице не найдена строка из исходной таблицы.

    9. TypeFontsFix - исправляет настройки со шрифтами в типах (карточек, файлов, заданий, диалогов).

      1. Например tadmin Script TypeFontsFix -pp:source='C:\\Repository\\Configuration\\Types'.

      2. Параметр source указывает файл (в т.ч. с масками) или папку, в которой хранятся файлы типов с расширением *.jtype (включая подпапки).

    10. UpgradeWorkplacesSql - поднимает до текущей версию формата метаданных рабочего места в таблице Workplaces, где по умолчанию содержится информация о загруженных в систему рабочих местах. Не требует параметров для запуска.

      1. Например: tadmin Script UpgradeWorkplacesSql.
    11. MigrateActionHistory - копирует записи истории действий между указанными базами данных.

      1. Например: tadmin Script MigrateActionHistory -cs:default -pp:target=migration -pp:from=2022-12-13 -pp:to=2022-12-20.

      2. Параметр target указывает имя строки подключения к базе данных из файла app.json, в которую надо скопировать записи. Если не указан, то используется строка с именем "migration". Исходная база данных задаётся стандартными параметрами -cs (по умолчанию строка с именем "default") и -db.

      3. Параметры from и to задают диапазон дат для копирования записей. Если часть диапазона не указана, то копирование выполняется с начала и/или до конца таблицы.

    12. UpgradeDatabase - применяет необходимые миграции схемы в зависимости от версии СУБД. Так, при обновлении на PostgreSQL 11+ будут добавлены Include колонки в индексы.

      1. Например: tadmin Script UpgradeDatabase -cs:default.
    13. FixViewFolders - изменяет структуру хранения представлений в папке конфигурации на подпапки.

      1. Например: tadmin Script FixViewFolders -pp:path=C:\Configuration.

      2. Параметр path указывает путь к папке с конфигурацией, в которой содержатся представления или подпапки с представлениями.

    14. UpgradeViewsSql - поднимает до текущей версию формата метаданных представлений и исправляет типы данных в таблице Views, где по умолчанию содержится информация о загруженных в систему представлениях. Не требует параметров для запуска.

      1. Например: tadmin Script UpgradeViewsSql.

  • Выполнить компиляцию объектов системы.

    Compile [[category] [category...]] [[/id:identifier] [/id:identifier...]] [/showCategories] [/a:address] [/i:instanceName] [/u:userName] [/p:password] [/q] [/nologo]

    • category - категории компилируемых объектов системы, разделённые пробелами, запятыми или точками с запятой. Если не указаны, то выполняется компиляция всех известных категорий объектов. Является обязательным для заполнения, при указании идентификаторов компилируемых объектов (/id).

    • /id - идентификаторы (GUID) компилируемых объектов системы.

    • /showCategories - вывести категории компилируемых объектов системы. При задании данного параметра компиляция не выполняется.

    Типовые категории объектов, для которых возможна компиляция с помощью команды:

    1. Calendars - методы расчёта календарей.
    2. Conditions - типы условий.
    3. FileTemplates - скрипты шаблонов файлов.
    4. KrCommonMethod - методы расширений подсистемы маршрутов.
    5. KrSecondaryProcess - вторичные процессы подсистемы маршрутов и этапов в них.
    6. KrStageGroup - группы этапов процессов подсистемы маршрутов.
    7. KrStageTemplate - шаблоны этапов процессов подсистемы маршрутов и этапов в них.
    8. KrVirtualFile - виртуальные файлы.
    9. Notifications - скрипты уведомлений.
    10. PlaceholderExtensions - расширения плейсхолдеров.
    11. WorkflowEngineProcesses - бизнес-процессы Workflow Engine.
    12. WorkflowEngineTiles - тайлы бизнес-процессов Workflow Engine.
    13. RefGroups - C#-скрипты групп ссылок.
    14. RefGroupTypes - C#-скрипты типов групп ссылок.

    Note

    Названия типовых категорий объектов содержатся в классах: Tessa.Compilation.PlatformCompilationCacheNames и Tessa.Extensions.Default.Shared.DefaultCompilationCacheNames.

  • Вывести идентификаторы заблокированных объектов из Redis для указанных групп.

    PrintLocks lockGroup [lockGroup...] [/r:redisConnectionString] [/sc:serverCode] [/q] [/nologo]

    • lockGroup - группы блокировок (список системных групп см. в разделе Использование Redis). Параметр должен иметь хотя бы одно значение. Если указать более одной группы, то перед каждым идентификатором выводится имя группы.

    • /r - строка подключения к Redis. Если параметр не указан, используется настройка "Redis" из конфигурационного файла app.json.

    • /sc - код сервера приложений. Если параметр не указан, используется настройка "ServerCode" из конфигурационного файла app.json. Для корректной работы код сервера должен быть указан такой же, как и в одноимённой настройке в конфигурационных файлах сервисов web, chronos и др.

  • Вывести идентификаторы заблокированных объектов из Redis для указанных групп из внешнего контура.

    PrintLocksClient lockGroup [lockGroup...] /k:keyPath /kp:keyPassword [/wa:webbiAddress] [/wm:webbiManagementRoute] [/wt:webbiTimeoutSeconds] [/q] [/nologo]

    • lockGroup - группы блокировок (список системных групп см. в разделе Использование Redis). Параметр должен иметь хотя бы одно значение. Если указать более одной группы, то перед каждым идентификатором выводится имя группы.

    • /k - путь до ключа для подписи команды.

    • /kp - пароль для ключа, используемого для подписи команды.

    • /wa - задаёт адрес сервера webbi, если не задан, используется значение из файла app.json.

    • /wm - маршрут, по которому webbi принимает внешние команды, если не задан, используется значение из файла app.json.

    • /wt - задаёт таймаут ожидания ответа при выполнении команды, если не задан, используется значение из файла app.json.

    В результате будет выведен список идентификаторов заблокированных объектов. При этом, если в параметре lockGroup указано несколько значений, в начале каждой строки дополнительно будет указано наименование группы блокировок. Например:

    tadmin PrintLocksClient cards forums /k:testPath /kp:testPassword /wa:https://test.tessa.ru /wm:management /q cards 42334b3e-8a83-4ddc-895a-ddaf774b0677 cards fc27034a-222b-4fb9-99ee-294cb4641c74 forums 5aa05297-7826-4c73-8069-35b95a15714f

  • Снять блокировки объектов из Redis для указанных групп.

    DeleteLocks [lockGroup [lockGroup...]] [/id:lockID [/id...]] [/r:redisConnectionString] [/sc:serverCode] [/q] [/nologo]

    • lockGroup - группы блокировок. Если параметр оставить пустым, будут удалены все блокировки в системных группах. При указании единственного значения допустимо задать параметр /id.

    • /id - список идентификаторов блокировок в группе, которые будут удалены. Не допускается указывать идентификаторы, если задано более одной группы блокировок.

    • /r - строка подключения к Redis. Если параметр не указан, используется настройка "Redis" из конфигурационного файла app.json.

    • /sc - код сервера приложений. Если параметр не указан, используется настройка "ServerCode" из конфигурационного файла app.json. Для корректной работы код сервера должен быть указан такой же, как и в одноимённой настройке в конфигурационных файлах сервисов web, chronos и др.

  • Снять блокировки объектов из Redis для указанных групп из внешнего контура.

    DeleteLocksClient [lockGroup [lockGroup...]] [/id:lockID [id...]] /k:keyPath /kp:keyPassword [/wa:webbiAddress] [/wm:webbiManagementRoute] [/wt:webbiTimeoutSeconds] [/q] [/nologo]

    Описание ключей:

    • lockGroup - список групп блокировок. Если параметр оставить пустым, будут удалены все блокировки в системных группах. При указании единственного значения допустимо задать параметр /id.

    • /id - список идентификаторов блокировок в группе, которые будут удалены. Не допускается указывать идентификаторы, если задано более одной группы блокировок.

    • /k - путь до ключа для подписи команды.

    • /kp - пароль для ключа, используемого для подписи команды.

    • /wa - задаёт адрес сервера webbi, если не задан, используется значение из файла app.json.

    • /wm - маршрут, по которому webbi принимает внешние команды, если не задан, используется значение из файла app.json.

    • /wt - задаёт таймаут ожидания ответа при выполнении команды, если не задан, используется значение из файла app.json.

    В результате блокировки будут удалены, а информация об этом будет выведена на консоль. Например:

    tadmin DeleteLocksClient cards forums /k:testPath /kp:testPassword /wa:https://test.tessa.ru /wm:management /nologo Connecting to Webbi (https://test.tessa.ru/management)... All locks in group "cards" deleted. All locks in group "forums" deleted.

Important

Для выполнения команд PrintLocksClient и DeleteLocksClient необходимо, чтобы в webbi был включен приём внешних команд, а ключ имел набор прав, содержащий manage-locks.

Описание необязательных параметров (указаны в квадратных скобках напротив команд):

  • /a - Адрес сервиса TESSA.

  • /i - Имя экземпляра сервера. Зарезервировано для будущих нужд, не рекомендуется использовать.

  • /u - Имя пользователя.

  • /p - Пароль.

  • /f - Полный путь к файловой папке.

  • /db - Имя строки подключения с базой данных для хранения файлов.

  • /n - Имя местоположения. Не указывайте для задания имени по умолчанию или для того, чтобы оставить текущее имя.

  • /ext - Расширения файлов для сохранения в местоположении. Если необходимо указать несколько значений, то указываем их через пробел, взяв строку в кавычки, например "/ext:doc docx xls xlsx".

  • /c - Для команды FileSource: Удалить местоположение или удалить другие местоположения, кроме выбранного, когда используется совместно с /f или /db.

  • /c - Для команды DeleteCards: Не отображать ошибки о том, что карточки уже удалены перед выполнением действия.

  • /b - для команды DeleteCards: Удалять карточки с возможностью восстановления администратором. Если флаг не указан, то карточки удаляются без возможности восстановления.

  • /s - Разделитель колонок при чтении информации по карточкам из CSV (т.е. из стандартного ввода).

  • /n - Для команды CreateFromTemplate: количество карточек, создаваемых по каждому из файлов с шаблонами (по умолчанию - 1).

  • /r - Для команды CreateFromTemplate: не отображать предупреждения об исправлении структуры для успешно импортированных карточек.

  • /id - Для команды ManageRoles: идентификаторы ролей или генераторов метаролей, разделённые запятыми или точками с запятой. Если не указано, то идентификаторы читаются из стандартного ввода консоли, где идентификаторы разделяются переводом строки. Чтобы выбрать идентификаторы, полученные из SQL-скрипта, вы можете перенаправить вывод команды tadmin Select.

  • /bulk - Для команды ManageRoles: количество записей замещения, загружаемых при каждой итерации синхронизации заместителей. Укажите -1, чтобы загружать все записи замещения одновременно (по умолчанию 500000).

  • /changed - Для команды ManageRoles: признак того, что синхронизация заместителей будет выполняться только для ролей, у которых есть изменения в составе или срок замещения заместителей роли настал или подошёл к концу.

  • /q - На консоль выводятся только ошибки. Если не указать, то все сообщения выводятся на консоль.

  • /default - Укажите, чтобы местоположение было отмечено как местоположение по умолчанию.

  • /full - вернуть полное имя сборки с суффиксами, такими как “preview” для предварительных сборок.

  • /nologo - Предотвращает отображение сообщения по авторским правам и номеру версии.

Примеры использования со стандартными скриптами из папки Fixes

Все перечисленные скрипты расположены в папке Fixes сборки, и могут использоваться совместно с утилитой tadmin. В примерах скриптов предполагается, что утилита запускается из папки Tools архива со сборкой.

  • Скрипт GetBuildVersion.sql: возвращает версию сборки платформы, которая в текущий момент установлена на сервере. Для сборок 2.4.х и младше возвращается значение "2.4" (без кавычек).

    Команда возвращает актуальное значение до того, как будет выполнено любое изменение конфигурации, в т.ч. посредством утилиты tadmin, т.к. это перезапишет версию сборки.

    set build= for /f "tokens=* usebackq" %%f in (`tadmin.exe Select "..\Fixes\GetBuildVersion.sql" /q`) do set build=%%f

    echo build="%build%"

  • Скрипт SetBuildVersion.sql: устанавливает номер сборки платформы, установленной на сервере. Используется при автоматическом обновлении на новую сборку в скрипте Upgrade.bat в случае отката преждевременного изменения номера сборки в базе данных при возникновении ошибки.

    Не увеличивает версию конфигурации, для этого выполните команду tadmin IncrementVersion.

    set "build=2.5" tadmin.exe Sql "Fixes\SetBuildVersion.sql" "/p:BuildVersion=%build%" /nologo

  • Скрипт SetConfigDescription.sql: устанавливает текстовое описание для конфигурации платформы, установленной на сервере. Описание может быть строкой локализации, начинающейся со знака $, или может содержать константы локализации вида text {$LocalizedString} text.

    Не увеличивает версию конфигурации, для этого выполните команду tadmin IncrementVersion. Посмотреть текущий текст можно в приложении TessaAdmin на вкладке “Информация”, нажав на ссылку “Информация по конфигурации”. Также текст доступен через SQL вида: select Description from Configuration with(nolock).

    set "description=Текстовое описание сборки" tadmin.exe Sql "..\Fixes\SetConfigDescription.sql" "/p:Text=%description%" /nologo

    Чтобы сбросить описание на “Конфигурация по умолчанию”, используйте команду:

    tadmin.exe Sql "..\Fixes\SetConfigDescription.sql" /p:Text /nologo

Универсальный импорт данных на примере контрагентов

Команды CreateFromTemplate и ImportCards удобно использовать совместно с json-форматом выгруженных карточек для простой организации импорта любых данных в систему. Json-формат выгруженных объектов и шаблонов поддерживается, начиная с релиза 3.1. Общий принцип работы такого импорта заключается в том, чтобы любыми доступными способами подготовить набор файлов .jcard в формате json, каждый из которых затем будет использован как шаблон для создания карточки в системе или даже импортирован с сохранением идентификаторов.

Давайте на примере контрагентов посмотрим, как это работает. Попробуем импортировать в систему двух контрагентов “Ромашка 1” и “Ромашка 2”.

Сначала давайте создадим контрагента, который станет нашим шаблоном. В TessaClient в правой панели выбираем “Создать карточку→Справочники→Контрагент”. Заполним в нашем шаблоне поля “Краткое имя”, “ИНН” и “КПП”. Для простоты заполним их словами, которые потом будет легко найти в выгруженной карточке.

Вы можете заполнить любые поля, таблицы и списки в карточках и даже приложить файлы.

Теперь выгрузим эту карточку. В левой панели выберите тайл “Системные→Экспорт карточки” и сохраните карточку в какую-нибудь директорию. В ней будет создан файл “ИМЯ_КОНТРАГЕНТА.jcard”. Это выгруженная в формат json карточка, которую мы будем использовать как шаблон. Откройте этот файл в любом текстовом редакторе и найдите в нем строки, которым мы вводили для полей контрагента “ИМЯ_КОНТРАГЕНТА”, “1111111111” И “2222222222”.

Теперь в отдельной папке “CompaniesData” (имя выбрано для удобства и может быть любым) создадим две копии этого файла, первый назовем “1.jcard”, второй “2.jcard” (имена файлов могут быть любые). Единственные изменения, которые нужно сделать в этих файлах - задать нужные имя контрагента, ИНН и КПП. Никаких других изменений делать не надо. Мы сделаем это ручным редактированием, но, разумеется, этот процесс может быть легко автоматизирован, чтобы, например импортировать данные из Excel (при помощи не сложного макроса) или из любой другой системы.

Вот так будет выглядеть такой файл.

И вот эти файлы в папке.

Всё что нам осталось сделать, это выполнить нужную команду tadmin, передав туда путь к папке, где мы создали нужные нам файлы .jcard.

tadmin.exe CreateFromTemplate "C:\CompaniesData" /nologo

В результате выполнения команды были добавлены заданные контрагенты.

Скажем несколько слов о разнице между командами ImportCards и CreateFromTemplate.

ImportCards - импортирует выгруженный объект с сохранением идентификаторов. То есть карточка будет иметь тот же самый идентификатор, который указан в файле .jcard, а также и все ее строки данных. Если в базе будет найден объект с таким же идентификатором, то в зависимости от переданных параметров, утилита либо попробует удалить объект и потом импортировать его из файла поверх, либо пропустит такой объект. Также ImportCards требует административных прав.

CreateFromTemplate - использует карточку в формате .jcard как шаблон для создания новой карточки. В новую карточку будут скопированы все поля данных, списки и таблицы (например, список контактных лиц для контрагентов) и даже приложенные файлы. Карточка в формате .jcard содержит и файлы, которые будут приложены к карточке. При этом сам объект будет создан новый, со своим отдельным идентификатором и все строки данных и файлы также получат новые идентификаторы. Импорт не требует административных прав, достаточно иметь права на создание объектов нужных типов.

Это чрезвычайно простой и универсальный способ организации импорта любых данных в систему, который позволяет очень быстро настроить любыми подручными средствами преобразование из входящего формата в универсальный .jcard, а затем импортировать полученные данные в систему. При этом метод не имеет никаких ограничений по сложности импортируемых объектов. Это могут быть карточки с таблицами внутри таблиц внутри таблиц, например. И этот метод не имеет никаких ограничений по набору полей - вы можете импортировать любые поля, которые есть в системе (разумеется, при наличии у вас соответствующих прав).

Back to top