Wednesday 29 June 2016

Create production order in AX using X++

static void CreateProductionOrder(Args _args)
{
    ProdQty         qty     = 50;
    ItemId          item    = '1234';
    ProdTable       prodtable;
    InventTable     inventTable;
    InventDim       inventDim;
    ;
    // Initialize InventTable
    inventTable = inventTable::find(item);
    // Initialize the base values
    prodtable.initValue();
    prodtable.initFromInventTable(inventTable);
    prodtable.ItemId                = inventTable.ItemId;
    prodtable.DlvDate               = today();
    prodtable.QtySched              = qty;
    prodtable.RemainInventPhysical  = qty;
    // Initialize InventDim (Obrigatory)
    inventDim.initValue();
    // Set the active BOM and Route
    prodtable.BOMId = BOMVersion::findActive(prodtable.ItemId,
                                             prodtable.BOMDate,
                                             prodtable.QtySched,
                                             inventDim).BOMId;
    prodtable.RouteId = RouteVersion::findActive(prodtable.ItemId,
                                                 prodtable.BOMDate,
                                                 prodtable.QtySched,
                                                 inventDim).RouteId;
    // Initialize BOMVersion
    prodtable.initBOMVersion();
    // Initialize RouteVersion
    prodtable.initRouteVersion();
    //Use ProdTableType class to create the production order
    prodtable.type().insert();
    // Inform Production Order Id
    setPrefix( 'Production Order');
    setPrefix( 'Production Order Number');
    info(prodtable.ProdId);
}

No comments:

Post a Comment