15.06.2011 10:30
Возникла проблема.
Обновляем SET Retail с версии 5.02.75 до 5.02.80.008.
После обновления поток импорта пишет ошибку:
15.06.2011 17:23:51.533 DEBUG: Поток импорта.Import: PrintMessage: Обрабатываются мнемоники: GroupName;GoodsGroup1;GoodsGroup2;GoodsGroup3;GoodsGroup4;GoodsGroup5;GoodsDepart
15.06.2011 17:23:51.548 DEBUG: Поток импорта.Import: Accept; dataId = 2
15.06.2011 17:23:51.564 ERROR: Поток импорта Ошибка обработки Поток импорта.Import: Поток импорта.Import: dataAccepted - String or binary data would be truncated.
15.06.2011 17:23:51.564 TRACE: Поток импорта Ошибка обработки Поток импорта.Import:
ru.crystalservice.setexchanger.datalinks.DataLinkException: Поток импорта.Import: dataAccepted - String or binary data would be truncated.
at ru.crystalservice.setexchanger.datalinks.DB.dataAccepted(Unknown Source)
at ru.crystalservice.setexchanger.transports.ImpExpExchanger.processImpExp(Unknown Source)
at ru.crystalservice.setexchanger.transports.ImpExpExchanger.processConnection(Unknown Source)
at ru.crystalservice.setexchanger.transports.Exchanger.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:156)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1373)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:371)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:322)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4003)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1550)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:160)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:133)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:304)
... 10 more

Пробовали прогнать скрипты обновления руками. Не помогло.
Импорт не работает. Задания в таблице ImportData копятся. Соответственно в кассы, весы товар не попадает.
Есть другие магазины сети на которых все работает, т.е. внешняя система все правильно отправляет.
Может кто-нибудь подскажет как бороться.
15.06.2011 12:07
Пришлите пример самих данных, потому что скорее всего проблема именно в данных.
16.06.2011 10:06
Вот пример данных из таблицы ImportData (поля DataFormat, Data, DataDelimiter)

DataFormat -- GroupName;GoodsGroup1;GoodsGroup2;GoodsGroup3;GoodsGroup4;GoodsGroup5;GoodsDepart

Data -- РЫБА ОХЛАЖДЕННАЯ#@#&#$#135611#@#&#$##@#&#$##@#&#$##@#&#$##@#&#$#1#@#&#$#РЫБА ОХЛАЖДЕННАЯ МОРСКАЯ ПРИЛАВОК#@#&#$#135611#@#&#$#102148#@#&#$##@#&#$##@#&#$##@#&#$#1#@#&#$#

DataDelimiter -- #@#&#$#


Хотя я сомневаюсь, что причина в данных. На других магазинах где стоит 5.02.80.008 таких проблем нет, а импорт одинаковый (из 1С через COM).
12.07.2011 11:09
Итак, проблема разрешилась. Суть в следующем. Выяснили, что подобные проблемы возникают только при прогрузке большого количества касс (более 20). В конце концов Питер нашел баг. Оказалось, что поле DeviceList в таблице ImportData и ImportDataArchive имеют разный размер, при чем существенно разный 1000 против 50. И при переносе записи из ImportData в ImportDataArchive поток импорта валился с ошибкой.
Вот такие пироги. Будьте бдительны.
Часовой пояс GMT +3, время: 12:55.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.