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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.01.2017, 08:52   #21  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
А последовательный вызов SysFlushDictionary, SysFlushAOD и SysFlushData не помогает?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 17.01.2017, 09:12   #22  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Это первое что попробовал.
Не помогает.
Пробовал запускать и на клиенте и на сервере.
Старый 25.01.2017, 19:02   #23  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Logger Посмотреть сообщение
Привет. Мы поймали багу на обычной табличке (без наследования).
Наследование ни при чем....
Катастрофа.
Это оказывается вообще by design
https://msdn.microsoft.com/EN-US/library/aa882181.aspx
Цитата:
Restart the AOS after Adding Fields to Tables

When you insert data in a table during development, the SQL statement you use to insert the data is cached in the AOS. Next you might add a new field to the table and persist the change to the database. This causes the SQL statement in the cache to become stale, because the statement is not updated to include the new field. If you reuse the stale statement, the new field is ignored, or an error might occur.

To avoid this problem, restart the AOS after you persist table schema changes to the database. The cache is empty when the AOS restarts.
Интересно, как они сами-то программируют при этом ? А команда прикладных разработчиков им руки до сих пор не вырвала ?
За это сообщение автора поблагодарили: trud (2), gl00mie (5).
Старый 25.01.2017, 19:43   #24  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
в микрософт вроде разрабочки изолированно работают, так что рестрат не должнен быть проблемой
2 trud

Я выше в описании пояснил почему это все же проблема :
1. Как правило после добавления поля - надо их заполнить тестовыми данными и тут же прогнать проверку. Крайне неудобно закрывать клиента со всеми окнами редактора кода, затем снова открывать их и вспоминать что и где было. Это очень сильно замедляет процесс разработки. Особенно "приятно" это ощущать когда проект уже стартовал, надо срочно пофиксить баги, над душой стоит начальник с воплем, что ты сейчас зафакапишь нам все внедрение, а ты в очередной раз перестартуешь аос и снова открываешь редактор кода там где он был открыт 2 минуты назад

2. У меня к разработке может быть подключен вебпортал в котором крутится функциональность, которую я довожу до ума. Нашел ошибку - подправил код, снова продолжаю тестирование.
Все перестартовывать крайне неудобно даже для одного разработчика.

Кроме того, разве у нас запретили совместную разработку на одном аосе ? Нигде не видел такого указания.
Да и в чем проблема то ? Дописать в ядре аналог классов SysFlushDictionary, SysFlushAOD и SysFlushData чтобы обнуляли соответствующий кеш объектов и все.
Это просто лень и наплевательское отношение к коллегам по прикладной разработке.

Последний раз редактировалось Logger; 25.01.2017 в 19:49.
Старый 25.01.2017, 19:51   #25  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Надо будет попрбовать запустить аос с ключом
-INTERNAL=NOCURSORREUSE

есть подозрение, что поможет.
Старый 25.01.2017, 20:10   #26  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Проверил, похоже
-INTERNAL=NOCURSORREUSE
нас спасает. Не удается повторить глюк.

Правда это достигается ценой снижения производительности. Но в деве это некритично.
За это сообщение автора поблагодарили: fed (3), Ace of Database (3), Perc (2), ax_mct (3), alex55 (3), S.Kuskov (2), Товарищ ♂uatr (1).
Старый 27.01.2017, 01:50   #27  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Logger Посмотреть сообщение
Проверил, похоже
-INTERNAL=NOCURSORREUSE
нас спасает. Не удается повторить глюк.

Правда это достигается ценой снижения производительности. Но в деве это некритично.
Круто, у меня под рукой всегда скрипт рестарта АОСа, думал это рутинная операция для дев
А где вы этот ключ нашли, мне что то гугл не хочет показывать...
По поводу наплевательского отношения, так это же не первый случай, на разработчиках бабла не срубишь и они где то в конце списка, если вообще там
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 27.01.2017, 07:41   #28  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Link Посмотреть сообщение
А где вы этот ключ нашли, мне что то гугл не хочет показывать...
На форуме было
internal

Аудит блокировок

ошибка update_recordset

Последний раз редактировалось Logger; 27.01.2017 в 07:50.
За это сообщение автора поблагодарили: Link (5).
Старый 27.01.2017, 11:31   #29  
VORP is offline
VORP
Участник
Аватар для VORP
 
