Hi,
Maybe this code help you:
public void CreateSalesOrderOneTrans()
{
string salesOrderNumber = "";
string company = "agr";
string itemId = "";
int rowCount = 0;
try
{
SalesOrderHeader salesOrder = new SalesOrderHeader();
DataServiceCollection<SalesOrderHeader> salesOrderCollection = new DataServiceCollection<SalesOrderHeader>(context);
salesOrderCollection.Add(salesOrder);
//salesOrder.SalesOrderNumber = salesOrderNumber; // Change number sequence setting in AX to allow user to set values.
salesOrder.CurrencyCode = "UYU";
salesOrder.OrderingCustomerAccountNumber = "ABT-000001";
salesOrder.DataAreaId = company;
//Save salesorder
context.MergeOption = MergeOption.OverwriteChanges;
context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset);
//Take Sales order next number sequence
salesOrderNumber = salesOrder.SalesOrderNumber;
//Address
/*
salesOrder.DeliveryAddressName = "Uruguay";
salesOrder.DeliveryAddressStreet = "street 123";
salesOrder.DeliveryAddressCity = "Montevideo";
salesOrder.DeliveryAddressStreetNumber = "876";
*/
#region SalesOrderLine
DataServiceCollection<SalesOrderLine> salesOrderLineCollection = new DataServiceCollection<SalesOrderLine>(context);
SalesOrderLine salesOrderLine;
while (rowCount <= 1)
{
salesOrderLine = new SalesOrderLine();
salesOrderLineCollection.Add(salesOrderLine);
//salesOrder is updated through save operation before, so i can assign the correct Operations generated SalesOrderNumber to the line
salesOrderLine.SalesOrderNumber = salesOrder.SalesOrderNumber;
salesOrderLine.OrderedSalesQuantity = rowCount;
salesOrderLine.DataAreaId = company;
//salesOrderLine.SalesUnitSymbol = UnitOfMeasureCodeSymbol.Kilograms.ToString();
itemId = (rowCount == 1) ? "011" : "020";
if (itemId == "011")
{
salesOrderLine.ItemNumber = itemId;
salesOrderLine.ShippingSiteId = "BG";
salesOrderLine.ShippingWarehouseId = "wert";
salesOrderLine.ShippingWarehouseLocationId = "Production";
}
else
{
salesOrderLine.ItemNumber = itemId;
salesOrderLine.ShippingSiteId = "BG";
salesOrderLine.ShippingWarehouseId = "poi";
}
rowCount++;
}
#endregion
context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset);
Console.WriteLine(string.Format("SalesOrder {0} - Saved !", salesOrder.SalesOrderNumber));
}
catch (DataServiceRequestException e)
{
Console.WriteLine(string.Format("SalesOrder {0} - Save Failed !", "Error"));
}
}
regards ,