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;