X++ code to create purchase order manually in D365 F&O
Using NumberSequence we can create purchid automatically but this is old method of doing
NumberSeq numberSeq;
PurchTable purchTable;
PurchLine purchLine;
;
ttsBegin;
// geting number sequence
numberSeq = NumberSeq::newGetNum(PurchParameters::numRefPurchId());
numberSeq.used();
// Asign purch id
purchTable.PurchId = numberSeq.num();
// calling table initvalue method
purchTable.initValue();
// find the vendor account
purchTable.initFromVendTable(VendTable::find('1001'));
// validation
//if (!purchTable.validateWrite())
//{
// throw Exception::Error;
//}
//// insert data
purchTable.InventSiteId= 'DC';
purchTable.InventLocationId= 'DC';
purchTable.insert();
//purchLine.clear();
purchLine.initValue();
purchLine.PurchId = purchTable.PurchId;
purchLine.ItemId = '0001';
// Purch line creation
purchLine.createLine(true, true, true, true, true, true);
ttsCommit;
info(strFmt("Purchase order '%1' has been created",purchTable.PurchId));
or
Using Data entities also we can do this (Prefered way of doing)
class BASPurchOrderCreation
{
public static void main(Args _args)
{
PurchPurchaseOrderHeaderV2Entity purchPurchaseOrder;
PurchPurchaseOrderLineV2Entity purchPurchaseOrderLine;
//Header creation
purchPurchaseOrder.initValue();
purchPurchaseOrder.OrderVendorAccountNumber='1001';
purchPurchaseOrder.insert();
PurchId purchId = purchPurchaseOrder.PurchaseOrderNumber;
//Line creation
purchPurchaseOrderLine.initValue();
purchPurchaseOrderLine.PurchaseOrderNumber=purchId;
purchPurchaseOrderLine.ItemNumber='0001';
purchPurchaseOrderLine.ReceivingSiteId='DC';
purchPurchaseOrderLine.ReceivingWarehouseId='DC';
purchPurchaseOrderLine.insert();
info(strFmt("Purchase Order number is %1",purchPurchaseOrder.PurchaseOrderNumber));
}
}
Comments
Post a Comment