Текущее время: Ср, июл 23 2025, 21:41

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Дублирование записей в CUVTLN
СообщениеДобавлено: Ср, мар 21 2012, 18:24 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 15 2009, 18:25
Сообщения: 28
Такая проблема. Всё так же, считываю записи из таблиц вариантов с помощью CARD_TABLE_READ_ENTRIES, удаляю с помощью CAMA_TABLE_MAINTAIN_ENTRIES, а затем вставляю новые с помощью него же.
Начал вылетать на второй таблице с ошибкой SAPSQL_ARRAY_INSERT_DUPREC. Вылетает в стандартном ФМ CUVT_UPDATE_TABLE_CONTENT в 156-ой строке (по памяти): INSERT CUVTLN FROM TABLE TAB_CUVTLN_I.
Раньше такие же записи проходили, в исходном файле дублирований нет. В процедуре скидывания таблиц модулю CAMA_TABLE_MAINTAIN_ENTRIES ничего не менял. Менял только считывание таблиц из файла (просмотр таблиц в отладке подтверждает, что данные считываются нормально, то есть, в MAINTAIN_ENTRIES подаются те же данные).
Что это может быть?

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

_________________
- What makes the grass grow?
- BLOOD! BLOOD! BLOOD! (c)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Дублирование записей в CUVTLN
СообщениеДобавлено: Ср, мар 21 2012, 19:06 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, фев 15 2010, 13:14
Сообщения: 46
Откуда: Минск
Пол: Женский
Значит вы действительно вставляете в таблицу данные, которые там уже есть.
Можно попробовать:
1) перед вставкой записей отсортировать таблицу и удалить в ней дубликаты через delete adjustent dublicates
2) возможно, вы удалили записи, но комита не было. а пытаетесь вставить такие же. попробуйте после удаления записей написать commit work.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Дублирование записей в CUVTLN
СообщениеДобавлено: Ср, мар 21 2012, 19:30 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 15 2009, 18:25
Сообщения: 28
Вообще, предыдущие действия должны удалять все записи (с текущим номером таблицы и номером изменения). Просмотр таблицы после действий по удалению подтверждает их отсутствие (завтра ещё раз пересмотрю лично, если доступ на просмотр получу). Комит происходит, он всегда происходил, и я его в коде не убирал. Я вообще не менял весь код по загрузке записей и до текущего момента он работал. Саму загрузку записей проводит стандартный ФМ CAMA_TABLE_MAINTAIN_ENTRIES, я ему только подставляю данные, и, видимо, в этом модуле какие-то проблемы (а может и нет).
Ключ в CUVTLN - номер таблицы, номер строки, и вспомогательный счётчик для архивации. Модуль сам формирует номера строк, сортируя подаваемые в него записи по sort string... и не справляется с этим?

_________________
- What makes the grass grow?
- BLOOD! BLOOD! BLOOD! (c)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Дублирование записей в CUVTLN
СообщениеДобавлено: Чт, мар 22 2012, 10:17 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, июл 23 2007, 08:49
Сообщения: 31
Откуда: Москва
Пол: Мужской
COMMIT WORK в коде стоит после CAMA_TABLE_MAINTAIN_ENTRIES, удаляющего записи? Или после удаления и вставки новых?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дублирование записей в CUVTLN
СообщениеДобавлено: Чт, мар 22 2012, 10:52 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, фев 15 2010, 13:14
Сообщения: 46
Откуда: Минск
Пол: Женский
Поставьте точку остановки перед вызовом ФМ CUVT_UPDATE_TABLE_CONTENT, и просмотрите таблицу TAB_CUVTLN_I.
В отладчике, по-моему, нельзя сделать сортировку таблицы. Но можно выгрузить данные таблицы в XLS - попробуйте это сделать, отсортировать таблицу и поискать дубликаты.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Дублирование записей в CUVTLN
СообщениеДобавлено: Чт, мар 22 2012, 15:01 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 15 2009, 18:25
Сообщения: 28
Вадим Вологжанин написал:
COMMIT WORK в коде стоит после CAMA_TABLE_MAINTAIN_ENTRIES, удаляющего записи? Или после удаления и вставки новых?

После удаления и после вставки. 2 коммита.

Only2611 написала:
Поставьте точку остановки перед вызовом ФМ CUVT_UPDATE_TABLE_CONTENT, и просмотрите таблицу TAB_CUVTLN_I.
В отладчике, по-моему, нельзя сделать сортировку таблицы. Но можно выгрузить данные таблицы в XLS - попробуйте это сделать, отсортировать таблицу и поискать дубликаты.

Проверяли, дубликатов не было.


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

_________________
- What makes the grass grow?
- BLOOD! BLOOD! BLOOD! (c)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Дублирование записей в CUVTLN
СообщениеДобавлено: Чт, мар 22 2012, 15:32 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, июл 23 2007, 08:49
Сообщения: 31
Откуда: Москва
Пол: Мужской
Dragon27 написал(а):
После удаления и после вставки. 2 коммита.

Осмелюсь предположить, что ФМ CAMA_TABLE_MAINTAIN_ENTRIES отрабатывает асинхронно, и при попытке вставить запись удаление не успевает отработать. Попробуйте COMMIT WORK AND WAIT после удаления.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дублирование записей в CUVTLN
СообщениеДобавлено: Чт, мар 22 2012, 15:42 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 15 2009, 18:25
Сообщения: 28
Вадим Вологжанин написал:
Осмелюсь предположить, что ФМ CAMA_TABLE_MAINTAIN_ENTRIES отрабатывает асинхронно, и при попытке вставить запись удаление не успевает отработать. Попробуйте COMMIT WORK AND WAIT после удаления.

Таблица уже пуста, так как удаление проводили неоднократно.

_________________
- What makes the grass grow?
- BLOOD! BLOOD! BLOOD! (c)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB