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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.02.2006, 12:27   #61  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от MironovI
To Recoilme - Начиная с версии 3.0 все запросы без хита forupdate на куле выглядят как select from table (nolock) - поэтому для отчетов вотпросы с блокировками на запись чтение не актуальны, поправьте если я не прав..
"другимисловамидлярешенияпроблемыуказаннойchelнадочтениеинвентсамаивычитаниеинвенттрансаделатьводнойтранзакцииспараметромforupdateприэтомповесиввсюсистемунапрочь"

Но ведь гораздо интересней, если он прочитает ссылки, разберется с этой проблемой и найдет другие пути её решения, разве я не прав?
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 02.02.2006, 12:48   #62  
ahtoh
Гость
 
n/a
Цитата:
Сообщение от kvan
А кому нужно было предложить?
Те кто понимает о чем речь и так знают, только вопрос такой - во сколько вы оцениваете трудозатраты на такую модификацию?

кому кому, афтару треда
а оценка трудозатрат - это уже второй вопрос, кстати я не считаю, что это такая уж сложная модификация, к тому же аналогичная уже есть, можно содрать оттуда
Старый 02.02.2006, 12:51   #63  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Цитата:
Сообщение от ahtoh
кому кому, афтару треда
а оценка трудозатрат - это уже второй вопрос, кстати я не считаю, что это такая уж сложная модификация, к тому же аналогичная уже есть, можно содрать оттуда
спасибо за предложенный вариант, хотя предложенный запрос работает достаточно быстро, все равно варианты еще было бы неплохо рассмотреть.
Старый 02.02.2006, 13:06   #64  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ahtoh
кому кому, афтару треда
а оценка трудозатрат - это уже второй вопрос, кстати я не считаю, что это такая уж сложная модификация, к тому же аналогичная уже есть, можно содрать оттуда
Не верьте.

Предложенная модификация породит другие проблемы.
и совершенно другой подход к программированию.
в частности, промежуточные остатки надо закрывать (сводить к нулю)
см. http://1c.mazzy.ru/articles/generation1c/#070
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: dn (3).
Старый 02.02.2006, 13:18   #65  
ahtoh
Гость
 
n/a
необязательно закрывать, да, таблица с итогами будет немаленькой, но все равно это будет работать быстрее, чем считать сумму с начала первоздания (или отматывать с конца)
Старый 02.02.2006, 13:23   #66  
ahtoh
Гость
 
n/a
ну а насчет трудозатрат - тут ведь все относительно, если сильно нужно - то сделать можно
Старый 02.02.2006, 13:32   #67  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ahtoh
необязательно закрывать, да, таблица с итогами будет немаленькой, но все равно это будет работать быстрее, чем считать сумму с начала первоздания (или отматывать с конца)

Вы просто не пробовали. Попробуйте.

Как? Просто: Например, заведите по 1000 (например) финансовых аналитик и job'иком разнесите проводки со случайными комбинацияем аналитик. А теперь перенесите начальное сальдо на несколько лет с сохранением аналитики.

А потом расскажите во сколько раз таблица промежуточных итогов превышает таблицу проводок.

Нет, уж... Если вы не предусматриваете механизмы закрытия в ноль, то лучше советуйте получать итоги с начала времен.

Кстати: вы никогда не задумывались ЗАЧЕМ нужна галочка "Не учитывать коды аналитики" при переносе начального сальдо? Подумайте... Подумайте почему ее название начинается с НЕ...

Люди!!! Думайте! Пожалуйста.
__________________
полезное на axForum, github, vk, coub.
Старый 02.02.2006, 13:39   #68  
chel is offline
chel
Участник
 
153 / 10 (1) +
Регистрация: 02.09.2003
Цитата:
Сообщение от Recoilme
Я так понял у Вас MS SQL. =>
Учите мат часть:
1
2
3
4

В аксе используется пессиместическая модель чтения данных, цЫтата из "4":


