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

Popular posts from this blog

how to post trade agreement journals automatically using x++ code

How to Create a wizard in x++ d365

x++ code to submit and approve and reject the invent movement workflow in d365 F&O