146 / 95 (4) ++++
Регистрация: 26.05.2006
Наверное не то, но недавно натолкнулся, в базу знаний как говорится. На форму LedgerParameters Добавили ReferenceField. Поле сохраняется, но пишет что оно не извлечено. Оказалось что проблема в том что на форме удалён супер в методе init, и это стандарт. Как следствие дополнительные датасорсы по Reference Field не Outer джойнятся.
Старый 27.01.2017, 14:41   #30  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Парад "Неизвлеченных" полей.
На форме CustTable в источнике данных CustTable надо перекрыть метод executeQuery() вот так:
X++:
public void executeQuery()
{
    QueryBuildDataSource    qbds = this.query().dataSourceName(this.name());
    ;
    qbds.orderMode(OrderMode::GroupBy);
    super();
}
Миниатюры
Нажмите на изображение для увеличения
Название: НеИзвлечено.jpg
Просмотров: 484
Размер:	218.0 Кб
ID:	11162  

Последний раз редактировалось Ace of Database; 27.01.2017 в 14:43.
Старый 27.01.2017, 16:36   #31  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Парад "Неизвлеченных" полей.
...
Ну это не баг.
Просто из-за группировки, поля из базы не выбраны и ядро об этом сигнализирует. И это хорошо.
Старый 27.01.2017, 17:08   #32  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Да, приятно самому управлять программно надписью "Поле не извлечено", именно когда сам этого хочешь
Старый 30.01.2017, 13:22   #33  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Logger Посмотреть сообщение
Да, спасибо, я искал документацию, и вот что удалось найти:

The Internal command-line parameters


Axapta has a number of command-line parameters which extends the formal and documented list of parameters. All of these takes the form -INTERNAL=something, where something denotes the flavor of the parameter. Below is a list of parameters maintained by the BackOffice Feature Team (links to whitepapers appear where appropriate):

-INTERNAL=NOCURSORREUSE Disable the SQL cursor reuse mechanism. Hurts performance, improves easy of tracing/debugging

-INTERNAL=COMMENTS Insert comments in the generated SQL showing the values of placeholders.

-INTERNAL=RELAXEDONTTSLEVEL Suppress the TTS level checking. Should only be used with care.

-INTERNAL=RELAXEDONUPDATE Suppress the checks on updates, and deletes (manipulating data which was not seleted locked)

-INTERNAL=UNIQUEINDEXES Force all Axapta indexes to be created unique (i.e. by appending the RecId column to the index). Requires the database to be re-indexed to be applied to the database.

-INTERNAL=SYSLASTVALUE Make the table SysLastValue be stored in Axapta internal storage (as opposed to the SQL database). For backward compatibility only.

-INTERNAL=SYSLASTVALUECACHE:cacheMode Overrule the default caching method on the system table SysLastValue. Default is 3 (“NotFound”), valid values 0 through 3. Used for testing and debugging purposes only.

-INTERNAL=MONOCASE Simulate the way the Oracle-version handles indexed fields, i.e. lower (“mono”) case the data. Used for testing and debugging purposes only.

-INTERNAL=NODATAAREAID Simulate the “SavePerCompany” table property to be “FALSE” on all tables. To be used in benchmarking.

-INTERNAL=NOSYNCTABLELOCK Don’t apply exclusive tablelock on a table being synchronized.

Еще есть для клиента:

-INTERNAL=NOMODALBOXES switch prevents Axapta from different pop-ups during the process.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
За это сообщение автора поблагодарили: sukhanchik (6), Logger (3), Ace of Database (3), Raven Melancholic (2), gl00mie (3), -DocSerzh- (1).
Старый 30.01.2017, 14:33   #34  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Да, прикольная ссылочка. Мне тоже попадалась.
Кстати, если открыть ax32Serv.exe и поискать в UTF16 подстроку NOCURSORREUSE то рядом с ней найдется еще кучка параметров, которые в указанной ссылке не упомянуты (конечно без описания, но у некоторых по названию ясно что делают) :

ENABLEREFERENCECOUNTERTRACE
ENABLEEVALSTACKINDEXCHANGETRACE
HANDLEASSIGNMENT:NO
SKIPUTILLAYERSQUERY
FORCECLISTRCMP

