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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.03.2005, 08:29   #1  
MKhaziev is offline
MKhaziev
Участник
 
16 / 10 (1) +
Регистрация: 08.10.2004
Адрес: Ижевск
Обезличивание аналитики "Партия"
Приветствую всех!

Создано большое количество складских переносов с головного склада на региональные склады и магазины. По готовой продукции ведется аналитика "Партия".
Теперь есть потребность обезличить партии на магазинах, т.е. предпологается обойти все строки InventDim по данному магазину и реальную партию заменить на обезличенную, а потом еще совпадающие аналитики объединить.

Не могу понять, как можно этого добиться. Просто inventDim.InventBatchId вроде переделать нельзя. То что ниже написано вроде тоже не то, последнюу строку кода написал, но так и не понял.

InventDim inventDim;
InventDim inventDimShadow;
InventBatch inventBatch;
InventBatch inventBatchShadow;
;
WHILE SELECT FORUPDATE inventDim WHERE inventDim.InventLocationId == _InventLocationId
{
// Если этот ИнвентДим уже с объединенной партией, то пропустить
if(substr(inventDim.inventBatchId, 1, strlen(_AggregateMask)) == _AggregateMask)
continue;

// Найти партию к данному ИнвентДим
SELECT FIRSTONLY inventBatch WHERE inventBatch.inventBatchId == inventDim.inventBatchId;
if(!inventBatch)
continue;

// Найти объединенную партию, если не нашли то создать
SELECT FIRSTONLY inventBatchShadow WHERE inventBatchShadow.inventBatchId == "Мг-" + inventBatch.itemId;
if(!inventBatchShadow)
{
if(!_SilenceMode) info("Создание партии " + _AggregateMask + inventBatch.itemId);
TTSBegin;
inventBatchShadow.clear();
inventBatchShadow.initValue();
inventBatchShadow.itemId = inventBatch.itemId;
inventBatchShadow.inventBatchId = _AggregateMask + inventBatch.itemId;
inventBatchShadow.write();
TTSCommit;
}

// Найти объединенный ИнвентДим, если не нашли то создать
inventDimShadow = InventDim::findDim(inventDim);
inventDimShadow.InventBatchId = inventBatchShadow.inventBatchId;
inventDimShadow = InventDim::findOrCreate(inventDimShadow);

// Перенести ИнвентДим в объединенный
if(!_SilenceMode) info(strfmt("Перенос данных из партии %1 в %2", inventDim.inventDimId, inventDimShadow.inventDimId));
inventDimShadow.merge(inventDim);
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отчет типа "ОСВ по счету в разрезе аналитики" kosenkov DAX: Функционал 13 02.03.2006 16:57
Поле "Номер аналитики" Svetlana0 DAX: Функционал 3 27.10.2005 17:13
При резервировании не учитывается аналитика Партия? KIV DAX: Функционал 32 06.08.2004 13:23
Зачем нужны "Параметры кодов аналитики"? Кирилл DAX: Программирование 2 16.04.2004 14:22
Использование складской аналитики "Ячейка" Елена Сысовская DAX: Функционал 3 25.03.2003 20:27
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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