AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 31.01.2018, 08:04   #1  
TalgatAb ist offline
TalgatAb
Участник
 
18 / 11 (1) +
Registriert seit: 31.01.2018
Местоположение (InventDim.wMSLocationId)
Можно ли автоматически определить местоположения ТМЦ на центральном складе, согласно его физическим параметрам?
Модуль "Заказ на покупку", Microsoft Dynamics AX 2009
Alt 31.01.2018, 09:45   #2  
БАХ43 ist offline
БАХ43
Участник
 
92 / 54 (2) ++++
Registriert seit: 15.02.2013
Ort: г.Москва, г. Зеленоград
Вопрос не совсем понятен. Определить где ТМЦ сейчас стоит или найти товару подходящее место при приемке на склад?
Модуля "Заказ на покупку" нет. Есть Управление запасами и расчеты с поставщиками, если уж речь о покупках.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Alt 31.01.2018, 15:01   #3  
TalgatAb ist offline
TalgatAb
Участник
 
18 / 11 (1) +
Registriert seit: 31.01.2018
Найти товару подходящее место при приемке на склад. Модуль "Расчеты с поставщиками".

Задача состоит в том, что в зависимости от физических параметров номенклатуры и местоположении, надо автоматически определить местоположение на складе, возможно, даже распределить на несколько свободных мест одну и ту же номенклатуру.


https://drive.google.com/open?id=1qy..._3nws0GYZKvoVe

Geändert von TalgatAb (31.01.2018 um 15:30 Uhr)
Alt 31.01.2018, 20:52   #4  
twilight ist offline
twilight
MCTS
MCBMSS
 
890 / 241 (10) ++++++
Registriert seit: 17.10.2004
Ort: Королёв
Можно, но для этого вам надо детально изучить и настроить модуль Управление складом.
__________________
I could tell you, but then I would have to bill you.
Alt 01.02.2018, 13:10   #5  
БАХ43 ist offline
БАХ43
Участник
 
92 / 54 (2) ++++
Registriert seit: 15.02.2013
Ort: г.Москва, г. Зеленоград
Все можно, только дорабатывать надо. А сейчас как принимаете? Вручную ячейку прописываете или все-таки через журнал прибытия?
При разноске строки журнала прибытия как раз ищется свободная ячейка, согласно настройкам зоны хранения номенклатуры и области хранения ячеек. См. метод findFreeLocation в таблице WMSStoreZone.
Вопрос довольно обширный, если задан не из праздного любопытства, а действительно нужна такая доработка - могу помочь. У меня поиск свободных ячеек реализован с учетом нескольких параметров. Зона хранения, высота погрузчика, ширина и высота ячейки, габариты и вес короба, количество коробов в слое на паллете, ярус стеллажа, этаж склада...
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Alt 05.02.2018, 08:20   #6  
TalgatAb ist offline
TalgatAb
Участник
 
18 / 11 (1) +
Registriert seit: 31.01.2018
Спасибо, за отклик!
Модуль называется "Управление запасами", а то что вы рассказываете, наверно реализовано в модуле "Управление складами". Данный вопрос не из-за собственного любопытства. И думаю, ваш опыт для меня бесценен. Задача состоит в следующем:
1) Модуль "Расчеты с поставщиками", при приеме нового заказа покупки, во время формирования "Отборочная накладная", надо автоматически определить свободное местоположение InventDim.wMSLocationId, при этом, если большая партия, то надо распределить на несколько свободных мест. Вообще на уровне "Отборочной накладной" это возможно?
По этому вопросу, я предлагал следующий вариант: Новые товары, номенклатуры принимать на виртуальный склад, при этом не будем определят местоположения. Проводим как обычно отборочную накладную в Axapta-е и заказ оприходуем. Затем загружаем данный заказ на покупку в ТСД (Android), и проводим операцию "Прибытие", т.е. через MS Business Connector программно создаем журнал переноса из виртуального склада на центральный склад, при этом есть возможности автоматически определить свободные местоположения на центральном складе. Но нашим менеджерам этот вариант не очень нравятся, они хотят чтобы местоположения определились во время отборочной накладной...

Кстати, где "Управление запасами" не могу найти привязки к палетте?
Alt 05.02.2018, 08:50   #7  
TalgatAb ist offline
TalgatAb
Участник
 
18 / 11 (1) +
Registriert seit: 31.01.2018
Кстати, ниже пример из кода X++

