|
![]() |
#1 |
Участник
|
А можно ли из InventSum удалить пустые строки - или чем аукнется тоже?
|
|
![]() |
#2 |
Member
|
Цитата:
Сообщение от Хочулия
...
А можно ли из InventSum удалить пустые строки ... Цитата:
Сообщение от Хочулия
...
или чем аукнется тоже? ...
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: Logger (1). |
![]() |
#3 |
Участник
|
Цитата:
А вы не могли бы подробнее раскрыть тему ? Покопал классы InventSumDate InventSumDateDim InventSumDatePhysical InventSumDatePhysicalDim InventSumDateValue InventSumDateValueReport InventSumDateValueReportDim не нашел нигде зависимости от наличия закрытых Inventsum. Исключение - метод \Classes\InventSumDateValueReportDim\newParameters X++: server static InventSumDateValueReportDim newParameters( TransDate _perDate, ItemId _itemId, InventDim _inventDimCriteria, InventDimParm _inventDimParm ) { InventSumDateValueReportDim inventSumDateValueReportDim = new InventSumDateValueReportDim(); InventDimParm inventDimParmGroupBy; Query query; QueryRun queryRun; InventDim inventDim; ; inventSumDateValueReportDim.parmItemId(_itemId); inventSumDateValueReportDim.parmPerDate(_perDate); inventSumDateValueReportDim.parmInventDim(_inventDimCriteria); inventSumDateValueReportDim.parmInventDimParm(_inventDimParm); if (InventTable::find(_itemId).ItemDimCostPrice == NoYes::Yes) { inventDimParmGroupBy = _inventDimParm.data(); inventDimParmGroupBy.setActiveItemDim(InventTable::find(_itemId).DimGroupId); inventSumDateValueReportDim.parmInventDimParm(inventDimParmGroupBy); query = InventSum::newQuery(null,_itemId,_inventDimCriteria,_inventDimParm,inventDimParmGroupBy); query.dataSourceTable(tablenum(InventSum)).findRange(fieldnum(InventSum,Closed)).value(''); queryRun = new QueryRun(query); while (queryRun.next()) { inventDim = queryRun.get(tablenum(InventDim)); inventSumDateValueReportDim.parmInventDim(inventDim); inventSumDateValueReportDim.init(); } inventSumDateValueReportDim.parmInventDimParm(_inventDimParm); } else { inventSumDateValueReportDim.init(); } return inventSumDateValueReportDim; } X++: while (queryRun.next()) { inventDim = queryRun.get(tablenum(InventDim)); inventSumDateValueReportDim.parmInventDim(inventDim); inventSumDateValueReportDim.init(); } |
|
![]() |
#4 |
Участник
|
а пересчет InventSum разве не решит проблему?
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
Может быть Вам имеет смысл сделать партиционирование таблицы на уровне SQL и положить Закрытые записи на другой диск, а на быстром диске оставить только открытые?
__________________
Айрат Вильданов. skype: vildanov.a |
|
|
За это сообщение автора поблагодарили: Logger (1). |
![]() |
#7 |
Участник
|
Цитата:
Но мне кажется что хирургия это более надежный метод. Но более стремный. А вы явные противопоказания к удалению закрытых записей знаете ? |
|
![]() |
#8 |
Участник
|
Цитата:
Напишите, ушло ли что ни-будь и сколько, а ещё лучше, прикрепите сюда логи, там посмотрим... |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от Kasper
![]() Уважаемый Logger, попробуйте запустить мой скрипт, но НЕ делая commit -- пока только посмотрим логи. Я не могу вам квалифицированно ответить на вопрос, нужно ли держать closed записи, но может после запуска скрипта часть из 65 мультов сама уйдёт ? Не по причине, что они closed, а потому что они необоснованные (не базируются на INVENTTRANS)
Напишите, ушло ли что ни-будь и сколько, а ещё лучше, прикрепите сюда логи, там посмотрим... По живой рабочей с кучей пользователей стремновато это делать. Еще заметил что в скрипте есть строки вида X++: using T1 b on a.DATAAREAID = b.DATAAREAID and a.ITEMID = b.ITEMID and a.INVENTDIMID = b.INVENTDIMID Или просто забыли добавить SUSTR(NLS_LOWER(a.DATAAREAID),1,4) и SUSTR(NLS_LOWER(a.ITEMID),1,20) ? |
|