[ОТВЕТИТЬ]
11.01.2011 06:46
melisa
 
добрый день! подскажите пожалуйста из-за чего может появляться следующая ошибка в логе транспорта:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Нельзя удалять более одной записи из таблицы GoodsGroupInDepart

видимых проблем пока не замечала, но всё-таки не хотелось бы их обнаружить :)


полный вариант

11.01.2011 09:31:50.000 TRACE: Поток транспорта Справочников.-1 Ошибка обработки Поток транспорта Справочников.-1.TRANSGOODSGROUP:
ru.crystalservice.setexchanger.datalinks.DataLinkException: Поток транспорта Справочников.-1.TRANSGOODSGROUP: stopPutData
at ru.crystalservice.setexchanger.datalinks.DB.stopPutData(Unknown Source)
at ru.crystalservice.setexchanger.transports.Exchanger.processClientSide(Unknown Source)
at ru.crystalservice.setexchanger.transports.Exchanger.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: ru.crystalservice.setexchanger.ExchangerException: PUT Exception
at ru.crystalservice.setexchanger.datalinks.DBPrintWriter.stopPut(Unknown Source)
... 10 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Нельзя удалять более одной записи из таблицы GoodsGroupInDepart
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)
... 11 more
11.01.2011 15:25
TANGOR
 
Melisa Добрый день :)
Это опять я...

вобщем что-то чтранное творится у Вас с этой базой.

данное сообщение выдаёт тригер, который был изменён, в 78 версии сета.
т.е. начиная с 78 версии тригер нормальный.
вот скрипт который этот тригер делал нормальным
05027808_Triggers.sql

как Вы его могли не прогнать я чёта не понимаю :)
12.01.2011 05:19
melisa
 
Добрый день уважаемый Tangor! судя по всему как-то неладно у нас обновление накатывается ((
мне уже пора вас в личные консультанты брать :)
13.01.2011 05:11
melisa
 
спасибо большое! на данный момент никаких ошибок больше нет :)
18.01.2011 07:47
melisa
 
добрый день! а "запрещено удалять загруженные товары" к какому обновлению относится?...
18.01.2011 08:04
melisa
 
Цитата:
melisa добрый день! а "запрещено удалять загруженные товары" к какому обновлению относится?...
возникает при полной прогрузке всего каталоге товаров из центрума в ритейл (ещё допускаю, что переустановка MySQL могла как-то повлиять)
18.01.2011 17:03
TANGOR
 
:) это не к какому обновлению не относится, просто действительно запрещено удалять загруженные товары :)

или это у Вас служба транспорта выдаёт?
19.01.2011 05:43
melisa
 
Доброе утро Tangor
ну вобщем после долгих просмотров методом перебора обнаружилось, что есть группа товаров, которая не выгружается из центрума, сопровождаясь этой ошибкой в логе транспорта на магазине. НО если выгружать товары группы, то всё гуд. В этой группе есть 2 неиспользуемых товара. Может из-за них глюк вылез? Хотя опять же, используемых товаров 87 шт. и при выгрузке группы Analyzer говорит, что выгружается именно 87 товаров
21.01.2011 12:39
TANGOR
 
В Centrum.exe есть 2 варианта как загрузить или выгрузить товары на магазин.
1. это в режиме товары\товары выделить требуемые товары с помощью клавиши "Пробел", и нажав кнопку "Загрузить" или "Выгрузить". при этом будет создано задание на загрузку (выгрузку) именно этих товаров.

2. в этом же режиме товары\товары, можно выделить группу товаров с помощью тоже кнопки "Пробел" и тоже нажать кнопку "Загрузить" или "Выгрузить". при этом на магазин будут загружены все товары входящие в состав только данной группы, у которых есть цена в данном магазине (ну и соответственно группа должна быть привязана к отделу который привязан к этому магазину)

Так называемые Вами "неиспользуемые" товары это товары, как я понял которые были удалены, т.е. у данных товаров в таблице Goods4 в поле Unsed установлено значение 1.

для того чтобы эти товары нормально загрузить или выгрузить, надо следующее :)
сделать эти товары используемыми, т.е. выполнить следующий скрипт:

UPDATE Goods4 SET Unused = 0 WHERE Code in ("код товара1", "код товара2")

(ну или с помощью Centrum.exe перекинуть их в используемые. умеете?)
затем загрузить, или выгрузить эти товары (ну смотря что надо)
ДОЖДАТЬСЯ когда они реально загрузятся или выгрузятся, т.е. когда из таблицы transfercmd исчезнут задания на эти товары.
а затем уже их грохнуть. т.е. удалить из Centrum.exe, или выполнить скрипт:

