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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.07.2004, 19:02   #1  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
? Комплектация программно?
Добрый день!

Подскажите, я правильно понимаю, что для программной комплектации
по заказу клиента мне нужно писать параллельно в InventTrans и InventDim?
Где-то таким образом:
Создал запись в InventDim c новым ИД, указал аналитику
Создал запись в InventTrans с ИД из InventDim (и прочими параметрами)

Смущает только запись напрямую в таблицы... явно что-то останется неучтенным (например надо же еще в заказе статус менять на отобрано)....

Никто подобного не совершал?
Старый 24.07.2004, 02:16   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Комплектация программно?
Цитата:
Изначально опубликовано linney
Подскажите, я правильно понимаю, что для программной комплектации
по заказу клиента мне нужно писать параллельно в InventTrans и InventDim?
Нет.
Не работайте с таблицами напрямую.
Работайте с классами.
Старый 27.07.2004, 17:40   #3  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
Re: Re: Комплектация программно?
Работаю с классами...
Есть чудный метод, который вызывается из формочки комплектации -

InventTransWMS_Pick::updateInvent(InventTransWMS_Pick, tmpInventTransWMS)

в параметре InventTransWMS_Pick понятное дело самое главное Movement - правильно его создать ручками ПОКА не вышло....
Старый 27.07.2004, 18:26   #4  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Всё просто.
InventMovement::constructNoThrow(salesLine например)
PHP код:
            inventUpdate InventUpd_Picked::newParameters(inventTrans.inventMovement(),
                                                               
inventDim,
                                                               
inventDimParm,
                                                               
inventDim,
                                                               
inventDimParm,
                                                               
pick ? - inventTrans.Qty inventTrans.Qty);
            
inventUpdate.updateNow(); 
__________________
С уважением, Игорь Ласийчук.
Старый 27.07.2004, 19:11   #5  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
Извините за дремучесть - просто не получилось.... А результатом работы этого кусочка что будет?

если инитить Movement из SalesLine - там нет корректных ссылок на TransIdSum, InventTable, DimSearch... и PickQty = 0

updateNow() не метод класса InventUpdate...
Старый 27.07.2004, 19:47   #6  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
впрочем этот код слегка подправленный работает, только речь шла о том чтобы проводки были со статусом "Скомплектовано", если этот кусочек юзать они - "В заказе"
Старый 28.07.2004, 10:23   #7  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
PHP код:
static void Pick(Args _args)
{
    
SalesLine           salesLine SalesLine::findRecId(3481933);
    
InventDim           inventDim;
    
InventDimParm       inventDimParm;
    
InventUpd_Picked    inventUpdate;
    
boolean             pick true;
    ;

    
inventDim salesLine.inventDim();
    
inventDimParm.initFromInventDim(inventDim);

    
inventUpdate InventUpd_Picked::newParameters(InventMovement::construct(salesLine),
                                                   
inventDim,
                                                   
inventDimParm,
                                                   
inventDim,
                                                   
inventDimParm,
                                                   
pick ? - salesLine.SalesQty salesLine.SalesQty);
    
inventUpdate.updateNow();

__________________
С уважением, Игорь Ласийчук.
За это сообщение автора поблагодарили: wojzeh (1).
Старый 28.07.2004, 14:06   #8  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
Спасибо большое!
У меня вроде получилось...

хотя вопреки Маззи новый InventDim я создаю руками...
как-то так:

newInventDim.initValue();
newInventDim.InventLocationId = xxxxxxxxxxxx.InventLocationId;
newInventDim.InventSerialId = xxxxxxxxxxxx..inventSerialId;
newInventDim.InventGTDId_RU = xxxxxxxxxxxx..InventGtdId_RU;

tmpInventDim = InventDim::findDim(newInventDim);
if (! tmpInventDim)
{
newInventDim.inventDimId = InventDim::newDimId();
newInventDim.doInsert();
}
else
{
newInventDim.inventDimId = tmpInventDim.inventDimId;
}
Старый 28.07.2004, 14:32   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано linney
хотя вопреки Маззи новый InventDim я создаю руками...
как-то так:
Зря
Код:
newInventDim.clear();
newInventDim.initValue();
newInventDim.InventLocationId = xxxxxxxxxxxx.InventLocationId;
newInventDim.InventSerialId = xxxxxxxxxxxx..inventSerialId;
newInventDim.InventGTDId_RU = xxxxxxxxxxxx..InventGtdId_RU;

newInventDim = inventDim::findOrCreate(newInventDim);
Старый 28.07.2004, 14:41   #10  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
Н-да...
велика Ахарта, если б еще дока была по функциям да по классам - цены ей бы не было.

Спасибо за помощь!
Старый 29.07.2004, 16:57   #11  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
Опять про комлектацию и отборочную накладную...

Спецификация отгрузки (которая сидит в SalesShippingStat)
создается классами вместе со всеми остальными таблицами
Отборочной накладной SalesParmUpdate, ...Parmtable, ...ParmLine,
...ParmSubTable
разносится SalesFormLetter::Update
при этом ссылка PackingSlipId у меня в SalesShippingStat не прописывается

Вопрос: в каком месте из 20 вложенных классов при разноске отборочной накладной
прописывается ссылка на спецификацию отгрузки?
Старый 29.07.2004, 17:06   #12  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
А в дебагере отслеживал SalesFormLetter.Run.
По-моему, это происходит в классе SalesFormLetterReport_PackingSlip. Но могу и ошибаться - давно дело было
Старый 29.07.2004, 17:13   #13  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
SalesFormLetter_PackingSlip

таки где-то глубже и уже после разноски Отборочной накладной...
по логике создали отборочную накладную записало ее в CustPakingSlipJour
и только после этого можно вновь созданный идентификатор PackingSlipId
прописать в SalesShippingStat,
но, блин, где это делается я пока дебагером не отловил... по коду видно, что
в процессе SalesShippingStat удаляется раз пятнадцать, а вот где заново пишется...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Одновременная комплектация нескольких отгрузок Tressi DAX: Функционал 2 24.05.2006 13:40
Как программно нажать кнопку ОК на RunBase - е ? zelen DAX: Программирование 6 23.11.2005 14:52
Security Key программно mit DAX: Программирование 6 09.09.2005 16:33
Как программно изменить к-во в строке заказа в форме SalesTable BorDark DAX: Программирование 2 13.01.2005 17:02
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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