Как я могу изменить статус производства с помощью кода?(AX 2009) - PullRequest
1 голос
/ 18 октября 2011

Мне нужно изменить статус производства с помощью кода, но не из формы ProdTable. Проблема, которая у меня есть, заключается в том, что класс ProdMultiRelease ожидает запуска из формы ProdTable. (Строка 10: RunBaseMultiParm :: initFromForm (prodMultiRelease, args);)

Обновление: Вот некоторые дополнительные сведения. Сначала я попробовал что-то вроде этого:

static void Job1(Args _args)
{
    Args args;
    ProdTable prodTable;
    ;
    prodTable = ProdTable::find( 'PRD_00005166', true);
    args = new Args();
    args.record( prodTable );
    new MenuFunction( menuitemactionstr( ProdRelease ), MenuItemType::Action ).run( args );
}

Но это не работает.

Теперь у меня есть что-то вроде этого:

static void startprod(Args _args)
{
    ProdTable           prodTable;
    ProdMultiStartUp    ProdMultiStartUp;
    ;
    prodTable.selectForUpdate(true);
    select prodTable where prodTable.ProdId =='0267_074';
    prodTable.ProdStatus = prodStatus::StartedUp;
    prodTable.update();
    info('done');
}

Это работает нормально, но я не знаю, есть ли проблемы с простой установкой статуса.

Update2: Я думаю, что я сделаю это с:

prodTable.autoUpdate(prodStatus::Released);

Ответы [ 2 ]

4 голосов
/ 20 октября 2011

Я думаю, что лучший способ сделать это:

prodTable.autoUpdate(prodStatus::Released);
0 голосов
/ 30 марта 2016

У меня была проблема при выполнении этого кода. У меня работал следующий код:

static void setProdStatusStarted(Args _args)
{
    ProdUpdStartUp      prodUpdStartUp;
    ProdParmStartUp     prodParmStartUp;
    ProdParametersDim   prodParametersDim;
    ProdTable           prodTable;

    ProdId              prodId = "PROD-0001";

    prodTable = ProdTable::find(prodId);

    ttsBegin;
    prodParmStartUp.initValue();
    prodParmStartUp.initParmDefault();

    prodParametersDim = ProdParametersDim::find(prodTable.InventDimId);

    prodParmStartUp.initFromProdParametersDim(prodParametersDim);
    prodParmStartUp.ProdId = prodTable.ProdId;
    prodParmStartUp.PostNowBOM = NoYes::No;
    //CompletePickListJournal property allows it to create additional picking list journals which are missing for the BOM.
    prodParmStartUp.CompletePickListJournal = NoYes::Yes;

    prodParmStartUp.insert();
    ttsCommit;

    prodUpdStartUp = ProdUpdStartUp::construct();
    prodUpdStartUp.parmParmBuffer(prodParmStartUp);
    prodUpdStartUp.run();
}

Проверить этот блог

...