UPDATE Goods4 SET Unused = 1 WHERE Code in ("код товара1", "код товара2")
24.01.2011 05:08
melisa
 
добрый день! да вопрос собственно встал не в неиспользуемых товарах, а в том, что при выгрузке именно группы возникает ошибка и товары не выгружаются, а если в этой группе выделить все товары и выгрузить, то всё нормально
24.01.2011 10:28
vitamin
 
читать мануал по кристаллу надо, там русскими буквами написано по белому, запрещено удалять загруженный товар. при удалении группы вы также пытаетесь удалить загруженный товар.
24.01.2011 13:46
TANGOR
 
Цитата:
vitamin читать мануал по кристаллу надо, там русскими буквами написано по белому, запрещено удалять загруженный товар. при удалении группы вы также пытаетесь удалить загруженный товар.
Нет Vitamin :) дело в том что она не удаляет, а именно выгружает группу товаров со всеми товарами из магазина, но в этой группе есть уже ранее выгруженные и удалённые товары.
и да, есть небольшой "ошипко" из-за которой сейчас не получается выгрузить всю группу целиком вместе с удалённым товаром. :)
как то так...
:pleasantry:

а мануалы действительно читать иногда полезно :)
25.01.2011 05:53
melisa
 
Доброе утро ) похоже меня никто не понял я выгружаю группу из центрума на магазин (на магазине грохнули базу). =)
25.01.2011 11:39
TANGOR
 
Melisa :) с добрым утром!
Во первых в терминологии SETa есть огромная разница в словах "выгружаю" и "загружаю"
"Загрузка", это отправка данных из одной точки в другую с целью добавления или изменения этих данных на конечной точке.
"Выгрузка", это отправка данных из одной точки в другую с целью удаления этих данных на конечной точке.

после этих маленьких уточнений, Вы уверены, что Вы именно выгружаете данные?
25.01.2011 12:38
melisa
 
ну просто у сетовцев очень странная логика. их словами - загружаю
26.01.2011 19:35
TANGOR
 
Мелиса, так сейчас то у Вас всё нормально?
27.01.2011 07:19
melisa
 
Доброе утро... нет не нормально.. я описала проблему, но мне никто так ничего не ответил
27.01.2011 14:44
vitamin
 
после восстановления базы настройки в impexpsetup делались для связи с центрумом, чеки в центрум приходят?
31.01.2011 05:04
melisa
 
Добрый день! всё работает нормально (импорт, экспорт) за исключением возможности загрузки всего каталога на магазин. На данный момент конечно частями выгрузили, но это не очень удобно.
27.06.2011 12:43
melisa
 
т.к. тему по транспорту чеков закрыли, решила дописать сюда =)
с магазина встал поток чеков и на центруме выводится следующее:

Код:
27.06.2011 15:29:26.844 ERROR: Поток транспорта Чеков.209.CHEQUE: 	stopPut: Невозможно вставить повторяющуюся ключевую строку в объект "dbo.ChequeHead" с уникальным индексом "IXU$ChequeHead@ShopIndex@Cash_Code@DateOperation@Ck_Number".
27.06.2011 15:29:26.844 TRACE: Поток транспорта Чеков.209.CHEQUE: 	stopPut (SQL = EXEC cp_TransChequeWrite ?, ?;
 xmlString = <?xml version="1.0" encoding="windows-1251" ?> <ROOT><HDR _Operation_="0" GangStart="2011-06-07T08:27:00" OperDay="20110607" ShopIndex="209" ShopIndexKKM="209" Id="118738" Operation="P" Cash_Code="2" NSmena="1153" DateOperation="2011-06-07T19:26:44" Ck_Number="187292" ControlTape="0" Cassir="008" Su)
com.microsoft.sqlserver.jdbc.SQLServerException: Невозможно вставить повторяющуюся ключевую строку в объект "dbo.ChequeHead" с уникальным индексом "IXU$ChequeHead@ShopIndex@Cash_Code@DateOperation@Ck_Number".
	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)
	at ru.crystalservice.setexchanger.datalinks.DBPrintWriter.stopPut(Unknown Source)
	at ru.crystalservice.setexchanger.datalinks.DB.stopPutData(Unknown Source)
	at ru.crystalservice.setexchanger.transports.TCPIPExchanger.processServerSide(Unknown Source)
	at ru.crystalservice.setexchanger.transports.TCPIPExchanger.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)
