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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.10.2007, 12:10   #1  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Angry Глюк с RecId
День добрый недавно обнаружился неприятный глюк. При создании накладной с произвольным текстом RecId первой создаваемой строки совпадает с RecId самой накладной, т.е. CustInvoiceTable.RecId == CustInvoiceLine.RecId. Для всех последующих строк все норм. Подскажите, может кто-то сталкивался, как с этим бороться.

P.S. Все это на AX 4.0. SP 2
Старый 24.10.2007, 12:24   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
А как Вы это определили?
Старый 24.10.2007, 12:27   #3  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от Sada Посмотреть сообщение
А как Вы это определили?
Взял RecId из CustInvoiceTable и отфильтровал значение поля RecId в CustInvoiceLine
Старый 24.10.2007, 12:31   #4  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
принт скрин в студию!!! Я не верю!!
Старый 24.10.2007, 12:36   #5  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Скорее всего вы не весь RecId взяли и по части фильтруете строки. Раздвинте поле RecId в обозривателе и всё поймете
Старый 24.10.2007, 13:02   #6  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от Sada Посмотреть сообщение
принт скрин в студию!!! Я не верю!!
Нажмите на изображение для увеличения
Название: bug.jpg
Просмотров: 364
Размер:	41.0 Кб
ID:	3004
[IMG]file:///C:/DOCUME%7E1/SKOROB%7E1/LOCALS%7E1/Temp/moz-screenshot.jpg[/IMG]
Старый 24.10.2007, 13:14   #7  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
М-да. Очень интересно. У меня то же самое наблюдается...
Сделал такой джобик:
X++:
static void Job5(Args _args)
{
    CustInvoiceLine         CustInvoiceLine;
    CustInvoiceTable        CustInvoiceTable;
    ;
    while select CustInvoiceLine
        join CustInvoiceTable
        where CustInvoiceTable.RecId == CustInvoiceLine.RecId
    {
        info( int642str( CustInvoiceLine.RecId));
    }
    
}
Его результаты:
Info Сообщение (13:18:15) 21426232134
Info Сообщение (13:18:15) 21426232135
Info Сообщение (13:18:15) 21426232136
Info Сообщение (13:18:15) 21426232137
Info Сообщение (13:18:15) 21426232138
Info Сообщение (13:18:15) 21426232139
Info Сообщение (13:18:15) 21426232140
Info Сообщение (13:18:15) 21426232141
Info Сообщение (13:18:15) 21426232142
Info Сообщение (13:18:15) 21426232143

Задумался..
__________________
Михаил Андреев
https://www.amand.ru

Последний раз редактировалось Михаил Андреев; 24.10.2007 в 13:19.
Старый 24.10.2007, 13:15   #8  
Peter Savintsev is offline
Peter Savintsev
Участник
 
246 / 119 (4) +++++
Регистрация: 14.12.2001
А чего в этом страшного? В 4-ке RecId уникален в рамках таблицы, а не в рамках всей БД, как в 3-ке.
Старый 24.10.2007, 13:21   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
не очень понятно, не могут ли быть пересечения в этом случае (что происходит при создании второй накладной, если в первой - две строки)
Старый 24.10.2007, 13:26   #10  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Цитата:
Сообщение от belugin Посмотреть сообщение
не очень понятно, не могут ли быть пересечения в этом случае (что происходит при создании второй накладной, если в первой - две строки)
Пересечений не происходит, но все таки ситуация не очень приятная
Старый 24.10.2007, 13:30   #11  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
То ли лыжи не едут, то ли я ...
Объясните суть глючности данного явления, пожалуйста.
В 4-ке генерация RecId вроде наконец-то избавлена от невменяемого атавизма 3-ки ввиде размазывания RecId по всем таблицам в рамках одной компании - RecID вроде потаблично генерится. В 4-ке порог старта RecId начинается 0000000100000000h(4 294 967 296) дабы с RecId 3-ек не пересекаться. Наличие в двух разных таблицах одинаковых значений идентификаторов записи в такой ситуации у 4-ки - явление, IMHO, вполне нормальное и не должно вызывать никоего беспокойства , кроме абсолютной величины (когда успели почти полтора миллиарда записей насоздавать ?)
Старый 24.10.2007, 13:35   #12  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Дело в том что я просто не знал о различиях 3-ки и 4-ки по поводу RecId, поэтому и занервничал.
Теперь все стало на свои места. Всем спасибо за помощь
Старый 24.10.2007, 13:39   #13  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Пожалуй, случайность. Все накладные по одной строке содержат. Так что, ложная тревога.
__________________
Михаил Андреев
https://www.amand.ru
Старый 24.10.2007, 13:41   #14  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Прикольно конечно, но где написано, что RecID в 4-ке уникален тока в одной таблице.
Старый 24.10.2007, 13:46   #15  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от Михаил Андреев Посмотреть сообщение
Задумался..
Михаил, чесслово, не понимаю причин беспокойства
В какой-то момент времени значения счетчиков RecId у них сравнялись и было сделано подряд несколько однострочных клиентских накладных - только и всего, вполне вероятная ситуация (я 6 лет работал с системой, где почти все реляционные связи были на суррогатном 8-байтовом идентификаторе, генерируемом отдельно для каждой таблицы, там эта ситуация норма и проблем от этого не возникало).
Другое дело - разная скорость пожирания значений идентификатора в разных таблицах.
Вот если бы у вас было в значения пробелы - вот тогда надо задумываться.
CustInvoiceTable априорно более медленно или равно поедающая по сравнению с CustInvoiceLine.
Старый 24.10.2007, 13:51   #16  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Всё правильно, я уже это понял
__________________
Михаил Андреев
https://www.amand.ru
Старый 24.10.2007, 13:58   #17  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от Sada Посмотреть сообщение
Прикольно конечно, но где написано, что RecID в 4-ке уникален тока в одной таблице.
Дык
Оно ж ить того ... это самое, обсуждамшись уже давненько ...

Последний раз редактировалось TasmanianDevil; 24.10.2007 в 14:01.
Старый 24.10.2007, 14:05   #18  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Дык
Оно ж ить того ... это самое, обсуждамшись уже давненько ...
Дык ... онож ить того... не всё подряд читаю та.... Работаю иногда веть....А где обсуждали???
Старый 24.10.2007, 14:14   #19  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Sada Посмотреть сообщение
Дык ... онож ить того... не всё подряд читаю та.... Работаю иногда веть....
Однажды вечером Резерфорд зашел в лабораторию. Хотя время было позднее, в лаборатории склонился над приборами один из его многочисленных учеников.

- Что вы делаете так поздно? — спросил Резерфорд.
- Работаю,— последовал ответ.
- А что вы делаете днем?
- Работаю, разумеется,— отвечал ученик.
- И рано утром тоже работаете?
- Да, профессор, и утром работаю, - подтвердил ученик, рассчитывая на похвалу из уст знаменитого ученого.
Резерфорд помрачнел и раздраженно спросил: Послушайте, а когда же вы думаете?

__________________
-ТСЯ или -ТЬСЯ ?
Старый 24.10.2007, 14:20   #20  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Придется поверить наслово Пробел исправил, осознал суть происходящего и снова работать
Теги
ax4.0, recid

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
if (record) vs if (record.RecId) kashperuk DAX: Программирование 18 27.11.2008 18:53
Глюк с RecId в Ax 4.0 npokypatop DAX: Программирование 5 22.07.2008 13:08
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
aEremenko: Дефрагментация RecID Blog bot DAX Blogs 2 06.03.2007 22:25
Два RecId у одной записи таблицы sparur DAX: Программирование 33 18.12.2006 15:56

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:31.