Про версионность пока наверно не стоит заморачиваться
И чего? К чему эта ссылка и цитата? Мы не можем блокировать InventSum и InventTrans при "пессимистической стратегии", т.к. даже если мы заблокируем изменения, в них легко будут добавляться новые записи (фантомы), от которых уровень изоляции, который применяется в аксапте, не спасет.

Цитата:
Сообщение от Recoilme
Но ведь гораздо интересней, если он прочитает ссылки, разберется с этой проблемой и найдет другие пути её решения, разве я не прав?
Однако, если Вы знаете, как решается эта проблема - может быть, стоит рассказать этот подход. Вдруг здесь не я один такой тупой и не вижу очевидного?
Старый 02.02.2006, 13:56   #69  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от chel
Однако, если Вы знаете, как решается эта проблема - может быть, стоит рассказать этот подход. Вдруг здесь не я один такой тупой и не вижу очевидного?
естественно знаю. И об этом уже сто раз писалось на форуме.

Подходите к менеджерам и объясняете им ЧТО ОСТАТКИ НА ВРЕМЯ - это бред. Т.к. пока они смотрят отчет - остатки меняются. => качаете таблицы в хранилище по ночам и показываете остатки в отчетах из хранилища. Используя ОЛАП или RS. Динамические остатки (на время) - отражаете в формах ввода информации, если это критично им. Например в инвентаризации. На момент разноски/коммита - обновляете. Отчеты такого рода не стоят на "живых базах". Вы просто всё повесите, но никаких некорректностей -не будет. Исключения - для оракл, НО И В ВЕРСИОННОЙ СУБД - вы тоже все повесите. Потому что пока вы будете читать данные - будут плодится версии которые будут тормозить систему. В результате ОРАКЛ/2005 либо отправит вас в сад со своими долгоиграющими запросами, либо Вы снимите Ваш отчет на точку актуальности потратив кучу ресурсов и наплодив кучу мусора. Если конечно у Вас не игрушечная базща данных с миллионом проводок.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/

Последний раз редактировалось Recoilme; 02.02.2006 в 14:08.
Старый 02.02.2006, 14:13   #70  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от chel
И чего? К чему эта ссылка и цитата? Мы не можем блокировать InventSum и InventTrans при "пессимистической стратегии", т.к. даже если мы заблокируем изменения, в них легко будут добавляться новые записи (фантомы), от которых уровень изоляции, который применяется в аксапте, не спасет.
Блин... писал писал и не сохранилось. 2 раз ниасилю, поэтому пишу кратко.
0. Выходит я тупой.. потому,что:
1. В одной транзакции читаете с форапдейтом и никаких фантомов у вас не будет.
2. Этот механизм применяется в Аксе повсеместно например при чтении остатков
3. Если бы были какие-то коллизии у вас были бы отрицательные остатки при запрещенном отрицательном складе и т.п. БРЕД у Вас в базе бы был
4. Если у Вас они и есть - это из-за ошибок в алгоритмах, скорее всего Ваших Ошибок В Ваших Алгоритмах, а не фантомов.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 02.02.2006, 14:34   #71  
chel is offline
chel
Участник
 
153 / 10 (1) +
Регистрация: 02.09.2003
Цитата:
Сообщение от Recoilme
Блин... писал писал и не сохранилось. 2 раз ниасилю, поэтому пишу кратко.
0. Выходит я тупой.. потому,что:
1. В одной транзакции читаете с форапдейтом и никаких фантомов у вас не будет.
2. Этот механизм применяется в Аксе повсеместно например при чтении остатков
3. Если бы были какие-то коллизии у вас были бы отрицательные остатки при запрещенном отрицательном складе и т.п. БРЕД у Вас в базе бы был
4. Если у Вас они и есть - это из-за ошибок в алгоритмах, скорее всего Ваших Ошибок В Ваших Алгоритмах, а не фантомов.
В аксе повсеместно применяется только получение остатков на текущий момент. InventTrans не запрашивается

