Interview Questions

Thursday, October 22, 2015

How to create Production order through X++ code

static void ProdOrderCreation(Args _args)
{
    ProdQty             qty     = 100;
    ItemId                item;
    ProdTable          prodtable;
    InventTable       inventTable;
    InventDim        inventDim;
    item               = 'D0003';


    // 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