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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.08.2004, 14:26   #41  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2015
 
3,296 / 1320 (51) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Re: Кстати, вот в этих местах возможны проблемы с отрицательным RecId
Цитата:
Изначально опубликовано George Nordic
\Data Dictionary\Tables\CommissionSalesRep\Methods\validateField
\Data Dictionary\Tables\CommissionSalesRep\Methods\validateField
..
\Forms\RAssetBalance\Methods\init
\Reports\WebCmNewsArticle\Methods\init
Я ВЫБОРОЧНО ткнулся в несколько классов - везде делается

PHP код:
select count(RecIdfrom table 
потом

PHP код:
if (table.RecId 1
т.е. не все так плохо
Старый 13.08.2004, 14:28   #42  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 624 (25) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Андрей, а можешь привести пример, где сравниваются два RecId (без использования агрегатных функций) кроме как на неравенство?
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.08.2004, 14:43   #43  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,378 / 973 (41) +++++++
Регистрация: 17.12.2003
Адрес: Moscow
Ну, я просто глубже не копал... конечно, не во всех этих случаях ошибка.. Если кто-нибудь занялся бы, да и нашел бы в этом списке все случаи, где действительно есть ошибка - вот это, я понимаю, дело! Но, как я смотрю, таких мест не очень много.. к счастью

Кстати, е если RecId 1 < RecId 2? RecId 1 = -1, RecId2 = 2 000 000 000 ?
Так что самый трабл, как уже указал многоуважаемый Андрей, именно при переходе от + к -
Старый 13.08.2004, 14:50   #44  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 624 (25) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Вот я и говорю, что что-то не могу припомнить, где так делают:
Цитата:
Изначально опубликовано George Nordic
RecId 1 < RecId 2
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.08.2004, 14:58   #45  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,374 / 451 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Андрей, а можешь привести пример, где сравниваются два RecId (без использования агрегатных функций) кроме как на неравенство?
Напрямую в коде - нет. Но, если ты посмотришь на таблицу tmpInventModel, то там есть индекс, в который входит recId.
А в коде, отвечающим за пересчет себестоимости (например InventCostItemDim.updateModelFIFOLIFO), периодически встречается такой код:

PHP код:
 select reverse tmpIssue    index dateIdx 
То есть, используя индекс, мы закладываемся на определенный порядок записей (то же самое сравнение), который в свою очередь зависит от recId.
Это используется, например, при подборе проводки для сопоставления в том случае, если в один день было несколько подходящих проводок.
Старый 13.08.2004, 15:04   #46  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,378 / 973 (41) +++++++
Регистрация: 17.12.2003
Адрес: Moscow
Цитата:
Изначально опубликовано Maxim Gorbunov Вот я и говорю, что что-то не могу припомнить, где так делают:
Так я подскажу:
\Data Dictionary\Tables\WMSLocation\Methods\BMNewRecord
\Data Dictionary\Tables\WMSLocation\Methods\BMNewRecord
\Data Dictionary\Tables\TmpRTax25LedgerAccountList\Methods\findRecIds
\Classes\ProdMultiScheduling\updateProdDeleted

А вот и меньше 0

\Data Dictionary\Tables\LedgerRRGCellDefVal_RU\Methods\addDefaultValue
\Classes\WebFormHtml\controlName
\Classes\WebFormHtml\setControls
\Classes\WebFormHtml\setControls
\Classes\WebLookupWeblet\run
\Classes\WebDateLookupWeblet\run
\Classes\WebCustomLookupWeblet\run
\Classes\webTableLookup\run
\Classes\webTableLookup\run
\Forms\ReqTransExplosionSetup\Data Sources\TmpReqExplosionTree\Methods\executeQuery
\Forms\ReqTransExplosionSetup\Data Sources\InventDimParm\Methods\executeQuery

Немного.. В основном - не по делу..
Старый 13.08.2004, 15:08   #47  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,378 / 973 (41) +++++++
Регистрация: 17.12.2003
Адрес: Moscow
Вообще, как я понял - гиблое это дело, RecId сравнивать...

Ярослав, а Ваш скрипт учитывает подобне проблемы?

С Уважением,
Георгий
Старый 13.08.2004, 15:10   #48  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,374 / 451 (20) +++++++
Регистрация: 03.12.2001
Цитата:
\Classes\ProdMultiScheduling\updateProdDeleted
Так там же count.

Цитата:
\Data Dictionary\Tables\TmpRTax25LedgerAccountList\Methods\findRecIds
Опять же, ничего криминального не увидел.


Остальное проверять не стал.
Старый 13.08.2004, 15:11   #49  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 624 (25) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Да, хотел написать то же самое, что и Андре.

Дополнение: в \Classes\ProdMultiScheduling\updateProdDeleted тоже Count сначала.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.08.2004, 15:13   #50  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 624 (25) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано Андре
То есть, используя индекс, мы закладываемся на определенный порядок записей (то же самое сравнение), который в свою очередь зависит от recId.
Это используется, например, при подборе проводки для сопоставления в том случае, если в один день было несколько подходящих проводок.
ИМХО, это не более криминально, чем то, что написано в \Data Dictionary\Tables\TmpRTax25LedgerAccountList\Methods\findRecIds
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.08.2004, 15:14   #51  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,378 / 973 (41) +++++++
Регистрация: 17.12.2003
Адрес: Moscow
Цитата:
Изначально опубликовано Андре
Остальное проверять не стал.
Что ж... будем надеяться, что ничего криминального и там нет. Все-таки, господа, если кто-нибудь наткнется на подобный трабл - киньте в эту ветку, плиз.

С Уважением,
Георгий.
Старый 13.08.2004, 15:15   #52  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 624 (25) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Кстати, был в какой-то ветке вопрос (в какой, уже не помню), какие таблицы не переживут дефрагментацию RecId.

Исчерпывающего ответа не дам, но внесу первый вклад:
smmTransLog
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.08.2004, 15:21   #53  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,374 / 451 (20) +++++++
Регистрация: 03.12.2001
Цитата:
ИМХО, это не более криминально, чем то, что написано в \Data Dictionary\Tables\TmpRTax25LedgerAccountList\Methods\findRecIds
Да я и не говорил, что это смертельно

Хотя... при поиске проводки для сопоставления по FIFO/LIFO система считает, что раньше произошел тот расход, у которого меньше recId, при одной и той же дате.
Если нам феноменально не повезет, то может получиться так, что мы будем иметь две складских проводки с одной датой и с recId, равными maxPositiv, minNegative value. При этом, по факту, второе списание произошло позже первого, а система посчитает и сопоставит наоборот.
Старый 13.08.2004, 16:16   #54  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 624 (25) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Еще две таблицы, которые не перенесут дефрагментацию RecId и экспорт/импорт (только для версии 2.5):
LedgerCorrespondTransLinks_RU
VendPBookUpdLog_RU
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.08.2004, 16:33   #55  
ALES is offline
ALES
Участник
Злыдни
 
213 / 44 (2) +++
Регистрация: 11.08.2004
Исчерпывающий ответ
Цитата:
Изначально опубликовано Maxim Gorbunov
...Исчерпывающего ответа не дам...
Поиск "проблемных" полей, созданных на основе EDT RecId.

...
;
for (i = 1; i <= tableCnt; i++)
{
dt = dictionary.tableObject(dictionary.tableCnt2Id(i));
fieldCnt = dt.fieldCnt();
for (j = 1; j <= fieldCnt; j++)
{
df = dt.fieldObject(dt.fieldCnt2Id(j));
if(! dt.isTmp() &&
! dt.isView() &&
df.type() == TYPES::UserType &&
GLOBAL::isType(df.typeId(), extendedTypeNum(RecId)) &&
! GLOBAL::isType(df.typeId(), extendedTypeNum(RefRecId)) &&
df.name() != "RecId")
info(StrFmt("Таблица - '%1'. Поле - '%2' \n", dt.name(), df.name()));
}
}

Удачи!
Старый 13.08.2004, 16:39   #56  
online
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,612 / 3396 (171) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Ух. Какая полезная ветка.
Перенесу, пожалуй, в проекты.

Спасибо огромное всем участникам.
Ветка не закрывается. Дополнения приветствуются.
Старый 13.08.2004, 17:08   #57  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,339 / 828 (30) +++++++
Регистрация: 13.01.2004
Цитата:
За счет его универсальности мы можем снизить цену в разы ...
Пока что цена очень впечатляющаяя.

А нельзя ли сделать более упрощенный (и более дешевый, естесственно) скрипт для тестирования системы на предмет необходимости дефрагментации?

Думаю, и с коммерческой точки зрения это будет выгодно
Старый 13.08.2004, 17:30   #58  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 624 (25) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
2ALES,
Поле будет обработано дефрагментацией и импортом, если имеет тип RecId или расширяющий RecId. Такие поля совсем не проблемные.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.08.2004, 17:32   #59  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,374 / 451 (20) +++++++
Регистрация: 03.12.2001
Цитата:
А нельзя ли сделать более упрощенный (и более дешевый, естесственно) скрипт для тестирования системы на предмет необходимости дефрагментации?
Хм... А что являтся критерием "необходимости дефрагментации" ?

В качестве гипотезы предлагаю такой вариант - количество оставшихся, неиспользованных recId. Зная среднюю скорость "потребления" этих recId несложно предположить сколько "нам осталось"

В данном случае и скрипт то не нужен. Достаточно посмотреть табличку SystemSequences.
Старый 13.08.2004, 19:55   #60  
ALES is offline
ALES
Участник
Злыдни
 
213 / 44 (2) +++
Регистрация: 11.08.2004
2Maxim Gorbunov опыт нескольких успешных проектов по подъему данных, позволяет мне называть поля - ссылки по recId "проблемными".

"Разжовыванья" всей технологии, особенностей реализации конкретных проектов и объяснения причин отдельного рассмотрения "не RefRecId" не будет.
Воспринимайте как выдранный из контекста кусок реального кода, опубликованный именно в том виде, в котором я счел возможным его опубликовать.
Теги
ax3.0, faq, recid, дефрагментирование recid

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
if (record) vs if (record.RecId) kashperuk DAX: Программирование 18 27.11.2008 18:53
поля, содержащие 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
Форма InventOnhandItem, Почему RecID у InventSum в этой форме всегда 0? Кирилл DAX: Программирование 2 25.05.2004 18:15
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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