Репликация данных.

Распределеннaя база данных

В Программе РАСА предусмотрена возможность организации работы обособленных подразделений в едином информационом пространстве. Эту возможность обспечивает отдельный автономный модуль Программы РАСА, который называется Репликатор.

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

Репликтаор - это программа, которая не имеет интерфейса пользователя. Она работает на сервере в "фоновом режиме". Перед началом использования Репликатора выполняются его настройка. Часть из этих настроек выполняется в программе РАСА. Другая часть - в самом Репликаторе. В кратце, настроками определется следующее:

Репликация данных

Программа РАСА формирует задания на репликацию. Репликатор периодически проверяет наличие таких заданий и, если обнаруживает необработанные задания, то формирует соответствующий этому заданию пакет обмена данными и отправляет его требуемой внешней системе. Внешняя система получает пакет и записывает содержащиеся в нем данные в базу данных обособленного опдразделения.

Объекты репликации

Под объектом репликации в Программе РАСА понимается единица информации, в отношении которой может быть сформировано задание на репликацию.
В программе РАСА предусмотрены следующие типы объектов репликации:

Любые Товары, Услуги и Субъекты могут быть переданы между базами данных.
Репликация документов поддерживается только для определённых типов:

Задания на репликацию

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

Пакет обмена данными

После получения задания на репликацию Репликтаор автоматически формирует Пакет обмена данными. Этот пакет включает в себя всю инфорамцю, которая необходима для загрузке в базу нанных на приемной стороне объекта репликации.
Например, Пользователь реплицирует Собственный прайс-лист (ПЛС). В пакет обмена данными кроме описания самого документа будут добавлены все товары, которые включены в документ, все единицы измерения и строки классификтаора ТН ВЭД которые используютсяв этих товарах. Кроме того, будут включены субъекты, которые использованы в докуементе: Исполнитель и Контрагент.

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

"Попутная репликация". В некоторых случаях при формировании задания на репликацию одного документа, Репликатор "забирает" в пакет обмена данными сопутствующие документы. На приемной стороне все документы будут загружены в базу данных. Вот ситуации, когда это происходит:

Блокировки документов

Работа Организации с распределенной базой данных накладывает определённые ограничения на возможности по изменению документов.
В целях обеспечения непротиворечивости и целостности информации распределенной базы данных в Программе РАСА реализована система блокирования объектов репликации. Главным принципом, на котором основана работа этой системы заключается в следующем: объект репликации доступен для изменений не более, чем в одной базе данных.
В базе данных, в которой объект может редактироваться, он находится "на контроле", это значит, что при выполнении любых изменений объекта репликации Программа РАСА будет автоматически формировать задание на репликацию этого объекта в те базы данных, в которые он уже был реплицирован.
Во всех остальных базах данных объект репликации заблокирован. При попытке выполнить любые действия над таким объектом Пользователь получит сообщение о невозможности его изменения в связи с блокировкой.
Если пользователю всё-таки необходимо изменить заблокированный объект, то он может попытаться его разблокировать, для этого необходимо выполнить команду "Разблокировать". Разблокировака объекта репликации выполняется по следующему алгоритму (База1 - база данных в которой объект заблокирован, База2 - база в которой объект находится "На контроле", т.е. доступен для редактирования):

Как было сказано выше, Программа РАСА в Базе2 может принять решение о неовзможности передачи управления над объектом репликации. Отказ возможен в следующих случаях:

Преобразования документов при репликации

Передача товара из головного офиса Органиазации в обособленноe подразделение офромляется в базе данных головного офиса документом Межскладская передача. Так как в базе данных обособленного подразделения отсутствуют склады головного офиса, то сохранение в ней МСП в исходном виде невозможно (в базе данных отсутствует склад - отправитель). Поэтому при репликации МСП, для которых в удаленной базе данных отсутвует склад - отправитель выполняется преобразование МСП в АОИ, который и приходуется на склад-получатель в обособленном подразделении.

Аналогично при оформлении возврата товара из обособленного подразделения в головной офис в базе данных головного офиса создается МСП, в которой склад-отправитель - это склад обособленного подразделения, а склад-получатель - склад головного офиса, который отсутвует в базе данных обособленного подразделения. В этом случае при репликации МСП, для которых в удаленной базе данных отсутвует склад-получатель выполняется преобразование МСП в АСН, которым списывается тоар со склада-отправителя в обособленном подразделении.