27.06.2011 15:29:26.844 ERROR: Поток транспорта Чеков.209 Server Exception: Поток транспорта Чеков.209.CHEQUE: stopPutData
27.06.2011 15:29:26.844 TRACE: Поток транспорта Чеков.209 Server Exception 
ru.crystalservice.setexchanger.datalinks.DataLinkException: Поток транспорта Чеков.209.CHEQUE: stopPutData
	at ru.crystalservice.setexchanger.datalinks.DB.stopPutData(Unknown Source)
	at ru.crystalservice.setexchanger.transports.TCPIPExchanger.processServerSide(Unknown Source)
	at ru.crystalservice.setexchanger.transports.TCPIPExchanger.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: ru.crystalservice.setexchanger.ExchangerException: PUT Exception
	at ru.crystalservice.setexchanger.datalinks.DBPrintWriter.stopPut(Unknown Source)
	... 10 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Невозможно вставить повторяющуюся ключевую строку в объект "dbo.ChequeHead" с уникальным индексом "IXU$ChequeHead@ShopIndex@Cash_Code@DateOperation@Ck_Number".
	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)
	... 11 more
27.06.2011 15:29:26.844 ERROR: Поток транспорта Чеков.209 processConnection: Поток транспорта Чеков.209 Server exchanger exception 
27.06.2011 15:29:26.844 TRACE: Поток транспорта Чеков.209 processConnection:
ru.crystalservice.setexchanger.ExchangerException: Поток транспорта Чеков.209 Server exchanger exception 
	at ru.crystalservice.setexchanger.transports.TCPIPExchanger.processServerSide(Unknown Source)
	at ru.crystalservice.setexchanger.transports.TCPIPExchanger.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: ru.crystalservice.setexchanger.datalinks.DataLinkException: Поток транспорта Чеков.209.CHEQUE: stopPutData
	at ru.crystalservice.setexchanger.datalinks.DB.stopPutData(Unknown Source)
	... 9 more
Caused by: ru.crystalservice.setexchanger.ExchangerException: PUT Exception
	at ru.crystalservice.setexchanger.datalinks.DBPrintWriter.stopPut(Unknown Source)
	... 10 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Невозможно вставить повторяющуюся ключевую строку в объект "dbo.ChequeHead" с уникальным индексом "IXU$ChequeHead@ShopIndex@Cash_Code@DateOperation@Ck_Number".
	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)
	... 11 more
хотела попробывать эту смену из центрума удалить, но что-то не нашла, а ручками в таблицах как-то боязно - вдруг где-то какую-то связку забуду убрать :wacko2:
27.06.2011 22:47
vitamin
 
Привет!Ваша ошибка аналог ошибки из 1с, попытка вставить неуникальное значение в уникальный индекс(самая первая строка). лечится удалением задвоенных данных, как первый вариант. но сначала прогнал бы по базе центрума dbcc checkdb со всеми вытекающими. Либо, была такая же фигня, чеки не приходили, когда база центрума была 5.02.80, а магазины 5.02.79.
PS про группы товаров. они(группы) с магазином привязаны к одному и тому же отделу в центруме?
28.06.2011 05:31
melisa
 
Цитата:
Привет!Ваша ошибка аналог ошибки из 1с, попытка вставить неуникальное значение в уникальный индекс(самая первая строка). лечится удалением задвоенных данных, как первый вариант. но сначала прогнал бы по базе центрума dbcc checkdb со всеми вытекающими. Либо, была такая же фигня, чеки не приходили, когда база центрума была 5.02.80, а магазины 5.02.79.
PS про группы товаров. они(группы) с магазином привязаны к одному и тому же отделу в центруме?
добрый день! все привязки всё правильно - всё работало без сбоя несколько месяцев, в тому же, в логе транспорта указывается конкретная смена и чек. Подробую протестировать на ошибки ))
28.06.2011 06:52
melisa
 
к сожалению ничего не помогло..
пробовала проверку и переиндексацию таблиц + все истории, трансферцмд очистила, но всё равно лезет ошибка.
если удалять вручную, то надо, я так понимаю, удалить позиции из Chequepos, а потом из Chequehead? или что-то где-то ещё?
28.06.2011 08:06
melisa
 
ещё может быть кто-нибудь подскажет где хранятся данные, которые центрум пытается загрузить? вроде все таблички пустые (importdata, exportdata, transfercmd) и в центруме и на магазине.
Опции темы


Часовой пояс GMT +3, время: 18:54.

 

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