DELETECONFIGFILE
CRASHLOGPOSTFIX:
RECCACHE:
REPORTWARNINGS
SILENT
NOUNLOADONCOMPILE
NOVCS
NOARRAYFETCH:
OLDCOMPILEROUTPUT
STRICTSYNTAX
RELAXEDSYNTAX
NOSYNCTABLELOCK
NODATAAREAID
GENERATEKEYHELP
NOMODALBOXES
AOCPLOG
CSDEBUGLOG
SYSLASTVALUECACHE:
MAXCACHELEVEL:
IMPORTEXPORTID
EXTRACTDOCUMENT
UNIQUEINDEXES
STRICTONUPDATE
SHOWUNFREED:
STRICTONTTSLEVEL
RELAXEDONUPDATE
RELAXEDONTTSLEVEL
STATISTICS
SHOWSQLERROR
MOVEAOTELEMENTS
NOCURSORREUSE
SHOWDEBUG
CLASSONSERVER
REVERSEMAP
NORESTRICTED
NOSCOPE

Последний раз редактировалось Logger; 30.01.2017 в 14:35.
Старый 30.01.2017, 15:37   #35  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Надпись "Поле не извлечено" очень полезна при модификации форм, на которых отображаются сгруппированные данные. При добавлении новых полей есть шанс забыть сделать по ним группировку.
Раньше в таких случаях отображалось пустое значение, а сейчас - "Поле не извлечено".
Например, в форму "в наличии" мне надо было добавить отображение остатков в разрезе самодельных полей в партии товара.
Надпись "Поле не извлечено" напомнила, что надо залезть в класс InventDimCtrl_Frm_OnHand и добавить в метод modifyQuery группировку по самодельным полям.

Последний раз редактировалось Ace of Database; 30.01.2017 в 15:40.
За это сообщение автора поблагодарили: Logger (1), gl00mie (2), dech (2).
Старый 04.07.2019, 17:35   #36  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Экспресс-вариант: временно изменить на таблице свойство CacheLookup в None.

Главное потом не забыть вернуть обратно.
Старый 04.07.2019, 21:17   #37  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от alex55 Посмотреть сообщение
Экспресс-вариант: временно изменить на таблице свойство CacheLookup в None.

Главное потом не забыть вернуть обратно.
Какую проблему это решает?
Старый 18.07.2019, 18:38   #38  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Какую проблему это решает?
Помогало с поле "не извлечено" на формах без рестарта AOS.
Старый 19.07.2019, 13:48   #39  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от alex55 Посмотреть сообщение
Помогало с поле "не извлечено" на формах без рестарта AOS.
Мне тоже сперва так показалось. Я игрался этим свойством, но по факту оно не влияет.

Внимательно посмотрите описанный мной пример как воспроизводить баг.
Ядро держит некий пул курсоров и случайным образом хватает оттуда объекты, так что в итоге при последовательном добавлении нескольких полей в табличку может получиться так, что у вас в пуле будут разные курсоры, с корректным перечнем и с неправильным (разным количеством полей). По несчастливой случайности при выполнении запроса из аксапты может попасть курсор с корректным числом полей и у вас создастся ложное ощущение, что проблема решена, но если попробовать задействовать больше курсоров (открыть 5-10 обозревателей таблички или сделать несколько параллельных вставок в БД), то тут-то проблема и проявится.
Старый 10.08.2019, 14:36   #40  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Заметил, что если вызвать для источника данных, на котором "Поле не извлечено" метод research(), то поле оживает до закрытия формы. То же самое - поле оживает при нажатии на кнопку F5.
Условие: на форме должна быть отображена только одна запись.
Если на форме отображено несколько записей, то надо встать на уникальное поле на одной из записей - нажать правой кнопкой мыши и выполнить команду контекстного меню "Фильтровать по выбору". Тогда на форме останется только одна запись, и "Поле не извлечено" извлечется.
Можно нажать первый раз "Фильтровать по выбору". Потом нажать второй раз "Фильтровать по выбору". На форме вновь отобразятся все записи и с извлеченными полями. Вуаля! Не надо АОС рестартовать.

Может это конечно специальная фича, которая срабатывает только раз в году 10 августа по субботам.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/

Последний раз редактировалось Ace of Database; 10.08.2019 в 14:46.
Теги
ax2012, command line parameters, internal, nocursorreuse, баг, не извлечено, параметры командной строки, поле не извлечено

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX Sustained Engineering: Announcing Compatibility Certification of App-V 5.0 and TFS 2012 with Dynamics AX 2012 CU5 and Dynamics AX 2012 R2 CU1 Blog bot DAX Blogs 0 01.06.2013 04:38
AX 2012 R2 инсталляция polygris DAX: Администрирование 4 29.04.2013 15:38
dynamics-community.at: Neue Product Release Training Web Seminars für Dynamics AX 2012 R2 Blog bot DAX auf Deutsch 0 17.01.2013 12:11
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11

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

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

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