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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.02.2009, 22:56   #1  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от miklenew Посмотреть сообщение
Да у меня остатки расходяться с проводками.
..
Есть подозрения что это из-за блокировок
Сами по себе блокировки - не абсолютное зло, как многие считают, а одно из средств обеспечения целостности данных в системе, поддерживающей работу нескольких конкурентных пользователей. И являться причиной неверных остатков в нормально спроектированной системе (а стандартную логику AX в области управления запасами я считаю нормально спроектированной ) не могут

Цитата:
Но очень хочется, чтоб это оказалось из-за блокировок
Увы

Я бы прислушался к совету Wamr

Если все-таки очень хочется найти "горячую" номенклатуру, можно попробовать такой "ход конем":
- настраиваем поголовный мониторинг длинных запросов всем пользователям
- включаем на AOS-е опцию internal=comments (в 3.0 работает, как в других версиях - не знаю). Теперь запрос сохранится со значениями литералов (в комментариях)
- собираем эту статистику какое-то время
- далее анализируем с группировкой (приводим текст запроса к varchar и группируем). Так как запрос "тяжелый", желательно делать это не на работающей системе, а выгрузить SYSTRACETABLESQL в отдельную БД. Еще лучше - на выделенный сервер. Еще лучше - дополнительно обработать табличку, добавив хэш по тексту запроса. Я таким образом строил куб на основе SYSTRACETABLESQL

Но все равно непонятно (с), что это даст. Рискну предположить, что "горячей" окажется наиболее часто продаваемая номенклатура. Предложим пореже продавать? Не оценят
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: Logger (6), Lucky13 (2).
Старый 12.02.2009, 09:36   #2  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Vadik Посмотреть сообщение
Сами по себе блокировки - не абсолютное зло, как многие считают, а одно из средств обеспечения целостности данных в системе, поддерживающей работу нескольких конкурентных пользователей. И являться причиной неверных остатков в нормально спроектированной системе (а стандартную логику AX в области управления запасами я считатаю нормально спроектированной ) не могут
Могут. Сам делал руками кривые проводки на стандарте Ax 3.0 sp4.
Долго подбирал данные, но смог подобрать.
Правда транзакции там ни причем были.
А потом мне нужно это найти не на стандарте.
Прилага на 80% модифицирована по формуле mazzy.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 12.02.2009, 12:33   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от miklenew Посмотреть сообщение
Могут. Сам делал руками кривые проводки на стандарте Ax 3.0 sp4.
Долго подбирал данные, но смог подобрать.
Интересно каким образом ?
Старый 12.02.2009, 23:32   #4  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Logger Посмотреть сообщение
Интересно каким образом ?
1) Создаём новую номенклатуру new активны склад и ГТД
2) Создаём закупку
3) Создаём строку закупки new 2 шт (скл1 + гтд1) и
4) ещё одну строку закупки new 3 шт (скл1 + гтд2)
5) Разносим отборочную накладную
6) создаём журнал перенос (резервирование автоматическое)
7) Создаём строку журнала new 6 шт скл1->скл2. Сохраняем.
8) Смотрим проводки
-2шт
скл1 -> скл2
гтд1 -> гтд1
-3 шт
скл1 -> скл2
гтд2 -> гтд2
-1шт
скл1 -> скл2
9) уменьшаем количество по строке до 5 шт
сохраняем, смотрим
-2шт
скл1 -> скл2
гтд1 -> гтд1
-2шт
скл1 -> скл2
гтд1 -> гтд1
-1шт
скл1 -> скл2
гтд1 -> ?(пусто)

Ну т.е. вот так см картинку
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 433
Размер:	62.3 Кб
ID:	4318  
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.

Последний раз редактировалось miklenew; 12.02.2009 в 23:37.
Старый 13.02.2009, 00:12   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от miklenew Посмотреть сообщение
1) .........
.........
-2шт
скл1 -> скл2
гтд2 -> гтд2
-1шт
скл1 -> скл2
гтд2 -> ?(пусто)

