Sir how can we create sales order in AX 2012 using classes and class declaration,using different classes related to sales order.
*This post is locked for comments
Sir how can we create sales order in AX 2012 using classes and class declaration,using different classes related to sales order.
*This post is locked for comments
I need such a code that are using the ax classes to create a sales order,This code is asking for (literator.more()) but I don't know what is the type of literator they ask for declaration.I was using my own aurguments and giving static value in place of _SOContract.custAccount().
private SalesId createAXSO(AMSSalesOrderContract _SOContract)
{
SalesTable salesTable;
SalesLine salesLine;
AxSalesTable axsalesTable;
AxSalesLine axSalesLine;
SalesFormLetter salesFormLetter;
;
//Create Sales order
custTable = CustTable::find( _SOContract.custAccount());
salesTable.initFromCustTable();
axsalesTable = AxSalesTable::newSalesTable(salesTable);
axsalesTable.parmCustAccount( _SOContract.custAccount());
axsalesTable.parmSalesType(SalesType::Sales);
axsalesTable.parmDocumentStatus(DocumentStatus::Confirmation);
axsalesTable.parmDeliveryDate(systemDateGet()+ 30);
axsalesTable.parmSalesStatus(SalesStatus::Backorder);
axsalesTable.doSave();
while (literator.more())
{
lSalesLineContract = literator.value();
salesLine.initFromSalesTable(salesTable);
axSalesLine = AxSalesLine::newSalesLine(salesLine);
axSalesLine.parmItemId(lSalesLineContract.itemId());
//////Mandatory Values
inventDim.InventSiteId = "AUS";
inventDim.InventLocationId = "EPH";
inventDim = InventDim::findOrCreate(inventDim);
axSalesLine.parmInventDimId(inventDim.inventDimId);
axSalesLine.parmCurrencyCode("AUD");
axSalesLine.parmSalesQty(4);
axSalesLine.parmSalesPrice(20.00);
axSalesLine.doSave();
literator.next();
}
//SO confirmation
salesTable = axSalesTable.salesTable(salesTable);
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation);
salesFormLetter.update(salesTable);
// SO invoicing
salesFormLetter = salesFormLetter::construct(DocumentStatus::Invoice);
salesFormLetter.update(salesTable);
return salesTable.SalesId;
}
Hi Jamil,
Here’s the code you can use to create a sales order in Dynamics AX 2012 through X++.
static void CreateSalesOrder(Args _args) { //declaring variables SalesTable salesTable; SalesLine salesLine; NumberSeq numberSeq; SalesFormLetter salesFormLetter;; ttsBegin; //creating sales order header //getting sales order id from number sequence numberSeq = NumberSeq::newGetNum(SalesParameters::numRefSalesId()); numberSeq.used(); salesTable.SalesId = numberSeq.num(); salesTable.initValue(); salesTable.CustAccount = ‘US-001’; salesTable.initFromCustTable(); //validate if (!salesTable.validateWrite()) { throw Exception::Error; } salesTable.insert(); //creating sales order line salesLine.SalesId = salesTable.SalesId; salesLine.ItemId = ‘D0001’; salesLine.SalesQty = 2; salesLine.LinePercent = 1; salesLine.createLine(true, // Validate true, // initFromSalesTable true, // initFromInventTable true, // calcInventQty true, // searchMarkup true // searchPrice ); ttsCommit; //confirm sales order salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation); salesFormLetter.update(salesTable); //displaying sales order id info(salesTable.SalesId); }
Best Regards,
Blue Wang
You can refer below code . If you know how to create classes (which you can easily search on the web ),you can utilize below code
community.dynamics.com/.../how-to-create-sales-order-through-code
André Arnaud de Cal...
294,424
Super User 2025 Season 1
Martin Dráb
233,043
Most Valuable Professional
nmaenpaa
101,158
Moderator