Утилита RunCmd создана для запуска из консоли команд, реализованных по определенным правилам. Список доступных команд можно получить из параметров, передаваемых в командной строке при запуске утилиты. Утилита выполняет ряд команд, связанных с операцией импорта (экспорта) данных: import, export и CreateDefaultSchema.

С обработкой данных связана еще одна команда - dbupdate, которая аналогична по работе и назначению утилите DBUpdater.v13.2.exe. dbupdate, поставляемой DevExpress. Она предназначена для обновления БД в соответствии с версией приложения. DBUpdater.v13.2.exe и RunCmd выполняют обновление БД различным образом. DBUpdater.v13.2.exe создает экземпляр приложения, у которого обновляется БД. Экземпляр создается на основе модулей, подключенных в конфигурационном файле. RunCmd создает свое приложение.

Рассмотрим подробнее команды import, export и CreateDefaultSchema.

Команда import

Запускает процесс импорта, реализованный в классе ImportOperation. Имеет следующие параметры:

Параметры "threshold", "protocol", "externalevents" и "protocolfile" не являются обязательными. Остальные параметры должны быть обязательно указаны при запуске.

Все параметры можно указывать как в командной строке, так и в отдельном файле параметров. Рекомендуется использовать файл с параметрами.

Пример файла параметров:

 

settings:"ImportSettings\OBOROTToSubdivision_importSettings.xml"

sourcePath:"ImportSettings\" 

datasourcetype:Xafari.Data.GalaktikaErpDataSource

threshold:100

protocol:"Started;Finished;ObjectCreated;ObjectCreating"

keyssave:3

externalevents:EventHandlers.SubdivisionEventHandlers,EventHandlers

/dbupdate silent

 

Пояснения:

0 - режим работы, при котором ключи сохраняются в кэш по мере поступления запросов;

1 - режим отключен;

2 - кэш предварительно заполняется данными, сохраненными в базе;

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

Процесс импорта предполагает возникновение ряда событий, для обработки которых можно использовать обработчики событий, реализованные во внешних XAF-модулях. Для подключения внешнего модуля с обработчиками событий необходимо реализовать интерфейс Xafari.Data.IImportEventHandlers. Имеется возможность реализовать подписку на следующие события:

 

      EventHandler<ObjectCreatedEventArgs> ObjectCreated { get; }

      EventHandler<ObjectCreatingEventArgs> ObjectCreating { get; }

      EventHandler<EventArgs> Opened { get; }

      EventHandler<EventArgs> Started { get; }

      EventHandler<EventArgs> Finished { get;  }

      EventHandler<EventArgs> Closed { get; }

 

Пример подписки:

 

      public EventHandler<EventArgs> Opened

       {

          get

           {

              return (sender, args) =>

               {

                  // Your code

               };

           }

       }

 

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

Пример параметра подключения:

externalevents:EventHandlers.SubdivisionEventHandlers,EventHandlers

 

Команда export

Запускает процесс экспорта, реализованный в классе ExportOperation. Имеет следующие параметры:

Все параметры являются обязательными.

 

Команда CreateDefaultSchema

Запускает автоматическое создание файла маппинга, используя переданный в параметрах тип данных. Имеет следующие параметры:

Например, файл маппинга ExportSettings.xml создан с помощью команды CreateDefaultSchema.