X++ code to create and process a sales order
class BASSalesOrderCreationJob
{
/// <summary>
/// Runs the class with the specified arguments.
/// </summary>
/// <param name = "_args">The specified arguments.</param>
public static void main(Args _args)
{
//Declaration of data entities
SalesOrderHeaderV2Entity salesTable;
SalesOrderLineV2Entity salesLine;
//Sales order header creation
salesTable.initValue();
salesTable.OrderingCustomerAccountNumber = "004056";
salesTable.insert();
//Getting saleId to create lines
SalesId salesId = salesTable.SalesOrderNumber;
//Sales order line creation
salesLine.initValue();
salesLine.SalesOrderNumber = salesId;
salesLine.ItemNumber = "0002";
salesLine.OrderedSalesQuantity = 5;
salesLine.ShippingSiteId = "Central";
salesLine.ShippingWarehouseId = "DC-Central";
salesLine.insert();
Info(strFmt("Sales order %1 has been created",salesTable.SalesOrderNumber));
//Updating sales order by SalesFromLetter class
SalesFormLetter salesFormLetter;
SalesTable salesUpate = SalesTable::find(salesId);
//Posting SO Confirmation,I guess its mandatory
//You cannot do invoice without doing SO confirm
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation);
salesFormLetter.update(SalesTable::find(salesId));
;
//Posting Packing slip
salesFormLetter = SalesFormLetter::construct(DocumentStatus::PackingSlip);
salesFormLetter.update(SalesTable::find(salesId));
info("Packing slip posted");
;
//Posting SO Invoice
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Invoice);
salesFormLetter.update(SalesTable::find(salesId));
info("Invoice posted");
}
}
Comments
Post a Comment