AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.07.2008, 11:31   #1  
npokypatop is offline
npokypatop
Злыдни
Сотрудники компании It Box
Злыдни
 
60 / 14 (1) ++
Регистрация: 28.09.2005
Адрес: Нюрнберг
Глюк с RecId в Ax 4.0
Господа, всем доброго вторника,
на проекте возникла небольшая проблема - Аксапта отказывается вставлять запись в таблицу, аргументируя это тем, что такая запись уже есть. Помогает только тупое удаление всех записей таблицы. Ключ в таблице - по RecId. Раньше такое было редко, да и таблицы были какие-то не очень важные.
Но сейчас Аксапта отказывается вставлять запись в SysDataBaseLog, в PrintOutTable
Ругается так:

Невозможно создать запись в ...

То есть суть проблемы ясна - Аксапта генерит неуникальный RecId...
Как это можно полечить?.. При остановке AOS это тоже проходит, но не всегда, да и это не выход
__________________
Все может быть и быть все может, все может быть или не быть,
но быть того никак не может, чего совсем не может быть.
Старый 22.07.2008, 12:08   #2  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
C RecId в четверке SP2 тоже ловил непонятные глюки. Например, заметил следующую закономерность - при выполнении групповой разноски журналов одним пользователем(Главная книга / Периодические операции / Разнести журналы) другие при попытке сохранить созданный журнал часто ловят ошибку от SQl-сервера на таблице LedgerJournalTable: The INSERT statament conflicted with CHECK constraint "CK__X211X__RECID__721145A6". Смотрю это ограничение ([RECID]<>(0)) на SQL сервере и не понимаю как такое могло получиться. Получается что RecId просто не выделился. Своего кода в тех областях нет вообще. Лечится само пересозданием журнала. Разбираться не было времени пока. Кто-нибудь еще сталкивался?
Старый 22.07.2008, 12:38   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,889 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
1. Попробуйте проверить табличку SystemSequences - там хранятся системные номерные серии - для recId в том числе. Возможно сбилось значение счетчика.
2. Проверьте индексы на табличке. У меня как-то был случай - создали уникальный индекс по RecId средствами БД. DataAreaID - в индексе не было. - Соответсвенно случайным образом возникал конфликт уникальности и транзакция откатывалась. При этом Аксапта выдавала левое сообщение об ошибке.
За это сообщение автора поблагодарили: npokypatop (1).
Старый 22.07.2008, 13:08   #4  
npokypatop is offline
npokypatop
Злыдни
Сотрудники компании It Box
Злыдни
 
60 / 14 (1) ++
Регистрация: 28.09.2005
Адрес: Нюрнберг
Цитата:
Сообщение от Logger Посмотреть сообщение
1. Попробуйте проверить табличку SystemSequences - там хранятся системные номерные серии - для recId в том числе. Возможно сбилось значение счетчика.
2. Проверьте индексы на табличке. У меня как-то был случай - создали уникальный индекс по RecId средствами БД. DataAreaID - в индексе не было. - Соответсвенно случайным образом возникал конфликт уникальности и транзакция откатывалась. При этом Аксапта выдавала левое сообщение об ошибке.
Спасибо, сейчас попробую
Старый 22.07.2008, 12:39   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от npokypatop Посмотреть сообщение
То есть суть проблемы ясна - Аксапта генерит неуникальный RecId...
Откуда это известно? Она сообщает именно о такой неуникальности?

Вспомнив, что что-то этакое было у меня с таблицей PrintOutTable_Ru, порылся в своих рабочих "блогах". Нашёл вот такую тайнопись:

\Classes\PurchFormLetter_PackingSlip\writeJournal - line 6
\Classes\PrintoutTableReports_SlipsM4M7_RU\run - line 1
\Classes\PrintoutTableReports_SlipsM4M7_RU\run - line 63

"Невозможно создать запись в PrintOutTable_Ru"

И вывод: Надо искать запись с таким SalesPurchID (!!!) и удалять ее перед попыткой вставки.

Может, натолкнет на что-нибудь конструктивное...

P.S. В PrintOutTable_Ru помимо уникального ключа по RecId есть еще уникальные индексы, в которые поле RecId не входит (во всяком случае в Ax 3.0 SP4 это так).
Старый 22.07.2008, 13:07   #6  
npokypatop is offline
npokypatop
Злыдни
Сотрудники компании It Box
Злыдни
 
60 / 14 (1) ++
Регистрация: 28.09.2005
Адрес: Нюрнберг
Спасибо за совет, Gustav,
но ругается оно именно на RecId.
Замечено это было еще при разноске журналов по модулю Производство, но поскольку тогда это было в рамках обучения - меня это не очень заинтересовало (там тоже были таблицы с параметрами)
Сейчас проблема на реальном проекте - и это не все таблицы, по которым она возникает.
Если бы ошибка была в самом деле в коде, то она бы не исчезала после перезапуска АОС.
А в строке 63 метода run класса PrintoutTableReports_SlipsM4M7_RU производится именно вставка
printoutJournal.insert();
По индексам TypeSalesPurchIdLocationIdx и NumTypeIdx все в порядке. Остается только один вариант.
__________________
Все может быть и быть все может, все может быть или не быть,
но быть того никак не может, чего совсем не может быть.
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: Managing Your Supply Chain Using Microsoft Dynamics AX 2009 - Book Review Blog bot DAX Blogs 0 31.03.2009 23:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47
Глюк с RecId greench DAX: Программирование 20 24.10.2007 14:59
Dynamics AX Geek: RecId & Tablebrowser Blog bot DAX Blogs 0 28.10.2006 16:40

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:46.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.