В том подходе, который здесь озвучили (вычитание оборотов с даты получения остатков до текущего момента) нужно сначала запросить InventSum - а потом через некоторое (продолжительное) время InventTrans, в который в момент выполнения запроса к InventSum кто-то третий добавляет записи, т.к. InventTrans пока не блокирован. Да если бы он и был блокирован - то добавлять записи никто бы не помешал - все-таки это не тот уровень изоляции.

По поводу повторной шпильки в мой адрес: еще раз говорю - напишите Ваш Корректный Алгоритм, который корректно отработает эту ситуацию. Мне он не очевиден пока.
Старый 02.02.2006, 14:37   #72  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Цитата:
Сообщение от ahtoh
необязательно закрывать, да, таблица с итогами будет немаленькой, но все равно это будет работать быстрее, чем считать сумму с начала первоздания (или отматывать с конца)
Могу еще добавить что такой механизм БЫЛ реализован на одном из проектов (крупная оптово-розничная компания ) и от него отказались в результате, поскольку база начала сильно тормозАть.. что отчетам хорошо - то для разноски документов смерть..
Старый 02.02.2006, 14:42   #73  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
И может оффтоп конечно - КОМУ ВООБЩЕ НУЖНЫ ОПЕРАТИВНЫЕ ДАНЫЕ ПО ОСТАТКАМ КОТОРЫЕ БЫЛИ ВЧЕРА?? Смотрите наличие, смотрите проводки, нужны АНАЛИТИЧЕСКИЕ отчеты - добропожаловать вон из ТРАНЗАКЦИОННОЙ базы в warehouse, olap и проч. Понимаю конечно что убедить в этом пользователя иногда себе дороже чем по тихому сделать то что он просит и не важно что ему это по сути не нужно.
За это сообщение автора поблагодарили: Recoilme (3).
Старый 02.02.2006, 14:44   #74  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от MironovI
добропожаловать вон из ТРАНЗАКЦИОННОЙ базы в warehouse, olap и проч.
Полностью поддерживаю подход.
Но изначальный вопрос был о другом, по-моему.
__________________
полезное на axForum, github, vk, coub.
Старый 02.02.2006, 14:52   #75  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Цитата:
Сообщение от chel
В том подходе, который здесь озвучили (вычитание оборотов с даты получения остатков до текущего момента) нужно сначала запросить InventSum - а потом через некоторое (продолжительное) время InventTrans, в который в момент выполнения запроса к InventSum кто-то третий добавляет записи...
Я к тому что беспокоится о том, что в моент построения отчета по транзакционной базе кто-то изменит данные и они не будут 100% верны не стоит, особенно при чтении (nolock) как это везде в отчтах - надо просто понимать что это так. Точные данные которые можно предоставить в виде отчетности партнерам или государству в Аксапте вооще можно получить только по закрытым периодам имхо..
Старый 02.02.2006, 15:22   #76  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от chel
По поводу повторной шпильки в мой адрес: еще раз говорю - напишите Ваш Корректный Алгоритм, который корректно отработает эту ситуацию. Мне он не очевиден пока.
В одной транзакции читаете с форапдейтом и никаких фантомов у вас не будет.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 02.02.2006, 15:53   #77  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от chel
В том подходе, который здесь озвучили (вычитание оборотов с даты получения остатков до текущего момента) нужно сначала запросить InventSum - а потом через некоторое (продолжительное) время InventTrans, в который в момент выполнения запроса к InventSum кто-то третий добавляет записи, т.к. InventTrans пока не блокирован. Да если бы он и был блокирован - то добавлять записи никто бы не помешал - все-таки это не тот уровень изоляции.

По поводу повторной шпильки в мой адрес: еще раз говорю - напишите Ваш Корректный Алгоритм, который корректно отработает эту ситуацию. Мне он не очевиден пока.
Остатки на 01 января
PHP код:
ТЫТЫСЫБЕГИН

