Dynamics AX Blog - Posts from 2014 - Page 4
End/finish a production order through codeDynamics AX provides a framework, which can be used to update production orders to a specific status. In the example, a production order is ended/finished. If you want to update several production orders at the same time, you must invoke the ProdMultiHistoricalCost.insert() method per production order and pass the respective record of ProdTable.
static void prodEnd(Args _args) { ProdTable prodTable; ProdMultiHistoricalCost prodMultiHistoricalCost; prodTable = ProdTable::find("P000195"); prodMultiHistoricalCost = ProdMultiHistoricalCost::construct(new Args()); RunBaseMultiParm::initParm(prodMultiHistoricalCost); prodMultiHistoricalCost.insert(prodTable, prodMultiHistoricalCost.defaultParmBuffer()); prodMultiHistoricalCost.run(); } |
Determine the (delivery-)address of a partyThe job presented here determines the delivery address of a debitor. The first one found (if the customer has several delivery addresses) is shown via the infolog. Of course, instead of a customer, any other entity stored in the Global Address Book (vendors, persons, ...) can be queried. static void getAddressFromParty(Args _args) { CustTable custTable = CustTable::find('US-003'); Addressing addressing; // Get (first found) delivery address (denormalized) addressing = DirParty::getPostalAddressByType(custTable.Party, LogisticsLocationRoleType::Delivery); info(addressing); } In this way, of course, other addresses can be determined, in the example, the payment address: static void getAddressFromParty(Args _args) { CustTable custTable = CustTable::find('US-003'); Addressing addressing; // Get (first found) payment address addressing = DirParty::getPostalAddressByType(custTable.Party, LogisticsLocationRoleType::Payment); info(addressing); } |
Report a production order as finished through codeDynamics AX provides a framework, which can be used to update production orders to a specific status. In the example, a production order is reported as finished. If you want to update several production orders at the same time, you must invoke the ProdMultiReportFinished.insert() method per production order and pass the respective record of ProdTable.
static void prodReportFinished(Args _args) { ProdTable prodTable; ProdMultiReportFinished prodMultiReportFinished; prodTable = ProdTable::find("P000195"); prodMultiReportFinished = ProdMultiReportFinished::construct(new Args()); RunBaseMultiParm::initParm(prodMultiReportFinished); prodMultiReportFinished.insert(prodTable, prodMultiReportFinished.defaultParmBuffer()); prodMultiReportFinished.run(); } |
Start production order through codeDynamics AX provides a framework, which can be used to update production orders to a specific status. In the example, a production order is started. If you want to update several production orders at the same time, you must invoke the ProdMultiStartUp.insert() method per production order and pass the respective record of ProdTable.
static void prodStartUp(Args _args)
{ ProdTable prodTable; ProdMultiStartUp prodMultiStartUp; prodTable = ProdTable::find("P000160"); prodMultiStartUp = ProdMultiStartUp::construct(new Args()); RunBaseMultiParm::initParm(prodMultiStartUp); prodMultiStartUp.insert(prodTable, prodMultiStartUp.defaultParmBuffer()); prodMultiStartUp.run(); } |
Release production order through codeDynamics AX provides a framework, which can be used to update production orders to a specific status. In the example, a production order is released. If you want to update several production orders at the same time, you must invoke the ProdMultiRelease.insert() method per production order and pass the respective record of ProdTable.
static void prodRelease(Args _args) { ProdTable prodTable; ProdMultiRelease prodMultiRelease; prodTable = ProdTable::find("P000177"); prodMultiRelease = ProdMultiRelease::construct(new Args()); RunBaseMultiParm::initParm(prodMultiRelease); prodMultiRelease.insert(prodTable, prodMultiRelease.defaultParmBuffer()); prodMultiRelease.run(); } |
Cost estimate a production order through codeDynamics AX provides a framework, which can be used to update production orders to a specific status. In the example, a production order is cost estimated. If you want to update several production orders at the same time, you must invoke the ProdMultiCostEstimation.insert() method per production order and pass the respective record of ProdTable.
static void prodCostEstimation(Args _args) { ProdTable prodTable; ProdMultiCostEstimation prodMultiCostEstimation; prodTable = ProdTable::find("P000160"); prodMultiCostEstimation = ProdMultiCostEstimation::construct(new Args()); RunBaseMultiParm::initParm(prodMultiCostEstimation); prodMultiCostEstimation.insert( prodTable, prodMultiCostEstimation.defaultParmBuffer()); prodMultiCostEstimation.run(); }
|
|
|
|
|
|
|
If you want to create a production order for a sales order line, the following job can provide an idea of how to do it.
{
SalesLine salesLine = SalesLine::findInventTransId('011748');
ProdTable prodTable;
prodTable.initValue();
prodTable.initFromCaller(salesLine);
prodTable.insert();
}