Code snippet to create a sales order from an XML file.
private void createSOFromFile()
{
AxdSalesOrder salesOrder;
AifEntityKey key;
Filename fileName;
RecId salesTableRecId;
SalesTable salesTable;
XmlDocument xmlDoc;
salesOrder = new AxdSalesOrder();
fileName = @"C:\Temp\SalesOrder.XML";
xmlDoc = XmlDocument::newFile(fileName);
key = salesOrder.create(xmlDoc.xml(),
new AifEndPointActionPolicyInfo(),
new AifConstraintList());
new AifEndPointActionPolicyInfo(),
new AifConstraintList());
salesTableRecId = key.parmRecId();
info(strFmt("Sales order created: %1", SalesTable::findRecId(salesTableRecId).SalesId));
}
Sample XML file
<?xml version="1.0" encoding="UTF-8"?>
<SalesOrder xmlns:n="http://schemas.microsoft.com/dynamics/2008/01/documents/SalesOrder">
<SalesTable class="entity">
<CustAccount>C000002</CustAccount>
<InventLocationId>EMU</InventLocationId>
<CustomerRef>Cash on Delivery (COD)</CustomerRef>
<PurchOrderFormNum>4669286216,1021</PurchOrderFormNum>
<ReceiptDateRequested>2011-11-11</ReceiptDateRequested>
<DeliveryName>team03qa@gmail.com</DeliveryName>
<TableDlvAddr class="entity">
<City>southbank</City>
<CountryRegionId>AUS</CountryRegionId>
<LocationName>delivery address</LocationName>
<State>VIC</State>
<Street>13075 MANCHESTER RD STE</Street>
<ZipCode>3006</ZipCode>
</TableDlvAddr>
<SalesLine class="entity">
<ItemId>CANO</ItemId>
<SalesQty>20</SalesQty>
<SalesPrice>82.25</SalesPrice>
<SalesUnit>ltr</SalesUnit>
<LineAmount>1</LineAmount>
<LineNum>8966003144</LineNum>
</SalesLine>
<SalesLine class="entity">
<ItemId>CANO</ItemId>
<SalesPrice>9.9</SalesPrice>
<SalesQty>1</SalesQty>
<SalesUnit>ltr</SalesUnit>
<LineAmount>9.9</LineAmount>
<LineNum>8966003208</LineNum>
</SalesLine>
</SalesTable>
</SalesOrder>
How does it work
AxdSalesOrder class uses AifEntity classes to create sales order, these classes internally map the datasources of an AOT query AxdSalesOrder with the element tags in XML with attribute class = "entity". For example; for delivery address, the XML node name is TableDlvAddr which is the datasource name in AxdSalesOrder query.
Similarly, if you want to add notes or attach documents with sales order you can add DocuRefHeader node in XML file.
Can someone post an example of the XML file when also using the DocuRefHeader node? I keep getting an error about invalid child elements even though I know they are correct.
ReplyDeleteI would highly recommend Mr, Benjamin services to any person in need financial help and they will keep you on top of high directories for any further needs. Once again I commend yourself and your staff for extraordinary service and customer service, as this is a great asset to your company and a pleasant experience to customers such as myself. Wishing you all the best for the future.Mr, Benjamin is best way to get an easy loan,here is there email.. / 247officedept@gmail.com Or talk to Mr Benjamin On WhatsApp Via_+1-989-394-3740 Thank You for helping me with loan once again in my sincerely heart I'm forever grateful.
ReplyDelete