Лобанов-логист
Лобанов-логист
Личный кабинетВходРегистрация
Например: Логистика

Унификация справочников. Синхронизация справочников.

Унификация справочников. Синхронизация справочников.

Унификация справочников. Синхронизация справочников.

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

Мы получили конфликтную ситуацию.

Синхронизация справочников - одна из базовых возможностей программного комплекса. Многие документы ссылаются друг на друга. Например, Накладная ссылается на описание поставщика, описание товара, описание поставщика ссылается на описание банка, а описание товара ссылается на описание единицы измерения. В таких случаях документы, на которые ссылаются, обычно называют справочниками. Любой тип документа может играть роль справочника. Например, если система позволяет установить, по какой накладной пришёл товар, хранящийся на складе, то можно говорить о справочнике накладных.
Синхронизация справочников заключается в установлении соответствия между документами (строками справочника) системы-источника и документами (строками справочника) системы-получателя.

Унификация справочников



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


 

Оффлайн

Программный комплекс может передавать данные только в режиме офф-лайн.

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

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

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


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

Мы получили конфликтную ситуацию.

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

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

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

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

Мы получаем продолжительную конфликтную ситуацию.

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

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

Мы получаем ситуацию, когда один конфликт приводит к новым конфликтам.

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

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

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

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


Синхронизация справочников



Синхронизация справочников - одна из базовых возможностей программного комплекса. Многие документы ссылаются друг на друга. Например, Накладная ссылается на описание поставщика, описание товара, описание поставщика ссылается на описание банка, а описание товара ссылается на описание единицы измерения. В таких случаях документы, на которые ссылаются, обычно называют справочниками. Любой тип документа может играть роль справочника. Например, если система позволяет установить, по какой накладной пришёл товар, хранящийся на складе, то можно говорить о справочнике накладных.

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

     
Существует теоретическая возможность синхронизировать справочники полностью. То есть, привести их к абсолютно одинаковому виду. О том, почему это невозможно в режиме оффлайн см Унификация справочников

     
Пример. Предположим, установлено соответствие меджу поставщиками в системе-источнике и в системе-получателе. Пусть, например, в системе-источнике имеется поставщик \"Сидоров ЧП\", а в системе-получателе поставщик \"ПБОЮЛ Сидоров\". Предположим, что было установлено соответствие между этими поставщиками. При передаче накладной от Сидорова из системы-источника в систему-получатель программным комплексом будет установлено, что \"Сидоров ЧП\" - это \"ПБОЮЛ Сидоров\" в системе-получателе.
При формировании накладной в системе-получателе программный комплекс подставит именно \"ПБОЮЛ Сидоров\", который есть в справочнике поставщиков в системе-получателе. Таким образом, как только оператор установил соответствие между Сидоровыми, В ЛЮБОЙ документ, ссылающийся на \"Сидоров ЧП\" в системе-источнике будет автоматически подставляться \"ПБОЮЛ Сидоров\" при передаче этого документа в систему-получатель.

     
Одним из самых сложных примеров справочников является товарный справочник супермаркета. Рассмотрим этот пример. Программный комплекс позволяет устанавливать любые соответствия между справочниками. В частности, если программный комплекс настраивается таким образом, что каждому товару в системе-источнике соответствует только один товар в системе-получателе, то при передаче накладной товар подставится автоматически, а в случае, если это невозможно, программный комплекс может быть настроен так, что каждому товару в системе-источнике могут соответствовать несколько товаров в системе-получателе. В этом случае потребуется участие оператора при приёме накладной.

     
Интерфейс для синхронизации справочников зависит от конкретного вида справочника. Часть программного комплекса представляет собой среду для работы оператора. В этой среде может запускаться как стандартный интерфейс для синхронизации справочников(документов), так и специализированный. При синхронизации больших справочников может возникнуть необходимость создать специализированный интерфейс, учитывающий особенности справочника. Специализированный интерфейс может существенно повысить качество работы операторов а также их производительность труда. Программный комплекс позволяет создавать и легко встраивать любые интерфейсы для решения проблем синхронизации справочников без изменения своего исполняемого кода. Подробнее см. Технология .NET

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

Взаимодействие с оператором



Информация, которая существует в системе-источнике может оказаться неполной с точки зрения системы-получателя. В этом случае автоматическая передача информации может стать невозможной.

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

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

Технология .NET


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

Технические подробности.


Технология .NET поддерживает наследование на уровне среды .NET Framework. Многие методы, использующиеся в программном комплексе - виртуальные. Соответствующие классы могут быть унаследованы и изменены. При этом нет необходимости переписывать весь программный комплекс заново. При наследовании в .NET имеется возможность вызвать базовый метод. Таким образом, переписываемый метод может сделать какую-то дополнительную работу либо до вызова базового метода, либо после и сам базовый метод не нужно создавать заново.

     

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

https://www.lobanov-logist.ru/library/all_articles/54997/

Возврат к списку

Рекламный блок

Это кот в мешке! Бизнесмены рассказали об ошибках и убытках на маркетплейсах LOGFORUM-2024 Asia: крупнейший форум по логистике Центральной Азии Бизнес в огне. Почему так часто горят склады Глеб Белавин: «Сейчас клиенты конкурируют за каждый квадратный метр складов»