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

утилита>.exe -? или утилита>.exe –h
Сегодня речь пойдет о TSExtractServices. Ее назначение – выгрузка сервисов конфигурации и загрузка обратно. При выгрузке конфигурации на выходе она создает 3 файла: Services.xml, Scripts.js, FastReport.xml.
Services.xml - по сути это xml-ники выгруженных сервисов, которые сложили в один файл.
Если xml-представление большинства сервисов не вызывает никаких проблем с пониманием, то с 2-мя типа сервисов ситуация иная. Это скрипты и отчеты. В Services.xml текст скрипта и содержимое отчета хранятся в бинарном виде. Именно поэтому в утилите реализована выгрузка в отдельные файлы всех скриптов и всех отчетов.
Scripts.js – содержит тексты всех выгруженных скриптов, т.е. в Services.xml содержится информация о сервисе скрипта, а в Scripts.js – текст самого скрипта.
FastReport.xml – ситуация аналогичная, с той лишь разницей, что отчеты складываются в файл тоже в xml-формате (у FastReport свое xml-представление отчетов, в котором сразу разобраться не так то просто, да и ни к чему наверное :) ).

Пользоваться утилитой можно 2-мя способами: 1-й – диалоговый режим, запускаем утилиту без всяких параметров, отвечаем на вопросы, получаем результат. 2-й вариант – запуск с параметрами, о которых подробнее далее.

-sd – отображать диалог с утилитой или нет. Допустимые значения true и false. Данный параметр (установленный в false) лучше всего использовать для автоматизации регулярной выгрузки или загрузки сервисов. При этом необходимо помнить, что если вы не указали какой либо параметр, то будет использовано его значение по-умолчанию (отображается в [] скобках в диалоговом режиме). Если же значения по-умолчанию у параметра нет, то утилита спросит его сама.

-c – название конфигурации (configuration).

-wa – использовать windows аутентификацию или нет для соединения с конфигурацией (варианты: true, false).

-u – имя пользователя для входа в конфигурацию.

-p – пароль.

-d – что делаем с сервисами – выгружаем из базы (unload) или загружаем в нее (load).

-st – параметр установленный в false, позволяет создавать сервисы таблиц в конфигурации без их физического создания в базе данных. Это может понадобится, например, в случае, когда сервисы таблиц находятся в стадии разработки и не могут быть физически сохранены в базе данных без ошибок. При использовании параметра –sd=false, по-умолчанию, сервисы таблиц не сохраняются.

-sr – сохранение внешних ключей. Параметр используется при загрузке сервисов. Внешние ключи по-умолчанию также не сохраняются, для их сохранения необходимо принудительно установить параметр в true. Внешние ключи бывает необходимым не сохранять в случаях, когда в таблицах нарушена ссылочная целостность данных.
В случае необходимости, вы всегда можете пересохранить свои таблицы с внешними ключами и индексами, использовав методы скрипта scr_ResaveTable.

-tc – типы сервисов (сокращение взялось от Service Type Code – код типа сервиса), в качестве кода типа сервиса могут быть указаны Table (таблица), DBDataset (набор данных) и др. Список кодов типов сервисов можно найти в файле CoreSettings.xml в разделе ServiceTypes. Пример для выгрузки всех сервисов перечислений и диаграмм процессов:

TSExtractServices –c=configuration –u= Supervisor –sd=false –tc=Enum; WorkflowDiagram
При таких параметрах получим выгруженные (значение по-умолчанию) сервисы перечислений и диаграмм процессов, соединение с конфигурацией будет осуществлено с использованием аутентификации на уровне базы данных (значение по-умолчанию).

-i – список модулей, из которых выгружаются сервисы (от слова include)
Если, к примеру, необходимо выгрузить все скрипты, которые расположены в модуле Common это можно сделать следующим образом

TSExtractServices –c=configuration –u=Supervisor –sd=false –tc=Script –i=Common

-pth – путь, где будут сохранены результирующие файлы. По-умолчанию это значение: Bin\ExtractServices\название конфигурации>.

-m – тип выгрузки/загрузки. Данный параметр может принимать значения services и database. Внутри это реализовано следующим образом: при использовании значения database у набора данных вызывается метод сохранения или загрузки значения blob-поля, в котором хранится сервис, в xml-файл. Если используется значение services, то при выгрузке сервисов, из blob-поля в таблице, будет создан объект сервиса, и только потом сервис будет сохранен в файл. Рекомендуется при выгрузке сервисов в файл использовать значение параметра services. При загрузке сервисов наоборот – database. Если при загрузке сервисов использовать параметр services, то это будет означать, что на основании загружаемых xml-ников будут создаваться объекты сервисов, причем не одновременно, а в порядке очереди, соответственно, если между сервисами есть ссылки (а вероятность этого 90%), то они могут сбросится в пустое значение и после загрузки мы получим неработающую конфигурацию.

Ну а напоследок хочется напомнить о параметрах -? и –h, которые покажут список всех остальных.

Нравится

Поделиться

7 комментариев

В каких версиях есть данная утилита? конкретно интересует версия 3.0.2.66

Василий, Extract Services выпускается начиная с версии 3.0.2

В версии 3.0.2.66 данную утилиту не обнаружил. Подойдет ли утилита из других версий?

Запросите в support, Вам вышлют для версии 3.0.2

Запросите в support, Вам вышлют для версии 3.0.2

спасибо

Спасибо. Утилита помогает когда нет возможности использовать бэкапы.
Небольшая идея по усовершенствованию.

Показать все комментарии