Create a sales order with delivery address selection

Create a sales order with delivery address selection (when a customer has multiple delivery addresses)

SalesSalesOrderService salesService;
SalesSalesOrder salesOrder;
AfStronglyTypedDataContainerList list;

SalesSalesOrder_DocuRefHeader docuRefHeader;
SalesSalesOrder_DocuRefLine docuRefLine;
SalesSalesOrder_TableDlvAddr tableDlvAddr;
EffectiveDateTime dateTime;
ExpirationDateTime expDateTime;
EffectiveDateTime dt;
DirPartyLocation location;
SalesSalesOrder_SalesTable salesTable;

SalesSalesOrder_SalesLine salesLine;
LogisticsPostalAddressKey addressKey;

salesService = SalesSalesOrderService::construct();

salesOrder = new SalesSalesOrder();
salesOrder.createSalesTable();

salesTable = salesOrder.parmSalesTable().addNew();

// Mandatory data filled for SalesTable
salesTable.parmCustAccount(‘CUST123’);
salesTable.parmReceiptDateRequested(today());
salesTable.parmPurchOrderFormNum(‘PO-123’);

addressKey = salesTable.createDeliveryPostalAddress();

salesTable.parmDeliveryName(“Third delivery address”);

//Get locationId from table LogicticsLocation.
addressKey.parmLocation_LocationId(‘7321’);

//Get valid date and time from LogicticsPostalAddress. You must also use the correct timezone.
dt = DateTimeUtil::newDateTime(str2Date(‘2012-03-01′,321),str2time(’07:38:17’),Timezone::GMTMINUS0800PACIFICTIME);

addressKey.parmValidFrom(dt);

entityKeyList = salesService.create(salesOrder);

if(entityKeyList)

salesId = entityKeyList.getEntityKey(1).parmKeyDataMap().lookup(fieldnum(SalesTable, SalesId));

return salesId;