SELECT  
[I]ФОРАПДЭЙТ [/ITOP 100 dbo.INVENTSUM.ITEMID AS ITEMIDSUM(dbo.INVENTSUM.POSTEDQTY) - SUM(dbo.INVENTTRANS.QTY) AS QTY
                      
dbo.INVENTSUM.INVENTDIMID
FROM         dbo
.INVENTSUM LEFT OUTER JOIN
                      dbo
.INVENTTRANS ON dbo.INVENTSUM.INVENTDIMID dbo.INVENTTRANS.INVENTDIMID AND 
                      
dbo.INVENTSUM.ITEMID dbo.INVENTTRANS.ITEMID
WHERE     
(dbo.INVENTTRANS.DATEPHYSICAL >= CONVERT(DATETIME'2006-01-01 00:00:00'102)) AND 
        ((
dbo.INVENTTRANS.STATUSRECEIPT 1) OR
                      (
dbo.INVENTTRANS.STATUSISSUE 1) OR
                      (
dbo.INVENTTRANS.STATUSRECEIPT 2) OR
                      (
dbo.INVENTTRANS.STATUSISSUE 2) OR
                      (
dbo.INVENTTRANS.STATUSRECEIPT 3) OR
                      (
dbo.INVENTTRANS.STATUSISSUE 3))
GROUP BY dbo.INVENTSUM.ITEMIDdbo.INVENTSUM.INVENTDIMID

ТЫТЫСЫКОММИТ 
Люди, не обращайте внимания на этот код, так делать на реляционной базе не стоит!
Это просты мы с chel пиписьками меряемся..
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 02.02.2006, 15:55   #78  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Цитата:
Сообщение от mazzy
Полностью поддерживаю подход.
Но изначальный вопрос был о другом, по-моему.
тем не менее много полезного
Старый 02.02.2006, 18:06   #79  
chel is offline
chel
Участник
 
153 / 10 (1) +
Регистрация: 02.09.2003
Цитата:
Сообщение от Recoilme
Люди, не обращайте внимания на этот код, так делать на реляционной базе не стоит!
Это просты мы с chel пиписьками меряемся..
Продолжим меряние

Есть небольшие проблемы в этом запросе
1. Он не учтет ту номенклатуру, по которой сейчас нет остатков. Например, если 31 декабря по "чистой" номенклатуре был сделан приход 5 шт, а 2 января расход -5, то на 1 января остаток не отобразится.
2. Даже, если сделать full outer join этих таблиц, чтобы решить п.1., то к этому никак не прикрутить еще и InventDim с отбором хотя бы по складу (а как жить без этого )

PS. В Вашем случае совсем не обязательно было делать forupdate и тытысы-операции - все равно все одним запросом получаете


Цитата:
Сообщение от mazzy
А потом расскажите во сколько раз таблица промежуточных итогов превышает таблицу проводок.
Рассказываю. На примере 2-х лет. Промежуточные итоги меньше проводок в 2 раза. Уточнение для пуристов - это не претендует на универсальность и общеупотребимость. Про это пущай вендор думает.
Старый 02.02.2006, 18:07   #80  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от Recoilme
Люди, не обращайте внимания на этот код, так делать на реляционной базе не стоит!
Канешна не стоит, т.к. отсутствует связь по DATAAREAID, остатки из InventSum выберутся только те, по которым есть проводки и напоследок они умножатся на кол-во проводок по номеклатуре+аналитика данного остатка

Последний раз редактировалось Alexius; 02.02.2006 в 18:16.
Теги
остатки, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Остатки на дату InventSumDatePhysical Raven Melancholic DAX: Программирование 6 10.05.2007 15:29
Остатки товара на определенную дату Lucky13 DAX: Программирование 7 27.03.2007 14:27
Скачут остатки Def DAX: Программирование 3 03.05.2006 14:27
Цена на дату создания заказа/закупки George Nordic DAX: Функционал 2 29.06.2005 15:56
Остатки dog37 DAX: Программирование 6 02.06.2005 11:25

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

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

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