Привет друзья, помогите реализовать обмен между двумя нетиповыми базами..
Имеются 2 базы, (не типовые), нужен небольшой обмен 2-3 справочников и документов, реализовал с помощью . Регистрирую изменения с помощью правил обмена и выгружаю измененные объекты.
В теории всё работает (и в копии).
Т.Е. выгружаются все объекты - регистрация в плане обмена удаляется.
Но если по какой либо причине не удалось загрузить файлы в приемнике (Возникла ошибка, отключили свет\интернет и тд) - файлы не смогут загрузиться повторно, и в плане обмена регистрация уже будет снята...
Можете подсказать как лучше настроить ? или направить в нужном направлении ...
Обмен, можно сказать, односторонний.
Есть мысли подключиться к базе и выгрузить файлы первый раз, и второй отправить обратно эти же файлы для удаления регистрации изменения )) Но это не очень оптимальное решение
Имеются 2 базы, (не типовые), нужен небольшой обмен 2-3 справочников и документов, реализовал с помощью . Регистрирую изменения с помощью правил обмена и выгружаю измененные объекты.
В теории всё работает (и в копии).
Т.Е. выгружаются все объекты - регистрация в плане обмена удаляется.
Но если по какой либо причине не удалось загрузить файлы в приемнике (Возникла ошибка, отключили свет\интернет и тд) - файлы не смогут загрузиться повторно, и в плане обмена регистрация уже будет снята...
Можете подсказать как лучше настроить ? или направить в нужном направлении ...
Обмен, можно сказать, односторонний.
Есть мысли подключиться к базе и выгрузить файлы первый раз, и второй отправить обратно эти же файлы для удаления регистрации изменения )) Но это не очень оптимальное решение
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Попробовать перейти на http-сервисы и json. Если данные в приемнике загрузились вернет код 200 и все ОК. Если нет, сформировать код с ошибкой. Если ошибка, значит регистрацию в плане обмена не удалять. Правда что делать потом не очень ясно. Но это полностью переделывать обмен. Хотя по мне http и json как-то интереснее, чем XML и веб-сервисы.
А обмен можно сделать с смешнее. Источник по http уведомляет что есть изменения данных и где, а приемник в ответ запрашивает эти данные. Тогда наверно вообще можно от планов обмена уйти. Это уже так, размышления как можно сделать.
А обмен можно сделать с смешнее. Источник по http уведомляет что есть изменения данных и где, а приемник в ответ запрашивает эти данные. Тогда наверно вообще можно от планов обмена уйти. Это уже так, размышления как можно сделать.
(7)
можно по подробнее ?) Как узнать что есть изменения без регистрации плана обмена ? После каждого изменения\нового документа - отправлять запрос на обновления в базу1 или я не правильно понял ?)
Источник по http уведомляет что есть изменения данных и где
можно по подробнее ?) Как узнать что есть изменения без регистрации плана обмена ? После каждого изменения\нового документа - отправлять запрос на обновления в базу1 или я не правильно понял ?)
(9) Ну вариантов тут много. Да, самый простой - это после изменения/создания документа тут же отправлять запрос/уведомление на сторону-приемник. Что делать на приемнике, сразу получать данные или где-то их накопить и с какой-то периодичностью забирать, тут уже есть варианты. И в данном случае можно на этапе получения данных явно указать что они нормально легли. Либо нет. Что делать с информацией об ошибке при получении данных, это уже зависит от постановки задачи. Может это и не лучший вариант. Но вполне себе вариант.
Кстати, он гораздо гибче. В том плане, что можно реализовать какие-то хитрые алгоритмы обработки полученной информации. Т.е. не просто синхронизация, а с какими-то плюшками. Это не всегда нужно конечно, но иногда очень даже полезно.
Кстати, он гораздо гибче. В том плане, что можно реализовать какие-то хитрые алгоритмы обработки полученной информации. Т.е. не просто синхронизация, а с какими-то плюшками. Это не всегда нужно конечно, но иногда очень даже полезно.
(2)Нет, смотри,
база1 подключается к базе2 по WS.
там формируется файл xml (стандартные процедуры универсального обмена xml)
и регистрация Плана обмена удаляется сразу ( тоже типовой механизм)
и формально файл выгружен и возвращается обратно в базу1
(Вот если при чтении произойдет ошибка ) - данные потеряются
Даже не отключение света скорее, а какая-нибудь банальная ошибка пользователя в документе например (не правильно заполнил реквизит)
база1 подключается к базе2 по WS.
там формируется файл xml (стандартные процедуры универсального обмена xml)
и регистрация Плана обмена удаляется сразу ( тоже типовой механизм)
и формально файл выгружен и возвращается обратно в базу1
(Вот если при чтении произойдет ошибка ) - данные потеряются
Даже не отключение света скорее, а какая-нибудь банальная ошибка пользователя в документе например (не правильно заполнил реквизит)
(3) Ну тогда используйте трехфакторную структуру.
1. Файл выгрузки сохраняется в отдельный РС, а в Базу 1 возвращается его адрес (идентификатор в регистре), База 2 хранит у себя идентификаторы.
2. База 1 запрашивает по необработанным идентификаторам состав файла.
3. После успешной обработки файла База1 подает сигнал в Базу2 о необходимости удалить файл (успешная обработка).
1. Файл выгрузки сохраняется в отдельный РС, а в Базу 1 возвращается его адрес (идентификатор в регистре), База 2 хранит у себя идентификаторы.
2. База 1 запрашивает по необработанным идентификаторам состав файла.
3. После успешной обработки файла База1 подает сигнал в Базу2 о необходимости удалить файл (успешная обработка).
(4) Хотя есть нюанс )
Допустим файл сфомировался с ошибкой, (допустим документ "Установка цен", пользователь не указал отбор и выгрузилось без ошибок но 2 документа с одной номенклатурой)
По сути фал сохранен, но база1 не сможет его загрузить и будет ругаться ...
Допустим файл сфомировался с ошибкой, (допустим документ "Установка цен", пользователь не указал отбор и выгрузилось без ошибок но 2 документа с одной номенклатурой)
По сути фал сохранен, но база1 не сможет его загрузить и будет ругаться ...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
