Monday, October 28, 2013

Quarantine Orders – Start, Report as finished, End using X++ Code [Dynamics AX]

static void SR_QO_post_Started(Args _args)
{
InventQuarantineMultiStartUp inventQuarantineMultiStartup;
ParmBuffer parmBuffer;
ParmUpdate parmUpdate;
InventQuarantineOrder inventQuarantineOrder = InventQuarantineOrder::find(‘QO-10005′);
;
inventQuarantineMultiStartup = InventQuarantineMultiStartUp::construct();
parmBuffer = inventQuarantineMultiStartup.defaultParmBuffer();
parmUpdate = inventQuarantineMultiStartup.defaultParmUpdate();
RunBaseMultiParm::initParm(inventQuarantineMultiStartup); //sets the parm id
//init and insert update parameters that goes for all updates.
inventQuarantineMultiStartup.insertParmUpdate(parmUpdate);
parmBuffer.Linenum++;
inventQuarantineMultiStartup.insert(inventQuarantineOrder,parmBuffer);
inventQuarantineMultiStartup.run();
}
In order to post the started QO to Report as finished. Use the same logic but use the class
InventQuarantineMultiReportFinished
static void SR_QO_post_started_RAF(Args _args)
{
InventQuarantineMultiReportFinished inventQuarantineMultiReportFinished;
ParmBuffer parmBuffer;
ParmUpdate parmUpdate;
InventQuarantineOrder inventQuarantineOrder = InventQuarantineOrder::find(‘QO-10005′);
;
inventQuarantineMultiReportFinished = InventQuarantineMultiReportFinished::construct();
parmBuffer = inventQuarantineMultiReportFinished.defaultParmBuffer();
parmUpdate = inventQuarantineMultiReportFinished.defaultParmUpdate();
RunBaseMultiParm::initParm(inventQuarantineMultiReportFinished); //sets the parm id
//init and insert update parameters that goes for all updates.
InventQuarantineMultiReportFinished.insertParmUpdate(parmUpdate);
parmBuffer.Linenum++;
InventQuarantineMultiReportFinished.insert(InventQuarantineOrder,parmBuffer);
InventQuarantineMultiReportFinished.run();
}
To end the QO – use InventQuarantineMultiEnd class
static void SR_QO_post_End(Args _args)
{
InventQuarantineMultiEnd inventQuarantineMultiEnd;
ParmBuffer parmBuffer;
ParmUpdate parmUpdate;
InventQuarantineOrder inventQuarantineOrder = InventQuarantineOrder::find(‘QO-10005′);
;
;
inventQuarantineMultiEnd = InventQuarantineMultiEnd::construct();
parmBuffer = inventQuarantineMultiEnd.defaultParmBuffer();
parmUpdate = inventQuarantineMultiEnd.defaultParmUpdate();
RunBaseMultiParm::initParm(inventQuarantineMultiEnd); //sets the parm id
//init and insert update parameters that goes for all updates.
inventQuarantineMultiEnd.insertParmUpdate(parmUpdate);
parmBuffer.Linenum++;
inventQuarantineMultiEnd.insert(InventQuarantineOrder,parmBuffer);
inventQuarantineMultiEnd.run();
}

Tuesday, October 22, 2013

AX2012 AXUTIL commands to Import,Export,Delete Models

// creating the Model in the Layer
AxUtil create /model:"TestModel" /Layer:CUS

// exporting the model to file
AxUtil export /model:"TestModel" /file:TestModel.axmodel

// importing the model from file
AxUtil import /file:TestModel.axmodel

// delete the model
AxUtil delete /model:"TestModel"

//delete the layer
AxUtil delete /layer:ISV

// if you have multiple instances running
//delete the layer from the database and AXserver.
Axutil delete /layer:ISV /db: /s:

How to identify the user that was used to change an object from AOT in AX2012

Get the object name for which we need to track these (user and date&time) information's. Login to SQL Server Management Studio an...