Multiple saleslines invoicing through code in AX 2012

Hi There, While using query and queryRun and filtering through it by the parameters values and passing the queryRun to the salesformletter we can post the invoice of sales order lines.


static void PostSalesLineInvoice(Args _args)
{
    SalesTable salesTable;
    SalesFormLetter salesFormLetter;
    Query query;
    QueryRun queryRun;
    QueryBuildDataSource qbds;

    salesTable = SalesTable::find('USMF-1000123');
    query = new Query(QueryStr(SalesUpdatePackingSlip));
    qbds = query.dataSourceTable(tableNum(SalesLine));

    // Build query range to find those lines which needs to be posted.

    qbds.addRange(fieldNum(SalesLine, SalesId)).value('USMF-1000123');
    qbds.addRange(fieldNum(SalesLine, SalesStatus)).value(queryValue(SalesStatus::Backorder));
    qbds.addRange(fieldNum(SalesLine, itemId)).value('USMF-1000222');
    queryRun = new queryRun(query);

    salesFormLetter = SalesFormLetter::construct(DocumentStatus::Invoice);
    salesFormLetter.chooseLinesQuery(queryRun);
    salesFormLetter.update(salesTable);
}
H@ppy D@xing...

No comments:

Post a Comment