X++:
void  closeOk()
{
;

    // <Talgat 23.02.2016 12:45>
    // Здесь в режиме "Разноска" -> "Отборочная накладная", после нажатия кнопки Ok
    // присваивается новый серийный номер
    if (documentStatus == DocumentStatus::PackingSlip)
        this.ALA_InitSerialNum();
    // </Talgat>

    if (purchParmUpdate)
        purchParmUpdate_ds.write();

    if (purchParmTable.RecId)
        purchParmTable_ds.write();

    if (purchParmSubTable)
        purchParmSubTable_ds.write();

    if (purchParmLine)
        purchParmLine_ds.write();

    purchFormLetter.initParameters(purchParmUpdate.data(),
                                   printout.selection(),
                                   printFormletter.value(),
                                   euVat.value(),
                                   usePrintManagement.value());

    purchFormLetter.printSalesFormLetter(printSalesFormLetter.value());
    purchFormLetter.editLinesChanged(editLinesChanged);
    purchFormLetter.reArrangeNow(reArrangeNow);

    // <GEEU>
    purchFormLetter.parmPrintFacture_RU(printFacture_RU.value());
    purchFormLetter.parmPrintAcceptanceReport_RU(printAcceptanceReport_RU.value());
    purchFormLetter.parmPrintInventBaileeReport_RU(printInventBaileeReport_RU.value());
    purchFormLetter.parmPrintReimbursementSlip_RU(printReimbursementSlip_RU.value());
    purchFormLetter.parmDocNumberingCode_LT(docNumberingCode_LT.text());
    purchFormLetter.parmReceiptListDeviationType_RU(printReceiptListDeviationType_RU.selection());

    // </GEEU>
    // If this is an Invoice that is not posting but is printing, and changes have been made, ask to save changes
    if ( purchEditLinesForm.saveWhenPrinting() && Box::yesNo("@SYS112345", DialogButton::Yes) == DialogButton::Yes )
    {
        purchFormLetter.parmSaveChanges(true);
    }
    else
    {
        purchFormLetter.parmSaveChanges(false);
    }

    super();

    // , , 30.05.2015, Denis -->
    if (DocuRefLink.value() <= 0)
    {
        throw("Необходимо выбрать обрабатываемый документ (вложение)!");
    }
    // , , 30.05.2015, Denis <--

}
Alt 05.02.2018, 08:52   #8  
TalgatAb ist offline
TalgatAb
Участник
 
18 / 11 (1) +
Registriert seit: 31.01.2018
Сам метод работает таким образом:

X++:
public void ALA_InitSerialNum()
{
    // <Talgat 22.02.2016 9:44>
    PurchParmLine        _purchParmLine;
    PurchLine            _purchLine;
    InventDim            _inventDim, _inventDimNew;

    InventSerialId       _inventSerialId;
    InventLocationId     _inventLocationId;
    InventDimGroupId     _dimGroupId;
    //ConfigId             _configId;
    // </Talgat>
    ;

    // <Talgat 22.02.2016 9:31>

    ttsBegin;

    while select forUpdate _purchParmLine
       where _purchParmLine.ParmId == PurchParmTable.ParmId
    {
        _dimGroupId = InventTable::find(_purchParmLine.ItemId).DimGroupId;

        if (ALA_DimGroupId::find(_dimGroupId).DimGroupId)
        {
            _inventDim = InventDim::find(_purchParmLine.InventDimId);
            if (_inventDim)
            {
                if (!_inventDim.inventSerialId)
                {
                    _inventLocationId = _inventDim.InventLocationId;
                    if (ALA_InventLocationId::find(_inventLocationId).InventLocationId)
                    {
                        _inventSerialId = InventSerial::findOrCreate(_purchParmLine.ItemId, _inventLocationId, PurchParmTable.TransDate).InventSerialId;

                        _inventDimNew = InventDim::find(_purchParmLine.InventDimId, true);
                        _inventDimNew.inventSerialId = _inventSerialId;
        //                if (!_inventDimNew.configId)
        //                {
        //                    _configId = PurchLine::findRecId(_purchParmLine.PurchLineRecId).Dimension[5];
        //                    _inventDimNew.configId = ConfigTable::findOrCreate(_purchParmLine.ItemId, _configId, PurchLine::findRecId(_purchParmLine.PurchLineRecId).PurchUnit).ConfigId;
        //                }

                        _purchParmLine.InventDimId = InventDim::findOrCreate(_inventDimNew).inventDimId;
                        _purchParmLine.update();

                        while select forUpdate _purchLine
                            where _purchLine.RecId == _purchParmLine.PurchLineRecId
                        {
                            _purchLine.InventDimId = _purchParmLine.InventDimId;
                            _purchLine.update();
                        }
                    }

                }
            }
        }
    }
    ttsCommit;

    // </Talgat>
}
Alt 05.02.2018, 09:36   #9  
БАХ43 ist offline
БАХ43
Участник
 
92 / 54 (2) ++++
Registriert seit: 15.02.2013
Ort: г.Москва, г. Зеленоград
Zitat:
Модуль называется "Управление запасами", а то что вы рассказываете, наверно реализовано в модуле "Управление складами".
Это именно в "Управлении запасами", а "Управление складами" я вообще не знаю такого.
А почему при формировании отборочной? Чем не нравится разноска списка приходов? При этом формируется журнал прибытия. Там как раз кладовщик разбивает товар по паллетам(если больше одного места) и при его разноске ищется свободная ячейка для каждой паллеты.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Alt 05.02.2018, 09:40   #10  
БАХ43 ist offline
БАХ43
Участник
 
92 / 54 (2) ++++
Registriert seit: 15.02.2013
Ort: г.Москва, г. Зеленоград
Расчеты с поставщиками. Закупка - Разноска - Список прихода.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Alt 05.02.2018, 09:44   #11  
TalgatAb ist offline
TalgatAb
Участник
 
18 / 11 (1) +
Registriert seit: 31.01.2018
Спасибо!
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mfp: InventDim in AX7 Blog bot DAX Blogs 19 03.03.2016 21:06
DynamicsAxSCM: Microsoft Dynamics AX R3 – New Warehouse Management solutions impact on InventDim extensibility and migration scenarios Blog bot DAX Blogs 0 14.08.2015 15:11
Dynamics AX Sustained Engineering: KB3030212 Duplicate InventDim records are created which cause errors in the WHS if license plate IDs include trailing blanks Blog bot DAX Blogs 0 22.01.2015 20:12
Вопросы по ReleaseUpdate DAX 2009 ansoft DAX: Программирование 7 31.08.2010 12:21
inventUpd_reservation использование inventDim SHiSHok DAX: Программирование 2 31.03.2007 21:32

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 17:42 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.