a similar question has allready been answered here: https://community.dynamics.com/ax/f/33/p/106550/208931.aspx (Packing slip, more than one PO through x++)
In an nutshell, you can do something like this:
// 1) Build a query based on your Selection
salesUpdateQuery.dataSourceTable(tableNum(salesTable)).addRange(fieldNum(salesTable,SalesId)).value(selectionStr);
queryRun = new queryRun(salesUpdateQuery);
// 2) call chooseLinesQuery Post the invoice for all Sales Orders
salesFormLetter.chooseLinesQuery(queryRun);
SalesFormLetter.update(
salesTable,
systemDateGet(),
SalesUpdate::All,
AccountOrder::None,
NoYes::No,
NoYes::no);