Автоматический экспорт данных

Материал из Mid Office Manager Help
Версия от 10:31, 3 мая 2018; Vrublevsky (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Mid Office Manager позволяет автоматически экспортировать объекты в виде XML-файлов при каждом их изменении или создании. В частности, поддерживается автоматический экспорт следующих объектов:

  • Заказы
  • Профили
  • Договоры
  • Транзакции

Объекты экспортируются в формате XML, причем при каждой операции создания или обновления объекта создается новый файл. (Подробнее о спецификации структуры XML-файла см. Ссылки по теме) Имя файла имеет следующий вид:

<тип объекта>_<ггггMMддЧЧммссСС>.xml

где <тип объекта> — тип экспортируемого объекта, например BookingFile или Organization, гггг — год, MM — месяц, дд — день, ЧЧ — часы, мм — минуты, сс — секунды.

Например имя файла экспорта профиля физического лица может выглядеть так:
com.gridnine.xtrip.common.model.profile.Person_20141225183810209.xml

Существует два механизма доставки этих файлов, которые можно использовать по отдельности или одновременно:

  • XML-файлы могут сохраняться на заданном локальном или сетевом диске;
  • XML-файлы могут пересылаться на брокер сервиса JMS. Подробнее о сервисе JMS см. Java Message Service.

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

Mid Office Manager позволяет экспортировать не всю информацию объектов, а отобрать для экспорта только нужные поля — это дает возможность не только снизить нагрузку на сеть и вычислительные ресурсы, но и значительно ускорить обмен информацией с другими системами.

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

Автоматический экспорт на локальный или сетевой диск

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

Чтобы автоматически экспортировать в виде XML-файлов определенные типы объектов:

  1. В подпапке ..\config\xtrip\server папки сервера Mid Office Manager откройте файл boot.properties в текстовом редакторе.
  2. Включите поддержку автоматического экспорта, добавив в конец файла следующую строку:
    com.gridnine.xtrip.server.entity.exporter.file.enabled = true
  3. Укажите объекты, которые необходимо автоматически экспортировать, добавив одну или больше строк такого вида:
    com.gridnine.xtrip.server.entity.exporter.file.type.<идентификатор строки> = <тип объекта>

    где

    • <идентификатор строки> — идентификатор, служащий исключительно для обеспечения уникальности данной строки, например можно использовать идентификаторы 01, 02, 03… Если не задать уникальные идентификаторы для строк экспорта, из всех одинаковых строк для одного типа объекта будет обрабатываться только последняя, а все остальные будут игнорироваться,
    • <тип объекта> — один из поддерживаемых типов экспортируемых объектов:
      • com.gridnine.xtrip.common.model.booking.BookingFile — этот тип обозначает заказ. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся заказов.
      • com.gridnine.xtrip.common.model.profile.Organization — этот тип обозначает профиль организации. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся профилей организаций.
      • com.gridnine.xtrip.common.model.profile.Person — этот тип обозначает профиль физического лица. Используйте это значение, чтобы Mid Office Manager автоматически экспортировать информацию новых или изменившихся профилей физических лиц.
      • com.gridnine.xtrip.common.model.profile.SalesPoint — этот тип обозначает профиль точки продаж. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся профилей точек продаж.
      • com.gridnine.xtrip.common.model.profile.Contract — этот тип обозначает договор. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся договоров.
      • com.gridnine.xtrip.common.model.finance.Transaction — этот тип обозначает транзакцию. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся транзакций.
  4. Если нужно изменить папку для сохранения XML-файлов, добавьте такую строку:
    com.gridnine.xtrip.server.entity.exporter.file.path = <путь к папке>

    Например, чтобы экспортируемые файлы размещались в папке D:/export добавьте строку:

    com.gridnine.xtrip.server.entity.exporter.file.path = D://export

    Вот пример настройки сохранения файлов в сетевой папке:

    com.gridnine.xtrip.server.entity.exporter.file.path = //mycomputer//export

    Если этот параметр не задать, по умолчанию объекты будут экспортироваться в папку <корневая_папка_сервера_ _Mid Office Manager>/data/export/entities

  5. Сохраните и закройте файл boot.properties.
  6. Перезапустите сервер Mid Office Manager.

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

Автоматический экспорт избранных полей объектов

По умолчанию при автоматическом экспорте выгружаются все поля. Это может быть не совсем удобно, когда нужна только часть полей. Кроме того, при большом количестве объектов выгрузка всех полей может снижать производительность работы Mid Office Manager или занимать много времени.

Mid Office Manager можно сконфигурировать так, чтобы при экспорте в заданный файл выгружались не все, а только избранные поля объектов.

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

Чтобы автоматически экспортировать только избранные поля объектов:

  1. Перейдите к подпапке ..\config\xtrip\server на сервере Mid Office Manager и откройте файл boot.properties в текстовом редакторе.
  2. Выполните одну из следующих операций:
    • Если нужно экспортировать только выбранные поля, задайте параметры в этом разделе так:
      com.gridnine.xtrip.server.entity.exporter.file.filter.file = <файл с перечнем полей>
      com.gridnine.xtrip.server.entity.exporter.file.filter.exclusive = false
      

      где <файл с перечнем полей> — путь и имя файла, в котором перечислены поля, которые нужно автоматически экспортировать, например filter.txt.

    • Если нужно экспортировать все поля кроме определенных полей, задайте параметры так:
      com.gridnine.xtrip.server.entity.exporter.file.filter.file = <файл с перечнем полей>
      com.gridnine.xtrip.server.entity.exporter.file.filter.exclusive = true
      

      где <файл с перечнем полей> — путь и имя файла, в котором перечислены поля, которые не нужно экспортировать, например filter.txt.

  3. Сохраните и закройте файл boot.properties.
  4. Перейдите к папке, указанной в параметре <файлу с перечнем полей>, указанном в предыдущем шаге, и создайте указанный в этом параметре текстовый файл, например filter.txt.
  5. Откройте файл с перечнем полей (в нашем случае это filter.txt) в текстовом редакторе и укажите в нем нужные поля. Перечисленные в этом файле поля будут включаться или исключаться из экспорта в зависимости от значения ранее настроенного параметра com.gridnine.xtrip.server.entity.exporter.file.filter.exclusive. Каждая строка в файле с перечнем полей представляет запись в формате <тип_объекта>/<имя_поля>. Например, если файл содержит такие записи:
    com.gridnine.xtrip.common.model.booking.BookingFile/number
    com.gridnine.xtrip.common.model.booking.BookingFile/createDate
    

    …и в файле boot.properties присутствует такая строка:

    com.gridnine.xtrip.server.entity.exporter.file.filter.exclusive = true 

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

    <export>
      <bookingFiles>
        <bookingFile type="com.gridnine.xtrip.common.model.booking.BookingFile"
            uid="86592eba-832f-11e3-987c-94de807f6d0a">
          <number>0006115</number>
           <createDate>2014-01-20 00:00:00.000</createDate>
        </bookingFile>
      </bookingFiles>
      <entities/>
      <dictionaries/>
    </export>
  6. Сохраните и закройте файл с перечнем полей.
  7. Перезагрузите сервер Mid Office Manager.

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

Примеры настройки экспорта в папку

Вот несколько примеров настройки автоматического экспорта объектов Mid Office Manager в виде XML-файлов в папку.

Сохранение всех заказов в папку по умолчанию

com.gridnine.xtrip.server.entity.exporter.file.enabled = true
com.gridnine.xtrip.server.entity.exporter.file.type.01 = com.gridnine.xtrip.common.model.booking.BookingFile

Сохранение всех заказов и профилей организаций и физических лиц в папку C:\export

com.gridnine.xtrip.server.entity.exporter.file.enabled = true
com.gridnine.xtrip.server.entity.exporter.file.type.01 = com.gridnine.xtrip.common.model.booking.BookingFile
com.gridnine.xtrip.server.entity.exporter.file.type.02 = com.gridnine.xtrip.common.model.profile.Organization
com.gridnine.xtrip.server.entity.exporter.file.type.03 = com.gridnine.xtrip.common.model.profile.Person
com.gridnine.xtrip.server.entity.exporter.file.path = C://export

Сохранение всех заказов , в папку C:\export, но не целиком, а только полей, перечисленных в файле C:\filter.txt

com.gridnine.xtrip.server.entity.exporter.file.enabled = true
com.gridnine.xtrip.server.entity.exporter.file.type.01 = com.gridnine.xtrip.common.model.booking.BookingFile
com.gridnine.xtrip.server.entity.exporter.file.path = C://export
com.gridnine.xtrip.server.entity.exporter.file.filter.file = C://filter.txt
com.gridnine.xtrip.server.entity.exporter.file.filter.exclusive = true

Автоматический экспорт XML-файлов через JMS

В этом разделе рассказывается, как настроить автоматический экспорт объектов в виде XML-файла через JMS.

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

Чтобы автоматически экспортировать в JMS-брокер определенные типы объектов:

  1. В подпапке ..\config\xtrip\server папки сервера Mid Office Manager откройте файл boot.properties в текстовом редакторе.
  2. Включите поддержку автоматического экспорта в JMS-брокер, добавив в конец файла следующую строку:
    com.gridnine.xtrip.server.entity.exporter.jms.enabled = true
  3. Укажите объекты, информацию которых надо автоматически экспортировать, добавив одну или больше строк такого вида:
    com.gridnine.xtrip.server.entity.exporter.jms.type.<идентификатор строки> = <тип объекта>

    где

    • <идентификатор строки> — идентификатор, служащий исключительно для обеспечения уникальности данной строки, например можно использовать идентификаторы 01, 02, 03… Если не задать уникальные идентификаторы для строк экспорта, из всех одинаковых строк для одного типа объекта будет обрабатываться только последняя, а все остальные будут игнорироваться,
    • <тип объекта> — один из поддерживаемых типов экспортируемых объектов:
      • com.gridnine.xtrip.common.model.booking.BookingFile — этот тип обозначает заказ. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся заказов.
      • com.gridnine.xtrip.common.model.profile.Organization — этот тип обозначает профиль организации. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся профилей организаций.
      • com.gridnine.xtrip.common.model.profile.Person — этот тип обозначает профиль физического лица. Используйте это значение, чтобы Mid Office Manager автоматически экспортировать информацию новых или изменившихся профилей физических лиц.
      • com.gridnine.xtrip.common.model.profile.SalesPoint — этот тип обозначает профиль точки продаж. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся профилей точек продаж.
      • com.gridnine.xtrip.common.model.profile.Contract — этот тип обозначает договор. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся договоров.
      • com.gridnine.xtrip.common.model.finance.Transaction — этот тип обозначает транзакцию. Используйте это значение, чтобы Mid Office Manager автоматически экспортировал информацию новых или изменившихся транзакций.
  4. Настройте подключение к JMS-брокеру, добавив в файл boot.properties следующие строки:
    com.gridnine.xtrip.server.jms.broker-type=EXTERNAL
    com.gridnine.xtrip.server.jms.broker-host=<адрес JMS-брокера>
    com.gridnine.xtrip.server.jms.broker-port=<порт JMS-брокера>

    где:

    • <адрес JMS-брокера> — IP-адрес или доменное имя машины, на которой развернут JMS-брокер, например если это локальная машина, адрес такой: 127.0.0.1;
    • <порт JMS-брокера> — порт, на котором развернут JMS-брокер, например 61616.
  5. Сохраните и закройте файл boot.properties.
  6. Перезапустите сервер Mid Office Manager.

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

Выборочный автоматический экспорт на JMS-брокер полей объектов

По умолчанию при автоматическом экспорте на JMS-брокер выгружаются все поля. Это может быть не совсем удобно, когда нужна только часть полей. Кроме того, при большом количестве объектов выгрузка всех полей может снижать производительность работы Mid Office Manager или занимать много времени.

Mid Office Manager можно сконфигурировать так, чтобы при экспорте на JMS-брокер выгружались не все, а только избранные поля.

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

Чтобы автоматически экспортировать только избранные поля объектов:

  1. Перейдите к подпапке ..\config\xtrip\server на сервере Mid Office Manager и откройте файл boot.properties в текстовом редакторе.
  2. Выполните одну из следующих операций:
    • Если нужно экспортировать только выбранные поля, задайте параметры в этом разделе так:
      com.gridnine.xtrip.server.entity.exporter.jms.filter.file = <файл с перечнем полей>
      com.gridnine.xtrip.server.entity.exporter.jms.filter.exclusive = false
      

      где <файл с перечнем полей> — путь и имя файла, в котором перечислены поля, которые нужно автоматически экспортировать, например filter.txt.

    • Если нужно экспортировать все поля кроме определенных полей, задайте параметры так:
      com.gridnine.xtrip.server.entity.exporter.jms.filter.file = <файл с перечнем полей>
      com.gridnine.xtrip.server.entity.exporter.jms.filter.exclusive = true
      

      где <файл с перечнем полей> — путь и имя файла, в котором перечислены поля, которые не нужно экспортировать, например filter.txt.

  3. Сохраните и закройте файл boot.properties.
  4. Перейдите к папке, указанной в параметре <файл с перечнем полей>, указанном в предыдущем шаге, и создайте указанный в этом параметре текстовый файл, например filter.txt.
  5. Откройте файл с перечнем полей (в нашем случае это filter.txt) в текстовом редакторе и укажите в нем нужные поля. Перечисленные в этом файле поля будут включаться или исключаться из экспорта в зависимости от значения ранее настроенного параметра com.gridnine.xtrip.server.entity.exporter.file.filter.exclusive. Каждая строка в файле с перечнем полей представляет запись в формате <тип_объекта>/<имя_поля>. Например, если файл содержит такие записи:
    com.gridnine.xtrip.common.model.booking.BookingFile/number
    com.gridnine.xtrip.common.model.booking.BookingFile/createDate
    

    …и в файле boot.properties присутствует такая строка:

    com.gridnine.xtrip.server.entity.exporter.jms.filter.exclusive = true 

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

    <export>
      <bookingFiles>
        <bookingFile type="com.gridnine.xtrip.common.model.booking.BookingFile"
            uid="86592eba-832f-11e3-987c-94de807f6d0a">
          <number>0006115</number>
           <createDate>2014-01-20 00:00:00.000</createDate>
        </bookingFile>
      </bookingFiles>
      <entities/>
      <dictionaries/>
    </export>
  6. Сохраните и закройте файл с перечнем полей.
  7. Перезагрузите сервер Mid Office Manager.

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

Примеры настройки экспорта на JMS-брокер

Передача всех заказов в брокер, размещенный по адресу 127.0.0.1:61616:

com.gridnine.xtrip.server.jms.broker-type=EXTERNAL
com.gridnine.xtrip.server.jms.broker-host=127.0.0.1
com.gridnine.xtrip.server.jms.broker-port=61616
com.gridnine.xtrip.server.entity.exporter.jms.enabled = true
com.gridnine.xtrip.server.entity.exporter.jms.type.01 = com.gridnine.xtrip.common.model.booking.BookingFile

Передача всех заказов и профилей организаций и физических лиц в брокер, размещенный по адресу 127.0.0.1:61616:

com.gridnine.xtrip.server.jms.broker-type=EXTERNAL
com.gridnine.xtrip.server.jms.broker-host=127.0.0.1
com.gridnine.xtrip.server.jms.broker-port=61616
com.gridnine.xtrip.server.entity.exporter.jms.enabled = true
com.gridnine.xtrip.server.entity.exporter.jms.type.01 = com.gridnine.xtrip.common.model.booking.BookingFile
com.gridnine.xtrip.server.entity.exporter.jms.type.02 = com.gridnine.xtrip.common.model.profile.Organization
com.gridnine.xtrip.server.entity.exporter.jms.type.03 = com.gridnine.xtrip.common.model.profile.Person

Сохранение всех заказов в брокер, размещенный по адресу 127.0.0.1:61616, но не целиком, а только полей, перечисленных в файле C:\filter.txt:

com.gridnine.xtrip.server.jms.broker-type=EXTERNAL
com.gridnine.xtrip.server.jms.broker-host=127.0.0.1
com.gridnine.xtrip.server.jms.broker-port=61616
com.gridnine.xtrip.server.entity.exporter.jms.enabled = true
com.gridnine.xtrip.server.entity.exporter.jms.type.01 = com.gridnine.xtrip.common.model.booking.BookingFile
com.gridnine.xtrip.server.entity.exporter.jms.filter.file = C://filter.txt
com.gridnine.xtrip.server.entity.exporter.jms.filter.exclusive = true

Ссылки по теме

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Печать/экспорт
Инструменты