Ошибка при обмене Комбинат Питания -> РестАРТ
Читают тему
Вход в личный кабинет
Для получения доступа к форуму необходимо
авторизоваться
или
зарегистрироваться
на сайте.
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Сообщить об ошибке
<?xml version="1.0" encoding="UTF-16"?>
<Response build="8.2.1.5" appname="ARMManager.exe" respnum="27" databaseid="{fc195b5b-18a9-11e4-8620-000c292c12bb}" reqnum="27" version="2.1.2" error="Стадия:Проверкa; Ошибка:Нарушена целостность данных. «Product.ParentID» ссылается на «Product.ObjID» по несуществующему значению «{d23608a5-8a8f-11e4-b8b4-000c292c12bb}»; Файл:\\192.168.1.12\all\ExchangeStolovaya\POS01_Request_27.xml" dbprefix="POS01" name="Food" work="1"/>
Уточните релизы Ваших программных продуктов.
Так же Вы можете прислать базы (Рестарта и Комбината Питания) для тестирования нам на почту food@rarus.ru
Добрый день, Петр!
Уточните релизы Ваших программных продуктов.
Так же Вы можете прислать базы (Рестарта и Комбината Питания) для тестирования нам на почту food@rarus.ru
С данной ошибкой разобрался. В обмен не попадали некорые типы и группы номенклатуры. Теперь возникла другая странная ошибка при обменах -
1. Выгружаю из Комбината Питания меню в РестАрт - все хорошо.
2. Ничего не меняя в РестАрт, делаю загрузку в Комбинат Питания - визуально все хорошо и ничего не изменилось.
3. Ничего не меняя в Комбинате опять делаю выгрузку в РестАрт - выгруженное ранее меню или помечается на удаление, либо вообще исчезает из базы и так же, помечаются на удаление все кассы ККМ.
Релиз Комбината Питания - 01.0.34.01, релиз РестАрт - 2.22.20.
Базы выслал на food@rarus.ru.
Немного поясню структуру обмена и причину возникновения подобных ошибок с ПП РестАрт.
Обмен построен таким образом, что после отправки сообщения из одного решения в другое, всегда будет сформировано ответное сообщение об успешно завершённой операции или об ошибке. Такое ответное сообщение автоматически удаляется. РестАрт же, если обмен завершается с ошибкой, сообщение не удаляет, чтобы с ним можно было работать для решения проблемы.
Петр, рассматривая конкретно Ваш пример, делаю вывод, что бэк отправляет номенклатуру, которую РестАрт не может определить. Например, можно удалить модификатор, но не убрать привязки модификатора к какому либо продукту. Бэк не будет отправлять сам модификатор, но по прежнему отправит номенклатуру, в которой хранится ссылка на него. Аналогично, если есть карточка пользователя, которая указана у сотрудника. Можно удалить пользователя, но привязку оставить. Тогда сообщение об ошибке будет выглядеть вот так:
error="Стадия:Проверкa; Ошибка:Нарушена целостность данных. «Card.UserID» ссылается на «User.ObjID» по несуществующему значению
Выяснить, где закрался баг очень просто. У каждого отправляемого объекта в сообщении есть свой уникальный номер - Guid. Именно по нему и происходит синхронизация данных в двух продуктах.
Шаг 1: Перейти в каталог обмена, открыть ответное сообщение и скопировать GUID объекта. В конкретном случае уникальный номер это - {d23608a5-8a8f-11e4-b8b4-000c292c12bb}
Шаг 2: Закрыть РестАрт, чтобы он автоматически не подгрузил сообщение
Шаг 3: Сделать выгрузку из бэка: нажать именно на кнопку "Выгрузить" в обработке обмена.
Шаг 4: Опять перейти в каталог обмена, открыть вновь сформированное сообщение и в строке поиска ввести ранее скопированный GUID
Так можно узнать какой именно объект вызывает ошибку.
Конечно, подобный процесс достаточно кропотлив, а ошибка локальная и исправить ее можно, имея на руках базы.
Если устранение проблемы вызывает сложности, специалисты техподдержки всегда помогут в решении. От Вас требуется предоставление баз или возможности удаленного подключения.
Выяснить, где закрался баг очень просто. У каждого отправляемого объекта в сообщении есть свой уникальный номер - Guid. Именно по нему и происходит синхронизация данных в двух продуктах.
Шаг 1: Перейти в каталог обмена, открыть ответное сообщение и скопировать GUID объекта. В конкретном случае уникальный номер это - {d23608a5-8a8f-11e4-b8b4-000c292c12bb}
Шаг 2: Закрыть РестАрт, чтобы он автоматически не подгрузил сообщение
Шаг 3: Сделать выгрузку из бэка: нажать именно на кнопку "Выгрузить" в обработке обмена.
Шаг 4: Опять перейти в каталог обмена, открыть вновь сформированное сообщение и в строке поиска ввести ранее скопированный GUID
Так можно узнать какой именно объект вызывает ошибку.
Теперь возникла другая странная ошибка при обменах -
1. Выгружаю из Комбината Питания меню в РестАрт - все хорошо.
2. Ничего не меняя в РестАрт, делаю загрузку в Комбинат Питания - визуально все хорошо и ничего не изменилось.
3. Ничего не меняя в Комбинате опять делаю выгрузку в РестАрт - выгруженное ранее меню или помечается на удаление, либо вообще исчезает из базы и так же, помечаются на удаление все кассы ККМ.
Релиз Комбината Питания - 01.0.34.01, релиз РестАрт - 2.22.20.