Axapta 如何通过代码更改生产状态?(AX 2009)
我必须通过代码更改生产状态,但不能从ProdTable表单更改。我遇到的问题是,ProdMultiRelease类希望从ProdTable表单运行。 (第10行:RunbaseMultipart::initFromForm(prodMultiRelease,args);) 更新: 这里有一些额外的信息。首先,我试过这样的方法:Axapta 如何通过代码更改生产状态?(AX 2009),axapta,dynamics-ax-2009,x++,ax,Axapta,Dynamics Ax 2009,X++,Ax,我必须通过代码更改生产状态,但不能从ProdTable表单更改。我遇到的问题是,ProdMultiRelease类希望从ProdTable表单运行。 (第10行:RunbaseMultipart::initFromForm(prodMultiRelease,args);) 更新: 这里有一些额外的信息。首先,我试过这样的方法: static void Job1(Args _args) { Args args; ProdTable prodTable; ; prod
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');
}
但它不起作用
现在我有这样的东西:
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');
}
这很好,但我不知道简单地设置状态是否有问题
更新2:
我想我会用:
prodTable.autoUpdate(prodStatus::Released);
prodTable.autoUpdate(prodStatus::Released);
我认为最好的方法是:
prodTable.autoUpdate(prodStatus::Released);
prodTable.autoUpdate(prodStatus::Released);
我认为最好的方法是:
prodTable.autoUpdate(prodStatus::Released);
prodTable.autoUpdate(prodStatus::Released);
我在执行此代码时遇到问题。以下代码适用于我:
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();
}
我在执行此代码时遇到问题。以下代码适用于我:
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();
}
更准确地说,我想更新生产订单以发布。如果您自己找到答案,请发布并接受。更准确地说,我想更新生产订单以发布。如果您自己找到答案,发布并接受。您使用的是哪个AX版本?版本:AX 2012 R3 CU9您使用的是哪个AX版本?版本:AX 2012 R3 CU9