Ну т.е. вот так см картинку
Прикольная картинка получилась, обязательно как-нить попробую повторить на досуге, но:
- откуда взялся странный вывод о том, что причина в блокировках? я бы сказал, что проблема в некорректной работе механизма авторезервирования, если всё так действительно происходит. Надо банально его протрейсить и найти баг....
- вы выше говорили что у вас "остатки расходяться с проводками", а здесь просто "испортилась" приходная проводка (InventTrans), при этом остатки у вас разве "разошлись" (InventSum)?
__________________
Zhirenkov Vitaly
Старый 13.02.2009, 06:31   #6  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от ZVV Посмотреть сообщение
- откуда взялся странный вывод о том, что причина в блокировках?
Да нет. Одно с другим не связано.
Там я вывернулся. Придумал выход.
Просто Vadim написал, что
Цитата:
Сообщение от Vadik Посмотреть сообщение
И являться причиной неверных остатков в нормально спроектированной системе (а стандартную логику AX в области управления запасами я считатаю нормально спроектированной ) не могут
Я ответил, что могут.
Не стоит доверять системе на 100%. Всякое бывает.
A logger попросил пример.
Это пример с блокировками никак не связан.
Просто тема немного ушла.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 13.02.2009, 15:08   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Ну я так и думал. Ваше исходное сообщение можно было понять словно из-за блокировок развалились InventSum и InventTrans. Как видно из примера ничего похожего и близко нет.
Старый 13.02.2009, 16:13   #8  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Процитирую сам себя
Цитата:
Сообщение от miklenew Посмотреть сообщение
A logger попросил пример.
Это пример с блокировками никак не связан.
Просто тема немного ушла.
Та была совсем другая история, она давно закрыта.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 27.02.2009, 21:55   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Vadik Посмотреть сообщение
включаем на AOS-е опцию internal=comments (в 3.0 работает, как в других версиях - не знаю). Теперь запрос сохранится со значениями литералов (в комментариях)
Спасибо за ценную инфу. Очень не хватало такой информации. Правда при использовании обнаружил один баг. - Иногда такое логирование неверно отображает значение параметра.

Как обнаружил - накладывал фильтр по таблице по полю modifiedDate
фильтр такой
X++:
...Addrange(...).value(date2strXpp(systemDateGet()));
отладочная инфа показала что на оракл уходит запрос
AND (MODIFIEDDATE=:IN2/*1900/1/1*/)
а datasource(1).tostring() выдал строку
SELECT * FROM VendTable WHERE (((modifiedDate = TO_DATE('2009-02-27 00:00:00','YYYY-MM-DD HH24:MI:SS'))))

Реально же вернулась нужная строка. Так что получается что для определенных значений параметров логирование SQL-запросов может показать неверную информацию.
Старый 28.02.2009, 14:13   #10  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Logger Посмотреть сообщение
Спасибо за ценную инфу. Очень не хватало такой информации.
ошибка update_recordset

Обратите внимание, что лучше таки использовать совместно с NOCURSORREUSE, т.к. иначе рискуете отловить не все запросы:
Цитата:
Сообщение от Documentation
∙ -Internal=Comments
∙ This option will insert value of bind variables as comment into the
generated SQL statement; Therefore, this option will cause insertion of
an odd number of the character ‘ in a STR field to fail.

∙ -Internal=NoCursorReuse
∙ This option will force Axapta not to reuse internal database cursors;
therefore, if you want to examine the value of bind variable for all
traced SQL statements you must use this option in connection with the
‘–internal = Comments’.

Цитата:
Сообщение от Logger Посмотреть сообщение
Правда при использовании обнаружил один баг. - Иногда такое логирование неверно отображает значение параметра.
...
Странно, не сталкивался... Возможно причина в системных полях (MODIFIEDDATE)? Можете вложить примерчик?
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: Logger (1).
Теги
internal, блокировка, лог, поиск ошибок, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Главная книга / Запросы / Аудит (TransactionLog) Зачем и кому он нужен? ta_and DAX: Функционал 18 24.09.2008 10:14
Эскалация блокировок в MSSQL fomenka DAX: Администрирование 6 24.04.2007 06:02
сброс блокировок при update somebody DAX: Программирование 3 27.03.2007 11:31
?Аудит пользователей Axapta Gray DAX: Администрирование 4 09.06.2004 07:08
Описание функциональности модуля "Аудит действий пользователей системы" D.Cheprasov DAX: Прочие вопросы 2 22.03.2004 04:32

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

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

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